

/* this ALWAYS GENERATED file contains the definitions for the interfaces */


 /* File created by MIDL compiler version 6.00.0361 */
/* at Fri Nov 21 21:38:10 2008
 */
/* Compiler settings for Z:\home\vbox\tinderbox\2.0-sdk\out\linux.amd64\release\bin\sdk\bindings\mscom\idl\VirtualBox.idl:
    Oicf, W1, Zp8, env=Win32 (32b run)
    protocol : dce , ms_ext, c_ext, robust
    error checks: allocation ref bounds_check enum stub_data 
    VC __declspec() decoration level: 
         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
         DECLSPEC_UUID(), MIDL_INTERFACE()
*/
//@@MIDL_FILE_HEADING(  )

#pragma warning( disable: 4049 )  /* more than 64k source lines */


/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__


#ifndef __VirtualBox_h__
#define __VirtualBox_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

/* Forward Declarations */ 

#ifndef __IVirtualBoxErrorInfo_FWD_DEFINED__
#define __IVirtualBoxErrorInfo_FWD_DEFINED__
typedef interface IVirtualBoxErrorInfo IVirtualBoxErrorInfo;
#endif 	/* __IVirtualBoxErrorInfo_FWD_DEFINED__ */


#ifndef __IVirtualBoxCallback_FWD_DEFINED__
#define __IVirtualBoxCallback_FWD_DEFINED__
typedef interface IVirtualBoxCallback IVirtualBoxCallback;
#endif 	/* __IVirtualBoxCallback_FWD_DEFINED__ */


#ifndef __IVirtualBox_FWD_DEFINED__
#define __IVirtualBox_FWD_DEFINED__
typedef interface IVirtualBox IVirtualBox;
#endif 	/* __IVirtualBox_FWD_DEFINED__ */


#ifndef __IMachineEnumerator_FWD_DEFINED__
#define __IMachineEnumerator_FWD_DEFINED__
typedef interface IMachineEnumerator IMachineEnumerator;
#endif 	/* __IMachineEnumerator_FWD_DEFINED__ */


#ifndef __IMachineCollection_FWD_DEFINED__
#define __IMachineCollection_FWD_DEFINED__
typedef interface IMachineCollection IMachineCollection;
#endif 	/* __IMachineCollection_FWD_DEFINED__ */


#ifndef __IInternalMachineControl_FWD_DEFINED__
#define __IInternalMachineControl_FWD_DEFINED__
typedef interface IInternalMachineControl IInternalMachineControl;
#endif 	/* __IInternalMachineControl_FWD_DEFINED__ */


#ifndef __IBIOSSettings_FWD_DEFINED__
#define __IBIOSSettings_FWD_DEFINED__
typedef interface IBIOSSettings IBIOSSettings;
#endif 	/* __IBIOSSettings_FWD_DEFINED__ */


#ifndef __IMachine_FWD_DEFINED__
#define __IMachine_FWD_DEFINED__
typedef interface IMachine IMachine;
#endif 	/* __IMachine_FWD_DEFINED__ */


#ifndef __IConsoleCallback_FWD_DEFINED__
#define __IConsoleCallback_FWD_DEFINED__
typedef interface IConsoleCallback IConsoleCallback;
#endif 	/* __IConsoleCallback_FWD_DEFINED__ */


#ifndef __IRemoteDisplayInfo_FWD_DEFINED__
#define __IRemoteDisplayInfo_FWD_DEFINED__
typedef interface IRemoteDisplayInfo IRemoteDisplayInfo;
#endif 	/* __IRemoteDisplayInfo_FWD_DEFINED__ */


#ifndef __IConsole_FWD_DEFINED__
#define __IConsole_FWD_DEFINED__
typedef interface IConsole IConsole;
#endif 	/* __IConsole_FWD_DEFINED__ */


#ifndef __IHostDVDDrive_FWD_DEFINED__
#define __IHostDVDDrive_FWD_DEFINED__
typedef interface IHostDVDDrive IHostDVDDrive;
#endif 	/* __IHostDVDDrive_FWD_DEFINED__ */


#ifndef __IHostDVDDriveEnumerator_FWD_DEFINED__
#define __IHostDVDDriveEnumerator_FWD_DEFINED__
typedef interface IHostDVDDriveEnumerator IHostDVDDriveEnumerator;
#endif 	/* __IHostDVDDriveEnumerator_FWD_DEFINED__ */


#ifndef __IHostDVDDriveCollection_FWD_DEFINED__
#define __IHostDVDDriveCollection_FWD_DEFINED__
typedef interface IHostDVDDriveCollection IHostDVDDriveCollection;
#endif 	/* __IHostDVDDriveCollection_FWD_DEFINED__ */


#ifndef __IHostFloppyDrive_FWD_DEFINED__
#define __IHostFloppyDrive_FWD_DEFINED__
typedef interface IHostFloppyDrive IHostFloppyDrive;
#endif 	/* __IHostFloppyDrive_FWD_DEFINED__ */


#ifndef __IHostFloppyDriveEnumerator_FWD_DEFINED__
#define __IHostFloppyDriveEnumerator_FWD_DEFINED__
typedef interface IHostFloppyDriveEnumerator IHostFloppyDriveEnumerator;
#endif 	/* __IHostFloppyDriveEnumerator_FWD_DEFINED__ */


#ifndef __IHostFloppyDriveCollection_FWD_DEFINED__
#define __IHostFloppyDriveCollection_FWD_DEFINED__
typedef interface IHostFloppyDriveCollection IHostFloppyDriveCollection;
#endif 	/* __IHostFloppyDriveCollection_FWD_DEFINED__ */


#ifndef __IHostNetworkInterface_FWD_DEFINED__
#define __IHostNetworkInterface_FWD_DEFINED__
typedef interface IHostNetworkInterface IHostNetworkInterface;
#endif 	/* __IHostNetworkInterface_FWD_DEFINED__ */


#ifndef __IHostNetworkInterfaceEnumerator_FWD_DEFINED__
#define __IHostNetworkInterfaceEnumerator_FWD_DEFINED__
typedef interface IHostNetworkInterfaceEnumerator IHostNetworkInterfaceEnumerator;
#endif 	/* __IHostNetworkInterfaceEnumerator_FWD_DEFINED__ */


#ifndef __IHostNetworkInterfaceCollection_FWD_DEFINED__
#define __IHostNetworkInterfaceCollection_FWD_DEFINED__
typedef interface IHostNetworkInterfaceCollection IHostNetworkInterfaceCollection;
#endif 	/* __IHostNetworkInterfaceCollection_FWD_DEFINED__ */


#ifndef __IHost_FWD_DEFINED__
#define __IHost_FWD_DEFINED__
typedef interface IHost IHost;
#endif 	/* __IHost_FWD_DEFINED__ */


#ifndef __ISystemProperties_FWD_DEFINED__
#define __ISystemProperties_FWD_DEFINED__
typedef interface ISystemProperties ISystemProperties;
#endif 	/* __ISystemProperties_FWD_DEFINED__ */


#ifndef __IGuestOSType_FWD_DEFINED__
#define __IGuestOSType_FWD_DEFINED__
typedef interface IGuestOSType IGuestOSType;
#endif 	/* __IGuestOSType_FWD_DEFINED__ */


#ifndef __IGuestOSTypeEnumerator_FWD_DEFINED__
#define __IGuestOSTypeEnumerator_FWD_DEFINED__
typedef interface IGuestOSTypeEnumerator IGuestOSTypeEnumerator;
#endif 	/* __IGuestOSTypeEnumerator_FWD_DEFINED__ */


#ifndef __IGuestOSTypeCollection_FWD_DEFINED__
#define __IGuestOSTypeCollection_FWD_DEFINED__
typedef interface IGuestOSTypeCollection IGuestOSTypeCollection;
#endif 	/* __IGuestOSTypeCollection_FWD_DEFINED__ */


#ifndef __IGuest_FWD_DEFINED__
#define __IGuest_FWD_DEFINED__
typedef interface IGuest IGuest;
#endif 	/* __IGuest_FWD_DEFINED__ */


#ifndef __IProgressEnumerator_FWD_DEFINED__
#define __IProgressEnumerator_FWD_DEFINED__
typedef interface IProgressEnumerator IProgressEnumerator;
#endif 	/* __IProgressEnumerator_FWD_DEFINED__ */


#ifndef __IProgressCollection_FWD_DEFINED__
#define __IProgressCollection_FWD_DEFINED__
typedef interface IProgressCollection IProgressCollection;
#endif 	/* __IProgressCollection_FWD_DEFINED__ */


#ifndef __IProgress_FWD_DEFINED__
#define __IProgress_FWD_DEFINED__
typedef interface IProgress IProgress;
#endif 	/* __IProgress_FWD_DEFINED__ */


#ifndef __ISnapshotEnumerator_FWD_DEFINED__
#define __ISnapshotEnumerator_FWD_DEFINED__
typedef interface ISnapshotEnumerator ISnapshotEnumerator;
#endif 	/* __ISnapshotEnumerator_FWD_DEFINED__ */


#ifndef __ISnapshotCollection_FWD_DEFINED__
#define __ISnapshotCollection_FWD_DEFINED__
typedef interface ISnapshotCollection ISnapshotCollection;
#endif 	/* __ISnapshotCollection_FWD_DEFINED__ */


#ifndef __ISnapshot_FWD_DEFINED__
#define __ISnapshot_FWD_DEFINED__
typedef interface ISnapshot ISnapshot;
#endif 	/* __ISnapshot_FWD_DEFINED__ */


#ifndef __IHardDiskAttachment_FWD_DEFINED__
#define __IHardDiskAttachment_FWD_DEFINED__
typedef interface IHardDiskAttachment IHardDiskAttachment;
#endif 	/* __IHardDiskAttachment_FWD_DEFINED__ */


#ifndef __IHardDiskAttachmentEnumerator_FWD_DEFINED__
#define __IHardDiskAttachmentEnumerator_FWD_DEFINED__
typedef interface IHardDiskAttachmentEnumerator IHardDiskAttachmentEnumerator;
#endif 	/* __IHardDiskAttachmentEnumerator_FWD_DEFINED__ */


#ifndef __IHardDiskAttachmentCollection_FWD_DEFINED__
#define __IHardDiskAttachmentCollection_FWD_DEFINED__
typedef interface IHardDiskAttachmentCollection IHardDiskAttachmentCollection;
#endif 	/* __IHardDiskAttachmentCollection_FWD_DEFINED__ */


#ifndef __IHardDiskEnumerator_FWD_DEFINED__
#define __IHardDiskEnumerator_FWD_DEFINED__
typedef interface IHardDiskEnumerator IHardDiskEnumerator;
#endif 	/* __IHardDiskEnumerator_FWD_DEFINED__ */


#ifndef __IHardDiskCollection_FWD_DEFINED__
#define __IHardDiskCollection_FWD_DEFINED__
typedef interface IHardDiskCollection IHardDiskCollection;
#endif 	/* __IHardDiskCollection_FWD_DEFINED__ */


#ifndef __IHardDisk_FWD_DEFINED__
#define __IHardDisk_FWD_DEFINED__
typedef interface IHardDisk IHardDisk;
#endif 	/* __IHardDisk_FWD_DEFINED__ */


#ifndef __IVirtualDiskImage_FWD_DEFINED__
#define __IVirtualDiskImage_FWD_DEFINED__
typedef interface IVirtualDiskImage IVirtualDiskImage;
#endif 	/* __IVirtualDiskImage_FWD_DEFINED__ */


#ifndef __IISCSIHardDisk_FWD_DEFINED__
#define __IISCSIHardDisk_FWD_DEFINED__
typedef interface IISCSIHardDisk IISCSIHardDisk;
#endif 	/* __IISCSIHardDisk_FWD_DEFINED__ */


#ifndef __IVMDKImage_FWD_DEFINED__
#define __IVMDKImage_FWD_DEFINED__
typedef interface IVMDKImage IVMDKImage;
#endif 	/* __IVMDKImage_FWD_DEFINED__ */


#ifndef __ICustomHardDisk_FWD_DEFINED__
#define __ICustomHardDisk_FWD_DEFINED__
typedef interface ICustomHardDisk ICustomHardDisk;
#endif 	/* __ICustomHardDisk_FWD_DEFINED__ */


#ifndef __IVHDImage_FWD_DEFINED__
#define __IVHDImage_FWD_DEFINED__
typedef interface IVHDImage IVHDImage;
#endif 	/* __IVHDImage_FWD_DEFINED__ */


#ifndef __IDVDImageEnumerator_FWD_DEFINED__
#define __IDVDImageEnumerator_FWD_DEFINED__
typedef interface IDVDImageEnumerator IDVDImageEnumerator;
#endif 	/* __IDVDImageEnumerator_FWD_DEFINED__ */


#ifndef __IDVDImageCollection_FWD_DEFINED__
#define __IDVDImageCollection_FWD_DEFINED__
typedef interface IDVDImageCollection IDVDImageCollection;
#endif 	/* __IDVDImageCollection_FWD_DEFINED__ */


#ifndef __IDVDImage_FWD_DEFINED__
#define __IDVDImage_FWD_DEFINED__
typedef interface IDVDImage IDVDImage;
#endif 	/* __IDVDImage_FWD_DEFINED__ */


#ifndef __IDVDDrive_FWD_DEFINED__
#define __IDVDDrive_FWD_DEFINED__
typedef interface IDVDDrive IDVDDrive;
#endif 	/* __IDVDDrive_FWD_DEFINED__ */


#ifndef __IFloppyImageEnumerator_FWD_DEFINED__
#define __IFloppyImageEnumerator_FWD_DEFINED__
typedef interface IFloppyImageEnumerator IFloppyImageEnumerator;
#endif 	/* __IFloppyImageEnumerator_FWD_DEFINED__ */


#ifndef __IFloppyImageCollection_FWD_DEFINED__
#define __IFloppyImageCollection_FWD_DEFINED__
typedef interface IFloppyImageCollection IFloppyImageCollection;
#endif 	/* __IFloppyImageCollection_FWD_DEFINED__ */


#ifndef __IFloppyImage_FWD_DEFINED__
#define __IFloppyImage_FWD_DEFINED__
typedef interface IFloppyImage IFloppyImage;
#endif 	/* __IFloppyImage_FWD_DEFINED__ */


#ifndef __IFloppyDrive_FWD_DEFINED__
#define __IFloppyDrive_FWD_DEFINED__
typedef interface IFloppyDrive IFloppyDrive;
#endif 	/* __IFloppyDrive_FWD_DEFINED__ */


#ifndef __IKeyboard_FWD_DEFINED__
#define __IKeyboard_FWD_DEFINED__
typedef interface IKeyboard IKeyboard;
#endif 	/* __IKeyboard_FWD_DEFINED__ */


#ifndef __IMouse_FWD_DEFINED__
#define __IMouse_FWD_DEFINED__
typedef interface IMouse IMouse;
#endif 	/* __IMouse_FWD_DEFINED__ */


#ifndef __IFramebuffer_FWD_DEFINED__
#define __IFramebuffer_FWD_DEFINED__
typedef interface IFramebuffer IFramebuffer;
#endif 	/* __IFramebuffer_FWD_DEFINED__ */


#ifndef __IFramebufferOverlay_FWD_DEFINED__
#define __IFramebufferOverlay_FWD_DEFINED__
typedef interface IFramebufferOverlay IFramebufferOverlay;
#endif 	/* __IFramebufferOverlay_FWD_DEFINED__ */


#ifndef __IDisplay_FWD_DEFINED__
#define __IDisplay_FWD_DEFINED__
typedef interface IDisplay IDisplay;
#endif 	/* __IDisplay_FWD_DEFINED__ */


#ifndef __INetworkAdapter_FWD_DEFINED__
#define __INetworkAdapter_FWD_DEFINED__
typedef interface INetworkAdapter INetworkAdapter;
#endif 	/* __INetworkAdapter_FWD_DEFINED__ */


#ifndef __ISerialPort_FWD_DEFINED__
#define __ISerialPort_FWD_DEFINED__
typedef interface ISerialPort ISerialPort;
#endif 	/* __ISerialPort_FWD_DEFINED__ */


#ifndef __IParallelPort_FWD_DEFINED__
#define __IParallelPort_FWD_DEFINED__
typedef interface IParallelPort IParallelPort;
#endif 	/* __IParallelPort_FWD_DEFINED__ */


#ifndef __IMachineDebugger_FWD_DEFINED__
#define __IMachineDebugger_FWD_DEFINED__
typedef interface IMachineDebugger IMachineDebugger;
#endif 	/* __IMachineDebugger_FWD_DEFINED__ */


#ifndef __IUSBController_FWD_DEFINED__
#define __IUSBController_FWD_DEFINED__
typedef interface IUSBController IUSBController;
#endif 	/* __IUSBController_FWD_DEFINED__ */


#ifndef __IUSBDeviceEnumerator_FWD_DEFINED__
#define __IUSBDeviceEnumerator_FWD_DEFINED__
typedef interface IUSBDeviceEnumerator IUSBDeviceEnumerator;
#endif 	/* __IUSBDeviceEnumerator_FWD_DEFINED__ */


#ifndef __IUSBDeviceCollection_FWD_DEFINED__
#define __IUSBDeviceCollection_FWD_DEFINED__
typedef interface IUSBDeviceCollection IUSBDeviceCollection;
#endif 	/* __IUSBDeviceCollection_FWD_DEFINED__ */


#ifndef __IUSBDevice_FWD_DEFINED__
#define __IUSBDevice_FWD_DEFINED__
typedef interface IUSBDevice IUSBDevice;
#endif 	/* __IUSBDevice_FWD_DEFINED__ */


#ifndef __IUSBDeviceFilterEnumerator_FWD_DEFINED__
#define __IUSBDeviceFilterEnumerator_FWD_DEFINED__
typedef interface IUSBDeviceFilterEnumerator IUSBDeviceFilterEnumerator;
#endif 	/* __IUSBDeviceFilterEnumerator_FWD_DEFINED__ */


#ifndef __IUSBDeviceFilterCollection_FWD_DEFINED__
#define __IUSBDeviceFilterCollection_FWD_DEFINED__
typedef interface IUSBDeviceFilterCollection IUSBDeviceFilterCollection;
#endif 	/* __IUSBDeviceFilterCollection_FWD_DEFINED__ */


#ifndef __IUSBDeviceFilter_FWD_DEFINED__
#define __IUSBDeviceFilter_FWD_DEFINED__
typedef interface IUSBDeviceFilter IUSBDeviceFilter;
#endif 	/* __IUSBDeviceFilter_FWD_DEFINED__ */


#ifndef __IHostUSBDeviceEnumerator_FWD_DEFINED__
#define __IHostUSBDeviceEnumerator_FWD_DEFINED__
typedef interface IHostUSBDeviceEnumerator IHostUSBDeviceEnumerator;
#endif 	/* __IHostUSBDeviceEnumerator_FWD_DEFINED__ */


#ifndef __IHostUSBDeviceCollection_FWD_DEFINED__
#define __IHostUSBDeviceCollection_FWD_DEFINED__
typedef interface IHostUSBDeviceCollection IHostUSBDeviceCollection;
#endif 	/* __IHostUSBDeviceCollection_FWD_DEFINED__ */


#ifndef __IHostUSBDevice_FWD_DEFINED__
#define __IHostUSBDevice_FWD_DEFINED__
typedef interface IHostUSBDevice IHostUSBDevice;
#endif 	/* __IHostUSBDevice_FWD_DEFINED__ */


#ifndef __IHostUSBDeviceFilterEnumerator_FWD_DEFINED__
#define __IHostUSBDeviceFilterEnumerator_FWD_DEFINED__
typedef interface IHostUSBDeviceFilterEnumerator IHostUSBDeviceFilterEnumerator;
#endif 	/* __IHostUSBDeviceFilterEnumerator_FWD_DEFINED__ */


#ifndef __IHostUSBDeviceFilterCollection_FWD_DEFINED__
#define __IHostUSBDeviceFilterCollection_FWD_DEFINED__
typedef interface IHostUSBDeviceFilterCollection IHostUSBDeviceFilterCollection;
#endif 	/* __IHostUSBDeviceFilterCollection_FWD_DEFINED__ */


#ifndef __IHostUSBDeviceFilter_FWD_DEFINED__
#define __IHostUSBDeviceFilter_FWD_DEFINED__
typedef interface IHostUSBDeviceFilter IHostUSBDeviceFilter;
#endif 	/* __IHostUSBDeviceFilter_FWD_DEFINED__ */


#ifndef __IAudioAdapter_FWD_DEFINED__
#define __IAudioAdapter_FWD_DEFINED__
typedef interface IAudioAdapter IAudioAdapter;
#endif 	/* __IAudioAdapter_FWD_DEFINED__ */


#ifndef __IVRDPServer_FWD_DEFINED__
#define __IVRDPServer_FWD_DEFINED__
typedef interface IVRDPServer IVRDPServer;
#endif 	/* __IVRDPServer_FWD_DEFINED__ */


#ifndef __ISharedFolderEnumerator_FWD_DEFINED__
#define __ISharedFolderEnumerator_FWD_DEFINED__
typedef interface ISharedFolderEnumerator ISharedFolderEnumerator;
#endif 	/* __ISharedFolderEnumerator_FWD_DEFINED__ */


#ifndef __ISharedFolderCollection_FWD_DEFINED__
#define __ISharedFolderCollection_FWD_DEFINED__
typedef interface ISharedFolderCollection ISharedFolderCollection;
#endif 	/* __ISharedFolderCollection_FWD_DEFINED__ */


#ifndef __ISharedFolder_FWD_DEFINED__
#define __ISharedFolder_FWD_DEFINED__
typedef interface ISharedFolder ISharedFolder;
#endif 	/* __ISharedFolder_FWD_DEFINED__ */


#ifndef __IInternalSessionControl_FWD_DEFINED__
#define __IInternalSessionControl_FWD_DEFINED__
typedef interface IInternalSessionControl IInternalSessionControl;
#endif 	/* __IInternalSessionControl_FWD_DEFINED__ */


#ifndef __ISession_FWD_DEFINED__
#define __ISession_FWD_DEFINED__
typedef interface ISession ISession;
#endif 	/* __ISession_FWD_DEFINED__ */


#ifndef __ISATAController_FWD_DEFINED__
#define __ISATAController_FWD_DEFINED__
typedef interface ISATAController ISATAController;
#endif 	/* __ISATAController_FWD_DEFINED__ */


#ifndef __IPerformanceMetric_FWD_DEFINED__
#define __IPerformanceMetric_FWD_DEFINED__
typedef interface IPerformanceMetric IPerformanceMetric;
#endif 	/* __IPerformanceMetric_FWD_DEFINED__ */


#ifndef __IPerformanceCollector_FWD_DEFINED__
#define __IPerformanceCollector_FWD_DEFINED__
typedef interface IPerformanceCollector IPerformanceCollector;
#endif 	/* __IPerformanceCollector_FWD_DEFINED__ */


#ifndef __VirtualBox_FWD_DEFINED__
#define __VirtualBox_FWD_DEFINED__

#ifdef __cplusplus
typedef class VirtualBox VirtualBox;
#else
typedef struct VirtualBox VirtualBox;
#endif /* __cplusplus */

#endif 	/* __VirtualBox_FWD_DEFINED__ */


#ifndef __Session_FWD_DEFINED__
#define __Session_FWD_DEFINED__

#ifdef __cplusplus
typedef class Session Session;
#else
typedef struct Session Session;
#endif /* __cplusplus */

#endif 	/* __Session_FWD_DEFINED__ */


/* header files for imported files */
#include "unknwn.h"

#ifdef __cplusplus
extern "C"{
#endif 

void * __RPC_USER MIDL_user_allocate(size_t);
void __RPC_USER MIDL_user_free( void * ); 

/* interface __MIDL_itf_VirtualBox_0000 */
/* [local] */ 

enum {
    kTypeLibraryMajorVersion = 1,
    kTypeLibraryMinorVersion = 0
};


extern RPC_IF_HANDLE __MIDL_itf_VirtualBox_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_VirtualBox_0000_v0_0_s_ifspec;


#ifndef __VirtualBox_LIBRARY_DEFINED__
#define __VirtualBox_LIBRARY_DEFINED__

/* library VirtualBox */
/* [helpstring][version][uuid] */ 




















































































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

#define TSBool_T TSBool
typedef /* [public][public][public][public][public][public][public][public][public][public][v1_enum][uuid] */  DECLSPEC_UUID("73bf04d0-7c4f-4684-9abf-d65a9ad74343") 
enum __MIDL___MIDL_itf_VirtualBox_0000_0002
    {	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;

#define MachineState_T MachineState
typedef /* [public][public][public][public][v1_enum][uuid] */  DECLSPEC_UUID("CF2700C0-EA4B-47ae-9725-7810114B94D8") 
enum __MIDL___MIDL_itf_VirtualBox_0000_0003
    {	SessionState_Null	= 0,
	SessionState_Closed	= 1,
	SessionState_Open	= 2,
	SessionState_Spawning	= 3,
	SessionState_Closing	= 4
    } 	SessionState;

#define SessionState_T SessionState
typedef /* [public][public][v1_enum][uuid] */  DECLSPEC_UUID("A13C02CB-0C2C-421E-8317-AC0E8AAA153A") 
enum __MIDL___MIDL_itf_VirtualBox_0000_0004
    {	SessionType_Null	= 0,
	SessionType_Direct	= 1,
	SessionType_Remote	= 2,
	SessionType_Existing	= 3
    } 	SessionType;

#define SessionType_T SessionType
typedef /* [public][public][public][public][public][v1_enum][uuid] */  DECLSPEC_UUID("6d9420f7-0b56-4636-99f9-7346f1b01e57") 
enum __MIDL___MIDL_itf_VirtualBox_0000_0005
    {	DeviceType_Null	= 0,
	DeviceType_Floppy	= 1,
	DeviceType_DVD	= 2,
	DeviceType_HardDisk	= 3,
	DeviceType_Network	= 4,
	DeviceType_USB	= 5,
	DeviceType_SharedFolder	= 6
    } 	DeviceType;

#define DeviceType_T DeviceType
typedef /* [public][public][v1_enum][uuid] */  DECLSPEC_UUID("6FC8AEAA-130A-4eb5-8954-3F921422D707") 
enum __MIDL___MIDL_itf_VirtualBox_0000_0006
    {	DeviceActivity_Null	= 0,
	DeviceActivity_Idle	= 1,
	DeviceActivity_Reading	= 2,
	DeviceActivity_Writing	= 3
    } 	DeviceActivity;

#define DeviceActivity_T DeviceActivity
typedef /* [public][public][public][v1_enum][uuid] */  DECLSPEC_UUID("FC56E4B6-B195-48e2-A5E1-A667B0D9F809") 
enum __MIDL___MIDL_itf_VirtualBox_0000_0007
    {	ResourceUsage_Null	= 0,
	ResourceUsage_Permanent	= 1,
	ResourceUsage_Temporary	= 2,
	ResourceUsage_All	= 3
    } 	ResourceUsage;

#define ResourceUsage_T ResourceUsage
typedef /* [public][public][public][public][public][v1_enum][uuid] */  DECLSPEC_UUID("715984a5-093c-43bb-aa42-a16ed16828dd") 
enum __MIDL___MIDL_itf_VirtualBox_0000_0008
    {	StorageBus_Null	= 0,
	StorageBus_IDE	= 1,
	StorageBus_SATA	= 2
    } 	StorageBus;

#define StorageBus_T StorageBus
typedef /* [public][public][public][v1_enum][uuid] */  DECLSPEC_UUID("33364716-4008-4701-8f14-be0fa3d62950") 
enum __MIDL___MIDL_itf_VirtualBox_0000_0009
    {	ClipboardMode_Disabled	= 0,
	ClipboardMode_HostToGuest	= 1,
	ClipboardMode_GuestToHost	= 2,
	ClipboardMode_Bidirectional	= 3
    } 	ClipboardMode;

#define ClipboardMode_T ClipboardMode
typedef /* [public][public][v1_enum][uuid] */  DECLSPEC_UUID("7c91096e-499e-4eca-9f9b-9001438d7855") 
enum __MIDL___MIDL_itf_VirtualBox_0000_0010
    {	Scope_Global	= 0,
	Scope_Machine	= 1,
	Scope_Session	= 2
    } 	Scope;

#define Scope_T Scope
typedef /* [public][public][v1_enum][uuid] */  DECLSPEC_UUID("aa7c1d71-aafe-47a8-9608-27d2d337cf55") 
enum __MIDL___MIDL_itf_VirtualBox_0000_0011
    {	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;

#define GuestStatisticType_T GuestStatisticType
typedef /* [public][public][public][v1_enum][uuid] */  DECLSPEC_UUID("ae4fb9f7-29d2-45b4-b2c7-d579603135d5") 
enum __MIDL___MIDL_itf_VirtualBox_0000_0012
    {	BIOSBootMenuMode_Disabled	= 0,
	BIOSBootMenuMode_MenuOnly	= 1,
	BIOSBootMenuMode_MessageAndMenu	= 2
    } 	BIOSBootMenuMode;

#define BIOSBootMenuMode_T BIOSBootMenuMode
typedef /* [public][public][public][v1_enum][uuid] */  DECLSPEC_UUID("445330e3-202a-4dab-854f-ce22e6cb9715") 
enum __MIDL___MIDL_itf_VirtualBox_0000_0013
    {	IDEControllerType_Null	= 0,
	IDEControllerType_PIIX3	= 1,
	IDEControllerType_PIIX4	= 2
    } 	IDEControllerType;

#define IDEControllerType_T IDEControllerType
typedef /* [public][public][public][v1_enum][uuid] */  DECLSPEC_UUID("cb7233b7-c519-42a5-8310-1830953cacbc") 
enum __MIDL___MIDL_itf_VirtualBox_0000_0014
    {	DriveState_Null	= 0,
	DriveState_NotMounted	= 1,
	DriveState_ImageMounted	= 2,
	DriveState_HostDriveCaptured	= 3
    } 	DriveState;

#define DriveState_T DriveState
typedef /* [public][public][public][v1_enum][uuid] */  DECLSPEC_UUID("48138584-ad99-479d-a36f-eb82a7663685") 
enum __MIDL___MIDL_itf_VirtualBox_0000_0015
    {	HardDiskStorageType_VirtualDiskImage	= 0,
	HardDiskStorageType_ISCSIHardDisk	= 1,
	HardDiskStorageType_VMDKImage	= 2,
	HardDiskStorageType_CustomHardDisk	= 3,
	HardDiskStorageType_VHDImage	= 4
    } 	HardDiskStorageType;

#define HardDiskStorageType_T HardDiskStorageType
typedef /* [public][public][public][v1_enum][uuid] */  DECLSPEC_UUID("a348fafd-a64e-4643-ba65-eb3896bd7e0a") 
enum __MIDL___MIDL_itf_VirtualBox_0000_0016
    {	HardDiskType_Normal	= 0,
	HardDiskType_Immutable	= 1,
	HardDiskType_Writethrough	= 2
    } 	HardDiskType;

#define HardDiskType_T HardDiskType
typedef /* [public][v1_enum][uuid] */  DECLSPEC_UUID("03131722-2EC5-4173-9794-0DACA46673EF") 
enum __MIDL___MIDL_itf_VirtualBox_0000_0017
    {	MouseButtonState_LeftButton	= 0x1,
	MouseButtonState_RightButton	= 0x2,
	MouseButtonState_MiddleButton	= 0x4,
	MouseButtonState_WheelUp	= 0x8,
	MouseButtonState_WheelDown	= 0x10,
	MouseButtonState_MouseStateMask	= 0x1f
    } 	MouseButtonState;

#define MouseButtonState_T MouseButtonState
typedef /* [public][public][v1_enum][uuid] */  DECLSPEC_UUID("f0e5ebbe-dc8e-4e2d-916e-53baa3844df8") 
enum __MIDL___MIDL_itf_VirtualBox_0000_0018
    {	FramebufferAccelerationOperation_SolidFillAcceleration	= 1,
	FramebufferAccelerationOperation_ScreenCopyAcceleration	= 2
    } 	FramebufferAccelerationOperation;

#define FramebufferAccelerationOperation_T FramebufferAccelerationOperation
typedef /* [public][v1_enum][uuid] */  DECLSPEC_UUID("6b27d1fc-4f2c-4e9c-a166-01d06540305d") 
enum __MIDL___MIDL_itf_VirtualBox_0000_0019
    {	FramebufferPixelFormat_Opaque	= 0xffffffff,
	FramebufferPixelFormat_FOURCC_RGB	= 0x32424752
    } 	FramebufferPixelFormat;

#define FramebufferPixelFormat_T FramebufferPixelFormat
typedef /* [public][public][v1_enum][uuid] */  DECLSPEC_UUID("8730d899-d036-4925-bc63-e58f3486f4bf") 
enum __MIDL___MIDL_itf_VirtualBox_0000_0020
    {	NetworkAttachmentType_Null	= 0,
	NetworkAttachmentType_NAT	= 1,
	NetworkAttachmentType_HostInterface	= 2,
	NetworkAttachmentType_Internal	= 3
    } 	NetworkAttachmentType;

#define NetworkAttachmentType_T NetworkAttachmentType
typedef /* [public][public][public][v1_enum][uuid] */  DECLSPEC_UUID("156b17b9-5d61-4d54-be90-62e37dda848d") 
enum __MIDL___MIDL_itf_VirtualBox_0000_0021
    {	NetworkAdapterType_Null	= 0,
	NetworkAdapterType_Am79C970A	= 1,
	NetworkAdapterType_Am79C973	= 2,
	NetworkAdapterType_I82540EM	= 3,
	NetworkAdapterType_I82543GC	= 4
    } 	NetworkAdapterType;

#define NetworkAdapterType_T NetworkAdapterType
typedef /* [public][public][public][v1_enum][uuid] */  DECLSPEC_UUID("b266f43c-2e93-46b3-812b-c20e600e867b") 
enum __MIDL___MIDL_itf_VirtualBox_0000_0022
    {	PortMode_Disconnected	= 0,
	PortMode_HostPipe	= 1,
	PortMode_HostDevice	= 2
    } 	PortMode;

#define PortMode_T PortMode
typedef /* [public][public][v1_enum][uuid] */  DECLSPEC_UUID("b99a2e65-67fb-4882-82fd-f3e5e8193ab4") 
enum __MIDL___MIDL_itf_VirtualBox_0000_0023
    {	USBDeviceState_NotSupported	= 0,
	USBDeviceState_Unavailable	= 1,
	USBDeviceState_Busy	= 2,
	USBDeviceState_Available	= 3,
	USBDeviceState_Held	= 4,
	USBDeviceState_Captured	= 5
    } 	USBDeviceState;

#define USBDeviceState_T USBDeviceState
typedef /* [public][public][public][v1_enum][uuid] */  DECLSPEC_UUID("cbc30a49-2f4e-43b5-9da6-121320475933") 
enum __MIDL___MIDL_itf_VirtualBox_0000_0024
    {	USBDeviceFilterAction_Null	= 0,
	USBDeviceFilterAction_Ignore	= 1,
	USBDeviceFilterAction_Hold	= 2
    } 	USBDeviceFilterAction;

#define USBDeviceFilterAction_T USBDeviceFilterAction
typedef /* [public][public][public][v1_enum][uuid] */  DECLSPEC_UUID("4bcc3d73-c2fe-40db-b72f-0c2ca9d68496") 
enum __MIDL___MIDL_itf_VirtualBox_0000_0025
    {	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;

#define AudioDriverType_T AudioDriverType
typedef /* [public][public][public][v1_enum][uuid] */  DECLSPEC_UUID("7afd395c-42c3-444e-8788-3ce80292f36c") 
enum __MIDL___MIDL_itf_VirtualBox_0000_0026
    {	AudioControllerType_AC97	= 0,
	AudioControllerType_SB16	= 1
    } 	AudioControllerType;

#define AudioControllerType_T AudioControllerType
typedef /* [public][public][public][v1_enum][uuid] */  DECLSPEC_UUID("3d91887a-b67f-4b33-85bf-2da7ab1ea83a") 
enum __MIDL___MIDL_itf_VirtualBox_0000_0027
    {	VRDPAuthType_Null	= 0,
	VRDPAuthType_External	= 1,
	VRDPAuthType_Guest	= 2
    } 	VRDPAuthType;

#define VRDPAuthType_T VRDPAuthType

EXTERN_C const IID LIBID_VirtualBox;

#ifndef __IVirtualBoxErrorInfo_INTERFACE_DEFINED__
#define __IVirtualBoxErrorInfo_INTERFACE_DEFINED__

/* interface IVirtualBoxErrorInfo */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IVirtualBoxErrorInfo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("e98b5376-8eb4-4eea-812a-3964bf3bb26f")
    IVirtualBoxErrorInfo : public IErrorInfo
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ResultCode( 
            /* [retval][out] */ HRESULT *aResultCode) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_InterfaceID( 
            /* [retval][out] */ GUID *aInterfaceID) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Component( 
            /* [retval][out] */ BSTR *aComponent) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Text( 
            /* [retval][out] */ BSTR *aText) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Next( 
            /* [retval][out] */ IVirtualBoxErrorInfo **aNext) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IVirtualBoxErrorInfoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IVirtualBoxErrorInfo * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IVirtualBoxErrorInfo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IVirtualBoxErrorInfo * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetGUID )( 
            IVirtualBoxErrorInfo * This,
            /* [out] */ GUID *pGUID);
        
        HRESULT ( STDMETHODCALLTYPE *GetSource )( 
            IVirtualBoxErrorInfo * This,
            /* [out] */ BSTR *pBstrSource);
        
        HRESULT ( STDMETHODCALLTYPE *GetDescription )( 
            IVirtualBoxErrorInfo * This,
            /* [out] */ BSTR *pBstrDescription);
        
        HRESULT ( STDMETHODCALLTYPE *GetHelpFile )( 
            IVirtualBoxErrorInfo * This,
            /* [out] */ BSTR *pBstrHelpFile);
        
        HRESULT ( STDMETHODCALLTYPE *GetHelpContext )( 
            IVirtualBoxErrorInfo * This,
            /* [out] */ DWORD *pdwHelpContext);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ResultCode )( 
            IVirtualBoxErrorInfo * This,
            /* [retval][out] */ HRESULT *aResultCode);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_InterfaceID )( 
            IVirtualBoxErrorInfo * This,
            /* [retval][out] */ GUID *aInterfaceID);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Component )( 
            IVirtualBoxErrorInfo * This,
            /* [retval][out] */ BSTR *aComponent);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Text )( 
            IVirtualBoxErrorInfo * This,
            /* [retval][out] */ BSTR *aText);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Next )( 
            IVirtualBoxErrorInfo * This,
            /* [retval][out] */ IVirtualBoxErrorInfo **aNext);
        
        END_INTERFACE
    } IVirtualBoxErrorInfoVtbl;

    interface IVirtualBoxErrorInfo
    {
        CONST_VTBL struct IVirtualBoxErrorInfoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IVirtualBoxErrorInfo_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IVirtualBoxErrorInfo_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IVirtualBoxErrorInfo_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IVirtualBoxErrorInfo_GetGUID(This,pGUID)	\
    (This)->lpVtbl -> GetGUID(This,pGUID)

#define IVirtualBoxErrorInfo_GetSource(This,pBstrSource)	\
    (This)->lpVtbl -> GetSource(This,pBstrSource)

#define IVirtualBoxErrorInfo_GetDescription(This,pBstrDescription)	\
    (This)->lpVtbl -> GetDescription(This,pBstrDescription)

#define IVirtualBoxErrorInfo_GetHelpFile(This,pBstrHelpFile)	\
    (This)->lpVtbl -> GetHelpFile(This,pBstrHelpFile)

#define IVirtualBoxErrorInfo_GetHelpContext(This,pdwHelpContext)	\
    (This)->lpVtbl -> GetHelpContext(This,pdwHelpContext)


#define IVirtualBoxErrorInfo_get_ResultCode(This,aResultCode)	\
    (This)->lpVtbl -> get_ResultCode(This,aResultCode)

#define IVirtualBoxErrorInfo_get_InterfaceID(This,aInterfaceID)	\
    (This)->lpVtbl -> get_InterfaceID(This,aInterfaceID)

#define IVirtualBoxErrorInfo_get_Component(This,aComponent)	\
    (This)->lpVtbl -> get_Component(This,aComponent)

#define IVirtualBoxErrorInfo_get_Text(This,aText)	\
    (This)->lpVtbl -> get_Text(This,aText)

#define IVirtualBoxErrorInfo_get_Next(This,aNext)	\
    (This)->lpVtbl -> get_Next(This,aNext)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IVirtualBoxErrorInfo_get_ResultCode_Proxy( 
    IVirtualBoxErrorInfo * This,
    /* [retval][out] */ HRESULT *aResultCode);


void __RPC_STUB IVirtualBoxErrorInfo_get_ResultCode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IVirtualBoxErrorInfo_get_InterfaceID_Proxy( 
    IVirtualBoxErrorInfo * This,
    /* [retval][out] */ GUID *aInterfaceID);


void __RPC_STUB IVirtualBoxErrorInfo_get_InterfaceID_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IVirtualBoxErrorInfo_get_Component_Proxy( 
    IVirtualBoxErrorInfo * This,
    /* [retval][out] */ BSTR *aComponent);


void __RPC_STUB IVirtualBoxErrorInfo_get_Component_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IVirtualBoxErrorInfo_get_Text_Proxy( 
    IVirtualBoxErrorInfo * This,
    /* [retval][out] */ BSTR *aText);


void __RPC_STUB IVirtualBoxErrorInfo_get_Text_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IVirtualBoxErrorInfo_get_Next_Proxy( 
    IVirtualBoxErrorInfo * This,
    /* [retval][out] */ IVirtualBoxErrorInfo **aNext);


void __RPC_STUB IVirtualBoxErrorInfo_get_Next_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IVirtualBoxErrorInfo_INTERFACE_DEFINED__ */


#ifndef __IVirtualBoxCallback_INTERFACE_DEFINED__
#define __IVirtualBoxCallback_INTERFACE_DEFINED__

/* interface IVirtualBoxCallback */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IVirtualBoxCallback;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("5516cc08-fb81-47a6-b184-031e7bbd2997")
    IVirtualBoxCallback : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE OnMachineStateChange( 
            /* [in] */ GUID aMachineId,
            /* [in] */ MachineState aState) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnMachineDataChange( 
            /* [in] */ GUID aMachineId) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnExtraDataCanChange( 
            /* [in] */ GUID aMachineId,
            /* [in] */ BSTR aKey,
            /* [in] */ BSTR aValue,
            /* [out] */ BSTR *aError,
            /* [retval][out] */ BOOL *aAllowChange) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnExtraDataChange( 
            /* [in] */ GUID aMachineId,
            /* [in] */ BSTR aKey,
            /* [in] */ BSTR aValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnMediaRegistered( 
            /* [in] */ GUID aMediaId,
            /* [in] */ DeviceType aMediaType,
            /* [in] */ BOOL aRegistered) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnMachineRegistered( 
            /* [in] */ GUID aMachineId,
            /* [in] */ BOOL aRegistered) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnSessionStateChange( 
            /* [in] */ GUID aMachineId,
            /* [in] */ SessionState aState) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnSnapshotTaken( 
            /* [in] */ GUID aMachineId,
            /* [in] */ GUID aSnapshotId) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnSnapshotDiscarded( 
            /* [in] */ GUID aMachineId,
            /* [in] */ GUID aSnapshotId) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnSnapshotChange( 
            /* [in] */ GUID aMachineId,
            /* [in] */ GUID aSnapshotId) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnGuestPropertyChange( 
            /* [in] */ GUID aMachineId,
            /* [in] */ BSTR aName,
            /* [in] */ BSTR aValue,
            /* [in] */ BSTR aFlags) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IVirtualBoxCallbackVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IVirtualBoxCallback * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IVirtualBoxCallback * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IVirtualBoxCallback * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnMachineStateChange )( 
            IVirtualBoxCallback * This,
            /* [in] */ GUID aMachineId,
            /* [in] */ MachineState aState);
        
        HRESULT ( STDMETHODCALLTYPE *OnMachineDataChange )( 
            IVirtualBoxCallback * This,
            /* [in] */ GUID aMachineId);
        
        HRESULT ( STDMETHODCALLTYPE *OnExtraDataCanChange )( 
            IVirtualBoxCallback * This,
            /* [in] */ GUID aMachineId,
            /* [in] */ BSTR aKey,
            /* [in] */ BSTR aValue,
            /* [out] */ BSTR *aError,
            /* [retval][out] */ BOOL *aAllowChange);
        
        HRESULT ( STDMETHODCALLTYPE *OnExtraDataChange )( 
            IVirtualBoxCallback * This,
            /* [in] */ GUID aMachineId,
            /* [in] */ BSTR aKey,
            /* [in] */ BSTR aValue);
        
        HRESULT ( STDMETHODCALLTYPE *OnMediaRegistered )( 
            IVirtualBoxCallback * This,
            /* [in] */ GUID aMediaId,
            /* [in] */ DeviceType aMediaType,
            /* [in] */ BOOL aRegistered);
        
        HRESULT ( STDMETHODCALLTYPE *OnMachineRegistered )( 
            IVirtualBoxCallback * This,
            /* [in] */ GUID aMachineId,
            /* [in] */ BOOL aRegistered);
        
        HRESULT ( STDMETHODCALLTYPE *OnSessionStateChange )( 
            IVirtualBoxCallback * This,
            /* [in] */ GUID aMachineId,
            /* [in] */ SessionState aState);
        
        HRESULT ( STDMETHODCALLTYPE *OnSnapshotTaken )( 
            IVirtualBoxCallback * This,
            /* [in] */ GUID aMachineId,
            /* [in] */ GUID aSnapshotId);
        
        HRESULT ( STDMETHODCALLTYPE *OnSnapshotDiscarded )( 
            IVirtualBoxCallback * This,
            /* [in] */ GUID aMachineId,
            /* [in] */ GUID aSnapshotId);
        
        HRESULT ( STDMETHODCALLTYPE *OnSnapshotChange )( 
            IVirtualBoxCallback * This,
            /* [in] */ GUID aMachineId,
            /* [in] */ GUID aSnapshotId);
        
        HRESULT ( STDMETHODCALLTYPE *OnGuestPropertyChange )( 
            IVirtualBoxCallback * This,
            /* [in] */ GUID aMachineId,
            /* [in] */ BSTR aName,
            /* [in] */ BSTR aValue,
            /* [in] */ BSTR aFlags);
        
        END_INTERFACE
    } IVirtualBoxCallbackVtbl;

    interface IVirtualBoxCallback
    {
        CONST_VTBL struct IVirtualBoxCallbackVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IVirtualBoxCallback_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IVirtualBoxCallback_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IVirtualBoxCallback_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IVirtualBoxCallback_OnMachineStateChange(This,aMachineId,aState)	\
    (This)->lpVtbl -> OnMachineStateChange(This,aMachineId,aState)

#define IVirtualBoxCallback_OnMachineDataChange(This,aMachineId)	\
    (This)->lpVtbl -> OnMachineDataChange(This,aMachineId)

#define IVirtualBoxCallback_OnExtraDataCanChange(This,aMachineId,aKey,aValue,aError,aAllowChange)	\
    (This)->lpVtbl -> OnExtraDataCanChange(This,aMachineId,aKey,aValue,aError,aAllowChange)

#define IVirtualBoxCallback_OnExtraDataChange(This,aMachineId,aKey,aValue)	\
    (This)->lpVtbl -> OnExtraDataChange(This,aMachineId,aKey,aValue)

#define IVirtualBoxCallback_OnMediaRegistered(This,aMediaId,aMediaType,aRegistered)	\
    (This)->lpVtbl -> OnMediaRegistered(This,aMediaId,aMediaType,aRegistered)

#define IVirtualBoxCallback_OnMachineRegistered(This,aMachineId,aRegistered)	\
    (This)->lpVtbl -> OnMachineRegistered(This,aMachineId,aRegistered)

#define IVirtualBoxCallback_OnSessionStateChange(This,aMachineId,aState)	\
    (This)->lpVtbl -> OnSessionStateChange(This,aMachineId,aState)

#define IVirtualBoxCallback_OnSnapshotTaken(This,aMachineId,aSnapshotId)	\
    (This)->lpVtbl -> OnSnapshotTaken(This,aMachineId,aSnapshotId)

#define IVirtualBoxCallback_OnSnapshotDiscarded(This,aMachineId,aSnapshotId)	\
    (This)->lpVtbl -> OnSnapshotDiscarded(This,aMachineId,aSnapshotId)

#define IVirtualBoxCallback_OnSnapshotChange(This,aMachineId,aSnapshotId)	\
    (This)->lpVtbl -> OnSnapshotChange(This,aMachineId,aSnapshotId)

#define IVirtualBoxCallback_OnGuestPropertyChange(This,aMachineId,aName,aValue,aFlags)	\
    (This)->lpVtbl -> OnGuestPropertyChange(This,aMachineId,aName,aValue,aFlags)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IVirtualBoxCallback_OnMachineStateChange_Proxy( 
    IVirtualBoxCallback * This,
    /* [in] */ GUID aMachineId,
    /* [in] */ MachineState aState);


void __RPC_STUB IVirtualBoxCallback_OnMachineStateChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBoxCallback_OnMachineDataChange_Proxy( 
    IVirtualBoxCallback * This,
    /* [in] */ GUID aMachineId);


void __RPC_STUB IVirtualBoxCallback_OnMachineDataChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBoxCallback_OnExtraDataCanChange_Proxy( 
    IVirtualBoxCallback * This,
    /* [in] */ GUID aMachineId,
    /* [in] */ BSTR aKey,
    /* [in] */ BSTR aValue,
    /* [out] */ BSTR *aError,
    /* [retval][out] */ BOOL *aAllowChange);


void __RPC_STUB IVirtualBoxCallback_OnExtraDataCanChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBoxCallback_OnExtraDataChange_Proxy( 
    IVirtualBoxCallback * This,
    /* [in] */ GUID aMachineId,
    /* [in] */ BSTR aKey,
    /* [in] */ BSTR aValue);


void __RPC_STUB IVirtualBoxCallback_OnExtraDataChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBoxCallback_OnMediaRegistered_Proxy( 
    IVirtualBoxCallback * This,
    /* [in] */ GUID aMediaId,
    /* [in] */ DeviceType aMediaType,
    /* [in] */ BOOL aRegistered);


void __RPC_STUB IVirtualBoxCallback_OnMediaRegistered_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBoxCallback_OnMachineRegistered_Proxy( 
    IVirtualBoxCallback * This,
    /* [in] */ GUID aMachineId,
    /* [in] */ BOOL aRegistered);


void __RPC_STUB IVirtualBoxCallback_OnMachineRegistered_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBoxCallback_OnSessionStateChange_Proxy( 
    IVirtualBoxCallback * This,
    /* [in] */ GUID aMachineId,
    /* [in] */ SessionState aState);


void __RPC_STUB IVirtualBoxCallback_OnSessionStateChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBoxCallback_OnSnapshotTaken_Proxy( 
    IVirtualBoxCallback * This,
    /* [in] */ GUID aMachineId,
    /* [in] */ GUID aSnapshotId);


void __RPC_STUB IVirtualBoxCallback_OnSnapshotTaken_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBoxCallback_OnSnapshotDiscarded_Proxy( 
    IVirtualBoxCallback * This,
    /* [in] */ GUID aMachineId,
    /* [in] */ GUID aSnapshotId);


void __RPC_STUB IVirtualBoxCallback_OnSnapshotDiscarded_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBoxCallback_OnSnapshotChange_Proxy( 
    IVirtualBoxCallback * This,
    /* [in] */ GUID aMachineId,
    /* [in] */ GUID aSnapshotId);


void __RPC_STUB IVirtualBoxCallback_OnSnapshotChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBoxCallback_OnGuestPropertyChange_Proxy( 
    IVirtualBoxCallback * This,
    /* [in] */ GUID aMachineId,
    /* [in] */ BSTR aName,
    /* [in] */ BSTR aValue,
    /* [in] */ BSTR aFlags);


void __RPC_STUB IVirtualBoxCallback_OnGuestPropertyChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IVirtualBoxCallback_INTERFACE_DEFINED__ */


#ifndef __IVirtualBox_INTERFACE_DEFINED__
#define __IVirtualBox_INTERFACE_DEFINED__

/* interface IVirtualBox */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IVirtualBox;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("557a07bc-e6ae-4520-a361-4a8493199137")
    IVirtualBox : public IDispatch
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Version( 
            /* [retval][out] */ BSTR *aVersion) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Revision( 
            /* [retval][out] */ ULONG *aRevision) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PackageType( 
            /* [retval][out] */ BSTR *aPackageType) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HomeFolder( 
            /* [retval][out] */ BSTR *aHomeFolder) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SettingsFilePath( 
            /* [retval][out] */ BSTR *aSettingsFilePath) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SettingsFileVersion( 
            /* [retval][out] */ BSTR *aSettingsFileVersion) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SettingsFormatVersion( 
            /* [retval][out] */ BSTR *aSettingsFormatVersion) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Host( 
            /* [retval][out] */ IHost **aHost) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SystemProperties( 
            /* [retval][out] */ ISystemProperties **aSystemProperties) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Machines( 
            /* [retval][out] */ IMachineCollection **aMachines) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Machines2( 
            /* [retval][out] */ SAFEARRAY * *aMachines2) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HardDisks( 
            /* [retval][out] */ IHardDiskCollection **aHardDisks) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DVDImages( 
            /* [retval][out] */ IDVDImageCollection **aDVDImages) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FloppyImages( 
            /* [retval][out] */ IFloppyImageCollection **aFloppyImages) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ProgressOperations( 
            /* [retval][out] */ IProgressCollection **aProgressOperations) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_GuestOSTypes( 
            /* [retval][out] */ IGuestOSTypeCollection **aGuestOSTypes) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SharedFolders( 
            /* [retval][out] */ ISharedFolderCollection **aSharedFolders) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PerformanceCollector( 
            /* [retval][out] */ IPerformanceCollector **aPerformanceCollector) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateMachine( 
            /* [in] */ BSTR aBaseFolder,
            /* [in] */ BSTR aName,
            /* [in] */ GUID aId,
            /* [retval][out] */ IMachine **aMachine) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateLegacyMachine( 
            /* [in] */ BSTR aSettingsFile,
            /* [in] */ BSTR aName,
            /* [in] */ GUID aId,
            /* [retval][out] */ IMachine **aMachine) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OpenMachine( 
            /* [in] */ BSTR aSettingsFile,
            /* [retval][out] */ IMachine **aMachine) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RegisterMachine( 
            /* [in] */ IMachine *aMachine) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMachine( 
            /* [in] */ GUID aId,
            /* [retval][out] */ IMachine **aMachine) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE FindMachine( 
            /* [in] */ BSTR aName,
            /* [retval][out] */ IMachine **aMachine) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE UnregisterMachine( 
            /* [in] */ GUID aId,
            /* [retval][out] */ IMachine **aMachine) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateHardDisk( 
            /* [in] */ HardDiskStorageType aStorageType,
            /* [retval][out] */ IHardDisk **aHardDisk) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OpenHardDisk( 
            /* [in] */ BSTR aLocation,
            /* [retval][out] */ IHardDisk **aHardDisk) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OpenVirtualDiskImage( 
            /* [in] */ BSTR aFilePath,
            /* [retval][out] */ IVirtualDiskImage **aImage) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RegisterHardDisk( 
            /* [in] */ IHardDisk *aHardDisk) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetHardDisk( 
            /* [in] */ GUID aId,
            /* [retval][out] */ IHardDisk **aHardDisk) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE FindHardDisk( 
            /* [in] */ BSTR aLocation,
            /* [retval][out] */ IHardDisk **aHardDisk) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE FindVirtualDiskImage( 
            /* [in] */ BSTR aFilePath,
            /* [retval][out] */ IVirtualDiskImage **aImage) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE UnregisterHardDisk( 
            /* [in] */ GUID aId,
            /* [retval][out] */ IHardDisk **aHardDisk) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OpenDVDImage( 
            /* [in] */ BSTR aFilePath,
            /* [in] */ GUID aId,
            /* [retval][out] */ IDVDImage **aImage) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RegisterDVDImage( 
            /* [in] */ IDVDImage *aImage) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetDVDImage( 
            /* [in] */ GUID aId,
            /* [retval][out] */ IDVDImage **aImage) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE FindDVDImage( 
            /* [in] */ BSTR aFilePath,
            /* [retval][out] */ IDVDImage **aImage) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetDVDImageUsage( 
            /* [in] */ GUID aId,
            /* [in] */ ResourceUsage aUsage,
            /* [retval][out] */ BSTR *aMachineIDs) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE UnregisterDVDImage( 
            /* [in] */ GUID aId,
            /* [retval][out] */ IDVDImage **aImage) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OpenFloppyImage( 
            /* [in] */ BSTR aFilePath,
            /* [in] */ GUID aId,
            /* [retval][out] */ IFloppyImage **aImage) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RegisterFloppyImage( 
            /* [in] */ IFloppyImage *aImage) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetFloppyImage( 
            /* [in] */ GUID aId,
            /* [retval][out] */ IFloppyImage **aImage) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE FindFloppyImage( 
            /* [in] */ BSTR aFilePath,
            /* [retval][out] */ IFloppyImage **aImage) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetFloppyImageUsage( 
            /* [in] */ GUID aId,
            /* [in] */ ResourceUsage aUsage,
            /* [retval][out] */ BSTR *aMachineIDs) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE UnregisterFloppyImage( 
            /* [in] */ GUID aId,
            /* [retval][out] */ IFloppyImage **aImage) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetGuestOSType( 
            /* [in] */ BSTR aId,
            /* [retval][out] */ IGuestOSType **aType) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateSharedFolder( 
            /* [in] */ BSTR aName,
            /* [in] */ BSTR aHostPath,
            /* [in] */ BOOL aWritable) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveSharedFolder( 
            /* [in] */ BSTR aName) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetNextExtraDataKey( 
            /* [in] */ BSTR aKey,
            /* [out] */ BSTR *aNextKey,
            /* [out] */ BSTR *aNextValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetExtraData( 
            /* [in] */ BSTR aKey,
            /* [retval][out] */ BSTR *aValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetExtraData( 
            /* [in] */ BSTR aKey,
            /* [in] */ BSTR aValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OpenSession( 
            /* [in] */ ISession *aSession,
            /* [in] */ GUID aMachineId) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OpenRemoteSession( 
            /* [in] */ ISession *aSession,
            /* [in] */ GUID aMachineId,
            /* [in] */ BSTR aType,
            /* [in] */ BSTR aEnvironment,
            /* [retval][out] */ IProgress **aProgress) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OpenExistingSession( 
            /* [in] */ ISession *aSession,
            /* [in] */ GUID aMachineId) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RegisterCallback( 
            /* [in] */ IVirtualBoxCallback *aCallback) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE UnregisterCallback( 
            /* [in] */ IVirtualBoxCallback *aCallback) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE WaitForPropertyChange( 
            /* [in] */ BSTR aWhat,
            /* [in] */ ULONG aTimeout,
            /* [out] */ BSTR *aChanged,
            /* [out] */ BSTR *aValues) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SaveSettings( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SaveSettingsWithBackup( 
            /* [retval][out] */ BSTR *aBakFileName) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IVirtualBoxVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IVirtualBox * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IVirtualBox * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IVirtualBox * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IVirtualBox * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IVirtualBox * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IVirtualBox * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IVirtualBox * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Version )( 
            IVirtualBox * This,
            /* [retval][out] */ BSTR *aVersion);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Revision )( 
            IVirtualBox * This,
            /* [retval][out] */ ULONG *aRevision);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PackageType )( 
            IVirtualBox * This,
            /* [retval][out] */ BSTR *aPackageType);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HomeFolder )( 
            IVirtualBox * This,
            /* [retval][out] */ BSTR *aHomeFolder);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SettingsFilePath )( 
            IVirtualBox * This,
            /* [retval][out] */ BSTR *aSettingsFilePath);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SettingsFileVersion )( 
            IVirtualBox * This,
            /* [retval][out] */ BSTR *aSettingsFileVersion);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SettingsFormatVersion )( 
            IVirtualBox * This,
            /* [retval][out] */ BSTR *aSettingsFormatVersion);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Host )( 
            IVirtualBox * This,
            /* [retval][out] */ IHost **aHost);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SystemProperties )( 
            IVirtualBox * This,
            /* [retval][out] */ ISystemProperties **aSystemProperties);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Machines )( 
            IVirtualBox * This,
            /* [retval][out] */ IMachineCollection **aMachines);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Machines2 )( 
            IVirtualBox * This,
            /* [retval][out] */ SAFEARRAY * *aMachines2);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HardDisks )( 
            IVirtualBox * This,
            /* [retval][out] */ IHardDiskCollection **aHardDisks);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_DVDImages )( 
            IVirtualBox * This,
            /* [retval][out] */ IDVDImageCollection **aDVDImages);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_FloppyImages )( 
            IVirtualBox * This,
            /* [retval][out] */ IFloppyImageCollection **aFloppyImages);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ProgressOperations )( 
            IVirtualBox * This,
            /* [retval][out] */ IProgressCollection **aProgressOperations);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_GuestOSTypes )( 
            IVirtualBox * This,
            /* [retval][out] */ IGuestOSTypeCollection **aGuestOSTypes);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SharedFolders )( 
            IVirtualBox * This,
            /* [retval][out] */ ISharedFolderCollection **aSharedFolders);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PerformanceCollector )( 
            IVirtualBox * This,
            /* [retval][out] */ IPerformanceCollector **aPerformanceCollector);
        
        HRESULT ( STDMETHODCALLTYPE *CreateMachine )( 
            IVirtualBox * This,
            /* [in] */ BSTR aBaseFolder,
            /* [in] */ BSTR aName,
            /* [in] */ GUID aId,
            /* [retval][out] */ IMachine **aMachine);
        
        HRESULT ( STDMETHODCALLTYPE *CreateLegacyMachine )( 
            IVirtualBox * This,
            /* [in] */ BSTR aSettingsFile,
            /* [in] */ BSTR aName,
            /* [in] */ GUID aId,
            /* [retval][out] */ IMachine **aMachine);
        
        HRESULT ( STDMETHODCALLTYPE *OpenMachine )( 
            IVirtualBox * This,
            /* [in] */ BSTR aSettingsFile,
            /* [retval][out] */ IMachine **aMachine);
        
        HRESULT ( STDMETHODCALLTYPE *RegisterMachine )( 
            IVirtualBox * This,
            /* [in] */ IMachine *aMachine);
        
        HRESULT ( STDMETHODCALLTYPE *GetMachine )( 
            IVirtualBox * This,
            /* [in] */ GUID aId,
            /* [retval][out] */ IMachine **aMachine);
        
        HRESULT ( STDMETHODCALLTYPE *FindMachine )( 
            IVirtualBox * This,
            /* [in] */ BSTR aName,
            /* [retval][out] */ IMachine **aMachine);
        
        HRESULT ( STDMETHODCALLTYPE *UnregisterMachine )( 
            IVirtualBox * This,
            /* [in] */ GUID aId,
            /* [retval][out] */ IMachine **aMachine);
        
        HRESULT ( STDMETHODCALLTYPE *CreateHardDisk )( 
            IVirtualBox * This,
            /* [in] */ HardDiskStorageType aStorageType,
            /* [retval][out] */ IHardDisk **aHardDisk);
        
        HRESULT ( STDMETHODCALLTYPE *OpenHardDisk )( 
            IVirtualBox * This,
            /* [in] */ BSTR aLocation,
            /* [retval][out] */ IHardDisk **aHardDisk);
        
        HRESULT ( STDMETHODCALLTYPE *OpenVirtualDiskImage )( 
            IVirtualBox * This,
            /* [in] */ BSTR aFilePath,
            /* [retval][out] */ IVirtualDiskImage **aImage);
        
        HRESULT ( STDMETHODCALLTYPE *RegisterHardDisk )( 
            IVirtualBox * This,
            /* [in] */ IHardDisk *aHardDisk);
        
        HRESULT ( STDMETHODCALLTYPE *GetHardDisk )( 
            IVirtualBox * This,
            /* [in] */ GUID aId,
            /* [retval][out] */ IHardDisk **aHardDisk);
        
        HRESULT ( STDMETHODCALLTYPE *FindHardDisk )( 
            IVirtualBox * This,
            /* [in] */ BSTR aLocation,
            /* [retval][out] */ IHardDisk **aHardDisk);
        
        HRESULT ( STDMETHODCALLTYPE *FindVirtualDiskImage )( 
            IVirtualBox * This,
            /* [in] */ BSTR aFilePath,
            /* [retval][out] */ IVirtualDiskImage **aImage);
        
        HRESULT ( STDMETHODCALLTYPE *UnregisterHardDisk )( 
            IVirtualBox * This,
            /* [in] */ GUID aId,
            /* [retval][out] */ IHardDisk **aHardDisk);
        
        HRESULT ( STDMETHODCALLTYPE *OpenDVDImage )( 
            IVirtualBox * This,
            /* [in] */ BSTR aFilePath,
            /* [in] */ GUID aId,
            /* [retval][out] */ IDVDImage **aImage);
        
        HRESULT ( STDMETHODCALLTYPE *RegisterDVDImage )( 
            IVirtualBox * This,
            /* [in] */ IDVDImage *aImage);
        
        HRESULT ( STDMETHODCALLTYPE *GetDVDImage )( 
            IVirtualBox * This,
            /* [in] */ GUID aId,
            /* [retval][out] */ IDVDImage **aImage);
        
        HRESULT ( STDMETHODCALLTYPE *FindDVDImage )( 
            IVirtualBox * This,
            /* [in] */ BSTR aFilePath,
            /* [retval][out] */ IDVDImage **aImage);
        
        HRESULT ( STDMETHODCALLTYPE *GetDVDImageUsage )( 
            IVirtualBox * This,
            /* [in] */ GUID aId,
            /* [in] */ ResourceUsage aUsage,
            /* [retval][out] */ BSTR *aMachineIDs);
        
        HRESULT ( STDMETHODCALLTYPE *UnregisterDVDImage )( 
            IVirtualBox * This,
            /* [in] */ GUID aId,
            /* [retval][out] */ IDVDImage **aImage);
        
        HRESULT ( STDMETHODCALLTYPE *OpenFloppyImage )( 
            IVirtualBox * This,
            /* [in] */ BSTR aFilePath,
            /* [in] */ GUID aId,
            /* [retval][out] */ IFloppyImage **aImage);
        
        HRESULT ( STDMETHODCALLTYPE *RegisterFloppyImage )( 
            IVirtualBox * This,
            /* [in] */ IFloppyImage *aImage);
        
        HRESULT ( STDMETHODCALLTYPE *GetFloppyImage )( 
            IVirtualBox * This,
            /* [in] */ GUID aId,
            /* [retval][out] */ IFloppyImage **aImage);
        
        HRESULT ( STDMETHODCALLTYPE *FindFloppyImage )( 
            IVirtualBox * This,
            /* [in] */ BSTR aFilePath,
            /* [retval][out] */ IFloppyImage **aImage);
        
        HRESULT ( STDMETHODCALLTYPE *GetFloppyImageUsage )( 
            IVirtualBox * This,
            /* [in] */ GUID aId,
            /* [in] */ ResourceUsage aUsage,
            /* [retval][out] */ BSTR *aMachineIDs);
        
        HRESULT ( STDMETHODCALLTYPE *UnregisterFloppyImage )( 
            IVirtualBox * This,
            /* [in] */ GUID aId,
            /* [retval][out] */ IFloppyImage **aImage);
        
        HRESULT ( STDMETHODCALLTYPE *GetGuestOSType )( 
            IVirtualBox * This,
            /* [in] */ BSTR aId,
            /* [retval][out] */ IGuestOSType **aType);
        
        HRESULT ( STDMETHODCALLTYPE *CreateSharedFolder )( 
            IVirtualBox * This,
            /* [in] */ BSTR aName,
            /* [in] */ BSTR aHostPath,
            /* [in] */ BOOL aWritable);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveSharedFolder )( 
            IVirtualBox * This,
            /* [in] */ BSTR aName);
        
        HRESULT ( STDMETHODCALLTYPE *GetNextExtraDataKey )( 
            IVirtualBox * This,
            /* [in] */ BSTR aKey,
            /* [out] */ BSTR *aNextKey,
            /* [out] */ BSTR *aNextValue);
        
        HRESULT ( STDMETHODCALLTYPE *GetExtraData )( 
            IVirtualBox * This,
            /* [in] */ BSTR aKey,
            /* [retval][out] */ BSTR *aValue);
        
        HRESULT ( STDMETHODCALLTYPE *SetExtraData )( 
            IVirtualBox * This,
            /* [in] */ BSTR aKey,
            /* [in] */ BSTR aValue);
        
        HRESULT ( STDMETHODCALLTYPE *OpenSession )( 
            IVirtualBox * This,
            /* [in] */ ISession *aSession,
            /* [in] */ GUID aMachineId);
        
        HRESULT ( STDMETHODCALLTYPE *OpenRemoteSession )( 
            IVirtualBox * This,
            /* [in] */ ISession *aSession,
            /* [in] */ GUID aMachineId,
            /* [in] */ BSTR aType,
            /* [in] */ BSTR aEnvironment,
            /* [retval][out] */ IProgress **aProgress);
        
        HRESULT ( STDMETHODCALLTYPE *OpenExistingSession )( 
            IVirtualBox * This,
            /* [in] */ ISession *aSession,
            /* [in] */ GUID aMachineId);
        
        HRESULT ( STDMETHODCALLTYPE *RegisterCallback )( 
            IVirtualBox * This,
            /* [in] */ IVirtualBoxCallback *aCallback);
        
        HRESULT ( STDMETHODCALLTYPE *UnregisterCallback )( 
            IVirtualBox * This,
            /* [in] */ IVirtualBoxCallback *aCallback);
        
        HRESULT ( STDMETHODCALLTYPE *WaitForPropertyChange )( 
            IVirtualBox * This,
            /* [in] */ BSTR aWhat,
            /* [in] */ ULONG aTimeout,
            /* [out] */ BSTR *aChanged,
            /* [out] */ BSTR *aValues);
        
        HRESULT ( STDMETHODCALLTYPE *SaveSettings )( 
            IVirtualBox * This);
        
        HRESULT ( STDMETHODCALLTYPE *SaveSettingsWithBackup )( 
            IVirtualBox * This,
            /* [retval][out] */ BSTR *aBakFileName);
        
        END_INTERFACE
    } IVirtualBoxVtbl;

    interface IVirtualBox
    {
        CONST_VTBL struct IVirtualBoxVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IVirtualBox_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IVirtualBox_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IVirtualBox_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IVirtualBox_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IVirtualBox_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IVirtualBox_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IVirtualBox_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IVirtualBox_get_Version(This,aVersion)	\
    (This)->lpVtbl -> get_Version(This,aVersion)

#define IVirtualBox_get_Revision(This,aRevision)	\
    (This)->lpVtbl -> get_Revision(This,aRevision)

#define IVirtualBox_get_PackageType(This,aPackageType)	\
    (This)->lpVtbl -> get_PackageType(This,aPackageType)

#define IVirtualBox_get_HomeFolder(This,aHomeFolder)	\
    (This)->lpVtbl -> get_HomeFolder(This,aHomeFolder)

#define IVirtualBox_get_SettingsFilePath(This,aSettingsFilePath)	\
    (This)->lpVtbl -> get_SettingsFilePath(This,aSettingsFilePath)

#define IVirtualBox_get_SettingsFileVersion(This,aSettingsFileVersion)	\
    (This)->lpVtbl -> get_SettingsFileVersion(This,aSettingsFileVersion)

#define IVirtualBox_get_SettingsFormatVersion(This,aSettingsFormatVersion)	\
    (This)->lpVtbl -> get_SettingsFormatVersion(This,aSettingsFormatVersion)

#define IVirtualBox_get_Host(This,aHost)	\
    (This)->lpVtbl -> get_Host(This,aHost)

#define IVirtualBox_get_SystemProperties(This,aSystemProperties)	\
    (This)->lpVtbl -> get_SystemProperties(This,aSystemProperties)

#define IVirtualBox_get_Machines(This,aMachines)	\
    (This)->lpVtbl -> get_Machines(This,aMachines)

#define IVirtualBox_get_Machines2(This,aMachines2)	\
    (This)->lpVtbl -> get_Machines2(This,aMachines2)

#define IVirtualBox_get_HardDisks(This,aHardDisks)	\
    (This)->lpVtbl -> get_HardDisks(This,aHardDisks)

#define IVirtualBox_get_DVDImages(This,aDVDImages)	\
    (This)->lpVtbl -> get_DVDImages(This,aDVDImages)

#define IVirtualBox_get_FloppyImages(This,aFloppyImages)	\
    (This)->lpVtbl -> get_FloppyImages(This,aFloppyImages)

#define IVirtualBox_get_ProgressOperations(This,aProgressOperations)	\
    (This)->lpVtbl -> get_ProgressOperations(This,aProgressOperations)

#define IVirtualBox_get_GuestOSTypes(This,aGuestOSTypes)	\
    (This)->lpVtbl -> get_GuestOSTypes(This,aGuestOSTypes)

#define IVirtualBox_get_SharedFolders(This,aSharedFolders)	\
    (This)->lpVtbl -> get_SharedFolders(This,aSharedFolders)

#define IVirtualBox_get_PerformanceCollector(This,aPerformanceCollector)	\
    (This)->lpVtbl -> get_PerformanceCollector(This,aPerformanceCollector)

#define IVirtualBox_CreateMachine(This,aBaseFolder,aName,aId,aMachine)	\
    (This)->lpVtbl -> CreateMachine(This,aBaseFolder,aName,aId,aMachine)

#define IVirtualBox_CreateLegacyMachine(This,aSettingsFile,aName,aId,aMachine)	\
    (This)->lpVtbl -> CreateLegacyMachine(This,aSettingsFile,aName,aId,aMachine)

#define IVirtualBox_OpenMachine(This,aSettingsFile,aMachine)	\
    (This)->lpVtbl -> OpenMachine(This,aSettingsFile,aMachine)

#define IVirtualBox_RegisterMachine(This,aMachine)	\
    (This)->lpVtbl -> RegisterMachine(This,aMachine)

#define IVirtualBox_GetMachine(This,aId,aMachine)	\
    (This)->lpVtbl -> GetMachine(This,aId,aMachine)

#define IVirtualBox_FindMachine(This,aName,aMachine)	\
    (This)->lpVtbl -> FindMachine(This,aName,aMachine)

#define IVirtualBox_UnregisterMachine(This,aId,aMachine)	\
    (This)->lpVtbl -> UnregisterMachine(This,aId,aMachine)

#define IVirtualBox_CreateHardDisk(This,aStorageType,aHardDisk)	\
    (This)->lpVtbl -> CreateHardDisk(This,aStorageType,aHardDisk)

#define IVirtualBox_OpenHardDisk(This,aLocation,aHardDisk)	\
    (This)->lpVtbl -> OpenHardDisk(This,aLocation,aHardDisk)

#define IVirtualBox_OpenVirtualDiskImage(This,aFilePath,aImage)	\
    (This)->lpVtbl -> OpenVirtualDiskImage(This,aFilePath,aImage)

#define IVirtualBox_RegisterHardDisk(This,aHardDisk)	\
    (This)->lpVtbl -> RegisterHardDisk(This,aHardDisk)

#define IVirtualBox_GetHardDisk(This,aId,aHardDisk)	\
    (This)->lpVtbl -> GetHardDisk(This,aId,aHardDisk)

#define IVirtualBox_FindHardDisk(This,aLocation,aHardDisk)	\
    (This)->lpVtbl -> FindHardDisk(This,aLocation,aHardDisk)

#define IVirtualBox_FindVirtualDiskImage(This,aFilePath,aImage)	\
    (This)->lpVtbl -> FindVirtualDiskImage(This,aFilePath,aImage)

#define IVirtualBox_UnregisterHardDisk(This,aId,aHardDisk)	\
    (This)->lpVtbl -> UnregisterHardDisk(This,aId,aHardDisk)

#define IVirtualBox_OpenDVDImage(This,aFilePath,aId,aImage)	\
    (This)->lpVtbl -> OpenDVDImage(This,aFilePath,aId,aImage)

#define IVirtualBox_RegisterDVDImage(This,aImage)	\
    (This)->lpVtbl -> RegisterDVDImage(This,aImage)

#define IVirtualBox_GetDVDImage(This,aId,aImage)	\
    (This)->lpVtbl -> GetDVDImage(This,aId,aImage)

#define IVirtualBox_FindDVDImage(This,aFilePath,aImage)	\
    (This)->lpVtbl -> FindDVDImage(This,aFilePath,aImage)

#define IVirtualBox_GetDVDImageUsage(This,aId,aUsage,aMachineIDs)	\
    (This)->lpVtbl -> GetDVDImageUsage(This,aId,aUsage,aMachineIDs)

#define IVirtualBox_UnregisterDVDImage(This,aId,aImage)	\
    (This)->lpVtbl -> UnregisterDVDImage(This,aId,aImage)

#define IVirtualBox_OpenFloppyImage(This,aFilePath,aId,aImage)	\
    (This)->lpVtbl -> OpenFloppyImage(This,aFilePath,aId,aImage)

#define IVirtualBox_RegisterFloppyImage(This,aImage)	\
    (This)->lpVtbl -> RegisterFloppyImage(This,aImage)

#define IVirtualBox_GetFloppyImage(This,aId,aImage)	\
    (This)->lpVtbl -> GetFloppyImage(This,aId,aImage)

#define IVirtualBox_FindFloppyImage(This,aFilePath,aImage)	\
    (This)->lpVtbl -> FindFloppyImage(This,aFilePath,aImage)

#define IVirtualBox_GetFloppyImageUsage(This,aId,aUsage,aMachineIDs)	\
    (This)->lpVtbl -> GetFloppyImageUsage(This,aId,aUsage,aMachineIDs)

#define IVirtualBox_UnregisterFloppyImage(This,aId,aImage)	\
    (This)->lpVtbl -> UnregisterFloppyImage(This,aId,aImage)

#define IVirtualBox_GetGuestOSType(This,aId,aType)	\
    (This)->lpVtbl -> GetGuestOSType(This,aId,aType)

#define IVirtualBox_CreateSharedFolder(This,aName,aHostPath,aWritable)	\
    (This)->lpVtbl -> CreateSharedFolder(This,aName,aHostPath,aWritable)

#define IVirtualBox_RemoveSharedFolder(This,aName)	\
    (This)->lpVtbl -> RemoveSharedFolder(This,aName)

#define IVirtualBox_GetNextExtraDataKey(This,aKey,aNextKey,aNextValue)	\
    (This)->lpVtbl -> GetNextExtraDataKey(This,aKey,aNextKey,aNextValue)

#define IVirtualBox_GetExtraData(This,aKey,aValue)	\
    (This)->lpVtbl -> GetExtraData(This,aKey,aValue)

#define IVirtualBox_SetExtraData(This,aKey,aValue)	\
    (This)->lpVtbl -> SetExtraData(This,aKey,aValue)

#define IVirtualBox_OpenSession(This,aSession,aMachineId)	\
    (This)->lpVtbl -> OpenSession(This,aSession,aMachineId)

#define IVirtualBox_OpenRemoteSession(This,aSession,aMachineId,aType,aEnvironment,aProgress)	\
    (This)->lpVtbl -> OpenRemoteSession(This,aSession,aMachineId,aType,aEnvironment,aProgress)

#define IVirtualBox_OpenExistingSession(This,aSession,aMachineId)	\
    (This)->lpVtbl -> OpenExistingSession(This,aSession,aMachineId)

#define IVirtualBox_RegisterCallback(This,aCallback)	\
    (This)->lpVtbl -> RegisterCallback(This,aCallback)

#define IVirtualBox_UnregisterCallback(This,aCallback)	\
    (This)->lpVtbl -> UnregisterCallback(This,aCallback)

#define IVirtualBox_WaitForPropertyChange(This,aWhat,aTimeout,aChanged,aValues)	\
    (This)->lpVtbl -> WaitForPropertyChange(This,aWhat,aTimeout,aChanged,aValues)

#define IVirtualBox_SaveSettings(This)	\
    (This)->lpVtbl -> SaveSettings(This)

#define IVirtualBox_SaveSettingsWithBackup(This,aBakFileName)	\
    (This)->lpVtbl -> SaveSettingsWithBackup(This,aBakFileName)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IVirtualBox_get_Version_Proxy( 
    IVirtualBox * This,
    /* [retval][out] */ BSTR *aVersion);


void __RPC_STUB IVirtualBox_get_Version_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IVirtualBox_get_Revision_Proxy( 
    IVirtualBox * This,
    /* [retval][out] */ ULONG *aRevision);


void __RPC_STUB IVirtualBox_get_Revision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IVirtualBox_get_PackageType_Proxy( 
    IVirtualBox * This,
    /* [retval][out] */ BSTR *aPackageType);


void __RPC_STUB IVirtualBox_get_PackageType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IVirtualBox_get_HomeFolder_Proxy( 
    IVirtualBox * This,
    /* [retval][out] */ BSTR *aHomeFolder);


void __RPC_STUB IVirtualBox_get_HomeFolder_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IVirtualBox_get_SettingsFilePath_Proxy( 
    IVirtualBox * This,
    /* [retval][out] */ BSTR *aSettingsFilePath);


void __RPC_STUB IVirtualBox_get_SettingsFilePath_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IVirtualBox_get_SettingsFileVersion_Proxy( 
    IVirtualBox * This,
    /* [retval][out] */ BSTR *aSettingsFileVersion);


void __RPC_STUB IVirtualBox_get_SettingsFileVersion_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IVirtualBox_get_SettingsFormatVersion_Proxy( 
    IVirtualBox * This,
    /* [retval][out] */ BSTR *aSettingsFormatVersion);


void __RPC_STUB IVirtualBox_get_SettingsFormatVersion_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IVirtualBox_get_Host_Proxy( 
    IVirtualBox * This,
    /* [retval][out] */ IHost **aHost);


void __RPC_STUB IVirtualBox_get_Host_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IVirtualBox_get_SystemProperties_Proxy( 
    IVirtualBox * This,
    /* [retval][out] */ ISystemProperties **aSystemProperties);


void __RPC_STUB IVirtualBox_get_SystemProperties_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IVirtualBox_get_Machines_Proxy( 
    IVirtualBox * This,
    /* [retval][out] */ IMachineCollection **aMachines);


void __RPC_STUB IVirtualBox_get_Machines_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IVirtualBox_get_Machines2_Proxy( 
    IVirtualBox * This,
    /* [retval][out] */ SAFEARRAY * *aMachines2);


void __RPC_STUB IVirtualBox_get_Machines2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IVirtualBox_get_HardDisks_Proxy( 
    IVirtualBox * This,
    /* [retval][out] */ IHardDiskCollection **aHardDisks);


void __RPC_STUB IVirtualBox_get_HardDisks_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IVirtualBox_get_DVDImages_Proxy( 
    IVirtualBox * This,
    /* [retval][out] */ IDVDImageCollection **aDVDImages);


void __RPC_STUB IVirtualBox_get_DVDImages_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IVirtualBox_get_FloppyImages_Proxy( 
    IVirtualBox * This,
    /* [retval][out] */ IFloppyImageCollection **aFloppyImages);


void __RPC_STUB IVirtualBox_get_FloppyImages_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IVirtualBox_get_ProgressOperations_Proxy( 
    IVirtualBox * This,
    /* [retval][out] */ IProgressCollection **aProgressOperations);


void __RPC_STUB IVirtualBox_get_ProgressOperations_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IVirtualBox_get_GuestOSTypes_Proxy( 
    IVirtualBox * This,
    /* [retval][out] */ IGuestOSTypeCollection **aGuestOSTypes);


void __RPC_STUB IVirtualBox_get_GuestOSTypes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IVirtualBox_get_SharedFolders_Proxy( 
    IVirtualBox * This,
    /* [retval][out] */ ISharedFolderCollection **aSharedFolders);


void __RPC_STUB IVirtualBox_get_SharedFolders_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IVirtualBox_get_PerformanceCollector_Proxy( 
    IVirtualBox * This,
    /* [retval][out] */ IPerformanceCollector **aPerformanceCollector);


void __RPC_STUB IVirtualBox_get_PerformanceCollector_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_CreateMachine_Proxy( 
    IVirtualBox * This,
    /* [in] */ BSTR aBaseFolder,
    /* [in] */ BSTR aName,
    /* [in] */ GUID aId,
    /* [retval][out] */ IMachine **aMachine);


void __RPC_STUB IVirtualBox_CreateMachine_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_CreateLegacyMachine_Proxy( 
    IVirtualBox * This,
    /* [in] */ BSTR aSettingsFile,
    /* [in] */ BSTR aName,
    /* [in] */ GUID aId,
    /* [retval][out] */ IMachine **aMachine);


void __RPC_STUB IVirtualBox_CreateLegacyMachine_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_OpenMachine_Proxy( 
    IVirtualBox * This,
    /* [in] */ BSTR aSettingsFile,
    /* [retval][out] */ IMachine **aMachine);


void __RPC_STUB IVirtualBox_OpenMachine_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_RegisterMachine_Proxy( 
    IVirtualBox * This,
    /* [in] */ IMachine *aMachine);


void __RPC_STUB IVirtualBox_RegisterMachine_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_GetMachine_Proxy( 
    IVirtualBox * This,
    /* [in] */ GUID aId,
    /* [retval][out] */ IMachine **aMachine);


void __RPC_STUB IVirtualBox_GetMachine_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_FindMachine_Proxy( 
    IVirtualBox * This,
    /* [in] */ BSTR aName,
    /* [retval][out] */ IMachine **aMachine);


void __RPC_STUB IVirtualBox_FindMachine_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_UnregisterMachine_Proxy( 
    IVirtualBox * This,
    /* [in] */ GUID aId,
    /* [retval][out] */ IMachine **aMachine);


void __RPC_STUB IVirtualBox_UnregisterMachine_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_CreateHardDisk_Proxy( 
    IVirtualBox * This,
    /* [in] */ HardDiskStorageType aStorageType,
    /* [retval][out] */ IHardDisk **aHardDisk);


void __RPC_STUB IVirtualBox_CreateHardDisk_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_OpenHardDisk_Proxy( 
    IVirtualBox * This,
    /* [in] */ BSTR aLocation,
    /* [retval][out] */ IHardDisk **aHardDisk);


void __RPC_STUB IVirtualBox_OpenHardDisk_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_OpenVirtualDiskImage_Proxy( 
    IVirtualBox * This,
    /* [in] */ BSTR aFilePath,
    /* [retval][out] */ IVirtualDiskImage **aImage);


void __RPC_STUB IVirtualBox_OpenVirtualDiskImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_RegisterHardDisk_Proxy( 
    IVirtualBox * This,
    /* [in] */ IHardDisk *aHardDisk);


void __RPC_STUB IVirtualBox_RegisterHardDisk_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_GetHardDisk_Proxy( 
    IVirtualBox * This,
    /* [in] */ GUID aId,
    /* [retval][out] */ IHardDisk **aHardDisk);


void __RPC_STUB IVirtualBox_GetHardDisk_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_FindHardDisk_Proxy( 
    IVirtualBox * This,
    /* [in] */ BSTR aLocation,
    /* [retval][out] */ IHardDisk **aHardDisk);


void __RPC_STUB IVirtualBox_FindHardDisk_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_FindVirtualDiskImage_Proxy( 
    IVirtualBox * This,
    /* [in] */ BSTR aFilePath,
    /* [retval][out] */ IVirtualDiskImage **aImage);


void __RPC_STUB IVirtualBox_FindVirtualDiskImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_UnregisterHardDisk_Proxy( 
    IVirtualBox * This,
    /* [in] */ GUID aId,
    /* [retval][out] */ IHardDisk **aHardDisk);


void __RPC_STUB IVirtualBox_UnregisterHardDisk_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_OpenDVDImage_Proxy( 
    IVirtualBox * This,
    /* [in] */ BSTR aFilePath,
    /* [in] */ GUID aId,
    /* [retval][out] */ IDVDImage **aImage);


void __RPC_STUB IVirtualBox_OpenDVDImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_RegisterDVDImage_Proxy( 
    IVirtualBox * This,
    /* [in] */ IDVDImage *aImage);


void __RPC_STUB IVirtualBox_RegisterDVDImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_GetDVDImage_Proxy( 
    IVirtualBox * This,
    /* [in] */ GUID aId,
    /* [retval][out] */ IDVDImage **aImage);


void __RPC_STUB IVirtualBox_GetDVDImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_FindDVDImage_Proxy( 
    IVirtualBox * This,
    /* [in] */ BSTR aFilePath,
    /* [retval][out] */ IDVDImage **aImage);


void __RPC_STUB IVirtualBox_FindDVDImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_GetDVDImageUsage_Proxy( 
    IVirtualBox * This,
    /* [in] */ GUID aId,
    /* [in] */ ResourceUsage aUsage,
    /* [retval][out] */ BSTR *aMachineIDs);


void __RPC_STUB IVirtualBox_GetDVDImageUsage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_UnregisterDVDImage_Proxy( 
    IVirtualBox * This,
    /* [in] */ GUID aId,
    /* [retval][out] */ IDVDImage **aImage);


void __RPC_STUB IVirtualBox_UnregisterDVDImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_OpenFloppyImage_Proxy( 
    IVirtualBox * This,
    /* [in] */ BSTR aFilePath,
    /* [in] */ GUID aId,
    /* [retval][out] */ IFloppyImage **aImage);


void __RPC_STUB IVirtualBox_OpenFloppyImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_RegisterFloppyImage_Proxy( 
    IVirtualBox * This,
    /* [in] */ IFloppyImage *aImage);


void __RPC_STUB IVirtualBox_RegisterFloppyImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_GetFloppyImage_Proxy( 
    IVirtualBox * This,
    /* [in] */ GUID aId,
    /* [retval][out] */ IFloppyImage **aImage);


void __RPC_STUB IVirtualBox_GetFloppyImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_FindFloppyImage_Proxy( 
    IVirtualBox * This,
    /* [in] */ BSTR aFilePath,
    /* [retval][out] */ IFloppyImage **aImage);


void __RPC_STUB IVirtualBox_FindFloppyImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_GetFloppyImageUsage_Proxy( 
    IVirtualBox * This,
    /* [in] */ GUID aId,
    /* [in] */ ResourceUsage aUsage,
    /* [retval][out] */ BSTR *aMachineIDs);


void __RPC_STUB IVirtualBox_GetFloppyImageUsage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_UnregisterFloppyImage_Proxy( 
    IVirtualBox * This,
    /* [in] */ GUID aId,
    /* [retval][out] */ IFloppyImage **aImage);


void __RPC_STUB IVirtualBox_UnregisterFloppyImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_GetGuestOSType_Proxy( 
    IVirtualBox * This,
    /* [in] */ BSTR aId,
    /* [retval][out] */ IGuestOSType **aType);


void __RPC_STUB IVirtualBox_GetGuestOSType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_CreateSharedFolder_Proxy( 
    IVirtualBox * This,
    /* [in] */ BSTR aName,
    /* [in] */ BSTR aHostPath,
    /* [in] */ BOOL aWritable);


void __RPC_STUB IVirtualBox_CreateSharedFolder_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_RemoveSharedFolder_Proxy( 
    IVirtualBox * This,
    /* [in] */ BSTR aName);


void __RPC_STUB IVirtualBox_RemoveSharedFolder_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_GetNextExtraDataKey_Proxy( 
    IVirtualBox * This,
    /* [in] */ BSTR aKey,
    /* [out] */ BSTR *aNextKey,
    /* [out] */ BSTR *aNextValue);


void __RPC_STUB IVirtualBox_GetNextExtraDataKey_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_GetExtraData_Proxy( 
    IVirtualBox * This,
    /* [in] */ BSTR aKey,
    /* [retval][out] */ BSTR *aValue);


void __RPC_STUB IVirtualBox_GetExtraData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_SetExtraData_Proxy( 
    IVirtualBox * This,
    /* [in] */ BSTR aKey,
    /* [in] */ BSTR aValue);


void __RPC_STUB IVirtualBox_SetExtraData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_OpenSession_Proxy( 
    IVirtualBox * This,
    /* [in] */ ISession *aSession,
    /* [in] */ GUID aMachineId);


void __RPC_STUB IVirtualBox_OpenSession_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_OpenRemoteSession_Proxy( 
    IVirtualBox * This,
    /* [in] */ ISession *aSession,
    /* [in] */ GUID aMachineId,
    /* [in] */ BSTR aType,
    /* [in] */ BSTR aEnvironment,
    /* [retval][out] */ IProgress **aProgress);


void __RPC_STUB IVirtualBox_OpenRemoteSession_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_OpenExistingSession_Proxy( 
    IVirtualBox * This,
    /* [in] */ ISession *aSession,
    /* [in] */ GUID aMachineId);


void __RPC_STUB IVirtualBox_OpenExistingSession_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_RegisterCallback_Proxy( 
    IVirtualBox * This,
    /* [in] */ IVirtualBoxCallback *aCallback);


void __RPC_STUB IVirtualBox_RegisterCallback_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_UnregisterCallback_Proxy( 
    IVirtualBox * This,
    /* [in] */ IVirtualBoxCallback *aCallback);


void __RPC_STUB IVirtualBox_UnregisterCallback_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_WaitForPropertyChange_Proxy( 
    IVirtualBox * This,
    /* [in] */ BSTR aWhat,
    /* [in] */ ULONG aTimeout,
    /* [out] */ BSTR *aChanged,
    /* [out] */ BSTR *aValues);


void __RPC_STUB IVirtualBox_WaitForPropertyChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_SaveSettings_Proxy( 
    IVirtualBox * This);


void __RPC_STUB IVirtualBox_SaveSettings_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualBox_SaveSettingsWithBackup_Proxy( 
    IVirtualBox * This,
    /* [retval][out] */ BSTR *aBakFileName);


void __RPC_STUB IVirtualBox_SaveSettingsWithBackup_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IVirtualBox_INTERFACE_DEFINED__ */


#ifndef __IMachineEnumerator_INTERFACE_DEFINED__
#define __IMachineEnumerator_INTERFACE_DEFINED__

/* interface IMachineEnumerator */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IMachineEnumerator;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1b554149-be0a-4465-9252-9ff8f420af55")
    IMachineEnumerator : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE HasMore( 
            /* [retval][out] */ BOOL *more) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetNext( 
            /* [retval][out] */ IMachine **next) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IMachineEnumeratorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IMachineEnumerator * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IMachineEnumerator * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IMachineEnumerator * This);
        
        HRESULT ( STDMETHODCALLTYPE *HasMore )( 
            IMachineEnumerator * This,
            /* [retval][out] */ BOOL *more);
        
        HRESULT ( STDMETHODCALLTYPE *GetNext )( 
            IMachineEnumerator * This,
            /* [retval][out] */ IMachine **next);
        
        END_INTERFACE
    } IMachineEnumeratorVtbl;

    interface IMachineEnumerator
    {
        CONST_VTBL struct IMachineEnumeratorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IMachineEnumerator_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IMachineEnumerator_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IMachineEnumerator_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IMachineEnumerator_HasMore(This,more)	\
    (This)->lpVtbl -> HasMore(This,more)

#define IMachineEnumerator_GetNext(This,next)	\
    (This)->lpVtbl -> GetNext(This,next)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IMachineEnumerator_HasMore_Proxy( 
    IMachineEnumerator * This,
    /* [retval][out] */ BOOL *more);


void __RPC_STUB IMachineEnumerator_HasMore_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachineEnumerator_GetNext_Proxy( 
    IMachineEnumerator * This,
    /* [retval][out] */ IMachine **next);


void __RPC_STUB IMachineEnumerator_GetNext_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IMachineEnumerator_INTERFACE_DEFINED__ */


#ifndef __IMachineCollection_INTERFACE_DEFINED__
#define __IMachineCollection_INTERFACE_DEFINED__

/* interface IMachineCollection */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IMachineCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("FD443EC1-3007-4F5B-9282-D72760A66916")
    IMachineCollection : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ ULONG *count) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetItemAt( 
            /* [in] */ ULONG index,
            /* [retval][out] */ IMachine **item) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Enumerate( 
            /* [retval][out] */ IMachineEnumerator **enumerator) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IMachineCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IMachineCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IMachineCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IMachineCollection * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IMachineCollection * This,
            /* [retval][out] */ ULONG *count);
        
        HRESULT ( STDMETHODCALLTYPE *GetItemAt )( 
            IMachineCollection * This,
            /* [in] */ ULONG index,
            /* [retval][out] */ IMachine **item);
        
        HRESULT ( STDMETHODCALLTYPE *Enumerate )( 
            IMachineCollection * This,
            /* [retval][out] */ IMachineEnumerator **enumerator);
        
        END_INTERFACE
    } IMachineCollectionVtbl;

    interface IMachineCollection
    {
        CONST_VTBL struct IMachineCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IMachineCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IMachineCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IMachineCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IMachineCollection_get_Count(This,count)	\
    (This)->lpVtbl -> get_Count(This,count)

#define IMachineCollection_GetItemAt(This,index,item)	\
    (This)->lpVtbl -> GetItemAt(This,index,item)

#define IMachineCollection_Enumerate(This,enumerator)	\
    (This)->lpVtbl -> Enumerate(This,enumerator)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IMachineCollection_get_Count_Proxy( 
    IMachineCollection * This,
    /* [retval][out] */ ULONG *count);


void __RPC_STUB IMachineCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachineCollection_GetItemAt_Proxy( 
    IMachineCollection * This,
    /* [in] */ ULONG index,
    /* [retval][out] */ IMachine **item);


void __RPC_STUB IMachineCollection_GetItemAt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachineCollection_Enumerate_Proxy( 
    IMachineCollection * This,
    /* [retval][out] */ IMachineEnumerator **enumerator);


void __RPC_STUB IMachineCollection_Enumerate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IMachineCollection_INTERFACE_DEFINED__ */


#ifndef __IInternalMachineControl_INTERFACE_DEFINED__
#define __IInternalMachineControl_INTERFACE_DEFINED__

/* interface IInternalMachineControl */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IInternalMachineControl;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("de04566a-7125-444b-949e-34e9f3ec3676")
    IInternalMachineControl : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE UpdateState( 
            /* [in] */ MachineState aState) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetIPCId( 
            /* [retval][out] */ BSTR *aId) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RunUSBDeviceFilters( 
            /* [in] */ IUSBDevice *aDevice,
            /* [out] */ BOOL *aMatched,
            /* [out] */ ULONG *aMaskedInterfaces) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CaptureUSBDevice( 
            /* [in] */ GUID aId) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE DetachUSBDevice( 
            /* [in] */ GUID aId,
            /* [in] */ BOOL aDone) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AutoCaptureUSBDevices( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE DetachAllUSBDevices( 
            /* [in] */ BOOL aDone) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnSessionEnd( 
            /* [in] */ ISession *aSession,
            /* [retval][out] */ IProgress **aProgress) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE BeginSavingState( 
            /* [in] */ IProgress *aProgress,
            /* [out] */ BSTR *aStateFilePath) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE EndSavingState( 
            /* [in] */ BOOL aSuccess) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AdoptSavedState( 
            /* [in] */ BSTR aSavedStateFile) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE BeginTakingSnapshot( 
            /* [in] */ IConsole *aInitiator,
            /* [in] */ BSTR aName,
            /* [in] */ BSTR aDescription,
            /* [in] */ IProgress *aProgress,
            /* [out] */ BSTR *aStateFilePath,
            /* [out] */ IProgress **aServerProgress) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE EndTakingSnapshot( 
            /* [in] */ BOOL aSuccess) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE DiscardSnapshot( 
            /* [in] */ IConsole *aInitiator,
            /* [in] */ GUID aId,
            /* [out] */ MachineState *aMachineState,
            /* [retval][out] */ IProgress **aProgress) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE DiscardCurrentState( 
            /* [in] */ IConsole *aInitiator,
            /* [out] */ MachineState *aMachineState,
            /* [retval][out] */ IProgress **aProgress) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE DiscardCurrentSnapshotAndState( 
            /* [in] */ IConsole *aInitiator,
            /* [out] */ MachineState *aMachineState,
            /* [retval][out] */ IProgress **aProgress) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE PullGuestProperties( 
            /* [out] */ SAFEARRAY * *aName,
            /* [out] */ SAFEARRAY * *aValue,
            /* [out] */ SAFEARRAY * *aTimestamp,
            /* [out] */ SAFEARRAY * *aFlags) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE PushGuestProperties( 
            /* [out][in] */ SAFEARRAY * *aName,
            /* [out][in] */ SAFEARRAY * *aValue,
            /* [out][in] */ SAFEARRAY * *aTimestamp,
            /* [out][in] */ SAFEARRAY * *aFlags) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IInternalMachineControlVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IInternalMachineControl * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IInternalMachineControl * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IInternalMachineControl * This);
        
        HRESULT ( STDMETHODCALLTYPE *UpdateState )( 
            IInternalMachineControl * This,
            /* [in] */ MachineState aState);
        
        HRESULT ( STDMETHODCALLTYPE *GetIPCId )( 
            IInternalMachineControl * This,
            /* [retval][out] */ BSTR *aId);
        
        HRESULT ( STDMETHODCALLTYPE *RunUSBDeviceFilters )( 
            IInternalMachineControl * This,
            /* [in] */ IUSBDevice *aDevice,
            /* [out] */ BOOL *aMatched,
            /* [out] */ ULONG *aMaskedInterfaces);
        
        HRESULT ( STDMETHODCALLTYPE *CaptureUSBDevice )( 
            IInternalMachineControl * This,
            /* [in] */ GUID aId);
        
        HRESULT ( STDMETHODCALLTYPE *DetachUSBDevice )( 
            IInternalMachineControl * This,
            /* [in] */ GUID aId,
            /* [in] */ BOOL aDone);
        
        HRESULT ( STDMETHODCALLTYPE *AutoCaptureUSBDevices )( 
            IInternalMachineControl * This);
        
        HRESULT ( STDMETHODCALLTYPE *DetachAllUSBDevices )( 
            IInternalMachineControl * This,
            /* [in] */ BOOL aDone);
        
        HRESULT ( STDMETHODCALLTYPE *OnSessionEnd )( 
            IInternalMachineControl * This,
            /* [in] */ ISession *aSession,
            /* [retval][out] */ IProgress **aProgress);
        
        HRESULT ( STDMETHODCALLTYPE *BeginSavingState )( 
            IInternalMachineControl * This,
            /* [in] */ IProgress *aProgress,
            /* [out] */ BSTR *aStateFilePath);
        
        HRESULT ( STDMETHODCALLTYPE *EndSavingState )( 
            IInternalMachineControl * This,
            /* [in] */ BOOL aSuccess);
        
        HRESULT ( STDMETHODCALLTYPE *AdoptSavedState )( 
            IInternalMachineControl * This,
            /* [in] */ BSTR aSavedStateFile);
        
        HRESULT ( STDMETHODCALLTYPE *BeginTakingSnapshot )( 
            IInternalMachineControl * This,
            /* [in] */ IConsole *aInitiator,
            /* [in] */ BSTR aName,
            /* [in] */ BSTR aDescription,
            /* [in] */ IProgress *aProgress,
            /* [out] */ BSTR *aStateFilePath,
            /* [out] */ IProgress **aServerProgress);
        
        HRESULT ( STDMETHODCALLTYPE *EndTakingSnapshot )( 
            IInternalMachineControl * This,
            /* [in] */ BOOL aSuccess);
        
        HRESULT ( STDMETHODCALLTYPE *DiscardSnapshot )( 
            IInternalMachineControl * This,
            /* [in] */ IConsole *aInitiator,
            /* [in] */ GUID aId,
            /* [out] */ MachineState *aMachineState,
            /* [retval][out] */ IProgress **aProgress);
        
        HRESULT ( STDMETHODCALLTYPE *DiscardCurrentState )( 
            IInternalMachineControl * This,
            /* [in] */ IConsole *aInitiator,
            /* [out] */ MachineState *aMachineState,
            /* [retval][out] */ IProgress **aProgress);
        
        HRESULT ( STDMETHODCALLTYPE *DiscardCurrentSnapshotAndState )( 
            IInternalMachineControl * This,
            /* [in] */ IConsole *aInitiator,
            /* [out] */ MachineState *aMachineState,
            /* [retval][out] */ IProgress **aProgress);
        
        HRESULT ( STDMETHODCALLTYPE *PullGuestProperties )( 
            IInternalMachineControl * This,
            /* [out] */ SAFEARRAY * *aName,
            /* [out] */ SAFEARRAY * *aValue,
            /* [out] */ SAFEARRAY * *aTimestamp,
            /* [out] */ SAFEARRAY * *aFlags);
        
        HRESULT ( STDMETHODCALLTYPE *PushGuestProperties )( 
            IInternalMachineControl * This,
            /* [out][in] */ SAFEARRAY * *aName,
            /* [out][in] */ SAFEARRAY * *aValue,
            /* [out][in] */ SAFEARRAY * *aTimestamp,
            /* [out][in] */ SAFEARRAY * *aFlags);
        
        END_INTERFACE
    } IInternalMachineControlVtbl;

    interface IInternalMachineControl
    {
        CONST_VTBL struct IInternalMachineControlVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IInternalMachineControl_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IInternalMachineControl_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IInternalMachineControl_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IInternalMachineControl_UpdateState(This,aState)	\
    (This)->lpVtbl -> UpdateState(This,aState)

#define IInternalMachineControl_GetIPCId(This,aId)	\
    (This)->lpVtbl -> GetIPCId(This,aId)

#define IInternalMachineControl_RunUSBDeviceFilters(This,aDevice,aMatched,aMaskedInterfaces)	\
    (This)->lpVtbl -> RunUSBDeviceFilters(This,aDevice,aMatched,aMaskedInterfaces)

#define IInternalMachineControl_CaptureUSBDevice(This,aId)	\
    (This)->lpVtbl -> CaptureUSBDevice(This,aId)

#define IInternalMachineControl_DetachUSBDevice(This,aId,aDone)	\
    (This)->lpVtbl -> DetachUSBDevice(This,aId,aDone)

#define IInternalMachineControl_AutoCaptureUSBDevices(This)	\
    (This)->lpVtbl -> AutoCaptureUSBDevices(This)

#define IInternalMachineControl_DetachAllUSBDevices(This,aDone)	\
    (This)->lpVtbl -> DetachAllUSBDevices(This,aDone)

#define IInternalMachineControl_OnSessionEnd(This,aSession,aProgress)	\
    (This)->lpVtbl -> OnSessionEnd(This,aSession,aProgress)

#define IInternalMachineControl_BeginSavingState(This,aProgress,aStateFilePath)	\
    (This)->lpVtbl -> BeginSavingState(This,aProgress,aStateFilePath)

#define IInternalMachineControl_EndSavingState(This,aSuccess)	\
    (This)->lpVtbl -> EndSavingState(This,aSuccess)

#define IInternalMachineControl_AdoptSavedState(This,aSavedStateFile)	\
    (This)->lpVtbl -> AdoptSavedState(This,aSavedStateFile)

#define IInternalMachineControl_BeginTakingSnapshot(This,aInitiator,aName,aDescription,aProgress,aStateFilePath,aServerProgress)	\
    (This)->lpVtbl -> BeginTakingSnapshot(This,aInitiator,aName,aDescription,aProgress,aStateFilePath,aServerProgress)

#define IInternalMachineControl_EndTakingSnapshot(This,aSuccess)	\
    (This)->lpVtbl -> EndTakingSnapshot(This,aSuccess)

#define IInternalMachineControl_DiscardSnapshot(This,aInitiator,aId,aMachineState,aProgress)	\
    (This)->lpVtbl -> DiscardSnapshot(This,aInitiator,aId,aMachineState,aProgress)

#define IInternalMachineControl_DiscardCurrentState(This,aInitiator,aMachineState,aProgress)	\
    (This)->lpVtbl -> DiscardCurrentState(This,aInitiator,aMachineState,aProgress)

#define IInternalMachineControl_DiscardCurrentSnapshotAndState(This,aInitiator,aMachineState,aProgress)	\
    (This)->lpVtbl -> DiscardCurrentSnapshotAndState(This,aInitiator,aMachineState,aProgress)

#define IInternalMachineControl_PullGuestProperties(This,aName,aValue,aTimestamp,aFlags)	\
    (This)->lpVtbl -> PullGuestProperties(This,aName,aValue,aTimestamp,aFlags)

#define IInternalMachineControl_PushGuestProperties(This,aName,aValue,aTimestamp,aFlags)	\
    (This)->lpVtbl -> PushGuestProperties(This,aName,aValue,aTimestamp,aFlags)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IInternalMachineControl_UpdateState_Proxy( 
    IInternalMachineControl * This,
    /* [in] */ MachineState aState);


void __RPC_STUB IInternalMachineControl_UpdateState_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalMachineControl_GetIPCId_Proxy( 
    IInternalMachineControl * This,
    /* [retval][out] */ BSTR *aId);


void __RPC_STUB IInternalMachineControl_GetIPCId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalMachineControl_RunUSBDeviceFilters_Proxy( 
    IInternalMachineControl * This,
    /* [in] */ IUSBDevice *aDevice,
    /* [out] */ BOOL *aMatched,
    /* [out] */ ULONG *aMaskedInterfaces);


void __RPC_STUB IInternalMachineControl_RunUSBDeviceFilters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalMachineControl_CaptureUSBDevice_Proxy( 
    IInternalMachineControl * This,
    /* [in] */ GUID aId);


void __RPC_STUB IInternalMachineControl_CaptureUSBDevice_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalMachineControl_DetachUSBDevice_Proxy( 
    IInternalMachineControl * This,
    /* [in] */ GUID aId,
    /* [in] */ BOOL aDone);


void __RPC_STUB IInternalMachineControl_DetachUSBDevice_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalMachineControl_AutoCaptureUSBDevices_Proxy( 
    IInternalMachineControl * This);


void __RPC_STUB IInternalMachineControl_AutoCaptureUSBDevices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalMachineControl_DetachAllUSBDevices_Proxy( 
    IInternalMachineControl * This,
    /* [in] */ BOOL aDone);


void __RPC_STUB IInternalMachineControl_DetachAllUSBDevices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalMachineControl_OnSessionEnd_Proxy( 
    IInternalMachineControl * This,
    /* [in] */ ISession *aSession,
    /* [retval][out] */ IProgress **aProgress);


void __RPC_STUB IInternalMachineControl_OnSessionEnd_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalMachineControl_BeginSavingState_Proxy( 
    IInternalMachineControl * This,
    /* [in] */ IProgress *aProgress,
    /* [out] */ BSTR *aStateFilePath);


void __RPC_STUB IInternalMachineControl_BeginSavingState_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalMachineControl_EndSavingState_Proxy( 
    IInternalMachineControl * This,
    /* [in] */ BOOL aSuccess);


void __RPC_STUB IInternalMachineControl_EndSavingState_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalMachineControl_AdoptSavedState_Proxy( 
    IInternalMachineControl * This,
    /* [in] */ BSTR aSavedStateFile);


void __RPC_STUB IInternalMachineControl_AdoptSavedState_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalMachineControl_BeginTakingSnapshot_Proxy( 
    IInternalMachineControl * This,
    /* [in] */ IConsole *aInitiator,
    /* [in] */ BSTR aName,
    /* [in] */ BSTR aDescription,
    /* [in] */ IProgress *aProgress,
    /* [out] */ BSTR *aStateFilePath,
    /* [out] */ IProgress **aServerProgress);


void __RPC_STUB IInternalMachineControl_BeginTakingSnapshot_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalMachineControl_EndTakingSnapshot_Proxy( 
    IInternalMachineControl * This,
    /* [in] */ BOOL aSuccess);


void __RPC_STUB IInternalMachineControl_EndTakingSnapshot_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalMachineControl_DiscardSnapshot_Proxy( 
    IInternalMachineControl * This,
    /* [in] */ IConsole *aInitiator,
    /* [in] */ GUID aId,
    /* [out] */ MachineState *aMachineState,
    /* [retval][out] */ IProgress **aProgress);


void __RPC_STUB IInternalMachineControl_DiscardSnapshot_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalMachineControl_DiscardCurrentState_Proxy( 
    IInternalMachineControl * This,
    /* [in] */ IConsole *aInitiator,
    /* [out] */ MachineState *aMachineState,
    /* [retval][out] */ IProgress **aProgress);


void __RPC_STUB IInternalMachineControl_DiscardCurrentState_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalMachineControl_DiscardCurrentSnapshotAndState_Proxy( 
    IInternalMachineControl * This,
    /* [in] */ IConsole *aInitiator,
    /* [out] */ MachineState *aMachineState,
    /* [retval][out] */ IProgress **aProgress);


void __RPC_STUB IInternalMachineControl_DiscardCurrentSnapshotAndState_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalMachineControl_PullGuestProperties_Proxy( 
    IInternalMachineControl * This,
    /* [out] */ SAFEARRAY * *aName,
    /* [out] */ SAFEARRAY * *aValue,
    /* [out] */ SAFEARRAY * *aTimestamp,
    /* [out] */ SAFEARRAY * *aFlags);


void __RPC_STUB IInternalMachineControl_PullGuestProperties_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalMachineControl_PushGuestProperties_Proxy( 
    IInternalMachineControl * This,
    /* [out][in] */ SAFEARRAY * *aName,
    /* [out][in] */ SAFEARRAY * *aValue,
    /* [out][in] */ SAFEARRAY * *aTimestamp,
    /* [out][in] */ SAFEARRAY * *aFlags);


void __RPC_STUB IInternalMachineControl_PushGuestProperties_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IInternalMachineControl_INTERFACE_DEFINED__ */


#ifndef __IBIOSSettings_INTERFACE_DEFINED__
#define __IBIOSSettings_INTERFACE_DEFINED__

/* interface IBIOSSettings */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IBIOSSettings;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("38b54279-dc35-4f5e-a431-835b867c6b5e")
    IBIOSSettings : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_LogoFadeIn( 
            /* [retval][out] */ BOOL *aLogoFadeIn) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_LogoFadeIn( 
            /* [in] */ BOOL aLogoFadeIn) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_LogoFadeOut( 
            /* [retval][out] */ BOOL *aLogoFadeOut) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_LogoFadeOut( 
            /* [in] */ BOOL aLogoFadeOut) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_LogoDisplayTime( 
            /* [retval][out] */ ULONG *aLogoDisplayTime) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_LogoDisplayTime( 
            /* [in] */ ULONG aLogoDisplayTime) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_LogoImagePath( 
            /* [retval][out] */ BSTR *aLogoImagePath) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_LogoImagePath( 
            /* [in] */ BSTR aLogoImagePath) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BootMenuMode( 
            /* [retval][out] */ BIOSBootMenuMode *aBootMenuMode) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_BootMenuMode( 
            /* [in] */ BIOSBootMenuMode aBootMenuMode) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ACPIEnabled( 
            /* [retval][out] */ BOOL *aACPIEnabled) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ACPIEnabled( 
            /* [in] */ BOOL aACPIEnabled) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IOAPICEnabled( 
            /* [retval][out] */ BOOL *aIOAPICEnabled) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IOAPICEnabled( 
            /* [in] */ BOOL aIOAPICEnabled) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_TimeOffset( 
            /* [retval][out] */ LONG64 *aTimeOffset) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_TimeOffset( 
            /* [in] */ LONG64 aTimeOffset) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PXEDebugEnabled( 
            /* [retval][out] */ BOOL *aPXEDebugEnabled) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PXEDebugEnabled( 
            /* [in] */ BOOL aPXEDebugEnabled) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IDEControllerType( 
            /* [retval][out] */ IDEControllerType *aIDEControllerType) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IDEControllerType( 
            /* [in] */ IDEControllerType aIDEControllerType) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IBIOSSettingsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IBIOSSettings * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IBIOSSettings * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IBIOSSettings * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_LogoFadeIn )( 
            IBIOSSettings * This,
            /* [retval][out] */ BOOL *aLogoFadeIn);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_LogoFadeIn )( 
            IBIOSSettings * This,
            /* [in] */ BOOL aLogoFadeIn);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_LogoFadeOut )( 
            IBIOSSettings * This,
            /* [retval][out] */ BOOL *aLogoFadeOut);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_LogoFadeOut )( 
            IBIOSSettings * This,
            /* [in] */ BOOL aLogoFadeOut);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_LogoDisplayTime )( 
            IBIOSSettings * This,
            /* [retval][out] */ ULONG *aLogoDisplayTime);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_LogoDisplayTime )( 
            IBIOSSettings * This,
            /* [in] */ ULONG aLogoDisplayTime);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_LogoImagePath )( 
            IBIOSSettings * This,
            /* [retval][out] */ BSTR *aLogoImagePath);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_LogoImagePath )( 
            IBIOSSettings * This,
            /* [in] */ BSTR aLogoImagePath);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BootMenuMode )( 
            IBIOSSettings * This,
            /* [retval][out] */ BIOSBootMenuMode *aBootMenuMode);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BootMenuMode )( 
            IBIOSSettings * This,
            /* [in] */ BIOSBootMenuMode aBootMenuMode);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ACPIEnabled )( 
            IBIOSSettings * This,
            /* [retval][out] */ BOOL *aACPIEnabled);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ACPIEnabled )( 
            IBIOSSettings * This,
            /* [in] */ BOOL aACPIEnabled);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_IOAPICEnabled )( 
            IBIOSSettings * This,
            /* [retval][out] */ BOOL *aIOAPICEnabled);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_IOAPICEnabled )( 
            IBIOSSettings * This,
            /* [in] */ BOOL aIOAPICEnabled);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_TimeOffset )( 
            IBIOSSettings * This,
            /* [retval][out] */ LONG64 *aTimeOffset);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_TimeOffset )( 
            IBIOSSettings * This,
            /* [in] */ LONG64 aTimeOffset);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PXEDebugEnabled )( 
            IBIOSSettings * This,
            /* [retval][out] */ BOOL *aPXEDebugEnabled);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PXEDebugEnabled )( 
            IBIOSSettings * This,
            /* [in] */ BOOL aPXEDebugEnabled);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_IDEControllerType )( 
            IBIOSSettings * This,
            /* [retval][out] */ IDEControllerType *aIDEControllerType);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_IDEControllerType )( 
            IBIOSSettings * This,
            /* [in] */ IDEControllerType aIDEControllerType);
        
        END_INTERFACE
    } IBIOSSettingsVtbl;

    interface IBIOSSettings
    {
        CONST_VTBL struct IBIOSSettingsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IBIOSSettings_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IBIOSSettings_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IBIOSSettings_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IBIOSSettings_get_LogoFadeIn(This,aLogoFadeIn)	\
    (This)->lpVtbl -> get_LogoFadeIn(This,aLogoFadeIn)

#define IBIOSSettings_put_LogoFadeIn(This,aLogoFadeIn)	\
    (This)->lpVtbl -> put_LogoFadeIn(This,aLogoFadeIn)

#define IBIOSSettings_get_LogoFadeOut(This,aLogoFadeOut)	\
    (This)->lpVtbl -> get_LogoFadeOut(This,aLogoFadeOut)

#define IBIOSSettings_put_LogoFadeOut(This,aLogoFadeOut)	\
    (This)->lpVtbl -> put_LogoFadeOut(This,aLogoFadeOut)

#define IBIOSSettings_get_LogoDisplayTime(This,aLogoDisplayTime)	\
    (This)->lpVtbl -> get_LogoDisplayTime(This,aLogoDisplayTime)

#define IBIOSSettings_put_LogoDisplayTime(This,aLogoDisplayTime)	\
    (This)->lpVtbl -> put_LogoDisplayTime(This,aLogoDisplayTime)

#define IBIOSSettings_get_LogoImagePath(This,aLogoImagePath)	\
    (This)->lpVtbl -> get_LogoImagePath(This,aLogoImagePath)

#define IBIOSSettings_put_LogoImagePath(This,aLogoImagePath)	\
    (This)->lpVtbl -> put_LogoImagePath(This,aLogoImagePath)

#define IBIOSSettings_get_BootMenuMode(This,aBootMenuMode)	\
    (This)->lpVtbl -> get_BootMenuMode(This,aBootMenuMode)

#define IBIOSSettings_put_BootMenuMode(This,aBootMenuMode)	\
    (This)->lpVtbl -> put_BootMenuMode(This,aBootMenuMode)

#define IBIOSSettings_get_ACPIEnabled(This,aACPIEnabled)	\
    (This)->lpVtbl -> get_ACPIEnabled(This,aACPIEnabled)

#define IBIOSSettings_put_ACPIEnabled(This,aACPIEnabled)	\
    (This)->lpVtbl -> put_ACPIEnabled(This,aACPIEnabled)

#define IBIOSSettings_get_IOAPICEnabled(This,aIOAPICEnabled)	\
    (This)->lpVtbl -> get_IOAPICEnabled(This,aIOAPICEnabled)

#define IBIOSSettings_put_IOAPICEnabled(This,aIOAPICEnabled)	\
    (This)->lpVtbl -> put_IOAPICEnabled(This,aIOAPICEnabled)

#define IBIOSSettings_get_TimeOffset(This,aTimeOffset)	\
    (This)->lpVtbl -> get_TimeOffset(This,aTimeOffset)

#define IBIOSSettings_put_TimeOffset(This,aTimeOffset)	\
    (This)->lpVtbl -> put_TimeOffset(This,aTimeOffset)

#define IBIOSSettings_get_PXEDebugEnabled(This,aPXEDebugEnabled)	\
    (This)->lpVtbl -> get_PXEDebugEnabled(This,aPXEDebugEnabled)

#define IBIOSSettings_put_PXEDebugEnabled(This,aPXEDebugEnabled)	\
    (This)->lpVtbl -> put_PXEDebugEnabled(This,aPXEDebugEnabled)

#define IBIOSSettings_get_IDEControllerType(This,aIDEControllerType)	\
    (This)->lpVtbl -> get_IDEControllerType(This,aIDEControllerType)

#define IBIOSSettings_put_IDEControllerType(This,aIDEControllerType)	\
    (This)->lpVtbl -> put_IDEControllerType(This,aIDEControllerType)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IBIOSSettings_get_LogoFadeIn_Proxy( 
    IBIOSSettings * This,
    /* [retval][out] */ BOOL *aLogoFadeIn);


void __RPC_STUB IBIOSSettings_get_LogoFadeIn_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IBIOSSettings_put_LogoFadeIn_Proxy( 
    IBIOSSettings * This,
    /* [in] */ BOOL aLogoFadeIn);


void __RPC_STUB IBIOSSettings_put_LogoFadeIn_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IBIOSSettings_get_LogoFadeOut_Proxy( 
    IBIOSSettings * This,
    /* [retval][out] */ BOOL *aLogoFadeOut);


void __RPC_STUB IBIOSSettings_get_LogoFadeOut_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IBIOSSettings_put_LogoFadeOut_Proxy( 
    IBIOSSettings * This,
    /* [in] */ BOOL aLogoFadeOut);


void __RPC_STUB IBIOSSettings_put_LogoFadeOut_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IBIOSSettings_get_LogoDisplayTime_Proxy( 
    IBIOSSettings * This,
    /* [retval][out] */ ULONG *aLogoDisplayTime);


void __RPC_STUB IBIOSSettings_get_LogoDisplayTime_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IBIOSSettings_put_LogoDisplayTime_Proxy( 
    IBIOSSettings * This,
    /* [in] */ ULONG aLogoDisplayTime);


void __RPC_STUB IBIOSSettings_put_LogoDisplayTime_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IBIOSSettings_get_LogoImagePath_Proxy( 
    IBIOSSettings * This,
    /* [retval][out] */ BSTR *aLogoImagePath);


void __RPC_STUB IBIOSSettings_get_LogoImagePath_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IBIOSSettings_put_LogoImagePath_Proxy( 
    IBIOSSettings * This,
    /* [in] */ BSTR aLogoImagePath);


void __RPC_STUB IBIOSSettings_put_LogoImagePath_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IBIOSSettings_get_BootMenuMode_Proxy( 
    IBIOSSettings * This,
    /* [retval][out] */ BIOSBootMenuMode *aBootMenuMode);


void __RPC_STUB IBIOSSettings_get_BootMenuMode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IBIOSSettings_put_BootMenuMode_Proxy( 
    IBIOSSettings * This,
    /* [in] */ BIOSBootMenuMode aBootMenuMode);


void __RPC_STUB IBIOSSettings_put_BootMenuMode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IBIOSSettings_get_ACPIEnabled_Proxy( 
    IBIOSSettings * This,
    /* [retval][out] */ BOOL *aACPIEnabled);


void __RPC_STUB IBIOSSettings_get_ACPIEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IBIOSSettings_put_ACPIEnabled_Proxy( 
    IBIOSSettings * This,
    /* [in] */ BOOL aACPIEnabled);


void __RPC_STUB IBIOSSettings_put_ACPIEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IBIOSSettings_get_IOAPICEnabled_Proxy( 
    IBIOSSettings * This,
    /* [retval][out] */ BOOL *aIOAPICEnabled);


void __RPC_STUB IBIOSSettings_get_IOAPICEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IBIOSSettings_put_IOAPICEnabled_Proxy( 
    IBIOSSettings * This,
    /* [in] */ BOOL aIOAPICEnabled);


void __RPC_STUB IBIOSSettings_put_IOAPICEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IBIOSSettings_get_TimeOffset_Proxy( 
    IBIOSSettings * This,
    /* [retval][out] */ LONG64 *aTimeOffset);


void __RPC_STUB IBIOSSettings_get_TimeOffset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IBIOSSettings_put_TimeOffset_Proxy( 
    IBIOSSettings * This,
    /* [in] */ LONG64 aTimeOffset);


void __RPC_STUB IBIOSSettings_put_TimeOffset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IBIOSSettings_get_PXEDebugEnabled_Proxy( 
    IBIOSSettings * This,
    /* [retval][out] */ BOOL *aPXEDebugEnabled);


void __RPC_STUB IBIOSSettings_get_PXEDebugEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IBIOSSettings_put_PXEDebugEnabled_Proxy( 
    IBIOSSettings * This,
    /* [in] */ BOOL aPXEDebugEnabled);


void __RPC_STUB IBIOSSettings_put_PXEDebugEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IBIOSSettings_get_IDEControllerType_Proxy( 
    IBIOSSettings * This,
    /* [retval][out] */ IDEControllerType *aIDEControllerType);


void __RPC_STUB IBIOSSettings_get_IDEControllerType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IBIOSSettings_put_IDEControllerType_Proxy( 
    IBIOSSettings * This,
    /* [in] */ IDEControllerType aIDEControllerType);


void __RPC_STUB IBIOSSettings_put_IDEControllerType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IBIOSSettings_INTERFACE_DEFINED__ */


#ifndef __IMachine_INTERFACE_DEFINED__
#define __IMachine_INTERFACE_DEFINED__

/* interface IMachine */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IMachine;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1e509de4-d96c-4f44-8b94-860194f710ac")
    IMachine : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Parent( 
            /* [retval][out] */ IVirtualBox **aParent) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Accessible( 
            /* [retval][out] */ BOOL *aAccessible) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AccessError( 
            /* [retval][out] */ IVirtualBoxErrorInfo **aAccessError) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *aName) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR aName) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Description( 
            /* [retval][out] */ BSTR *aDescription) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Description( 
            /* [in] */ BSTR aDescription) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Id( 
            /* [retval][out] */ GUID *aId) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_OSTypeId( 
            /* [retval][out] */ BSTR *aOSTypeId) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_OSTypeId( 
            /* [in] */ BSTR aOSTypeId) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MemorySize( 
            /* [retval][out] */ ULONG *aMemorySize) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_MemorySize( 
            /* [in] */ ULONG aMemorySize) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MemoryBalloonSize( 
            /* [retval][out] */ ULONG *aMemoryBalloonSize) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_MemoryBalloonSize( 
            /* [in] */ ULONG aMemoryBalloonSize) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_StatisticsUpdateInterval( 
            /* [retval][out] */ ULONG *aStatisticsUpdateInterval) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_StatisticsUpdateInterval( 
            /* [in] */ ULONG aStatisticsUpdateInterval) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_VRAMSize( 
            /* [retval][out] */ ULONG *aVRAMSize) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_VRAMSize( 
            /* [in] */ ULONG aVRAMSize) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MonitorCount( 
            /* [retval][out] */ ULONG *aMonitorCount) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_MonitorCount( 
            /* [in] */ ULONG aMonitorCount) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BIOSSettings( 
            /* [retval][out] */ IBIOSSettings **aBIOSSettings) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HWVirtExEnabled( 
            /* [retval][out] */ TSBool *aHWVirtExEnabled) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_HWVirtExEnabled( 
            /* [in] */ TSBool aHWVirtExEnabled) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HWVirtExNestedPagingEnabled( 
            /* [retval][out] */ BOOL *aHWVirtExNestedPagingEnabled) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_HWVirtExNestedPagingEnabled( 
            /* [in] */ BOOL aHWVirtExNestedPagingEnabled) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PAEEnabled( 
            /* [retval][out] */ BOOL *aPAEEnabled) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PAEEnabled( 
            /* [in] */ BOOL aPAEEnabled) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SnapshotFolder( 
            /* [retval][out] */ BSTR *aSnapshotFolder) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_SnapshotFolder( 
            /* [in] */ BSTR aSnapshotFolder) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_VRDPServer( 
            /* [retval][out] */ IVRDPServer **aVRDPServer) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HardDiskAttachments( 
            /* [retval][out] */ IHardDiskAttachmentCollection **aHardDiskAttachments) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DVDDrive( 
            /* [retval][out] */ IDVDDrive **aDVDDrive) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FloppyDrive( 
            /* [retval][out] */ IFloppyDrive **aFloppyDrive) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_USBController( 
            /* [retval][out] */ IUSBController **aUSBController) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AudioAdapter( 
            /* [retval][out] */ IAudioAdapter **aAudioAdapter) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SATAController( 
            /* [retval][out] */ ISATAController **aSATAController) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SettingsFilePath( 
            /* [retval][out] */ BSTR *aSettingsFilePath) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SettingsFileVersion( 
            /* [retval][out] */ BSTR *aSettingsFileVersion) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SettingsModified( 
            /* [retval][out] */ BOOL *aSettingsModified) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SessionState( 
            /* [retval][out] */ SessionState *aSessionState) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SessionType( 
            /* [retval][out] */ BSTR *aSessionType) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SessionPid( 
            /* [retval][out] */ ULONG *aSessionPid) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_State( 
            /* [retval][out] */ MachineState *aState) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_LastStateChange( 
            /* [retval][out] */ LONG64 *aLastStateChange) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_StateFilePath( 
            /* [retval][out] */ BSTR *aStateFilePath) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_LogFolder( 
            /* [retval][out] */ BSTR *aLogFolder) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_CurrentSnapshot( 
            /* [retval][out] */ ISnapshot **aCurrentSnapshot) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SnapshotCount( 
            /* [retval][out] */ ULONG *aSnapshotCount) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_CurrentStateModified( 
            /* [retval][out] */ BOOL *aCurrentStateModified) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SharedFolders( 
            /* [retval][out] */ ISharedFolderCollection **aSharedFolders) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ClipboardMode( 
            /* [retval][out] */ ClipboardMode *aClipboardMode) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ClipboardMode( 
            /* [in] */ ClipboardMode aClipboardMode) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetBootOrder( 
            /* [in] */ ULONG aPosition,
            /* [in] */ DeviceType aDevice) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetBootOrder( 
            /* [in] */ ULONG aOrder,
            /* [retval][out] */ DeviceType *aDevice) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AttachHardDisk( 
            /* [in] */ GUID aId,
            /* [in] */ StorageBus aBus,
            /* [in] */ LONG aChannel,
            /* [in] */ LONG aDevice) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetHardDisk( 
            /* [in] */ StorageBus aBus,
            /* [in] */ LONG aChannel,
            /* [in] */ LONG aDevice,
            /* [retval][out] */ IHardDisk **aHardDisk) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE DetachHardDisk( 
            /* [in] */ StorageBus aBus,
            /* [in] */ LONG aChannel,
            /* [in] */ LONG aDevice) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetNetworkAdapter( 
            /* [in] */ ULONG aSlot,
            /* [retval][out] */ INetworkAdapter **aAdapter) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetSerialPort( 
            /* [in] */ ULONG aSlot,
            /* [retval][out] */ ISerialPort **aPort) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetParallelPort( 
            /* [in] */ ULONG aSlot,
            /* [retval][out] */ IParallelPort **aPort) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetNextExtraDataKey( 
            /* [in] */ BSTR aKey,
            /* [out] */ BSTR *aNextKey,
            /* [out] */ BSTR *aNextValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetExtraData( 
            /* [in] */ BSTR aKey,
            /* [retval][out] */ BSTR *aValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetExtraData( 
            /* [in] */ BSTR aKey,
            /* [in] */ BSTR aValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SaveSettings( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SaveSettingsWithBackup( 
            /* [retval][out] */ BSTR *aBakFileName) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE DiscardSettings( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE DeleteSettings( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetSnapshot( 
            /* [in] */ GUID aId,
            /* [retval][out] */ ISnapshot **aSnapshot) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE FindSnapshot( 
            /* [in] */ BSTR aName,
            /* [retval][out] */ ISnapshot **aSnapshot) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetCurrentSnapshot( 
            /* [in] */ GUID aId) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateSharedFolder( 
            /* [in] */ BSTR aName,
            /* [in] */ BSTR aHostPath,
            /* [in] */ BOOL aWritable) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveSharedFolder( 
            /* [in] */ BSTR aName) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CanShowConsoleWindow( 
            /* [retval][out] */ BOOL *aCanShow) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ShowConsoleWindow( 
            /* [retval][out] */ ULONG64 *aWinId) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetGuestProperty( 
            /* [in] */ BSTR aName,
            /* [out] */ BSTR *aValue,
            /* [out] */ ULONG64 *aTimestamp,
            /* [out] */ BSTR *aFlags) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetGuestPropertyValue( 
            /* [in] */ BSTR aProperty,
            /* [retval][out] */ BSTR *aValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetGuestPropertyTimestamp( 
            /* [in] */ BSTR aProperty,
            /* [retval][out] */ ULONG64 *aValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetGuestProperty( 
            /* [in] */ BSTR aProperty,
            /* [in] */ BSTR aValue,
            /* [in] */ BSTR aFlags) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetGuestPropertyValue( 
            /* [in] */ BSTR aProperty,
            /* [in] */ BSTR aValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE EnumerateGuestProperties( 
            /* [in] */ BSTR aPatterns,
            /* [out] */ SAFEARRAY * *aName,
            /* [out] */ SAFEARRAY * *aValue,
            /* [out] */ SAFEARRAY * *aTimestamp,
            /* [out] */ SAFEARRAY * *aFlags) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IMachineVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IMachine * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IMachine * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IMachine * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )( 
            IMachine * This,
            /* [retval][out] */ IVirtualBox **aParent);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Accessible )( 
            IMachine * This,
            /* [retval][out] */ BOOL *aAccessible);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AccessError )( 
            IMachine * This,
            /* [retval][out] */ IVirtualBoxErrorInfo **aAccessError);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IMachine * This,
            /* [retval][out] */ BSTR *aName);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IMachine * This,
            /* [in] */ BSTR aName);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Description )( 
            IMachine * This,
            /* [retval][out] */ BSTR *aDescription);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Description )( 
            IMachine * This,
            /* [in] */ BSTR aDescription);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Id )( 
            IMachine * This,
            /* [retval][out] */ GUID *aId);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_OSTypeId )( 
            IMachine * This,
            /* [retval][out] */ BSTR *aOSTypeId);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_OSTypeId )( 
            IMachine * This,
            /* [in] */ BSTR aOSTypeId);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MemorySize )( 
            IMachine * This,
            /* [retval][out] */ ULONG *aMemorySize);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_MemorySize )( 
            IMachine * This,
            /* [in] */ ULONG aMemorySize);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MemoryBalloonSize )( 
            IMachine * This,
            /* [retval][out] */ ULONG *aMemoryBalloonSize);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_MemoryBalloonSize )( 
            IMachine * This,
            /* [in] */ ULONG aMemoryBalloonSize);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_StatisticsUpdateInterval )( 
            IMachine * This,
            /* [retval][out] */ ULONG *aStatisticsUpdateInterval);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_StatisticsUpdateInterval )( 
            IMachine * This,
            /* [in] */ ULONG aStatisticsUpdateInterval);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_VRAMSize )( 
            IMachine * This,
            /* [retval][out] */ ULONG *aVRAMSize);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_VRAMSize )( 
            IMachine * This,
            /* [in] */ ULONG aVRAMSize);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MonitorCount )( 
            IMachine * This,
            /* [retval][out] */ ULONG *aMonitorCount);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_MonitorCount )( 
            IMachine * This,
            /* [in] */ ULONG aMonitorCount);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BIOSSettings )( 
            IMachine * This,
            /* [retval][out] */ IBIOSSettings **aBIOSSettings);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HWVirtExEnabled )( 
            IMachine * This,
            /* [retval][out] */ TSBool *aHWVirtExEnabled);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_HWVirtExEnabled )( 
            IMachine * This,
            /* [in] */ TSBool aHWVirtExEnabled);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HWVirtExNestedPagingEnabled )( 
            IMachine * This,
            /* [retval][out] */ BOOL *aHWVirtExNestedPagingEnabled);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_HWVirtExNestedPagingEnabled )( 
            IMachine * This,
            /* [in] */ BOOL aHWVirtExNestedPagingEnabled);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PAEEnabled )( 
            IMachine * This,
            /* [retval][out] */ BOOL *aPAEEnabled);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PAEEnabled )( 
            IMachine * This,
            /* [in] */ BOOL aPAEEnabled);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SnapshotFolder )( 
            IMachine * This,
            /* [retval][out] */ BSTR *aSnapshotFolder);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_SnapshotFolder )( 
            IMachine * This,
            /* [in] */ BSTR aSnapshotFolder);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_VRDPServer )( 
            IMachine * This,
            /* [retval][out] */ IVRDPServer **aVRDPServer);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HardDiskAttachments )( 
            IMachine * This,
            /* [retval][out] */ IHardDiskAttachmentCollection **aHardDiskAttachments);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_DVDDrive )( 
            IMachine * This,
            /* [retval][out] */ IDVDDrive **aDVDDrive);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_FloppyDrive )( 
            IMachine * This,
            /* [retval][out] */ IFloppyDrive **aFloppyDrive);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_USBController )( 
            IMachine * This,
            /* [retval][out] */ IUSBController **aUSBController);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AudioAdapter )( 
            IMachine * This,
            /* [retval][out] */ IAudioAdapter **aAudioAdapter);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SATAController )( 
            IMachine * This,
            /* [retval][out] */ ISATAController **aSATAController);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SettingsFilePath )( 
            IMachine * This,
            /* [retval][out] */ BSTR *aSettingsFilePath);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SettingsFileVersion )( 
            IMachine * This,
            /* [retval][out] */ BSTR *aSettingsFileVersion);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SettingsModified )( 
            IMachine * This,
            /* [retval][out] */ BOOL *aSettingsModified);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SessionState )( 
            IMachine * This,
            /* [retval][out] */ SessionState *aSessionState);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SessionType )( 
            IMachine * This,
            /* [retval][out] */ BSTR *aSessionType);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SessionPid )( 
            IMachine * This,
            /* [retval][out] */ ULONG *aSessionPid);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_State )( 
            IMachine * This,
            /* [retval][out] */ MachineState *aState);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_LastStateChange )( 
            IMachine * This,
            /* [retval][out] */ LONG64 *aLastStateChange);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_StateFilePath )( 
            IMachine * This,
            /* [retval][out] */ BSTR *aStateFilePath);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_LogFolder )( 
            IMachine * This,
            /* [retval][out] */ BSTR *aLogFolder);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CurrentSnapshot )( 
            IMachine * This,
            /* [retval][out] */ ISnapshot **aCurrentSnapshot);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SnapshotCount )( 
            IMachine * This,
            /* [retval][out] */ ULONG *aSnapshotCount);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CurrentStateModified )( 
            IMachine * This,
            /* [retval][out] */ BOOL *aCurrentStateModified);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SharedFolders )( 
            IMachine * This,
            /* [retval][out] */ ISharedFolderCollection **aSharedFolders);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClipboardMode )( 
            IMachine * This,
            /* [retval][out] */ ClipboardMode *aClipboardMode);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ClipboardMode )( 
            IMachine * This,
            /* [in] */ ClipboardMode aClipboardMode);
        
        HRESULT ( STDMETHODCALLTYPE *SetBootOrder )( 
            IMachine * This,
            /* [in] */ ULONG aPosition,
            /* [in] */ DeviceType aDevice);
        
        HRESULT ( STDMETHODCALLTYPE *GetBootOrder )( 
            IMachine * This,
            /* [in] */ ULONG aOrder,
            /* [retval][out] */ DeviceType *aDevice);
        
        HRESULT ( STDMETHODCALLTYPE *AttachHardDisk )( 
            IMachine * This,
            /* [in] */ GUID aId,
            /* [in] */ StorageBus aBus,
            /* [in] */ LONG aChannel,
            /* [in] */ LONG aDevice);
        
        HRESULT ( STDMETHODCALLTYPE *GetHardDisk )( 
            IMachine * This,
            /* [in] */ StorageBus aBus,
            /* [in] */ LONG aChannel,
            /* [in] */ LONG aDevice,
            /* [retval][out] */ IHardDisk **aHardDisk);
        
        HRESULT ( STDMETHODCALLTYPE *DetachHardDisk )( 
            IMachine * This,
            /* [in] */ StorageBus aBus,
            /* [in] */ LONG aChannel,
            /* [in] */ LONG aDevice);
        
        HRESULT ( STDMETHODCALLTYPE *GetNetworkAdapter )( 
            IMachine * This,
            /* [in] */ ULONG aSlot,
            /* [retval][out] */ INetworkAdapter **aAdapter);
        
        HRESULT ( STDMETHODCALLTYPE *GetSerialPort )( 
            IMachine * This,
            /* [in] */ ULONG aSlot,
            /* [retval][out] */ ISerialPort **aPort);
        
        HRESULT ( STDMETHODCALLTYPE *GetParallelPort )( 
            IMachine * This,
            /* [in] */ ULONG aSlot,
            /* [retval][out] */ IParallelPort **aPort);
        
        HRESULT ( STDMETHODCALLTYPE *GetNextExtraDataKey )( 
            IMachine * This,
            /* [in] */ BSTR aKey,
            /* [out] */ BSTR *aNextKey,
            /* [out] */ BSTR *aNextValue);
        
        HRESULT ( STDMETHODCALLTYPE *GetExtraData )( 
            IMachine * This,
            /* [in] */ BSTR aKey,
            /* [retval][out] */ BSTR *aValue);
        
        HRESULT ( STDMETHODCALLTYPE *SetExtraData )( 
            IMachine * This,
            /* [in] */ BSTR aKey,
            /* [in] */ BSTR aValue);
        
        HRESULT ( STDMETHODCALLTYPE *SaveSettings )( 
            IMachine * This);
        
        HRESULT ( STDMETHODCALLTYPE *SaveSettingsWithBackup )( 
            IMachine * This,
            /* [retval][out] */ BSTR *aBakFileName);
        
        HRESULT ( STDMETHODCALLTYPE *DiscardSettings )( 
            IMachine * This);
        
        HRESULT ( STDMETHODCALLTYPE *DeleteSettings )( 
            IMachine * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetSnapshot )( 
            IMachine * This,
            /* [in] */ GUID aId,
            /* [retval][out] */ ISnapshot **aSnapshot);
        
        HRESULT ( STDMETHODCALLTYPE *FindSnapshot )( 
            IMachine * This,
            /* [in] */ BSTR aName,
            /* [retval][out] */ ISnapshot **aSnapshot);
        
        HRESULT ( STDMETHODCALLTYPE *SetCurrentSnapshot )( 
            IMachine * This,
            /* [in] */ GUID aId);
        
        HRESULT ( STDMETHODCALLTYPE *CreateSharedFolder )( 
            IMachine * This,
            /* [in] */ BSTR aName,
            /* [in] */ BSTR aHostPath,
            /* [in] */ BOOL aWritable);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveSharedFolder )( 
            IMachine * This,
            /* [in] */ BSTR aName);
        
        HRESULT ( STDMETHODCALLTYPE *CanShowConsoleWindow )( 
            IMachine * This,
            /* [retval][out] */ BOOL *aCanShow);
        
        HRESULT ( STDMETHODCALLTYPE *ShowConsoleWindow )( 
            IMachine * This,
            /* [retval][out] */ ULONG64 *aWinId);
        
        HRESULT ( STDMETHODCALLTYPE *GetGuestProperty )( 
            IMachine * This,
            /* [in] */ BSTR aName,
            /* [out] */ BSTR *aValue,
            /* [out] */ ULONG64 *aTimestamp,
            /* [out] */ BSTR *aFlags);
        
        HRESULT ( STDMETHODCALLTYPE *GetGuestPropertyValue )( 
            IMachine * This,
            /* [in] */ BSTR aProperty,
            /* [retval][out] */ BSTR *aValue);
        
        HRESULT ( STDMETHODCALLTYPE *GetGuestPropertyTimestamp )( 
            IMachine * This,
            /* [in] */ BSTR aProperty,
            /* [retval][out] */ ULONG64 *aValue);
        
        HRESULT ( STDMETHODCALLTYPE *SetGuestProperty )( 
            IMachine * This,
            /* [in] */ BSTR aProperty,
            /* [in] */ BSTR aValue,
            /* [in] */ BSTR aFlags);
        
        HRESULT ( STDMETHODCALLTYPE *SetGuestPropertyValue )( 
            IMachine * This,
            /* [in] */ BSTR aProperty,
            /* [in] */ BSTR aValue);
        
        HRESULT ( STDMETHODCALLTYPE *EnumerateGuestProperties )( 
            IMachine * This,
            /* [in] */ BSTR aPatterns,
            /* [out] */ SAFEARRAY * *aName,
            /* [out] */ SAFEARRAY * *aValue,
            /* [out] */ SAFEARRAY * *aTimestamp,
            /* [out] */ SAFEARRAY * *aFlags);
        
        END_INTERFACE
    } IMachineVtbl;

    interface IMachine
    {
        CONST_VTBL struct IMachineVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IMachine_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IMachine_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IMachine_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IMachine_get_Parent(This,aParent)	\
    (This)->lpVtbl -> get_Parent(This,aParent)

#define IMachine_get_Accessible(This,aAccessible)	\
    (This)->lpVtbl -> get_Accessible(This,aAccessible)

#define IMachine_get_AccessError(This,aAccessError)	\
    (This)->lpVtbl -> get_AccessError(This,aAccessError)

#define IMachine_get_Name(This,aName)	\
    (This)->lpVtbl -> get_Name(This,aName)

#define IMachine_put_Name(This,aName)	\
    (This)->lpVtbl -> put_Name(This,aName)

#define IMachine_get_Description(This,aDescription)	\
    (This)->lpVtbl -> get_Description(This,aDescription)

#define IMachine_put_Description(This,aDescription)	\
    (This)->lpVtbl -> put_Description(This,aDescription)

#define IMachine_get_Id(This,aId)	\
    (This)->lpVtbl -> get_Id(This,aId)

#define IMachine_get_OSTypeId(This,aOSTypeId)	\
    (This)->lpVtbl -> get_OSTypeId(This,aOSTypeId)

#define IMachine_put_OSTypeId(This,aOSTypeId)	\
    (This)->lpVtbl -> put_OSTypeId(This,aOSTypeId)

#define IMachine_get_MemorySize(This,aMemorySize)	\
    (This)->lpVtbl -> get_MemorySize(This,aMemorySize)

#define IMachine_put_MemorySize(This,aMemorySize)	\
    (This)->lpVtbl -> put_MemorySize(This,aMemorySize)

#define IMachine_get_MemoryBalloonSize(This,aMemoryBalloonSize)	\
    (This)->lpVtbl -> get_MemoryBalloonSize(This,aMemoryBalloonSize)

#define IMachine_put_MemoryBalloonSize(This,aMemoryBalloonSize)	\
    (This)->lpVtbl -> put_MemoryBalloonSize(This,aMemoryBalloonSize)

#define IMachine_get_StatisticsUpdateInterval(This,aStatisticsUpdateInterval)	\
    (This)->lpVtbl -> get_StatisticsUpdateInterval(This,aStatisticsUpdateInterval)

#define IMachine_put_StatisticsUpdateInterval(This,aStatisticsUpdateInterval)	\
    (This)->lpVtbl -> put_StatisticsUpdateInterval(This,aStatisticsUpdateInterval)

#define IMachine_get_VRAMSize(This,aVRAMSize)	\
    (This)->lpVtbl -> get_VRAMSize(This,aVRAMSize)

#define IMachine_put_VRAMSize(This,aVRAMSize)	\
    (This)->lpVtbl -> put_VRAMSize(This,aVRAMSize)

#define IMachine_get_MonitorCount(This,aMonitorCount)	\
    (This)->lpVtbl -> get_MonitorCount(This,aMonitorCount)

#define IMachine_put_MonitorCount(This,aMonitorCount)	\
    (This)->lpVtbl -> put_MonitorCount(This,aMonitorCount)

#define IMachine_get_BIOSSettings(This,aBIOSSettings)	\
    (This)->lpVtbl -> get_BIOSSettings(This,aBIOSSettings)

#define IMachine_get_HWVirtExEnabled(This,aHWVirtExEnabled)	\
    (This)->lpVtbl -> get_HWVirtExEnabled(This,aHWVirtExEnabled)

#define IMachine_put_HWVirtExEnabled(This,aHWVirtExEnabled)	\
    (This)->lpVtbl -> put_HWVirtExEnabled(This,aHWVirtExEnabled)

#define IMachine_get_HWVirtExNestedPagingEnabled(This,aHWVirtExNestedPagingEnabled)	\
    (This)->lpVtbl -> get_HWVirtExNestedPagingEnabled(This,aHWVirtExNestedPagingEnabled)

#define IMachine_put_HWVirtExNestedPagingEnabled(This,aHWVirtExNestedPagingEnabled)	\
    (This)->lpVtbl -> put_HWVirtExNestedPagingEnabled(This,aHWVirtExNestedPagingEnabled)

#define IMachine_get_PAEEnabled(This,aPAEEnabled)	\
    (This)->lpVtbl -> get_PAEEnabled(This,aPAEEnabled)

#define IMachine_put_PAEEnabled(This,aPAEEnabled)	\
    (This)->lpVtbl -> put_PAEEnabled(This,aPAEEnabled)

#define IMachine_get_SnapshotFolder(This,aSnapshotFolder)	\
    (This)->lpVtbl -> get_SnapshotFolder(This,aSnapshotFolder)

#define IMachine_put_SnapshotFolder(This,aSnapshotFolder)	\
    (This)->lpVtbl -> put_SnapshotFolder(This,aSnapshotFolder)

#define IMachine_get_VRDPServer(This,aVRDPServer)	\
    (This)->lpVtbl -> get_VRDPServer(This,aVRDPServer)

#define IMachine_get_HardDiskAttachments(This,aHardDiskAttachments)	\
    (This)->lpVtbl -> get_HardDiskAttachments(This,aHardDiskAttachments)

#define IMachine_get_DVDDrive(This,aDVDDrive)	\
    (This)->lpVtbl -> get_DVDDrive(This,aDVDDrive)

#define IMachine_get_FloppyDrive(This,aFloppyDrive)	\
    (This)->lpVtbl -> get_FloppyDrive(This,aFloppyDrive)

#define IMachine_get_USBController(This,aUSBController)	\
    (This)->lpVtbl -> get_USBController(This,aUSBController)

#define IMachine_get_AudioAdapter(This,aAudioAdapter)	\
    (This)->lpVtbl -> get_AudioAdapter(This,aAudioAdapter)

#define IMachine_get_SATAController(This,aSATAController)	\
    (This)->lpVtbl -> get_SATAController(This,aSATAController)

#define IMachine_get_SettingsFilePath(This,aSettingsFilePath)	\
    (This)->lpVtbl -> get_SettingsFilePath(This,aSettingsFilePath)

#define IMachine_get_SettingsFileVersion(This,aSettingsFileVersion)	\
    (This)->lpVtbl -> get_SettingsFileVersion(This,aSettingsFileVersion)

#define IMachine_get_SettingsModified(This,aSettingsModified)	\
    (This)->lpVtbl -> get_SettingsModified(This,aSettingsModified)

#define IMachine_get_SessionState(This,aSessionState)	\
    (This)->lpVtbl -> get_SessionState(This,aSessionState)

#define IMachine_get_SessionType(This,aSessionType)	\
    (This)->lpVtbl -> get_SessionType(This,aSessionType)

#define IMachine_get_SessionPid(This,aSessionPid)	\
    (This)->lpVtbl -> get_SessionPid(This,aSessionPid)

#define IMachine_get_State(This,aState)	\
    (This)->lpVtbl -> get_State(This,aState)

#define IMachine_get_LastStateChange(This,aLastStateChange)	\
    (This)->lpVtbl -> get_LastStateChange(This,aLastStateChange)

#define IMachine_get_StateFilePath(This,aStateFilePath)	\
    (This)->lpVtbl -> get_StateFilePath(This,aStateFilePath)

#define IMachine_get_LogFolder(This,aLogFolder)	\
    (This)->lpVtbl -> get_LogFolder(This,aLogFolder)

#define IMachine_get_CurrentSnapshot(This,aCurrentSnapshot)	\
    (This)->lpVtbl -> get_CurrentSnapshot(This,aCurrentSnapshot)

#define IMachine_get_SnapshotCount(This,aSnapshotCount)	\
    (This)->lpVtbl -> get_SnapshotCount(This,aSnapshotCount)

#define IMachine_get_CurrentStateModified(This,aCurrentStateModified)	\
    (This)->lpVtbl -> get_CurrentStateModified(This,aCurrentStateModified)

#define IMachine_get_SharedFolders(This,aSharedFolders)	\
    (This)->lpVtbl -> get_SharedFolders(This,aSharedFolders)

#define IMachine_get_ClipboardMode(This,aClipboardMode)	\
    (This)->lpVtbl -> get_ClipboardMode(This,aClipboardMode)

#define IMachine_put_ClipboardMode(This,aClipboardMode)	\
    (This)->lpVtbl -> put_ClipboardMode(This,aClipboardMode)

#define IMachine_SetBootOrder(This,aPosition,aDevice)	\
    (This)->lpVtbl -> SetBootOrder(This,aPosition,aDevice)

#define IMachine_GetBootOrder(This,aOrder,aDevice)	\
    (This)->lpVtbl -> GetBootOrder(This,aOrder,aDevice)

#define IMachine_AttachHardDisk(This,aId,aBus,aChannel,aDevice)	\
    (This)->lpVtbl -> AttachHardDisk(This,aId,aBus,aChannel,aDevice)

#define IMachine_GetHardDisk(This,aBus,aChannel,aDevice,aHardDisk)	\
    (This)->lpVtbl -> GetHardDisk(This,aBus,aChannel,aDevice,aHardDisk)

#define IMachine_DetachHardDisk(This,aBus,aChannel,aDevice)	\
    (This)->lpVtbl -> DetachHardDisk(This,aBus,aChannel,aDevice)

#define IMachine_GetNetworkAdapter(This,aSlot,aAdapter)	\
    (This)->lpVtbl -> GetNetworkAdapter(This,aSlot,aAdapter)

#define IMachine_GetSerialPort(This,aSlot,aPort)	\
    (This)->lpVtbl -> GetSerialPort(This,aSlot,aPort)

#define IMachine_GetParallelPort(This,aSlot,aPort)	\
    (This)->lpVtbl -> GetParallelPort(This,aSlot,aPort)

#define IMachine_GetNextExtraDataKey(This,aKey,aNextKey,aNextValue)	\
    (This)->lpVtbl -> GetNextExtraDataKey(This,aKey,aNextKey,aNextValue)

#define IMachine_GetExtraData(This,aKey,aValue)	\
    (This)->lpVtbl -> GetExtraData(This,aKey,aValue)

#define IMachine_SetExtraData(This,aKey,aValue)	\
    (This)->lpVtbl -> SetExtraData(This,aKey,aValue)

#define IMachine_SaveSettings(This)	\
    (This)->lpVtbl -> SaveSettings(This)

#define IMachine_SaveSettingsWithBackup(This,aBakFileName)	\
    (This)->lpVtbl -> SaveSettingsWithBackup(This,aBakFileName)

#define IMachine_DiscardSettings(This)	\
    (This)->lpVtbl -> DiscardSettings(This)

#define IMachine_DeleteSettings(This)	\
    (This)->lpVtbl -> DeleteSettings(This)

#define IMachine_GetSnapshot(This,aId,aSnapshot)	\
    (This)->lpVtbl -> GetSnapshot(This,aId,aSnapshot)

#define IMachine_FindSnapshot(This,aName,aSnapshot)	\
    (This)->lpVtbl -> FindSnapshot(This,aName,aSnapshot)

#define IMachine_SetCurrentSnapshot(This,aId)	\
    (This)->lpVtbl -> SetCurrentSnapshot(This,aId)

#define IMachine_CreateSharedFolder(This,aName,aHostPath,aWritable)	\
    (This)->lpVtbl -> CreateSharedFolder(This,aName,aHostPath,aWritable)

#define IMachine_RemoveSharedFolder(This,aName)	\
    (This)->lpVtbl -> RemoveSharedFolder(This,aName)

#define IMachine_CanShowConsoleWindow(This,aCanShow)	\
    (This)->lpVtbl -> CanShowConsoleWindow(This,aCanShow)

#define IMachine_ShowConsoleWindow(This,aWinId)	\
    (This)->lpVtbl -> ShowConsoleWindow(This,aWinId)

#define IMachine_GetGuestProperty(This,aName,aValue,aTimestamp,aFlags)	\
    (This)->lpVtbl -> GetGuestProperty(This,aName,aValue,aTimestamp,aFlags)

#define IMachine_GetGuestPropertyValue(This,aProperty,aValue)	\
    (This)->lpVtbl -> GetGuestPropertyValue(This,aProperty,aValue)

#define IMachine_GetGuestPropertyTimestamp(This,aProperty,aValue)	\
    (This)->lpVtbl -> GetGuestPropertyTimestamp(This,aProperty,aValue)

#define IMachine_SetGuestProperty(This,aProperty,aValue,aFlags)	\
    (This)->lpVtbl -> SetGuestProperty(This,aProperty,aValue,aFlags)

#define IMachine_SetGuestPropertyValue(This,aProperty,aValue)	\
    (This)->lpVtbl -> SetGuestPropertyValue(This,aProperty,aValue)

#define IMachine_EnumerateGuestProperties(This,aPatterns,aName,aValue,aTimestamp,aFlags)	\
    (This)->lpVtbl -> EnumerateGuestProperties(This,aPatterns,aName,aValue,aTimestamp,aFlags)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_Parent_Proxy( 
    IMachine * This,
    /* [retval][out] */ IVirtualBox **aParent);


void __RPC_STUB IMachine_get_Parent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_Accessible_Proxy( 
    IMachine * This,
    /* [retval][out] */ BOOL *aAccessible);


void __RPC_STUB IMachine_get_Accessible_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_AccessError_Proxy( 
    IMachine * This,
    /* [retval][out] */ IVirtualBoxErrorInfo **aAccessError);


void __RPC_STUB IMachine_get_AccessError_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_Name_Proxy( 
    IMachine * This,
    /* [retval][out] */ BSTR *aName);


void __RPC_STUB IMachine_get_Name_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IMachine_put_Name_Proxy( 
    IMachine * This,
    /* [in] */ BSTR aName);


void __RPC_STUB IMachine_put_Name_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_Description_Proxy( 
    IMachine * This,
    /* [retval][out] */ BSTR *aDescription);


void __RPC_STUB IMachine_get_Description_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IMachine_put_Description_Proxy( 
    IMachine * This,
    /* [in] */ BSTR aDescription);


void __RPC_STUB IMachine_put_Description_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_Id_Proxy( 
    IMachine * This,
    /* [retval][out] */ GUID *aId);


void __RPC_STUB IMachine_get_Id_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_OSTypeId_Proxy( 
    IMachine * This,
    /* [retval][out] */ BSTR *aOSTypeId);


void __RPC_STUB IMachine_get_OSTypeId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IMachine_put_OSTypeId_Proxy( 
    IMachine * This,
    /* [in] */ BSTR aOSTypeId);


void __RPC_STUB IMachine_put_OSTypeId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_MemorySize_Proxy( 
    IMachine * This,
    /* [retval][out] */ ULONG *aMemorySize);


void __RPC_STUB IMachine_get_MemorySize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IMachine_put_MemorySize_Proxy( 
    IMachine * This,
    /* [in] */ ULONG aMemorySize);


void __RPC_STUB IMachine_put_MemorySize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_MemoryBalloonSize_Proxy( 
    IMachine * This,
    /* [retval][out] */ ULONG *aMemoryBalloonSize);


void __RPC_STUB IMachine_get_MemoryBalloonSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IMachine_put_MemoryBalloonSize_Proxy( 
    IMachine * This,
    /* [in] */ ULONG aMemoryBalloonSize);


void __RPC_STUB IMachine_put_MemoryBalloonSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_StatisticsUpdateInterval_Proxy( 
    IMachine * This,
    /* [retval][out] */ ULONG *aStatisticsUpdateInterval);


void __RPC_STUB IMachine_get_StatisticsUpdateInterval_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IMachine_put_StatisticsUpdateInterval_Proxy( 
    IMachine * This,
    /* [in] */ ULONG aStatisticsUpdateInterval);


void __RPC_STUB IMachine_put_StatisticsUpdateInterval_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_VRAMSize_Proxy( 
    IMachine * This,
    /* [retval][out] */ ULONG *aVRAMSize);


void __RPC_STUB IMachine_get_VRAMSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IMachine_put_VRAMSize_Proxy( 
    IMachine * This,
    /* [in] */ ULONG aVRAMSize);


void __RPC_STUB IMachine_put_VRAMSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_MonitorCount_Proxy( 
    IMachine * This,
    /* [retval][out] */ ULONG *aMonitorCount);


void __RPC_STUB IMachine_get_MonitorCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IMachine_put_MonitorCount_Proxy( 
    IMachine * This,
    /* [in] */ ULONG aMonitorCount);


void __RPC_STUB IMachine_put_MonitorCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_BIOSSettings_Proxy( 
    IMachine * This,
    /* [retval][out] */ IBIOSSettings **aBIOSSettings);


void __RPC_STUB IMachine_get_BIOSSettings_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_HWVirtExEnabled_Proxy( 
    IMachine * This,
    /* [retval][out] */ TSBool *aHWVirtExEnabled);


void __RPC_STUB IMachine_get_HWVirtExEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IMachine_put_HWVirtExEnabled_Proxy( 
    IMachine * This,
    /* [in] */ TSBool aHWVirtExEnabled);


void __RPC_STUB IMachine_put_HWVirtExEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_HWVirtExNestedPagingEnabled_Proxy( 
    IMachine * This,
    /* [retval][out] */ BOOL *aHWVirtExNestedPagingEnabled);


void __RPC_STUB IMachine_get_HWVirtExNestedPagingEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IMachine_put_HWVirtExNestedPagingEnabled_Proxy( 
    IMachine * This,
    /* [in] */ BOOL aHWVirtExNestedPagingEnabled);


void __RPC_STUB IMachine_put_HWVirtExNestedPagingEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_PAEEnabled_Proxy( 
    IMachine * This,
    /* [retval][out] */ BOOL *aPAEEnabled);


void __RPC_STUB IMachine_get_PAEEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IMachine_put_PAEEnabled_Proxy( 
    IMachine * This,
    /* [in] */ BOOL aPAEEnabled);


void __RPC_STUB IMachine_put_PAEEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_SnapshotFolder_Proxy( 
    IMachine * This,
    /* [retval][out] */ BSTR *aSnapshotFolder);


void __RPC_STUB IMachine_get_SnapshotFolder_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IMachine_put_SnapshotFolder_Proxy( 
    IMachine * This,
    /* [in] */ BSTR aSnapshotFolder);


void __RPC_STUB IMachine_put_SnapshotFolder_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_VRDPServer_Proxy( 
    IMachine * This,
    /* [retval][out] */ IVRDPServer **aVRDPServer);


void __RPC_STUB IMachine_get_VRDPServer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_HardDiskAttachments_Proxy( 
    IMachine * This,
    /* [retval][out] */ IHardDiskAttachmentCollection **aHardDiskAttachments);


void __RPC_STUB IMachine_get_HardDiskAttachments_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_DVDDrive_Proxy( 
    IMachine * This,
    /* [retval][out] */ IDVDDrive **aDVDDrive);


void __RPC_STUB IMachine_get_DVDDrive_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_FloppyDrive_Proxy( 
    IMachine * This,
    /* [retval][out] */ IFloppyDrive **aFloppyDrive);


void __RPC_STUB IMachine_get_FloppyDrive_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_USBController_Proxy( 
    IMachine * This,
    /* [retval][out] */ IUSBController **aUSBController);


void __RPC_STUB IMachine_get_USBController_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_AudioAdapter_Proxy( 
    IMachine * This,
    /* [retval][out] */ IAudioAdapter **aAudioAdapter);


void __RPC_STUB IMachine_get_AudioAdapter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_SATAController_Proxy( 
    IMachine * This,
    /* [retval][out] */ ISATAController **aSATAController);


void __RPC_STUB IMachine_get_SATAController_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_SettingsFilePath_Proxy( 
    IMachine * This,
    /* [retval][out] */ BSTR *aSettingsFilePath);


void __RPC_STUB IMachine_get_SettingsFilePath_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_SettingsFileVersion_Proxy( 
    IMachine * This,
    /* [retval][out] */ BSTR *aSettingsFileVersion);


void __RPC_STUB IMachine_get_SettingsFileVersion_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_SettingsModified_Proxy( 
    IMachine * This,
    /* [retval][out] */ BOOL *aSettingsModified);


void __RPC_STUB IMachine_get_SettingsModified_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_SessionState_Proxy( 
    IMachine * This,
    /* [retval][out] */ SessionState *aSessionState);


void __RPC_STUB IMachine_get_SessionState_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_SessionType_Proxy( 
    IMachine * This,
    /* [retval][out] */ BSTR *aSessionType);


void __RPC_STUB IMachine_get_SessionType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_SessionPid_Proxy( 
    IMachine * This,
    /* [retval][out] */ ULONG *aSessionPid);


void __RPC_STUB IMachine_get_SessionPid_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_State_Proxy( 
    IMachine * This,
    /* [retval][out] */ MachineState *aState);


void __RPC_STUB IMachine_get_State_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_LastStateChange_Proxy( 
    IMachine * This,
    /* [retval][out] */ LONG64 *aLastStateChange);


void __RPC_STUB IMachine_get_LastStateChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_StateFilePath_Proxy( 
    IMachine * This,
    /* [retval][out] */ BSTR *aStateFilePath);


void __RPC_STUB IMachine_get_StateFilePath_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_LogFolder_Proxy( 
    IMachine * This,
    /* [retval][out] */ BSTR *aLogFolder);


void __RPC_STUB IMachine_get_LogFolder_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_CurrentSnapshot_Proxy( 
    IMachine * This,
    /* [retval][out] */ ISnapshot **aCurrentSnapshot);


void __RPC_STUB IMachine_get_CurrentSnapshot_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_SnapshotCount_Proxy( 
    IMachine * This,
    /* [retval][out] */ ULONG *aSnapshotCount);


void __RPC_STUB IMachine_get_SnapshotCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_CurrentStateModified_Proxy( 
    IMachine * This,
    /* [retval][out] */ BOOL *aCurrentStateModified);


void __RPC_STUB IMachine_get_CurrentStateModified_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_SharedFolders_Proxy( 
    IMachine * This,
    /* [retval][out] */ ISharedFolderCollection **aSharedFolders);


void __RPC_STUB IMachine_get_SharedFolders_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachine_get_ClipboardMode_Proxy( 
    IMachine * This,
    /* [retval][out] */ ClipboardMode *aClipboardMode);


void __RPC_STUB IMachine_get_ClipboardMode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IMachine_put_ClipboardMode_Proxy( 
    IMachine * This,
    /* [in] */ ClipboardMode aClipboardMode);


void __RPC_STUB IMachine_put_ClipboardMode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachine_SetBootOrder_Proxy( 
    IMachine * This,
    /* [in] */ ULONG aPosition,
    /* [in] */ DeviceType aDevice);


void __RPC_STUB IMachine_SetBootOrder_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachine_GetBootOrder_Proxy( 
    IMachine * This,
    /* [in] */ ULONG aOrder,
    /* [retval][out] */ DeviceType *aDevice);


void __RPC_STUB IMachine_GetBootOrder_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachine_AttachHardDisk_Proxy( 
    IMachine * This,
    /* [in] */ GUID aId,
    /* [in] */ StorageBus aBus,
    /* [in] */ LONG aChannel,
    /* [in] */ LONG aDevice);


void __RPC_STUB IMachine_AttachHardDisk_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachine_GetHardDisk_Proxy( 
    IMachine * This,
    /* [in] */ StorageBus aBus,
    /* [in] */ LONG aChannel,
    /* [in] */ LONG aDevice,
    /* [retval][out] */ IHardDisk **aHardDisk);


void __RPC_STUB IMachine_GetHardDisk_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachine_DetachHardDisk_Proxy( 
    IMachine * This,
    /* [in] */ StorageBus aBus,
    /* [in] */ LONG aChannel,
    /* [in] */ LONG aDevice);


void __RPC_STUB IMachine_DetachHardDisk_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachine_GetNetworkAdapter_Proxy( 
    IMachine * This,
    /* [in] */ ULONG aSlot,
    /* [retval][out] */ INetworkAdapter **aAdapter);


void __RPC_STUB IMachine_GetNetworkAdapter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachine_GetSerialPort_Proxy( 
    IMachine * This,
    /* [in] */ ULONG aSlot,
    /* [retval][out] */ ISerialPort **aPort);


void __RPC_STUB IMachine_GetSerialPort_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachine_GetParallelPort_Proxy( 
    IMachine * This,
    /* [in] */ ULONG aSlot,
    /* [retval][out] */ IParallelPort **aPort);


void __RPC_STUB IMachine_GetParallelPort_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachine_GetNextExtraDataKey_Proxy( 
    IMachine * This,
    /* [in] */ BSTR aKey,
    /* [out] */ BSTR *aNextKey,
    /* [out] */ BSTR *aNextValue);


void __RPC_STUB IMachine_GetNextExtraDataKey_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachine_GetExtraData_Proxy( 
    IMachine * This,
    /* [in] */ BSTR aKey,
    /* [retval][out] */ BSTR *aValue);


void __RPC_STUB IMachine_GetExtraData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachine_SetExtraData_Proxy( 
    IMachine * This,
    /* [in] */ BSTR aKey,
    /* [in] */ BSTR aValue);


void __RPC_STUB IMachine_SetExtraData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachine_SaveSettings_Proxy( 
    IMachine * This);


void __RPC_STUB IMachine_SaveSettings_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachine_SaveSettingsWithBackup_Proxy( 
    IMachine * This,
    /* [retval][out] */ BSTR *aBakFileName);


void __RPC_STUB IMachine_SaveSettingsWithBackup_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachine_DiscardSettings_Proxy( 
    IMachine * This);


void __RPC_STUB IMachine_DiscardSettings_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachine_DeleteSettings_Proxy( 
    IMachine * This);


void __RPC_STUB IMachine_DeleteSettings_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachine_GetSnapshot_Proxy( 
    IMachine * This,
    /* [in] */ GUID aId,
    /* [retval][out] */ ISnapshot **aSnapshot);


void __RPC_STUB IMachine_GetSnapshot_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachine_FindSnapshot_Proxy( 
    IMachine * This,
    /* [in] */ BSTR aName,
    /* [retval][out] */ ISnapshot **aSnapshot);


void __RPC_STUB IMachine_FindSnapshot_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachine_SetCurrentSnapshot_Proxy( 
    IMachine * This,
    /* [in] */ GUID aId);


void __RPC_STUB IMachine_SetCurrentSnapshot_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachine_CreateSharedFolder_Proxy( 
    IMachine * This,
    /* [in] */ BSTR aName,
    /* [in] */ BSTR aHostPath,
    /* [in] */ BOOL aWritable);


void __RPC_STUB IMachine_CreateSharedFolder_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachine_RemoveSharedFolder_Proxy( 
    IMachine * This,
    /* [in] */ BSTR aName);


void __RPC_STUB IMachine_RemoveSharedFolder_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachine_CanShowConsoleWindow_Proxy( 
    IMachine * This,
    /* [retval][out] */ BOOL *aCanShow);


void __RPC_STUB IMachine_CanShowConsoleWindow_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachine_ShowConsoleWindow_Proxy( 
    IMachine * This,
    /* [retval][out] */ ULONG64 *aWinId);


void __RPC_STUB IMachine_ShowConsoleWindow_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachine_GetGuestProperty_Proxy( 
    IMachine * This,
    /* [in] */ BSTR aName,
    /* [out] */ BSTR *aValue,
    /* [out] */ ULONG64 *aTimestamp,
    /* [out] */ BSTR *aFlags);


void __RPC_STUB IMachine_GetGuestProperty_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachine_GetGuestPropertyValue_Proxy( 
    IMachine * This,
    /* [in] */ BSTR aProperty,
    /* [retval][out] */ BSTR *aValue);


void __RPC_STUB IMachine_GetGuestPropertyValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachine_GetGuestPropertyTimestamp_Proxy( 
    IMachine * This,
    /* [in] */ BSTR aProperty,
    /* [retval][out] */ ULONG64 *aValue);


void __RPC_STUB IMachine_GetGuestPropertyTimestamp_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachine_SetGuestProperty_Proxy( 
    IMachine * This,
    /* [in] */ BSTR aProperty,
    /* [in] */ BSTR aValue,
    /* [in] */ BSTR aFlags);


void __RPC_STUB IMachine_SetGuestProperty_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachine_SetGuestPropertyValue_Proxy( 
    IMachine * This,
    /* [in] */ BSTR aProperty,
    /* [in] */ BSTR aValue);


void __RPC_STUB IMachine_SetGuestPropertyValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachine_EnumerateGuestProperties_Proxy( 
    IMachine * This,
    /* [in] */ BSTR aPatterns,
    /* [out] */ SAFEARRAY * *aName,
    /* [out] */ SAFEARRAY * *aValue,
    /* [out] */ SAFEARRAY * *aTimestamp,
    /* [out] */ SAFEARRAY * *aFlags);


void __RPC_STUB IMachine_EnumerateGuestProperties_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IMachine_INTERFACE_DEFINED__ */


#ifndef __IConsoleCallback_INTERFACE_DEFINED__
#define __IConsoleCallback_INTERFACE_DEFINED__

/* interface IConsoleCallback */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IConsoleCallback;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("13dfbef3-b74d-487d-bada-2304529aefa6")
    IConsoleCallback : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE OnMousePointerShapeChange( 
            /* [in] */ BOOL aVisible,
            /* [in] */ BOOL aAlpha,
            /* [in] */ ULONG aXHot,
            /* [in] */ ULONG aYHot,
            /* [in] */ ULONG aWidth,
            /* [in] */ ULONG aHeight,
            /* [in] */ BYTE *aShape) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnMouseCapabilityChange( 
            /* [in] */ BOOL aSupportsAbsolute,
            /* [in] */ BOOL aNeedsHostCursor) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnKeyboardLedsChange( 
            /* [in] */ BOOL aNumLock,
            /* [in] */ BOOL aCapsLock,
            /* [in] */ BOOL aScrollLock) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnStateChange( 
            /* [in] */ MachineState aState) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnAdditionsStateChange( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnDVDDriveChange( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnFloppyDriveChange( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnNetworkAdapterChange( 
            /* [in] */ INetworkAdapter *aNetworkAdapter) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnSerialPortChange( 
            /* [in] */ ISerialPort *aSerialPort) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnParallelPortChange( 
            /* [in] */ IParallelPort *aParallelPort) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnVRDPServerChange( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnUSBControllerChange( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnUSBDeviceStateChange( 
            /* [in] */ IUSBDevice *aDevice,
            /* [in] */ BOOL aAttached,
            /* [in] */ IVirtualBoxErrorInfo *aError) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnSharedFolderChange( 
            /* [in] */ Scope aScope) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnRuntimeError( 
            /* [in] */ BOOL aFatal,
            /* [in] */ BSTR aId,
            /* [in] */ BSTR aMessage) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnCanShowWindow( 
            /* [retval][out] */ BOOL *aCanShow) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnShowWindow( 
            /* [retval][out] */ ULONG64 *aWinId) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IConsoleCallbackVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IConsoleCallback * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IConsoleCallback * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IConsoleCallback * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnMousePointerShapeChange )( 
            IConsoleCallback * This,
            /* [in] */ BOOL aVisible,
            /* [in] */ BOOL aAlpha,
            /* [in] */ ULONG aXHot,
            /* [in] */ ULONG aYHot,
            /* [in] */ ULONG aWidth,
            /* [in] */ ULONG aHeight,
            /* [in] */ BYTE *aShape);
        
        HRESULT ( STDMETHODCALLTYPE *OnMouseCapabilityChange )( 
            IConsoleCallback * This,
            /* [in] */ BOOL aSupportsAbsolute,
            /* [in] */ BOOL aNeedsHostCursor);
        
        HRESULT ( STDMETHODCALLTYPE *OnKeyboardLedsChange )( 
            IConsoleCallback * This,
            /* [in] */ BOOL aNumLock,
            /* [in] */ BOOL aCapsLock,
            /* [in] */ BOOL aScrollLock);
        
        HRESULT ( STDMETHODCALLTYPE *OnStateChange )( 
            IConsoleCallback * This,
            /* [in] */ MachineState aState);
        
        HRESULT ( STDMETHODCALLTYPE *OnAdditionsStateChange )( 
            IConsoleCallback * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnDVDDriveChange )( 
            IConsoleCallback * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnFloppyDriveChange )( 
            IConsoleCallback * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnNetworkAdapterChange )( 
            IConsoleCallback * This,
            /* [in] */ INetworkAdapter *aNetworkAdapter);
        
        HRESULT ( STDMETHODCALLTYPE *OnSerialPortChange )( 
            IConsoleCallback * This,
            /* [in] */ ISerialPort *aSerialPort);
        
        HRESULT ( STDMETHODCALLTYPE *OnParallelPortChange )( 
            IConsoleCallback * This,
            /* [in] */ IParallelPort *aParallelPort);
        
        HRESULT ( STDMETHODCALLTYPE *OnVRDPServerChange )( 
            IConsoleCallback * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnUSBControllerChange )( 
            IConsoleCallback * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnUSBDeviceStateChange )( 
            IConsoleCallback * This,
            /* [in] */ IUSBDevice *aDevice,
            /* [in] */ BOOL aAttached,
            /* [in] */ IVirtualBoxErrorInfo *aError);
        
        HRESULT ( STDMETHODCALLTYPE *OnSharedFolderChange )( 
            IConsoleCallback * This,
            /* [in] */ Scope aScope);
        
        HRESULT ( STDMETHODCALLTYPE *OnRuntimeError )( 
            IConsoleCallback * This,
            /* [in] */ BOOL aFatal,
            /* [in] */ BSTR aId,
            /* [in] */ BSTR aMessage);
        
        HRESULT ( STDMETHODCALLTYPE *OnCanShowWindow )( 
            IConsoleCallback * This,
            /* [retval][out] */ BOOL *aCanShow);
        
        HRESULT ( STDMETHODCALLTYPE *OnShowWindow )( 
            IConsoleCallback * This,
            /* [retval][out] */ ULONG64 *aWinId);
        
        END_INTERFACE
    } IConsoleCallbackVtbl;

    interface IConsoleCallback
    {
        CONST_VTBL struct IConsoleCallbackVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IConsoleCallback_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IConsoleCallback_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IConsoleCallback_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IConsoleCallback_OnMousePointerShapeChange(This,aVisible,aAlpha,aXHot,aYHot,aWidth,aHeight,aShape)	\
    (This)->lpVtbl -> OnMousePointerShapeChange(This,aVisible,aAlpha,aXHot,aYHot,aWidth,aHeight,aShape)

#define IConsoleCallback_OnMouseCapabilityChange(This,aSupportsAbsolute,aNeedsHostCursor)	\
    (This)->lpVtbl -> OnMouseCapabilityChange(This,aSupportsAbsolute,aNeedsHostCursor)

#define IConsoleCallback_OnKeyboardLedsChange(This,aNumLock,aCapsLock,aScrollLock)	\
    (This)->lpVtbl -> OnKeyboardLedsChange(This,aNumLock,aCapsLock,aScrollLock)

#define IConsoleCallback_OnStateChange(This,aState)	\
    (This)->lpVtbl -> OnStateChange(This,aState)

#define IConsoleCallback_OnAdditionsStateChange(This)	\
    (This)->lpVtbl -> OnAdditionsStateChange(This)

#define IConsoleCallback_OnDVDDriveChange(This)	\
    (This)->lpVtbl -> OnDVDDriveChange(This)

#define IConsoleCallback_OnFloppyDriveChange(This)	\
    (This)->lpVtbl -> OnFloppyDriveChange(This)

#define IConsoleCallback_OnNetworkAdapterChange(This,aNetworkAdapter)	\
    (This)->lpVtbl -> OnNetworkAdapterChange(This,aNetworkAdapter)

#define IConsoleCallback_OnSerialPortChange(This,aSerialPort)	\
    (This)->lpVtbl -> OnSerialPortChange(This,aSerialPort)

#define IConsoleCallback_OnParallelPortChange(This,aParallelPort)	\
    (This)->lpVtbl -> OnParallelPortChange(This,aParallelPort)

#define IConsoleCallback_OnVRDPServerChange(This)	\
    (This)->lpVtbl -> OnVRDPServerChange(This)

#define IConsoleCallback_OnUSBControllerChange(This)	\
    (This)->lpVtbl -> OnUSBControllerChange(This)

#define IConsoleCallback_OnUSBDeviceStateChange(This,aDevice,aAttached,aError)	\
    (This)->lpVtbl -> OnUSBDeviceStateChange(This,aDevice,aAttached,aError)

#define IConsoleCallback_OnSharedFolderChange(This,aScope)	\
    (This)->lpVtbl -> OnSharedFolderChange(This,aScope)

#define IConsoleCallback_OnRuntimeError(This,aFatal,aId,aMessage)	\
    (This)->lpVtbl -> OnRuntimeError(This,aFatal,aId,aMessage)

#define IConsoleCallback_OnCanShowWindow(This,aCanShow)	\
    (This)->lpVtbl -> OnCanShowWindow(This,aCanShow)

#define IConsoleCallback_OnShowWindow(This,aWinId)	\
    (This)->lpVtbl -> OnShowWindow(This,aWinId)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IConsoleCallback_OnMousePointerShapeChange_Proxy( 
    IConsoleCallback * This,
    /* [in] */ BOOL aVisible,
    /* [in] */ BOOL aAlpha,
    /* [in] */ ULONG aXHot,
    /* [in] */ ULONG aYHot,
    /* [in] */ ULONG aWidth,
    /* [in] */ ULONG aHeight,
    /* [in] */ BYTE *aShape);


void __RPC_STUB IConsoleCallback_OnMousePointerShapeChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsoleCallback_OnMouseCapabilityChange_Proxy( 
    IConsoleCallback * This,
    /* [in] */ BOOL aSupportsAbsolute,
    /* [in] */ BOOL aNeedsHostCursor);


void __RPC_STUB IConsoleCallback_OnMouseCapabilityChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsoleCallback_OnKeyboardLedsChange_Proxy( 
    IConsoleCallback * This,
    /* [in] */ BOOL aNumLock,
    /* [in] */ BOOL aCapsLock,
    /* [in] */ BOOL aScrollLock);


void __RPC_STUB IConsoleCallback_OnKeyboardLedsChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsoleCallback_OnStateChange_Proxy( 
    IConsoleCallback * This,
    /* [in] */ MachineState aState);


void __RPC_STUB IConsoleCallback_OnStateChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsoleCallback_OnAdditionsStateChange_Proxy( 
    IConsoleCallback * This);


void __RPC_STUB IConsoleCallback_OnAdditionsStateChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsoleCallback_OnDVDDriveChange_Proxy( 
    IConsoleCallback * This);


void __RPC_STUB IConsoleCallback_OnDVDDriveChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsoleCallback_OnFloppyDriveChange_Proxy( 
    IConsoleCallback * This);


void __RPC_STUB IConsoleCallback_OnFloppyDriveChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsoleCallback_OnNetworkAdapterChange_Proxy( 
    IConsoleCallback * This,
    /* [in] */ INetworkAdapter *aNetworkAdapter);


void __RPC_STUB IConsoleCallback_OnNetworkAdapterChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsoleCallback_OnSerialPortChange_Proxy( 
    IConsoleCallback * This,
    /* [in] */ ISerialPort *aSerialPort);


void __RPC_STUB IConsoleCallback_OnSerialPortChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsoleCallback_OnParallelPortChange_Proxy( 
    IConsoleCallback * This,
    /* [in] */ IParallelPort *aParallelPort);


void __RPC_STUB IConsoleCallback_OnParallelPortChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsoleCallback_OnVRDPServerChange_Proxy( 
    IConsoleCallback * This);


void __RPC_STUB IConsoleCallback_OnVRDPServerChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsoleCallback_OnUSBControllerChange_Proxy( 
    IConsoleCallback * This);


void __RPC_STUB IConsoleCallback_OnUSBControllerChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsoleCallback_OnUSBDeviceStateChange_Proxy( 
    IConsoleCallback * This,
    /* [in] */ IUSBDevice *aDevice,
    /* [in] */ BOOL aAttached,
    /* [in] */ IVirtualBoxErrorInfo *aError);


void __RPC_STUB IConsoleCallback_OnUSBDeviceStateChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsoleCallback_OnSharedFolderChange_Proxy( 
    IConsoleCallback * This,
    /* [in] */ Scope aScope);


void __RPC_STUB IConsoleCallback_OnSharedFolderChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsoleCallback_OnRuntimeError_Proxy( 
    IConsoleCallback * This,
    /* [in] */ BOOL aFatal,
    /* [in] */ BSTR aId,
    /* [in] */ BSTR aMessage);


void __RPC_STUB IConsoleCallback_OnRuntimeError_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsoleCallback_OnCanShowWindow_Proxy( 
    IConsoleCallback * This,
    /* [retval][out] */ BOOL *aCanShow);


void __RPC_STUB IConsoleCallback_OnCanShowWindow_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsoleCallback_OnShowWindow_Proxy( 
    IConsoleCallback * This,
    /* [retval][out] */ ULONG64 *aWinId);


void __RPC_STUB IConsoleCallback_OnShowWindow_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IConsoleCallback_INTERFACE_DEFINED__ */


#ifndef __IRemoteDisplayInfo_INTERFACE_DEFINED__
#define __IRemoteDisplayInfo_INTERFACE_DEFINED__

/* interface IRemoteDisplayInfo */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IRemoteDisplayInfo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("550104cd-2dfd-4a6c-857d-f6f8e088e62c")
    IRemoteDisplayInfo : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Active( 
            /* [retval][out] */ BOOL *aActive) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_NumberOfClients( 
            /* [retval][out] */ ULONG *aNumberOfClients) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BeginTime( 
            /* [retval][out] */ LONG64 *aBeginTime) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_EndTime( 
            /* [retval][out] */ LONG64 *aEndTime) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BytesSent( 
            /* [retval][out] */ ULONG64 *aBytesSent) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BytesSentTotal( 
            /* [retval][out] */ ULONG64 *aBytesSentTotal) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BytesReceived( 
            /* [retval][out] */ ULONG64 *aBytesReceived) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BytesReceivedTotal( 
            /* [retval][out] */ ULONG64 *aBytesReceivedTotal) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_User( 
            /* [retval][out] */ BSTR *aUser) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Domain( 
            /* [retval][out] */ BSTR *aDomain) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ClientName( 
            /* [retval][out] */ BSTR *aClientName) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ClientIP( 
            /* [retval][out] */ BSTR *aClientIP) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ClientVersion( 
            /* [retval][out] */ ULONG *aClientVersion) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_EncryptionStyle( 
            /* [retval][out] */ ULONG *aEncryptionStyle) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRemoteDisplayInfoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRemoteDisplayInfo * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRemoteDisplayInfo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRemoteDisplayInfo * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Active )( 
            IRemoteDisplayInfo * This,
            /* [retval][out] */ BOOL *aActive);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_NumberOfClients )( 
            IRemoteDisplayInfo * This,
            /* [retval][out] */ ULONG *aNumberOfClients);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BeginTime )( 
            IRemoteDisplayInfo * This,
            /* [retval][out] */ LONG64 *aBeginTime);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_EndTime )( 
            IRemoteDisplayInfo * This,
            /* [retval][out] */ LONG64 *aEndTime);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BytesSent )( 
            IRemoteDisplayInfo * This,
            /* [retval][out] */ ULONG64 *aBytesSent);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BytesSentTotal )( 
            IRemoteDisplayInfo * This,
            /* [retval][out] */ ULONG64 *aBytesSentTotal);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BytesReceived )( 
            IRemoteDisplayInfo * This,
            /* [retval][out] */ ULONG64 *aBytesReceived);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BytesReceivedTotal )( 
            IRemoteDisplayInfo * This,
            /* [retval][out] */ ULONG64 *aBytesReceivedTotal);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_User )( 
            IRemoteDisplayInfo * This,
            /* [retval][out] */ BSTR *aUser);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Domain )( 
            IRemoteDisplayInfo * This,
            /* [retval][out] */ BSTR *aDomain);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClientName )( 
            IRemoteDisplayInfo * This,
            /* [retval][out] */ BSTR *aClientName);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClientIP )( 
            IRemoteDisplayInfo * This,
            /* [retval][out] */ BSTR *aClientIP);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClientVersion )( 
            IRemoteDisplayInfo * This,
            /* [retval][out] */ ULONG *aClientVersion);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_EncryptionStyle )( 
            IRemoteDisplayInfo * This,
            /* [retval][out] */ ULONG *aEncryptionStyle);
        
        END_INTERFACE
    } IRemoteDisplayInfoVtbl;

    interface IRemoteDisplayInfo
    {
        CONST_VTBL struct IRemoteDisplayInfoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRemoteDisplayInfo_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRemoteDisplayInfo_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRemoteDisplayInfo_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRemoteDisplayInfo_get_Active(This,aActive)	\
    (This)->lpVtbl -> get_Active(This,aActive)

#define IRemoteDisplayInfo_get_NumberOfClients(This,aNumberOfClients)	\
    (This)->lpVtbl -> get_NumberOfClients(This,aNumberOfClients)

#define IRemoteDisplayInfo_get_BeginTime(This,aBeginTime)	\
    (This)->lpVtbl -> get_BeginTime(This,aBeginTime)

#define IRemoteDisplayInfo_get_EndTime(This,aEndTime)	\
    (This)->lpVtbl -> get_EndTime(This,aEndTime)

#define IRemoteDisplayInfo_get_BytesSent(This,aBytesSent)	\
    (This)->lpVtbl -> get_BytesSent(This,aBytesSent)

#define IRemoteDisplayInfo_get_BytesSentTotal(This,aBytesSentTotal)	\
    (This)->lpVtbl -> get_BytesSentTotal(This,aBytesSentTotal)

#define IRemoteDisplayInfo_get_BytesReceived(This,aBytesReceived)	\
    (This)->lpVtbl -> get_BytesReceived(This,aBytesReceived)

#define IRemoteDisplayInfo_get_BytesReceivedTotal(This,aBytesReceivedTotal)	\
    (This)->lpVtbl -> get_BytesReceivedTotal(This,aBytesReceivedTotal)

#define IRemoteDisplayInfo_get_User(This,aUser)	\
    (This)->lpVtbl -> get_User(This,aUser)

#define IRemoteDisplayInfo_get_Domain(This,aDomain)	\
    (This)->lpVtbl -> get_Domain(This,aDomain)

#define IRemoteDisplayInfo_get_ClientName(This,aClientName)	\
    (This)->lpVtbl -> get_ClientName(This,aClientName)

#define IRemoteDisplayInfo_get_ClientIP(This,aClientIP)	\
    (This)->lpVtbl -> get_ClientIP(This,aClientIP)

#define IRemoteDisplayInfo_get_ClientVersion(This,aClientVersion)	\
    (This)->lpVtbl -> get_ClientVersion(This,aClientVersion)

#define IRemoteDisplayInfo_get_EncryptionStyle(This,aEncryptionStyle)	\
    (This)->lpVtbl -> get_EncryptionStyle(This,aEncryptionStyle)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IRemoteDisplayInfo_get_Active_Proxy( 
    IRemoteDisplayInfo * This,
    /* [retval][out] */ BOOL *aActive);


void __RPC_STUB IRemoteDisplayInfo_get_Active_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IRemoteDisplayInfo_get_NumberOfClients_Proxy( 
    IRemoteDisplayInfo * This,
    /* [retval][out] */ ULONG *aNumberOfClients);


void __RPC_STUB IRemoteDisplayInfo_get_NumberOfClients_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IRemoteDisplayInfo_get_BeginTime_Proxy( 
    IRemoteDisplayInfo * This,
    /* [retval][out] */ LONG64 *aBeginTime);


void __RPC_STUB IRemoteDisplayInfo_get_BeginTime_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IRemoteDisplayInfo_get_EndTime_Proxy( 
    IRemoteDisplayInfo * This,
    /* [retval][out] */ LONG64 *aEndTime);


void __RPC_STUB IRemoteDisplayInfo_get_EndTime_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IRemoteDisplayInfo_get_BytesSent_Proxy( 
    IRemoteDisplayInfo * This,
    /* [retval][out] */ ULONG64 *aBytesSent);


void __RPC_STUB IRemoteDisplayInfo_get_BytesSent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IRemoteDisplayInfo_get_BytesSentTotal_Proxy( 
    IRemoteDisplayInfo * This,
    /* [retval][out] */ ULONG64 *aBytesSentTotal);


void __RPC_STUB IRemoteDisplayInfo_get_BytesSentTotal_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IRemoteDisplayInfo_get_BytesReceived_Proxy( 
    IRemoteDisplayInfo * This,
    /* [retval][out] */ ULONG64 *aBytesReceived);


void __RPC_STUB IRemoteDisplayInfo_get_BytesReceived_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IRemoteDisplayInfo_get_BytesReceivedTotal_Proxy( 
    IRemoteDisplayInfo * This,
    /* [retval][out] */ ULONG64 *aBytesReceivedTotal);


void __RPC_STUB IRemoteDisplayInfo_get_BytesReceivedTotal_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IRemoteDisplayInfo_get_User_Proxy( 
    IRemoteDisplayInfo * This,
    /* [retval][out] */ BSTR *aUser);


void __RPC_STUB IRemoteDisplayInfo_get_User_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IRemoteDisplayInfo_get_Domain_Proxy( 
    IRemoteDisplayInfo * This,
    /* [retval][out] */ BSTR *aDomain);


void __RPC_STUB IRemoteDisplayInfo_get_Domain_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IRemoteDisplayInfo_get_ClientName_Proxy( 
    IRemoteDisplayInfo * This,
    /* [retval][out] */ BSTR *aClientName);


void __RPC_STUB IRemoteDisplayInfo_get_ClientName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IRemoteDisplayInfo_get_ClientIP_Proxy( 
    IRemoteDisplayInfo * This,
    /* [retval][out] */ BSTR *aClientIP);


void __RPC_STUB IRemoteDisplayInfo_get_ClientIP_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IRemoteDisplayInfo_get_ClientVersion_Proxy( 
    IRemoteDisplayInfo * This,
    /* [retval][out] */ ULONG *aClientVersion);


void __RPC_STUB IRemoteDisplayInfo_get_ClientVersion_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IRemoteDisplayInfo_get_EncryptionStyle_Proxy( 
    IRemoteDisplayInfo * This,
    /* [retval][out] */ ULONG *aEncryptionStyle);


void __RPC_STUB IRemoteDisplayInfo_get_EncryptionStyle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRemoteDisplayInfo_INTERFACE_DEFINED__ */


#ifndef __IConsole_INTERFACE_DEFINED__
#define __IConsole_INTERFACE_DEFINED__

/* interface IConsole */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IConsole;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("e3c6d4a1-a935-47ca-b16d-f9e9c496e53e")
    IConsole : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Machine( 
            /* [retval][out] */ IMachine **aMachine) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_State( 
            /* [retval][out] */ MachineState *aState) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Guest( 
            /* [retval][out] */ IGuest **aGuest) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Keyboard( 
            /* [retval][out] */ IKeyboard **aKeyboard) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Mouse( 
            /* [retval][out] */ IMouse **aMouse) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Display( 
            /* [retval][out] */ IDisplay **aDisplay) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Debugger( 
            /* [retval][out] */ IMachineDebugger **aDebugger) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_USBDevices( 
            /* [retval][out] */ IUSBDeviceCollection **aUSBDevices) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RemoteUSBDevices( 
            /* [retval][out] */ IHostUSBDeviceCollection **aRemoteUSBDevices) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SharedFolders( 
            /* [retval][out] */ ISharedFolderCollection **aSharedFolders) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RemoteDisplayInfo( 
            /* [retval][out] */ IRemoteDisplayInfo **aRemoteDisplayInfo) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE PowerUp( 
            /* [retval][out] */ IProgress **aProgress) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE PowerDown( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE PowerDownAsync( 
            /* [retval][out] */ IProgress **aProgress) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Pause( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Resume( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE PowerButton( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SleepButton( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetPowerButtonHandled( 
            /* [retval][out] */ BOOL *aHandled) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SaveState( 
            /* [retval][out] */ IProgress **aProgress) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AdoptSavedState( 
            /* [in] */ BSTR aSavedStateFile) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE DiscardSavedState( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetDeviceActivity( 
            /* [in] */ DeviceType aType,
            /* [retval][out] */ DeviceActivity *aActivity) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AttachUSBDevice( 
            /* [in] */ GUID aId) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE DetachUSBDevice( 
            /* [in] */ GUID aId,
            /* [retval][out] */ IUSBDevice **aDevice) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateSharedFolder( 
            /* [in] */ BSTR aName,
            /* [in] */ BSTR aHostPath,
            /* [in] */ BOOL aWritable) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveSharedFolder( 
            /* [in] */ BSTR aName) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE TakeSnapshot( 
            /* [in] */ BSTR aName,
            /* [in] */ BSTR aDescription,
            /* [retval][out] */ IProgress **aProgress) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE DiscardSnapshot( 
            /* [in] */ GUID aId,
            /* [retval][out] */ IProgress **aProgress) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE DiscardCurrentState( 
            /* [retval][out] */ IProgress **aProgress) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE DiscardCurrentSnapshotAndState( 
            /* [retval][out] */ IProgress **aProgress) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RegisterCallback( 
            /* [in] */ IConsoleCallback *aCallback) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE UnregisterCallback( 
            /* [in] */ IConsoleCallback *aCallback) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IConsoleVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IConsole * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IConsole * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IConsole * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Machine )( 
            IConsole * This,
            /* [retval][out] */ IMachine **aMachine);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_State )( 
            IConsole * This,
            /* [retval][out] */ MachineState *aState);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Guest )( 
            IConsole * This,
            /* [retval][out] */ IGuest **aGuest);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Keyboard )( 
            IConsole * This,
            /* [retval][out] */ IKeyboard **aKeyboard);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Mouse )( 
            IConsole * This,
            /* [retval][out] */ IMouse **aMouse);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Display )( 
            IConsole * This,
            /* [retval][out] */ IDisplay **aDisplay);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Debugger )( 
            IConsole * This,
            /* [retval][out] */ IMachineDebugger **aDebugger);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_USBDevices )( 
            IConsole * This,
            /* [retval][out] */ IUSBDeviceCollection **aUSBDevices);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RemoteUSBDevices )( 
            IConsole * This,
            /* [retval][out] */ IHostUSBDeviceCollection **aRemoteUSBDevices);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SharedFolders )( 
            IConsole * This,
            /* [retval][out] */ ISharedFolderCollection **aSharedFolders);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RemoteDisplayInfo )( 
            IConsole * This,
            /* [retval][out] */ IRemoteDisplayInfo **aRemoteDisplayInfo);
        
        HRESULT ( STDMETHODCALLTYPE *PowerUp )( 
            IConsole * This,
            /* [retval][out] */ IProgress **aProgress);
        
        HRESULT ( STDMETHODCALLTYPE *PowerDown )( 
            IConsole * This);
        
        HRESULT ( STDMETHODCALLTYPE *PowerDownAsync )( 
            IConsole * This,
            /* [retval][out] */ IProgress **aProgress);
        
        HRESULT ( STDMETHODCALLTYPE *Reset )( 
            IConsole * This);
        
        HRESULT ( STDMETHODCALLTYPE *Pause )( 
            IConsole * This);
        
        HRESULT ( STDMETHODCALLTYPE *Resume )( 
            IConsole * This);
        
        HRESULT ( STDMETHODCALLTYPE *PowerButton )( 
            IConsole * This);
        
        HRESULT ( STDMETHODCALLTYPE *SleepButton )( 
            IConsole * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetPowerButtonHandled )( 
            IConsole * This,
            /* [retval][out] */ BOOL *aHandled);
        
        HRESULT ( STDMETHODCALLTYPE *SaveState )( 
            IConsole * This,
            /* [retval][out] */ IProgress **aProgress);
        
        HRESULT ( STDMETHODCALLTYPE *AdoptSavedState )( 
            IConsole * This,
            /* [in] */ BSTR aSavedStateFile);
        
        HRESULT ( STDMETHODCALLTYPE *DiscardSavedState )( 
            IConsole * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetDeviceActivity )( 
            IConsole * This,
            /* [in] */ DeviceType aType,
            /* [retval][out] */ DeviceActivity *aActivity);
        
        HRESULT ( STDMETHODCALLTYPE *AttachUSBDevice )( 
            IConsole * This,
            /* [in] */ GUID aId);
        
        HRESULT ( STDMETHODCALLTYPE *DetachUSBDevice )( 
            IConsole * This,
            /* [in] */ GUID aId,
            /* [retval][out] */ IUSBDevice **aDevice);
        
        HRESULT ( STDMETHODCALLTYPE *CreateSharedFolder )( 
            IConsole * This,
            /* [in] */ BSTR aName,
            /* [in] */ BSTR aHostPath,
            /* [in] */ BOOL aWritable);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveSharedFolder )( 
            IConsole * This,
            /* [in] */ BSTR aName);
        
        HRESULT ( STDMETHODCALLTYPE *TakeSnapshot )( 
            IConsole * This,
            /* [in] */ BSTR aName,
            /* [in] */ BSTR aDescription,
            /* [retval][out] */ IProgress **aProgress);
        
        HRESULT ( STDMETHODCALLTYPE *DiscardSnapshot )( 
            IConsole * This,
            /* [in] */ GUID aId,
            /* [retval][out] */ IProgress **aProgress);
        
        HRESULT ( STDMETHODCALLTYPE *DiscardCurrentState )( 
            IConsole * This,
            /* [retval][out] */ IProgress **aProgress);
        
        HRESULT ( STDMETHODCALLTYPE *DiscardCurrentSnapshotAndState )( 
            IConsole * This,
            /* [retval][out] */ IProgress **aProgress);
        
        HRESULT ( STDMETHODCALLTYPE *RegisterCallback )( 
            IConsole * This,
            /* [in] */ IConsoleCallback *aCallback);
        
        HRESULT ( STDMETHODCALLTYPE *UnregisterCallback )( 
            IConsole * This,
            /* [in] */ IConsoleCallback *aCallback);
        
        END_INTERFACE
    } IConsoleVtbl;

    interface IConsole
    {
        CONST_VTBL struct IConsoleVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IConsole_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IConsole_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IConsole_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IConsole_get_Machine(This,aMachine)	\
    (This)->lpVtbl -> get_Machine(This,aMachine)

#define IConsole_get_State(This,aState)	\
    (This)->lpVtbl -> get_State(This,aState)

#define IConsole_get_Guest(This,aGuest)	\
    (This)->lpVtbl -> get_Guest(This,aGuest)

#define IConsole_get_Keyboard(This,aKeyboard)	\
    (This)->lpVtbl -> get_Keyboard(This,aKeyboard)

#define IConsole_get_Mouse(This,aMouse)	\
    (This)->lpVtbl -> get_Mouse(This,aMouse)

#define IConsole_get_Display(This,aDisplay)	\
    (This)->lpVtbl -> get_Display(This,aDisplay)

#define IConsole_get_Debugger(This,aDebugger)	\
    (This)->lpVtbl -> get_Debugger(This,aDebugger)

#define IConsole_get_USBDevices(This,aUSBDevices)	\
    (This)->lpVtbl -> get_USBDevices(This,aUSBDevices)

#define IConsole_get_RemoteUSBDevices(This,aRemoteUSBDevices)	\
    (This)->lpVtbl -> get_RemoteUSBDevices(This,aRemoteUSBDevices)

#define IConsole_get_SharedFolders(This,aSharedFolders)	\
    (This)->lpVtbl -> get_SharedFolders(This,aSharedFolders)

#define IConsole_get_RemoteDisplayInfo(This,aRemoteDisplayInfo)	\
    (This)->lpVtbl -> get_RemoteDisplayInfo(This,aRemoteDisplayInfo)

#define IConsole_PowerUp(This,aProgress)	\
    (This)->lpVtbl -> PowerUp(This,aProgress)

#define IConsole_PowerDown(This)	\
    (This)->lpVtbl -> PowerDown(This)

#define IConsole_PowerDownAsync(This,aProgress)	\
    (This)->lpVtbl -> PowerDownAsync(This,aProgress)

#define IConsole_Reset(This)	\
    (This)->lpVtbl -> Reset(This)

#define IConsole_Pause(This)	\
    (This)->lpVtbl -> Pause(This)

#define IConsole_Resume(This)	\
    (This)->lpVtbl -> Resume(This)

#define IConsole_PowerButton(This)	\
    (This)->lpVtbl -> PowerButton(This)

#define IConsole_SleepButton(This)	\
    (This)->lpVtbl -> SleepButton(This)

#define IConsole_GetPowerButtonHandled(This,aHandled)	\
    (This)->lpVtbl -> GetPowerButtonHandled(This,aHandled)

#define IConsole_SaveState(This,aProgress)	\
    (This)->lpVtbl -> SaveState(This,aProgress)

#define IConsole_AdoptSavedState(This,aSavedStateFile)	\
    (This)->lpVtbl -> AdoptSavedState(This,aSavedStateFile)

#define IConsole_DiscardSavedState(This)	\
    (This)->lpVtbl -> DiscardSavedState(This)

#define IConsole_GetDeviceActivity(This,aType,aActivity)	\
    (This)->lpVtbl -> GetDeviceActivity(This,aType,aActivity)

#define IConsole_AttachUSBDevice(This,aId)	\
    (This)->lpVtbl -> AttachUSBDevice(This,aId)

#define IConsole_DetachUSBDevice(This,aId,aDevice)	\
    (This)->lpVtbl -> DetachUSBDevice(This,aId,aDevice)

#define IConsole_CreateSharedFolder(This,aName,aHostPath,aWritable)	\
    (This)->lpVtbl -> CreateSharedFolder(This,aName,aHostPath,aWritable)

#define IConsole_RemoveSharedFolder(This,aName)	\
    (This)->lpVtbl -> RemoveSharedFolder(This,aName)

#define IConsole_TakeSnapshot(This,aName,aDescription,aProgress)	\
    (This)->lpVtbl -> TakeSnapshot(This,aName,aDescription,aProgress)

#define IConsole_DiscardSnapshot(This,aId,aProgress)	\
    (This)->lpVtbl -> DiscardSnapshot(This,aId,aProgress)

#define IConsole_DiscardCurrentState(This,aProgress)	\
    (This)->lpVtbl -> DiscardCurrentState(This,aProgress)

#define IConsole_DiscardCurrentSnapshotAndState(This,aProgress)	\
    (This)->lpVtbl -> DiscardCurrentSnapshotAndState(This,aProgress)

#define IConsole_RegisterCallback(This,aCallback)	\
    (This)->lpVtbl -> RegisterCallback(This,aCallback)

#define IConsole_UnregisterCallback(This,aCallback)	\
    (This)->lpVtbl -> UnregisterCallback(This,aCallback)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IConsole_get_Machine_Proxy( 
    IConsole * This,
    /* [retval][out] */ IMachine **aMachine);


void __RPC_STUB IConsole_get_Machine_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IConsole_get_State_Proxy( 
    IConsole * This,
    /* [retval][out] */ MachineState *aState);


void __RPC_STUB IConsole_get_State_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IConsole_get_Guest_Proxy( 
    IConsole * This,
    /* [retval][out] */ IGuest **aGuest);


void __RPC_STUB IConsole_get_Guest_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IConsole_get_Keyboard_Proxy( 
    IConsole * This,
    /* [retval][out] */ IKeyboard **aKeyboard);


void __RPC_STUB IConsole_get_Keyboard_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IConsole_get_Mouse_Proxy( 
    IConsole * This,
    /* [retval][out] */ IMouse **aMouse);


void __RPC_STUB IConsole_get_Mouse_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IConsole_get_Display_Proxy( 
    IConsole * This,
    /* [retval][out] */ IDisplay **aDisplay);


void __RPC_STUB IConsole_get_Display_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IConsole_get_Debugger_Proxy( 
    IConsole * This,
    /* [retval][out] */ IMachineDebugger **aDebugger);


void __RPC_STUB IConsole_get_Debugger_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IConsole_get_USBDevices_Proxy( 
    IConsole * This,
    /* [retval][out] */ IUSBDeviceCollection **aUSBDevices);


void __RPC_STUB IConsole_get_USBDevices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IConsole_get_RemoteUSBDevices_Proxy( 
    IConsole * This,
    /* [retval][out] */ IHostUSBDeviceCollection **aRemoteUSBDevices);


void __RPC_STUB IConsole_get_RemoteUSBDevices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IConsole_get_SharedFolders_Proxy( 
    IConsole * This,
    /* [retval][out] */ ISharedFolderCollection **aSharedFolders);


void __RPC_STUB IConsole_get_SharedFolders_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IConsole_get_RemoteDisplayInfo_Proxy( 
    IConsole * This,
    /* [retval][out] */ IRemoteDisplayInfo **aRemoteDisplayInfo);


void __RPC_STUB IConsole_get_RemoteDisplayInfo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsole_PowerUp_Proxy( 
    IConsole * This,
    /* [retval][out] */ IProgress **aProgress);


void __RPC_STUB IConsole_PowerUp_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsole_PowerDown_Proxy( 
    IConsole * This);


void __RPC_STUB IConsole_PowerDown_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsole_PowerDownAsync_Proxy( 
    IConsole * This,
    /* [retval][out] */ IProgress **aProgress);


void __RPC_STUB IConsole_PowerDownAsync_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsole_Reset_Proxy( 
    IConsole * This);


void __RPC_STUB IConsole_Reset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsole_Pause_Proxy( 
    IConsole * This);


void __RPC_STUB IConsole_Pause_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsole_Resume_Proxy( 
    IConsole * This);


void __RPC_STUB IConsole_Resume_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsole_PowerButton_Proxy( 
    IConsole * This);


void __RPC_STUB IConsole_PowerButton_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsole_SleepButton_Proxy( 
    IConsole * This);


void __RPC_STUB IConsole_SleepButton_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsole_GetPowerButtonHandled_Proxy( 
    IConsole * This,
    /* [retval][out] */ BOOL *aHandled);


void __RPC_STUB IConsole_GetPowerButtonHandled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsole_SaveState_Proxy( 
    IConsole * This,
    /* [retval][out] */ IProgress **aProgress);


void __RPC_STUB IConsole_SaveState_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsole_AdoptSavedState_Proxy( 
    IConsole * This,
    /* [in] */ BSTR aSavedStateFile);


void __RPC_STUB IConsole_AdoptSavedState_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsole_DiscardSavedState_Proxy( 
    IConsole * This);


void __RPC_STUB IConsole_DiscardSavedState_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsole_GetDeviceActivity_Proxy( 
    IConsole * This,
    /* [in] */ DeviceType aType,
    /* [retval][out] */ DeviceActivity *aActivity);


void __RPC_STUB IConsole_GetDeviceActivity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsole_AttachUSBDevice_Proxy( 
    IConsole * This,
    /* [in] */ GUID aId);


void __RPC_STUB IConsole_AttachUSBDevice_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsole_DetachUSBDevice_Proxy( 
    IConsole * This,
    /* [in] */ GUID aId,
    /* [retval][out] */ IUSBDevice **aDevice);


void __RPC_STUB IConsole_DetachUSBDevice_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsole_CreateSharedFolder_Proxy( 
    IConsole * This,
    /* [in] */ BSTR aName,
    /* [in] */ BSTR aHostPath,
    /* [in] */ BOOL aWritable);


void __RPC_STUB IConsole_CreateSharedFolder_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsole_RemoveSharedFolder_Proxy( 
    IConsole * This,
    /* [in] */ BSTR aName);


void __RPC_STUB IConsole_RemoveSharedFolder_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsole_TakeSnapshot_Proxy( 
    IConsole * This,
    /* [in] */ BSTR aName,
    /* [in] */ BSTR aDescription,
    /* [retval][out] */ IProgress **aProgress);


void __RPC_STUB IConsole_TakeSnapshot_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsole_DiscardSnapshot_Proxy( 
    IConsole * This,
    /* [in] */ GUID aId,
    /* [retval][out] */ IProgress **aProgress);


void __RPC_STUB IConsole_DiscardSnapshot_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsole_DiscardCurrentState_Proxy( 
    IConsole * This,
    /* [retval][out] */ IProgress **aProgress);


void __RPC_STUB IConsole_DiscardCurrentState_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsole_DiscardCurrentSnapshotAndState_Proxy( 
    IConsole * This,
    /* [retval][out] */ IProgress **aProgress);


void __RPC_STUB IConsole_DiscardCurrentSnapshotAndState_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsole_RegisterCallback_Proxy( 
    IConsole * This,
    /* [in] */ IConsoleCallback *aCallback);


void __RPC_STUB IConsole_RegisterCallback_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IConsole_UnregisterCallback_Proxy( 
    IConsole * This,
    /* [in] */ IConsoleCallback *aCallback);


void __RPC_STUB IConsole_UnregisterCallback_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IConsole_INTERFACE_DEFINED__ */


#ifndef __IHostDVDDrive_INTERFACE_DEFINED__
#define __IHostDVDDrive_INTERFACE_DEFINED__

/* interface IHostDVDDrive */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IHostDVDDrive;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("21f86694-202d-4ce4-8b05-a63ff82dbf4c")
    IHostDVDDrive : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *aName) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Description( 
            /* [retval][out] */ BSTR *aDescription) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Udi( 
            /* [retval][out] */ BSTR *aUdi) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IHostDVDDriveVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IHostDVDDrive * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IHostDVDDrive * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IHostDVDDrive * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IHostDVDDrive * This,
            /* [retval][out] */ BSTR *aName);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Description )( 
            IHostDVDDrive * This,
            /* [retval][out] */ BSTR *aDescription);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Udi )( 
            IHostDVDDrive * This,
            /* [retval][out] */ BSTR *aUdi);
        
        END_INTERFACE
    } IHostDVDDriveVtbl;

    interface IHostDVDDrive
    {
        CONST_VTBL struct IHostDVDDriveVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IHostDVDDrive_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IHostDVDDrive_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IHostDVDDrive_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IHostDVDDrive_get_Name(This,aName)	\
    (This)->lpVtbl -> get_Name(This,aName)

#define IHostDVDDrive_get_Description(This,aDescription)	\
    (This)->lpVtbl -> get_Description(This,aDescription)

#define IHostDVDDrive_get_Udi(This,aUdi)	\
    (This)->lpVtbl -> get_Udi(This,aUdi)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IHostDVDDrive_get_Name_Proxy( 
    IHostDVDDrive * This,
    /* [retval][out] */ BSTR *aName);


void __RPC_STUB IHostDVDDrive_get_Name_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHostDVDDrive_get_Description_Proxy( 
    IHostDVDDrive * This,
    /* [retval][out] */ BSTR *aDescription);


void __RPC_STUB IHostDVDDrive_get_Description_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHostDVDDrive_get_Udi_Proxy( 
    IHostDVDDrive * This,
    /* [retval][out] */ BSTR *aUdi);


void __RPC_STUB IHostDVDDrive_get_Udi_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IHostDVDDrive_INTERFACE_DEFINED__ */


#ifndef __IHostDVDDriveEnumerator_INTERFACE_DEFINED__
#define __IHostDVDDriveEnumerator_INTERFACE_DEFINED__

/* interface IHostDVDDriveEnumerator */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IHostDVDDriveEnumerator;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1ed7cfaf-c363-40df-aa4e-89c1afb7d96b")
    IHostDVDDriveEnumerator : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE HasMore( 
            /* [retval][out] */ BOOL *more) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetNext( 
            /* [retval][out] */ IHostDVDDrive **next) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IHostDVDDriveEnumeratorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IHostDVDDriveEnumerator * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IHostDVDDriveEnumerator * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IHostDVDDriveEnumerator * This);
        
        HRESULT ( STDMETHODCALLTYPE *HasMore )( 
            IHostDVDDriveEnumerator * This,
            /* [retval][out] */ BOOL *more);
        
        HRESULT ( STDMETHODCALLTYPE *GetNext )( 
            IHostDVDDriveEnumerator * This,
            /* [retval][out] */ IHostDVDDrive **next);
        
        END_INTERFACE
    } IHostDVDDriveEnumeratorVtbl;

    interface IHostDVDDriveEnumerator
    {
        CONST_VTBL struct IHostDVDDriveEnumeratorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IHostDVDDriveEnumerator_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IHostDVDDriveEnumerator_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IHostDVDDriveEnumerator_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IHostDVDDriveEnumerator_HasMore(This,more)	\
    (This)->lpVtbl -> HasMore(This,more)

#define IHostDVDDriveEnumerator_GetNext(This,next)	\
    (This)->lpVtbl -> GetNext(This,next)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IHostDVDDriveEnumerator_HasMore_Proxy( 
    IHostDVDDriveEnumerator * This,
    /* [retval][out] */ BOOL *more);


void __RPC_STUB IHostDVDDriveEnumerator_HasMore_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHostDVDDriveEnumerator_GetNext_Proxy( 
    IHostDVDDriveEnumerator * This,
    /* [retval][out] */ IHostDVDDrive **next);


void __RPC_STUB IHostDVDDriveEnumerator_GetNext_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IHostDVDDriveEnumerator_INTERFACE_DEFINED__ */


#ifndef __IHostDVDDriveCollection_INTERFACE_DEFINED__
#define __IHostDVDDriveCollection_INTERFACE_DEFINED__

/* interface IHostDVDDriveCollection */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IHostDVDDriveCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1909c533-1a1e-445f-a4e1-a267cffc30ed")
    IHostDVDDriveCollection : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ ULONG *count) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetItemAt( 
            /* [in] */ ULONG index,
            /* [retval][out] */ IHostDVDDrive **item) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Enumerate( 
            /* [retval][out] */ IHostDVDDriveEnumerator **enumerator) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE FindByName( 
            /* [in] */ BSTR aName,
            /* [retval][out] */ IHostDVDDrive **aDrive) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IHostDVDDriveCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IHostDVDDriveCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IHostDVDDriveCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IHostDVDDriveCollection * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IHostDVDDriveCollection * This,
            /* [retval][out] */ ULONG *count);
        
        HRESULT ( STDMETHODCALLTYPE *GetItemAt )( 
            IHostDVDDriveCollection * This,
            /* [in] */ ULONG index,
            /* [retval][out] */ IHostDVDDrive **item);
        
        HRESULT ( STDMETHODCALLTYPE *Enumerate )( 
            IHostDVDDriveCollection * This,
            /* [retval][out] */ IHostDVDDriveEnumerator **enumerator);
        
        HRESULT ( STDMETHODCALLTYPE *FindByName )( 
            IHostDVDDriveCollection * This,
            /* [in] */ BSTR aName,
            /* [retval][out] */ IHostDVDDrive **aDrive);
        
        END_INTERFACE
    } IHostDVDDriveCollectionVtbl;

    interface IHostDVDDriveCollection
    {
        CONST_VTBL struct IHostDVDDriveCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IHostDVDDriveCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IHostDVDDriveCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IHostDVDDriveCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IHostDVDDriveCollection_get_Count(This,count)	\
    (This)->lpVtbl -> get_Count(This,count)

#define IHostDVDDriveCollection_GetItemAt(This,index,item)	\
    (This)->lpVtbl -> GetItemAt(This,index,item)

#define IHostDVDDriveCollection_Enumerate(This,enumerator)	\
    (This)->lpVtbl -> Enumerate(This,enumerator)

#define IHostDVDDriveCollection_FindByName(This,aName,aDrive)	\
    (This)->lpVtbl -> FindByName(This,aName,aDrive)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IHostDVDDriveCollection_get_Count_Proxy( 
    IHostDVDDriveCollection * This,
    /* [retval][out] */ ULONG *count);


void __RPC_STUB IHostDVDDriveCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHostDVDDriveCollection_GetItemAt_Proxy( 
    IHostDVDDriveCollection * This,
    /* [in] */ ULONG index,
    /* [retval][out] */ IHostDVDDrive **item);


void __RPC_STUB IHostDVDDriveCollection_GetItemAt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHostDVDDriveCollection_Enumerate_Proxy( 
    IHostDVDDriveCollection * This,
    /* [retval][out] */ IHostDVDDriveEnumerator **enumerator);


void __RPC_STUB IHostDVDDriveCollection_Enumerate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHostDVDDriveCollection_FindByName_Proxy( 
    IHostDVDDriveCollection * This,
    /* [in] */ BSTR aName,
    /* [retval][out] */ IHostDVDDrive **aDrive);


void __RPC_STUB IHostDVDDriveCollection_FindByName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IHostDVDDriveCollection_INTERFACE_DEFINED__ */


#ifndef __IHostFloppyDrive_INTERFACE_DEFINED__
#define __IHostFloppyDrive_INTERFACE_DEFINED__

/* interface IHostFloppyDrive */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IHostFloppyDrive;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("b6a4d1a9-4221-43c3-bd52-021a5daa9ed2")
    IHostFloppyDrive : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *aName) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Description( 
            /* [retval][out] */ BSTR *aDescription) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Udi( 
            /* [retval][out] */ BSTR *aUdi) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IHostFloppyDriveVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IHostFloppyDrive * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IHostFloppyDrive * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IHostFloppyDrive * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IHostFloppyDrive * This,
            /* [retval][out] */ BSTR *aName);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Description )( 
            IHostFloppyDrive * This,
            /* [retval][out] */ BSTR *aDescription);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Udi )( 
            IHostFloppyDrive * This,
            /* [retval][out] */ BSTR *aUdi);
        
        END_INTERFACE
    } IHostFloppyDriveVtbl;

    interface IHostFloppyDrive
    {
        CONST_VTBL struct IHostFloppyDriveVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IHostFloppyDrive_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IHostFloppyDrive_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IHostFloppyDrive_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IHostFloppyDrive_get_Name(This,aName)	\
    (This)->lpVtbl -> get_Name(This,aName)

#define IHostFloppyDrive_get_Description(This,aDescription)	\
    (This)->lpVtbl -> get_Description(This,aDescription)

#define IHostFloppyDrive_get_Udi(This,aUdi)	\
    (This)->lpVtbl -> get_Udi(This,aUdi)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IHostFloppyDrive_get_Name_Proxy( 
    IHostFloppyDrive * This,
    /* [retval][out] */ BSTR *aName);


void __RPC_STUB IHostFloppyDrive_get_Name_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHostFloppyDrive_get_Description_Proxy( 
    IHostFloppyDrive * This,
    /* [retval][out] */ BSTR *aDescription);


void __RPC_STUB IHostFloppyDrive_get_Description_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHostFloppyDrive_get_Udi_Proxy( 
    IHostFloppyDrive * This,
    /* [retval][out] */ BSTR *aUdi);


void __RPC_STUB IHostFloppyDrive_get_Udi_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IHostFloppyDrive_INTERFACE_DEFINED__ */


#ifndef __IHostFloppyDriveEnumerator_INTERFACE_DEFINED__
#define __IHostFloppyDriveEnumerator_INTERFACE_DEFINED__

/* interface IHostFloppyDriveEnumerator */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IHostFloppyDriveEnumerator;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("ce04c924-4f54-432a-9dec-11fddc3ea875")
    IHostFloppyDriveEnumerator : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE HasMore( 
            /* [retval][out] */ BOOL *more) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetNext( 
            /* [retval][out] */ IHostFloppyDrive **next) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IHostFloppyDriveEnumeratorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IHostFloppyDriveEnumerator * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IHostFloppyDriveEnumerator * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IHostFloppyDriveEnumerator * This);
        
        HRESULT ( STDMETHODCALLTYPE *HasMore )( 
            IHostFloppyDriveEnumerator * This,
            /* [retval][out] */ BOOL *more);
        
        HRESULT ( STDMETHODCALLTYPE *GetNext )( 
            IHostFloppyDriveEnumerator * This,
            /* [retval][out] */ IHostFloppyDrive **next);
        
        END_INTERFACE
    } IHostFloppyDriveEnumeratorVtbl;

    interface IHostFloppyDriveEnumerator
    {
        CONST_VTBL struct IHostFloppyDriveEnumeratorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IHostFloppyDriveEnumerator_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IHostFloppyDriveEnumerator_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IHostFloppyDriveEnumerator_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IHostFloppyDriveEnumerator_HasMore(This,more)	\
    (This)->lpVtbl -> HasMore(This,more)

#define IHostFloppyDriveEnumerator_GetNext(This,next)	\
    (This)->lpVtbl -> GetNext(This,next)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IHostFloppyDriveEnumerator_HasMore_Proxy( 
    IHostFloppyDriveEnumerator * This,
    /* [retval][out] */ BOOL *more);


void __RPC_STUB IHostFloppyDriveEnumerator_HasMore_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHostFloppyDriveEnumerator_GetNext_Proxy( 
    IHostFloppyDriveEnumerator * This,
    /* [retval][out] */ IHostFloppyDrive **next);


void __RPC_STUB IHostFloppyDriveEnumerator_GetNext_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IHostFloppyDriveEnumerator_INTERFACE_DEFINED__ */


#ifndef __IHostFloppyDriveCollection_INTERFACE_DEFINED__
#define __IHostFloppyDriveCollection_INTERFACE_DEFINED__

/* interface IHostFloppyDriveCollection */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IHostFloppyDriveCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("fd84bb86-c59a-4037-a557-755ff263a460")
    IHostFloppyDriveCollection : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ ULONG *count) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetItemAt( 
            /* [in] */ ULONG index,
            /* [retval][out] */ IHostFloppyDrive **item) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Enumerate( 
            /* [retval][out] */ IHostFloppyDriveEnumerator **enumerator) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE FindByName( 
            /* [in] */ BSTR aName,
            /* [retval][out] */ IHostFloppyDrive **aDrive) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IHostFloppyDriveCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IHostFloppyDriveCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IHostFloppyDriveCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IHostFloppyDriveCollection * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IHostFloppyDriveCollection * This,
            /* [retval][out] */ ULONG *count);
        
        HRESULT ( STDMETHODCALLTYPE *GetItemAt )( 
            IHostFloppyDriveCollection * This,
            /* [in] */ ULONG index,
            /* [retval][out] */ IHostFloppyDrive **item);
        
        HRESULT ( STDMETHODCALLTYPE *Enumerate )( 
            IHostFloppyDriveCollection * This,
            /* [retval][out] */ IHostFloppyDriveEnumerator **enumerator);
        
        HRESULT ( STDMETHODCALLTYPE *FindByName )( 
            IHostFloppyDriveCollection * This,
            /* [in] */ BSTR aName,
            /* [retval][out] */ IHostFloppyDrive **aDrive);
        
        END_INTERFACE
    } IHostFloppyDriveCollectionVtbl;

    interface IHostFloppyDriveCollection
    {
        CONST_VTBL struct IHostFloppyDriveCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IHostFloppyDriveCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IHostFloppyDriveCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IHostFloppyDriveCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IHostFloppyDriveCollection_get_Count(This,count)	\
    (This)->lpVtbl -> get_Count(This,count)

#define IHostFloppyDriveCollection_GetItemAt(This,index,item)	\
    (This)->lpVtbl -> GetItemAt(This,index,item)

#define IHostFloppyDriveCollection_Enumerate(This,enumerator)	\
    (This)->lpVtbl -> Enumerate(This,enumerator)

#define IHostFloppyDriveCollection_FindByName(This,aName,aDrive)	\
    (This)->lpVtbl -> FindByName(This,aName,aDrive)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IHostFloppyDriveCollection_get_Count_Proxy( 
    IHostFloppyDriveCollection * This,
    /* [retval][out] */ ULONG *count);


void __RPC_STUB IHostFloppyDriveCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHostFloppyDriveCollection_GetItemAt_Proxy( 
    IHostFloppyDriveCollection * This,
    /* [in] */ ULONG index,
    /* [retval][out] */ IHostFloppyDrive **item);


void __RPC_STUB IHostFloppyDriveCollection_GetItemAt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHostFloppyDriveCollection_Enumerate_Proxy( 
    IHostFloppyDriveCollection * This,
    /* [retval][out] */ IHostFloppyDriveEnumerator **enumerator);


void __RPC_STUB IHostFloppyDriveCollection_Enumerate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHostFloppyDriveCollection_FindByName_Proxy( 
    IHostFloppyDriveCollection * This,
    /* [in] */ BSTR aName,
    /* [retval][out] */ IHostFloppyDrive **aDrive);


void __RPC_STUB IHostFloppyDriveCollection_FindByName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IHostFloppyDriveCollection_INTERFACE_DEFINED__ */


#ifndef __IHostNetworkInterface_INTERFACE_DEFINED__
#define __IHostNetworkInterface_INTERFACE_DEFINED__

/* interface IHostNetworkInterface */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IHostNetworkInterface;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F4512D7C-B074-4e97-99B8-6D2BD27C3F5A")
    IHostNetworkInterface : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *aName) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Id( 
            /* [retval][out] */ GUID *aId) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IHostNetworkInterfaceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IHostNetworkInterface * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IHostNetworkInterface * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IHostNetworkInterface * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IHostNetworkInterface * This,
            /* [retval][out] */ BSTR *aName);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Id )( 
            IHostNetworkInterface * This,
            /* [retval][out] */ GUID *aId);
        
        END_INTERFACE
    } IHostNetworkInterfaceVtbl;

    interface IHostNetworkInterface
    {
        CONST_VTBL struct IHostNetworkInterfaceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IHostNetworkInterface_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IHostNetworkInterface_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IHostNetworkInterface_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IHostNetworkInterface_get_Name(This,aName)	\
    (This)->lpVtbl -> get_Name(This,aName)

#define IHostNetworkInterface_get_Id(This,aId)	\
    (This)->lpVtbl -> get_Id(This,aId)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IHostNetworkInterface_get_Name_Proxy( 
    IHostNetworkInterface * This,
    /* [retval][out] */ BSTR *aName);


void __RPC_STUB IHostNetworkInterface_get_Name_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHostNetworkInterface_get_Id_Proxy( 
    IHostNetworkInterface * This,
    /* [retval][out] */ GUID *aId);


void __RPC_STUB IHostNetworkInterface_get_Id_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IHostNetworkInterface_INTERFACE_DEFINED__ */


#ifndef __IHostNetworkInterfaceEnumerator_INTERFACE_DEFINED__
#define __IHostNetworkInterfaceEnumerator_INTERFACE_DEFINED__

/* interface IHostNetworkInterfaceEnumerator */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IHostNetworkInterfaceEnumerator;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7B52FEF7-56E8-4aec-92F5-15E6D11EC630")
    IHostNetworkInterfaceEnumerator : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE HasMore( 
            /* [retval][out] */ BOOL *more) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetNext( 
            /* [retval][out] */ IHostNetworkInterface **next) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IHostNetworkInterfaceEnumeratorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IHostNetworkInterfaceEnumerator * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IHostNetworkInterfaceEnumerator * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IHostNetworkInterfaceEnumerator * This);
        
        HRESULT ( STDMETHODCALLTYPE *HasMore )( 
            IHostNetworkInterfaceEnumerator * This,
            /* [retval][out] */ BOOL *more);
        
        HRESULT ( STDMETHODCALLTYPE *GetNext )( 
            IHostNetworkInterfaceEnumerator * This,
            /* [retval][out] */ IHostNetworkInterface **next);
        
        END_INTERFACE
    } IHostNetworkInterfaceEnumeratorVtbl;

    interface IHostNetworkInterfaceEnumerator
    {
        CONST_VTBL struct IHostNetworkInterfaceEnumeratorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IHostNetworkInterfaceEnumerator_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IHostNetworkInterfaceEnumerator_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IHostNetworkInterfaceEnumerator_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IHostNetworkInterfaceEnumerator_HasMore(This,more)	\
    (This)->lpVtbl -> HasMore(This,more)

#define IHostNetworkInterfaceEnumerator_GetNext(This,next)	\
    (This)->lpVtbl -> GetNext(This,next)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IHostNetworkInterfaceEnumerator_HasMore_Proxy( 
    IHostNetworkInterfaceEnumerator * This,
    /* [retval][out] */ BOOL *more);


void __RPC_STUB IHostNetworkInterfaceEnumerator_HasMore_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHostNetworkInterfaceEnumerator_GetNext_Proxy( 
    IHostNetworkInterfaceEnumerator * This,
    /* [retval][out] */ IHostNetworkInterface **next);


void __RPC_STUB IHostNetworkInterfaceEnumerator_GetNext_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IHostNetworkInterfaceEnumerator_INTERFACE_DEFINED__ */


#ifndef __IHostNetworkInterfaceCollection_INTERFACE_DEFINED__
#define __IHostNetworkInterfaceCollection_INTERFACE_DEFINED__

/* interface IHostNetworkInterfaceCollection */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IHostNetworkInterfaceCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("BF1D41F2-B97B-4314-A0FB-D4823AF42FB5")
    IHostNetworkInterfaceCollection : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ ULONG *count) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetItemAt( 
            /* [in] */ ULONG index,
            /* [retval][out] */ IHostNetworkInterface **item) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Enumerate( 
            /* [retval][out] */ IHostNetworkInterfaceEnumerator **enumerator) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE FindByName( 
            /* [in] */ BSTR aName,
            /* [retval][out] */ IHostNetworkInterface **aNetworkInterface) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE FindById( 
            /* [in] */ GUID aId,
            /* [retval][out] */ IHostNetworkInterface **aNetworkInterface) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IHostNetworkInterfaceCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IHostNetworkInterfaceCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IHostNetworkInterfaceCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IHostNetworkInterfaceCollection * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IHostNetworkInterfaceCollection * This,
            /* [retval][out] */ ULONG *count);
        
        HRESULT ( STDMETHODCALLTYPE *GetItemAt )( 
            IHostNetworkInterfaceCollection * This,
            /* [in] */ ULONG index,
            /* [retval][out] */ IHostNetworkInterface **item);
        
        HRESULT ( STDMETHODCALLTYPE *Enumerate )( 
            IHostNetworkInterfaceCollection * This,
            /* [retval][out] */ IHostNetworkInterfaceEnumerator **enumerator);
        
        HRESULT ( STDMETHODCALLTYPE *FindByName )( 
            IHostNetworkInterfaceCollection * This,
            /* [in] */ BSTR aName,
            /* [retval][out] */ IHostNetworkInterface **aNetworkInterface);
        
        HRESULT ( STDMETHODCALLTYPE *FindById )( 
            IHostNetworkInterfaceCollection * This,
            /* [in] */ GUID aId,
            /* [retval][out] */ IHostNetworkInterface **aNetworkInterface);
        
        END_INTERFACE
    } IHostNetworkInterfaceCollectionVtbl;

    interface IHostNetworkInterfaceCollection
    {
        CONST_VTBL struct IHostNetworkInterfaceCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IHostNetworkInterfaceCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IHostNetworkInterfaceCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IHostNetworkInterfaceCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IHostNetworkInterfaceCollection_get_Count(This,count)	\
    (This)->lpVtbl -> get_Count(This,count)

#define IHostNetworkInterfaceCollection_GetItemAt(This,index,item)	\
    (This)->lpVtbl -> GetItemAt(This,index,item)

#define IHostNetworkInterfaceCollection_Enumerate(This,enumerator)	\
    (This)->lpVtbl -> Enumerate(This,enumerator)

#define IHostNetworkInterfaceCollection_FindByName(This,aName,aNetworkInterface)	\
    (This)->lpVtbl -> FindByName(This,aName,aNetworkInterface)

#define IHostNetworkInterfaceCollection_FindById(This,aId,aNetworkInterface)	\
    (This)->lpVtbl -> FindById(This,aId,aNetworkInterface)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IHostNetworkInterfaceCollection_get_Count_Proxy( 
    IHostNetworkInterfaceCollection * This,
    /* [retval][out] */ ULONG *count);


void __RPC_STUB IHostNetworkInterfaceCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHostNetworkInterfaceCollection_GetItemAt_Proxy( 
    IHostNetworkInterfaceCollection * This,
    /* [in] */ ULONG index,
    /* [retval][out] */ IHostNetworkInterface **item);


void __RPC_STUB IHostNetworkInterfaceCollection_GetItemAt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHostNetworkInterfaceCollection_Enumerate_Proxy( 
    IHostNetworkInterfaceCollection * This,
    /* [retval][out] */ IHostNetworkInterfaceEnumerator **enumerator);


void __RPC_STUB IHostNetworkInterfaceCollection_Enumerate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHostNetworkInterfaceCollection_FindByName_Proxy( 
    IHostNetworkInterfaceCollection * This,
    /* [in] */ BSTR aName,
    /* [retval][out] */ IHostNetworkInterface **aNetworkInterface);


void __RPC_STUB IHostNetworkInterfaceCollection_FindByName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHostNetworkInterfaceCollection_FindById_Proxy( 
    IHostNetworkInterfaceCollection * This,
    /* [in] */ GUID aId,
    /* [retval][out] */ IHostNetworkInterface **aNetworkInterface);


void __RPC_STUB IHostNetworkInterfaceCollection_FindById_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IHostNetworkInterfaceCollection_INTERFACE_DEFINED__ */


#ifndef __IHost_INTERFACE_DEFINED__
#define __IHost_INTERFACE_DEFINED__

/* interface IHost */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IHost;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("489fb370-c227-4d43-9761-ceb28484fd9f")
    IHost : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DVDDrives( 
            /* [retval][out] */ IHostDVDDriveCollection **aDVDDrives) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FloppyDrives( 
            /* [retval][out] */ IHostFloppyDriveCollection **aFloppyDrives) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_USBDevices( 
            /* [retval][out] */ IHostUSBDeviceCollection **aUSBDevices) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_USBDeviceFilters( 
            /* [retval][out] */ IHostUSBDeviceFilterCollection **aUSBDeviceFilters) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_NetworkInterfaces( 
            /* [retval][out] */ IHostNetworkInterfaceCollection **aNetworkInterfaces) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ProcessorCount( 
            /* [retval][out] */ ULONG *aProcessorCount) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ProcessorOnlineCount( 
            /* [retval][out] */ ULONG *aProcessorOnlineCount) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MemorySize( 
            /* [retval][out] */ ULONG *aMemorySize) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MemoryAvailable( 
            /* [retval][out] */ ULONG *aMemoryAvailable) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_OperatingSystem( 
            /* [retval][out] */ BSTR *aOperatingSystem) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_OSVersion( 
            /* [retval][out] */ BSTR *aOSVersion) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_UTCTime( 
            /* [retval][out] */ LONG64 *aUTCTime) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetProcessorSpeed( 
            /* [in] */ ULONG aCpuId,
            /* [retval][out] */ ULONG *aSpeed) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetProcessorDescription( 
            /* [in] */ ULONG aCpuId,
            /* [retval][out] */ BSTR *aDescription) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateUSBDeviceFilter( 
            /* [in] */ BSTR aName,
            /* [retval][out] */ IHostUSBDeviceFilter **aFilter) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE InsertUSBDeviceFilter( 
            /* [in] */ ULONG aPosition,
            /* [in] */ IHostUSBDeviceFilter *aFilter) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveUSBDeviceFilter( 
            /* [in] */ ULONG aPosition,
            /* [retval][out] */ IHostUSBDeviceFilter **aFilter) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateHostNetworkInterface( 
            /* [in] */ BSTR aName,
            /* [out] */ IHostNetworkInterface **aHostInterface,
            /* [retval][out] */ IProgress **aProgress) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveHostNetworkInterface( 
            /* [in] */ GUID aId,
            /* [out] */ IHostNetworkInterface **aHostInterface,
            /* [retval][out] */ IProgress **aProgress) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IHostVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IHost * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IHost * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IHost * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_DVDDrives )( 
            IHost * This,
            /* [retval][out] */ IHostDVDDriveCollection **aDVDDrives);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_FloppyDrives )( 
            IHost * This,
            /* [retval][out] */ IHostFloppyDriveCollection **aFloppyDrives);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_USBDevices )( 
            IHost * This,
            /* [retval][out] */ IHostUSBDeviceCollection **aUSBDevices);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_USBDeviceFilters )( 
            IHost * This,
            /* [retval][out] */ IHostUSBDeviceFilterCollection **aUSBDeviceFilters);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_NetworkInterfaces )( 
            IHost * This,
            /* [retval][out] */ IHostNetworkInterfaceCollection **aNetworkInterfaces);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ProcessorCount )( 
            IHost * This,
            /* [retval][out] */ ULONG *aProcessorCount);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ProcessorOnlineCount )( 
            IHost * This,
            /* [retval][out] */ ULONG *aProcessorOnlineCount);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MemorySize )( 
            IHost * This,
            /* [retval][out] */ ULONG *aMemorySize);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MemoryAvailable )( 
            IHost * This,
            /* [retval][out] */ ULONG *aMemoryAvailable);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_OperatingSystem )( 
            IHost * This,
            /* [retval][out] */ BSTR *aOperatingSystem);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_OSVersion )( 
            IHost * This,
            /* [retval][out] */ BSTR *aOSVersion);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_UTCTime )( 
            IHost * This,
            /* [retval][out] */ LONG64 *aUTCTime);
        
        HRESULT ( STDMETHODCALLTYPE *GetProcessorSpeed )( 
            IHost * This,
            /* [in] */ ULONG aCpuId,
            /* [retval][out] */ ULONG *aSpeed);
        
        HRESULT ( STDMETHODCALLTYPE *GetProcessorDescription )( 
            IHost * This,
            /* [in] */ ULONG aCpuId,
            /* [retval][out] */ BSTR *aDescription);
        
        HRESULT ( STDMETHODCALLTYPE *CreateUSBDeviceFilter )( 
            IHost * This,
            /* [in] */ BSTR aName,
            /* [retval][out] */ IHostUSBDeviceFilter **aFilter);
        
        HRESULT ( STDMETHODCALLTYPE *InsertUSBDeviceFilter )( 
            IHost * This,
            /* [in] */ ULONG aPosition,
            /* [in] */ IHostUSBDeviceFilter *aFilter);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveUSBDeviceFilter )( 
            IHost * This,
            /* [in] */ ULONG aPosition,
            /* [retval][out] */ IHostUSBDeviceFilter **aFilter);
        
        HRESULT ( STDMETHODCALLTYPE *CreateHostNetworkInterface )( 
            IHost * This,
            /* [in] */ BSTR aName,
            /* [out] */ IHostNetworkInterface **aHostInterface,
            /* [retval][out] */ IProgress **aProgress);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveHostNetworkInterface )( 
            IHost * This,
            /* [in] */ GUID aId,
            /* [out] */ IHostNetworkInterface **aHostInterface,
            /* [retval][out] */ IProgress **aProgress);
        
        END_INTERFACE
    } IHostVtbl;

    interface IHost
    {
        CONST_VTBL struct IHostVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IHost_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IHost_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IHost_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IHost_get_DVDDrives(This,aDVDDrives)	\
    (This)->lpVtbl -> get_DVDDrives(This,aDVDDrives)

#define IHost_get_FloppyDrives(This,aFloppyDrives)	\
    (This)->lpVtbl -> get_FloppyDrives(This,aFloppyDrives)

#define IHost_get_USBDevices(This,aUSBDevices)	\
    (This)->lpVtbl -> get_USBDevices(This,aUSBDevices)

#define IHost_get_USBDeviceFilters(This,aUSBDeviceFilters)	\
    (This)->lpVtbl -> get_USBDeviceFilters(This,aUSBDeviceFilters)

#define IHost_get_NetworkInterfaces(This,aNetworkInterfaces)	\
    (This)->lpVtbl -> get_NetworkInterfaces(This,aNetworkInterfaces)

#define IHost_get_ProcessorCount(This,aProcessorCount)	\
    (This)->lpVtbl -> get_ProcessorCount(This,aProcessorCount)

#define IHost_get_ProcessorOnlineCount(This,aProcessorOnlineCount)	\
    (This)->lpVtbl -> get_ProcessorOnlineCount(This,aProcessorOnlineCount)

#define IHost_get_MemorySize(This,aMemorySize)	\
    (This)->lpVtbl -> get_MemorySize(This,aMemorySize)

#define IHost_get_MemoryAvailable(This,aMemoryAvailable)	\
    (This)->lpVtbl -> get_MemoryAvailable(This,aMemoryAvailable)

#define IHost_get_OperatingSystem(This,aOperatingSystem)	\
    (This)->lpVtbl -> get_OperatingSystem(This,aOperatingSystem)

#define IHost_get_OSVersion(This,aOSVersion)	\
    (This)->lpVtbl -> get_OSVersion(This,aOSVersion)

#define IHost_get_UTCTime(This,aUTCTime)	\
    (This)->lpVtbl -> get_UTCTime(This,aUTCTime)

#define IHost_GetProcessorSpeed(This,aCpuId,aSpeed)	\
    (This)->lpVtbl -> GetProcessorSpeed(This,aCpuId,aSpeed)

#define IHost_GetProcessorDescription(This,aCpuId,aDescription)	\
    (This)->lpVtbl -> GetProcessorDescription(This,aCpuId,aDescription)

#define IHost_CreateUSBDeviceFilter(This,aName,aFilter)	\
    (This)->lpVtbl -> CreateUSBDeviceFilter(This,aName,aFilter)

#define IHost_InsertUSBDeviceFilter(This,aPosition,aFilter)	\
    (This)->lpVtbl -> InsertUSBDeviceFilter(This,aPosition,aFilter)

#define IHost_RemoveUSBDeviceFilter(This,aPosition,aFilter)	\
    (This)->lpVtbl -> RemoveUSBDeviceFilter(This,aPosition,aFilter)

#define IHost_CreateHostNetworkInterface(This,aName,aHostInterface,aProgress)	\
    (This)->lpVtbl -> CreateHostNetworkInterface(This,aName,aHostInterface,aProgress)

#define IHost_RemoveHostNetworkInterface(This,aId,aHostInterface,aProgress)	\
    (This)->lpVtbl -> RemoveHostNetworkInterface(This,aId,aHostInterface,aProgress)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IHost_get_DVDDrives_Proxy( 
    IHost * This,
    /* [retval][out] */ IHostDVDDriveCollection **aDVDDrives);


void __RPC_STUB IHost_get_DVDDrives_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHost_get_FloppyDrives_Proxy( 
    IHost * This,
    /* [retval][out] */ IHostFloppyDriveCollection **aFloppyDrives);


void __RPC_STUB IHost_get_FloppyDrives_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHost_get_USBDevices_Proxy( 
    IHost * This,
    /* [retval][out] */ IHostUSBDeviceCollection **aUSBDevices);


void __RPC_STUB IHost_get_USBDevices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHost_get_USBDeviceFilters_Proxy( 
    IHost * This,
    /* [retval][out] */ IHostUSBDeviceFilterCollection **aUSBDeviceFilters);


void __RPC_STUB IHost_get_USBDeviceFilters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHost_get_NetworkInterfaces_Proxy( 
    IHost * This,
    /* [retval][out] */ IHostNetworkInterfaceCollection **aNetworkInterfaces);


void __RPC_STUB IHost_get_NetworkInterfaces_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHost_get_ProcessorCount_Proxy( 
    IHost * This,
    /* [retval][out] */ ULONG *aProcessorCount);


void __RPC_STUB IHost_get_ProcessorCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHost_get_ProcessorOnlineCount_Proxy( 
    IHost * This,
    /* [retval][out] */ ULONG *aProcessorOnlineCount);


void __RPC_STUB IHost_get_ProcessorOnlineCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHost_get_MemorySize_Proxy( 
    IHost * This,
    /* [retval][out] */ ULONG *aMemorySize);


void __RPC_STUB IHost_get_MemorySize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHost_get_MemoryAvailable_Proxy( 
    IHost * This,
    /* [retval][out] */ ULONG *aMemoryAvailable);


void __RPC_STUB IHost_get_MemoryAvailable_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHost_get_OperatingSystem_Proxy( 
    IHost * This,
    /* [retval][out] */ BSTR *aOperatingSystem);


void __RPC_STUB IHost_get_OperatingSystem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHost_get_OSVersion_Proxy( 
    IHost * This,
    /* [retval][out] */ BSTR *aOSVersion);


void __RPC_STUB IHost_get_OSVersion_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHost_get_UTCTime_Proxy( 
    IHost * This,
    /* [retval][out] */ LONG64 *aUTCTime);


void __RPC_STUB IHost_get_UTCTime_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHost_GetProcessorSpeed_Proxy( 
    IHost * This,
    /* [in] */ ULONG aCpuId,
    /* [retval][out] */ ULONG *aSpeed);


void __RPC_STUB IHost_GetProcessorSpeed_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHost_GetProcessorDescription_Proxy( 
    IHost * This,
    /* [in] */ ULONG aCpuId,
    /* [retval][out] */ BSTR *aDescription);


void __RPC_STUB IHost_GetProcessorDescription_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHost_CreateUSBDeviceFilter_Proxy( 
    IHost * This,
    /* [in] */ BSTR aName,
    /* [retval][out] */ IHostUSBDeviceFilter **aFilter);


void __RPC_STUB IHost_CreateUSBDeviceFilter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHost_InsertUSBDeviceFilter_Proxy( 
    IHost * This,
    /* [in] */ ULONG aPosition,
    /* [in] */ IHostUSBDeviceFilter *aFilter);


void __RPC_STUB IHost_InsertUSBDeviceFilter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHost_RemoveUSBDeviceFilter_Proxy( 
    IHost * This,
    /* [in] */ ULONG aPosition,
    /* [retval][out] */ IHostUSBDeviceFilter **aFilter);


void __RPC_STUB IHost_RemoveUSBDeviceFilter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHost_CreateHostNetworkInterface_Proxy( 
    IHost * This,
    /* [in] */ BSTR aName,
    /* [out] */ IHostNetworkInterface **aHostInterface,
    /* [retval][out] */ IProgress **aProgress);


void __RPC_STUB IHost_CreateHostNetworkInterface_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHost_RemoveHostNetworkInterface_Proxy( 
    IHost * This,
    /* [in] */ GUID aId,
    /* [out] */ IHostNetworkInterface **aHostInterface,
    /* [retval][out] */ IProgress **aProgress);


void __RPC_STUB IHost_RemoveHostNetworkInterface_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IHost_INTERFACE_DEFINED__ */


#ifndef __ISystemProperties_INTERFACE_DEFINED__
#define __ISystemProperties_INTERFACE_DEFINED__

/* interface ISystemProperties */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_ISystemProperties;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("12c2e31e-247f-4d51-82e5-5b9d4a6c7d5b")
    ISystemProperties : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MinGuestRAM( 
            /* [retval][out] */ ULONG *aMinGuestRAM) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MaxGuestRAM( 
            /* [retval][out] */ ULONG *aMaxGuestRAM) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MinGuestVRAM( 
            /* [retval][out] */ ULONG *aMinGuestVRAM) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MaxGuestVRAM( 
            /* [retval][out] */ ULONG *aMaxGuestVRAM) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MaxVDISize( 
            /* [retval][out] */ ULONG64 *aMaxVDISize) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_NetworkAdapterCount( 
            /* [retval][out] */ ULONG *aNetworkAdapterCount) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SerialPortCount( 
            /* [retval][out] */ ULONG *aSerialPortCount) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ParallelPortCount( 
            /* [retval][out] */ ULONG *aParallelPortCount) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MaxBootPosition( 
            /* [retval][out] */ ULONG *aMaxBootPosition) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DefaultVDIFolder( 
            /* [retval][out] */ BSTR *aDefaultVDIFolder) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_DefaultVDIFolder( 
            /* [in] */ BSTR aDefaultVDIFolder) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DefaultMachineFolder( 
            /* [retval][out] */ BSTR *aDefaultMachineFolder) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_DefaultMachineFolder( 
            /* [in] */ BSTR aDefaultMachineFolder) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RemoteDisplayAuthLibrary( 
            /* [retval][out] */ BSTR *aRemoteDisplayAuthLibrary) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_RemoteDisplayAuthLibrary( 
            /* [in] */ BSTR aRemoteDisplayAuthLibrary) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_WebServiceAuthLibrary( 
            /* [retval][out] */ BSTR *aWebServiceAuthLibrary) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_WebServiceAuthLibrary( 
            /* [in] */ BSTR aWebServiceAuthLibrary) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HWVirtExEnabled( 
            /* [retval][out] */ BOOL *aHWVirtExEnabled) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_HWVirtExEnabled( 
            /* [in] */ BOOL aHWVirtExEnabled) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_LogHistoryCount( 
            /* [retval][out] */ ULONG *aLogHistoryCount) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_LogHistoryCount( 
            /* [in] */ ULONG aLogHistoryCount) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISystemPropertiesVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ISystemProperties * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ISystemProperties * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ISystemProperties * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MinGuestRAM )( 
            ISystemProperties * This,
            /* [retval][out] */ ULONG *aMinGuestRAM);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MaxGuestRAM )( 
            ISystemProperties * This,
            /* [retval][out] */ ULONG *aMaxGuestRAM);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MinGuestVRAM )( 
            ISystemProperties * This,
            /* [retval][out] */ ULONG *aMinGuestVRAM);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MaxGuestVRAM )( 
            ISystemProperties * This,
            /* [retval][out] */ ULONG *aMaxGuestVRAM);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MaxVDISize )( 
            ISystemProperties * This,
            /* [retval][out] */ ULONG64 *aMaxVDISize);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_NetworkAdapterCount )( 
            ISystemProperties * This,
            /* [retval][out] */ ULONG *aNetworkAdapterCount);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SerialPortCount )( 
            ISystemProperties * This,
            /* [retval][out] */ ULONG *aSerialPortCount);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ParallelPortCount )( 
            ISystemProperties * This,
            /* [retval][out] */ ULONG *aParallelPortCount);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MaxBootPosition )( 
            ISystemProperties * This,
            /* [retval][out] */ ULONG *aMaxBootPosition);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_DefaultVDIFolder )( 
            ISystemProperties * This,
            /* [retval][out] */ BSTR *aDefaultVDIFolder);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_DefaultVDIFolder )( 
            ISystemProperties * This,
            /* [in] */ BSTR aDefaultVDIFolder);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_DefaultMachineFolder )( 
            ISystemProperties * This,
            /* [retval][out] */ BSTR *aDefaultMachineFolder);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_DefaultMachineFolder )( 
            ISystemProperties * This,
            /* [in] */ BSTR aDefaultMachineFolder);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RemoteDisplayAuthLibrary )( 
            ISystemProperties * This,
            /* [retval][out] */ BSTR *aRemoteDisplayAuthLibrary);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_RemoteDisplayAuthLibrary )( 
            ISystemProperties * This,
            /* [in] */ BSTR aRemoteDisplayAuthLibrary);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_WebServiceAuthLibrary )( 
            ISystemProperties * This,
            /* [retval][out] */ BSTR *aWebServiceAuthLibrary);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_WebServiceAuthLibrary )( 
            ISystemProperties * This,
            /* [in] */ BSTR aWebServiceAuthLibrary);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HWVirtExEnabled )( 
            ISystemProperties * This,
            /* [retval][out] */ BOOL *aHWVirtExEnabled);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_HWVirtExEnabled )( 
            ISystemProperties * This,
            /* [in] */ BOOL aHWVirtExEnabled);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_LogHistoryCount )( 
            ISystemProperties * This,
            /* [retval][out] */ ULONG *aLogHistoryCount);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_LogHistoryCount )( 
            ISystemProperties * This,
            /* [in] */ ULONG aLogHistoryCount);
        
        END_INTERFACE
    } ISystemPropertiesVtbl;

    interface ISystemProperties
    {
        CONST_VTBL struct ISystemPropertiesVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ISystemProperties_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ISystemProperties_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ISystemProperties_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ISystemProperties_get_MinGuestRAM(This,aMinGuestRAM)	\
    (This)->lpVtbl -> get_MinGuestRAM(This,aMinGuestRAM)

#define ISystemProperties_get_MaxGuestRAM(This,aMaxGuestRAM)	\
    (This)->lpVtbl -> get_MaxGuestRAM(This,aMaxGuestRAM)

#define ISystemProperties_get_MinGuestVRAM(This,aMinGuestVRAM)	\
    (This)->lpVtbl -> get_MinGuestVRAM(This,aMinGuestVRAM)

#define ISystemProperties_get_MaxGuestVRAM(This,aMaxGuestVRAM)	\
    (This)->lpVtbl -> get_MaxGuestVRAM(This,aMaxGuestVRAM)

#define ISystemProperties_get_MaxVDISize(This,aMaxVDISize)	\
    (This)->lpVtbl -> get_MaxVDISize(This,aMaxVDISize)

#define ISystemProperties_get_NetworkAdapterCount(This,aNetworkAdapterCount)	\
    (This)->lpVtbl -> get_NetworkAdapterCount(This,aNetworkAdapterCount)

#define ISystemProperties_get_SerialPortCount(This,aSerialPortCount)	\
    (This)->lpVtbl -> get_SerialPortCount(This,aSerialPortCount)

#define ISystemProperties_get_ParallelPortCount(This,aParallelPortCount)	\
    (This)->lpVtbl -> get_ParallelPortCount(This,aParallelPortCount)

#define ISystemProperties_get_MaxBootPosition(This,aMaxBootPosition)	\
    (This)->lpVtbl -> get_MaxBootPosition(This,aMaxBootPosition)

#define ISystemProperties_get_DefaultVDIFolder(This,aDefaultVDIFolder)	\
    (This)->lpVtbl -> get_DefaultVDIFolder(This,aDefaultVDIFolder)

#define ISystemProperties_put_DefaultVDIFolder(This,aDefaultVDIFolder)	\
    (This)->lpVtbl -> put_DefaultVDIFolder(This,aDefaultVDIFolder)

#define ISystemProperties_get_DefaultMachineFolder(This,aDefaultMachineFolder)	\
    (This)->lpVtbl -> get_DefaultMachineFolder(This,aDefaultMachineFolder)

#define ISystemProperties_put_DefaultMachineFolder(This,aDefaultMachineFolder)	\
    (This)->lpVtbl -> put_DefaultMachineFolder(This,aDefaultMachineFolder)

#define ISystemProperties_get_RemoteDisplayAuthLibrary(This,aRemoteDisplayAuthLibrary)	\
    (This)->lpVtbl -> get_RemoteDisplayAuthLibrary(This,aRemoteDisplayAuthLibrary)

#define ISystemProperties_put_RemoteDisplayAuthLibrary(This,aRemoteDisplayAuthLibrary)	\
    (This)->lpVtbl -> put_RemoteDisplayAuthLibrary(This,aRemoteDisplayAuthLibrary)

#define ISystemProperties_get_WebServiceAuthLibrary(This,aWebServiceAuthLibrary)	\
    (This)->lpVtbl -> get_WebServiceAuthLibrary(This,aWebServiceAuthLibrary)

#define ISystemProperties_put_WebServiceAuthLibrary(This,aWebServiceAuthLibrary)	\
    (This)->lpVtbl -> put_WebServiceAuthLibrary(This,aWebServiceAuthLibrary)

#define ISystemProperties_get_HWVirtExEnabled(This,aHWVirtExEnabled)	\
    (This)->lpVtbl -> get_HWVirtExEnabled(This,aHWVirtExEnabled)

#define ISystemProperties_put_HWVirtExEnabled(This,aHWVirtExEnabled)	\
    (This)->lpVtbl -> put_HWVirtExEnabled(This,aHWVirtExEnabled)

#define ISystemProperties_get_LogHistoryCount(This,aLogHistoryCount)	\
    (This)->lpVtbl -> get_LogHistoryCount(This,aLogHistoryCount)

#define ISystemProperties_put_LogHistoryCount(This,aLogHistoryCount)	\
    (This)->lpVtbl -> put_LogHistoryCount(This,aLogHistoryCount)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE ISystemProperties_get_MinGuestRAM_Proxy( 
    ISystemProperties * This,
    /* [retval][out] */ ULONG *aMinGuestRAM);


void __RPC_STUB ISystemProperties_get_MinGuestRAM_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISystemProperties_get_MaxGuestRAM_Proxy( 
    ISystemProperties * This,
    /* [retval][out] */ ULONG *aMaxGuestRAM);


void __RPC_STUB ISystemProperties_get_MaxGuestRAM_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISystemProperties_get_MinGuestVRAM_Proxy( 
    ISystemProperties * This,
    /* [retval][out] */ ULONG *aMinGuestVRAM);


void __RPC_STUB ISystemProperties_get_MinGuestVRAM_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISystemProperties_get_MaxGuestVRAM_Proxy( 
    ISystemProperties * This,
    /* [retval][out] */ ULONG *aMaxGuestVRAM);


void __RPC_STUB ISystemProperties_get_MaxGuestVRAM_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISystemProperties_get_MaxVDISize_Proxy( 
    ISystemProperties * This,
    /* [retval][out] */ ULONG64 *aMaxVDISize);


void __RPC_STUB ISystemProperties_get_MaxVDISize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISystemProperties_get_NetworkAdapterCount_Proxy( 
    ISystemProperties * This,
    /* [retval][out] */ ULONG *aNetworkAdapterCount);


void __RPC_STUB ISystemProperties_get_NetworkAdapterCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISystemProperties_get_SerialPortCount_Proxy( 
    ISystemProperties * This,
    /* [retval][out] */ ULONG *aSerialPortCount);


void __RPC_STUB ISystemProperties_get_SerialPortCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISystemProperties_get_ParallelPortCount_Proxy( 
    ISystemProperties * This,
    /* [retval][out] */ ULONG *aParallelPortCount);


void __RPC_STUB ISystemProperties_get_ParallelPortCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISystemProperties_get_MaxBootPosition_Proxy( 
    ISystemProperties * This,
    /* [retval][out] */ ULONG *aMaxBootPosition);


void __RPC_STUB ISystemProperties_get_MaxBootPosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISystemProperties_get_DefaultVDIFolder_Proxy( 
    ISystemProperties * This,
    /* [retval][out] */ BSTR *aDefaultVDIFolder);


void __RPC_STUB ISystemProperties_get_DefaultVDIFolder_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE ISystemProperties_put_DefaultVDIFolder_Proxy( 
    ISystemProperties * This,
    /* [in] */ BSTR aDefaultVDIFolder);


void __RPC_STUB ISystemProperties_put_DefaultVDIFolder_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISystemProperties_get_DefaultMachineFolder_Proxy( 
    ISystemProperties * This,
    /* [retval][out] */ BSTR *aDefaultMachineFolder);


void __RPC_STUB ISystemProperties_get_DefaultMachineFolder_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE ISystemProperties_put_DefaultMachineFolder_Proxy( 
    ISystemProperties * This,
    /* [in] */ BSTR aDefaultMachineFolder);


void __RPC_STUB ISystemProperties_put_DefaultMachineFolder_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISystemProperties_get_RemoteDisplayAuthLibrary_Proxy( 
    ISystemProperties * This,
    /* [retval][out] */ BSTR *aRemoteDisplayAuthLibrary);


void __RPC_STUB ISystemProperties_get_RemoteDisplayAuthLibrary_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE ISystemProperties_put_RemoteDisplayAuthLibrary_Proxy( 
    ISystemProperties * This,
    /* [in] */ BSTR aRemoteDisplayAuthLibrary);


void __RPC_STUB ISystemProperties_put_RemoteDisplayAuthLibrary_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISystemProperties_get_WebServiceAuthLibrary_Proxy( 
    ISystemProperties * This,
    /* [retval][out] */ BSTR *aWebServiceAuthLibrary);


void __RPC_STUB ISystemProperties_get_WebServiceAuthLibrary_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE ISystemProperties_put_WebServiceAuthLibrary_Proxy( 
    ISystemProperties * This,
    /* [in] */ BSTR aWebServiceAuthLibrary);


void __RPC_STUB ISystemProperties_put_WebServiceAuthLibrary_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISystemProperties_get_HWVirtExEnabled_Proxy( 
    ISystemProperties * This,
    /* [retval][out] */ BOOL *aHWVirtExEnabled);


void __RPC_STUB ISystemProperties_get_HWVirtExEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE ISystemProperties_put_HWVirtExEnabled_Proxy( 
    ISystemProperties * This,
    /* [in] */ BOOL aHWVirtExEnabled);


void __RPC_STUB ISystemProperties_put_HWVirtExEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISystemProperties_get_LogHistoryCount_Proxy( 
    ISystemProperties * This,
    /* [retval][out] */ ULONG *aLogHistoryCount);


void __RPC_STUB ISystemProperties_get_LogHistoryCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE ISystemProperties_put_LogHistoryCount_Proxy( 
    ISystemProperties * This,
    /* [in] */ ULONG aLogHistoryCount);


void __RPC_STUB ISystemProperties_put_LogHistoryCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ISystemProperties_INTERFACE_DEFINED__ */


#ifndef __IGuestOSType_INTERFACE_DEFINED__
#define __IGuestOSType_INTERFACE_DEFINED__

/* interface IGuestOSType */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IGuestOSType;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("da94f478-1f37-4726-b750-2235950dc2fe")
    IGuestOSType : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Id( 
            /* [retval][out] */ BSTR *aId) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Description( 
            /* [retval][out] */ BSTR *aDescription) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RecommendedRAM( 
            /* [retval][out] */ ULONG *aRecommendedRAM) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RecommendedVRAM( 
            /* [retval][out] */ ULONG *aRecommendedVRAM) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RecommendedHDD( 
            /* [retval][out] */ ULONG *aRecommendedHDD) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IGuestOSTypeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGuestOSType * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGuestOSType * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGuestOSType * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Id )( 
            IGuestOSType * This,
            /* [retval][out] */ BSTR *aId);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Description )( 
            IGuestOSType * This,
            /* [retval][out] */ BSTR *aDescription);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RecommendedRAM )( 
            IGuestOSType * This,
            /* [retval][out] */ ULONG *aRecommendedRAM);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RecommendedVRAM )( 
            IGuestOSType * This,
            /* [retval][out] */ ULONG *aRecommendedVRAM);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RecommendedHDD )( 
            IGuestOSType * This,
            /* [retval][out] */ ULONG *aRecommendedHDD);
        
        END_INTERFACE
    } IGuestOSTypeVtbl;

    interface IGuestOSType
    {
        CONST_VTBL struct IGuestOSTypeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGuestOSType_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IGuestOSType_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IGuestOSType_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IGuestOSType_get_Id(This,aId)	\
    (This)->lpVtbl -> get_Id(This,aId)

#define IGuestOSType_get_Description(This,aDescription)	\
    (This)->lpVtbl -> get_Description(This,aDescription)

#define IGuestOSType_get_RecommendedRAM(This,aRecommendedRAM)	\
    (This)->lpVtbl -> get_RecommendedRAM(This,aRecommendedRAM)

#define IGuestOSType_get_RecommendedVRAM(This,aRecommendedVRAM)	\
    (This)->lpVtbl -> get_RecommendedVRAM(This,aRecommendedVRAM)

#define IGuestOSType_get_RecommendedHDD(This,aRecommendedHDD)	\
    (This)->lpVtbl -> get_RecommendedHDD(This,aRecommendedHDD)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IGuestOSType_get_Id_Proxy( 
    IGuestOSType * This,
    /* [retval][out] */ BSTR *aId);


void __RPC_STUB IGuestOSType_get_Id_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IGuestOSType_get_Description_Proxy( 
    IGuestOSType * This,
    /* [retval][out] */ BSTR *aDescription);


void __RPC_STUB IGuestOSType_get_Description_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IGuestOSType_get_RecommendedRAM_Proxy( 
    IGuestOSType * This,
    /* [retval][out] */ ULONG *aRecommendedRAM);


void __RPC_STUB IGuestOSType_get_RecommendedRAM_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IGuestOSType_get_RecommendedVRAM_Proxy( 
    IGuestOSType * This,
    /* [retval][out] */ ULONG *aRecommendedVRAM);


void __RPC_STUB IGuestOSType_get_RecommendedVRAM_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IGuestOSType_get_RecommendedHDD_Proxy( 
    IGuestOSType * This,
    /* [retval][out] */ ULONG *aRecommendedHDD);


void __RPC_STUB IGuestOSType_get_RecommendedHDD_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IGuestOSType_INTERFACE_DEFINED__ */


#ifndef __IGuestOSTypeEnumerator_INTERFACE_DEFINED__
#define __IGuestOSTypeEnumerator_INTERFACE_DEFINED__

/* interface IGuestOSTypeEnumerator */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IGuestOSTypeEnumerator;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("a3335e02-4669-4e3c-80c7-c4dc7056a07c")
    IGuestOSTypeEnumerator : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE HasMore( 
            /* [retval][out] */ BOOL *more) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetNext( 
            /* [retval][out] */ IGuestOSType **next) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IGuestOSTypeEnumeratorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGuestOSTypeEnumerator * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGuestOSTypeEnumerator * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGuestOSTypeEnumerator * This);
        
        HRESULT ( STDMETHODCALLTYPE *HasMore )( 
            IGuestOSTypeEnumerator * This,
            /* [retval][out] */ BOOL *more);
        
        HRESULT ( STDMETHODCALLTYPE *GetNext )( 
            IGuestOSTypeEnumerator * This,
            /* [retval][out] */ IGuestOSType **next);
        
        END_INTERFACE
    } IGuestOSTypeEnumeratorVtbl;

    interface IGuestOSTypeEnumerator
    {
        CONST_VTBL struct IGuestOSTypeEnumeratorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGuestOSTypeEnumerator_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IGuestOSTypeEnumerator_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IGuestOSTypeEnumerator_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IGuestOSTypeEnumerator_HasMore(This,more)	\
    (This)->lpVtbl -> HasMore(This,more)

#define IGuestOSTypeEnumerator_GetNext(This,next)	\
    (This)->lpVtbl -> GetNext(This,next)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IGuestOSTypeEnumerator_HasMore_Proxy( 
    IGuestOSTypeEnumerator * This,
    /* [retval][out] */ BOOL *more);


void __RPC_STUB IGuestOSTypeEnumerator_HasMore_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IGuestOSTypeEnumerator_GetNext_Proxy( 
    IGuestOSTypeEnumerator * This,
    /* [retval][out] */ IGuestOSType **next);


void __RPC_STUB IGuestOSTypeEnumerator_GetNext_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IGuestOSTypeEnumerator_INTERFACE_DEFINED__ */


#ifndef __IGuestOSTypeCollection_INTERFACE_DEFINED__
#define __IGuestOSTypeCollection_INTERFACE_DEFINED__

/* interface IGuestOSTypeCollection */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IGuestOSTypeCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("a5e36749-a610-498b-9f29-2e36c1042d65")
    IGuestOSTypeCollection : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ ULONG *count) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetItemAt( 
            /* [in] */ ULONG index,
            /* [retval][out] */ IGuestOSType **item) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Enumerate( 
            /* [retval][out] */ IGuestOSTypeEnumerator **enumerator) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IGuestOSTypeCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGuestOSTypeCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGuestOSTypeCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGuestOSTypeCollection * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IGuestOSTypeCollection * This,
            /* [retval][out] */ ULONG *count);
        
        HRESULT ( STDMETHODCALLTYPE *GetItemAt )( 
            IGuestOSTypeCollection * This,
            /* [in] */ ULONG index,
            /* [retval][out] */ IGuestOSType **item);
        
        HRESULT ( STDMETHODCALLTYPE *Enumerate )( 
            IGuestOSTypeCollection * This,
            /* [retval][out] */ IGuestOSTypeEnumerator **enumerator);
        
        END_INTERFACE
    } IGuestOSTypeCollectionVtbl;

    interface IGuestOSTypeCollection
    {
        CONST_VTBL struct IGuestOSTypeCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGuestOSTypeCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IGuestOSTypeCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IGuestOSTypeCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IGuestOSTypeCollection_get_Count(This,count)	\
    (This)->lpVtbl -> get_Count(This,count)

#define IGuestOSTypeCollection_GetItemAt(This,index,item)	\
    (This)->lpVtbl -> GetItemAt(This,index,item)

#define IGuestOSTypeCollection_Enumerate(This,enumerator)	\
    (This)->lpVtbl -> Enumerate(This,enumerator)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IGuestOSTypeCollection_get_Count_Proxy( 
    IGuestOSTypeCollection * This,
    /* [retval][out] */ ULONG *count);


void __RPC_STUB IGuestOSTypeCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IGuestOSTypeCollection_GetItemAt_Proxy( 
    IGuestOSTypeCollection * This,
    /* [in] */ ULONG index,
    /* [retval][out] */ IGuestOSType **item);


void __RPC_STUB IGuestOSTypeCollection_GetItemAt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IGuestOSTypeCollection_Enumerate_Proxy( 
    IGuestOSTypeCollection * This,
    /* [retval][out] */ IGuestOSTypeEnumerator **enumerator);


void __RPC_STUB IGuestOSTypeCollection_Enumerate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IGuestOSTypeCollection_INTERFACE_DEFINED__ */


#ifndef __IGuest_INTERFACE_DEFINED__
#define __IGuest_INTERFACE_DEFINED__

/* interface IGuest */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IGuest;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("d8556fca-81bc-12af-fca3-365528fa38ca")
    IGuest : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_OSTypeId( 
            /* [retval][out] */ BSTR *aOSTypeId) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AdditionsActive( 
            /* [retval][out] */ BOOL *aAdditionsActive) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AdditionsVersion( 
            /* [retval][out] */ BSTR *aAdditionsVersion) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SupportsSeamless( 
            /* [retval][out] */ BOOL *aSupportsSeamless) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SupportsGraphics( 
            /* [retval][out] */ BOOL *aSupportsGraphics) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MemoryBalloonSize( 
            /* [retval][out] */ ULONG *aMemoryBalloonSize) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_MemoryBalloonSize( 
            /* [in] */ ULONG aMemoryBalloonSize) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_StatisticsUpdateInterval( 
            /* [retval][out] */ ULONG *aStatisticsUpdateInterval) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_StatisticsUpdateInterval( 
            /* [in] */ ULONG aStatisticsUpdateInterval) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetCredentials( 
            /* [in] */ BSTR aUserName,
            /* [in] */ BSTR aPassword,
            /* [in] */ BSTR aDomain,
            /* [in] */ BOOL aAllowInteractiveLogon) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetStatistic( 
            /* [in] */ ULONG aCpuId,
            /* [in] */ GuestStatisticType aStatistic,
            /* [out] */ ULONG *aStatVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IGuestVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IGuest * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IGuest * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IGuest * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_OSTypeId )( 
            IGuest * This,
            /* [retval][out] */ BSTR *aOSTypeId);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AdditionsActive )( 
            IGuest * This,
            /* [retval][out] */ BOOL *aAdditionsActive);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AdditionsVersion )( 
            IGuest * This,
            /* [retval][out] */ BSTR *aAdditionsVersion);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SupportsSeamless )( 
            IGuest * This,
            /* [retval][out] */ BOOL *aSupportsSeamless);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SupportsGraphics )( 
            IGuest * This,
            /* [retval][out] */ BOOL *aSupportsGraphics);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MemoryBalloonSize )( 
            IGuest * This,
            /* [retval][out] */ ULONG *aMemoryBalloonSize);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_MemoryBalloonSize )( 
            IGuest * This,
            /* [in] */ ULONG aMemoryBalloonSize);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_StatisticsUpdateInterval )( 
            IGuest * This,
            /* [retval][out] */ ULONG *aStatisticsUpdateInterval);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_StatisticsUpdateInterval )( 
            IGuest * This,
            /* [in] */ ULONG aStatisticsUpdateInterval);
        
        HRESULT ( STDMETHODCALLTYPE *SetCredentials )( 
            IGuest * This,
            /* [in] */ BSTR aUserName,
            /* [in] */ BSTR aPassword,
            /* [in] */ BSTR aDomain,
            /* [in] */ BOOL aAllowInteractiveLogon);
        
        HRESULT ( STDMETHODCALLTYPE *GetStatistic )( 
            IGuest * This,
            /* [in] */ ULONG aCpuId,
            /* [in] */ GuestStatisticType aStatistic,
            /* [out] */ ULONG *aStatVal);
        
        END_INTERFACE
    } IGuestVtbl;

    interface IGuest
    {
        CONST_VTBL struct IGuestVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IGuest_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IGuest_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IGuest_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IGuest_get_OSTypeId(This,aOSTypeId)	\
    (This)->lpVtbl -> get_OSTypeId(This,aOSTypeId)

#define IGuest_get_AdditionsActive(This,aAdditionsActive)	\
    (This)->lpVtbl -> get_AdditionsActive(This,aAdditionsActive)

#define IGuest_get_AdditionsVersion(This,aAdditionsVersion)	\
    (This)->lpVtbl -> get_AdditionsVersion(This,aAdditionsVersion)

#define IGuest_get_SupportsSeamless(This,aSupportsSeamless)	\
    (This)->lpVtbl -> get_SupportsSeamless(This,aSupportsSeamless)

#define IGuest_get_SupportsGraphics(This,aSupportsGraphics)	\
    (This)->lpVtbl -> get_SupportsGraphics(This,aSupportsGraphics)

#define IGuest_get_MemoryBalloonSize(This,aMemoryBalloonSize)	\
    (This)->lpVtbl -> get_MemoryBalloonSize(This,aMemoryBalloonSize)

#define IGuest_put_MemoryBalloonSize(This,aMemoryBalloonSize)	\
    (This)->lpVtbl -> put_MemoryBalloonSize(This,aMemoryBalloonSize)

#define IGuest_get_StatisticsUpdateInterval(This,aStatisticsUpdateInterval)	\
    (This)->lpVtbl -> get_StatisticsUpdateInterval(This,aStatisticsUpdateInterval)

#define IGuest_put_StatisticsUpdateInterval(This,aStatisticsUpdateInterval)	\
    (This)->lpVtbl -> put_StatisticsUpdateInterval(This,aStatisticsUpdateInterval)

#define IGuest_SetCredentials(This,aUserName,aPassword,aDomain,aAllowInteractiveLogon)	\
    (This)->lpVtbl -> SetCredentials(This,aUserName,aPassword,aDomain,aAllowInteractiveLogon)

#define IGuest_GetStatistic(This,aCpuId,aStatistic,aStatVal)	\
    (This)->lpVtbl -> GetStatistic(This,aCpuId,aStatistic,aStatVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IGuest_get_OSTypeId_Proxy( 
    IGuest * This,
    /* [retval][out] */ BSTR *aOSTypeId);


void __RPC_STUB IGuest_get_OSTypeId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IGuest_get_AdditionsActive_Proxy( 
    IGuest * This,
    /* [retval][out] */ BOOL *aAdditionsActive);


void __RPC_STUB IGuest_get_AdditionsActive_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IGuest_get_AdditionsVersion_Proxy( 
    IGuest * This,
    /* [retval][out] */ BSTR *aAdditionsVersion);


void __RPC_STUB IGuest_get_AdditionsVersion_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IGuest_get_SupportsSeamless_Proxy( 
    IGuest * This,
    /* [retval][out] */ BOOL *aSupportsSeamless);


void __RPC_STUB IGuest_get_SupportsSeamless_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IGuest_get_SupportsGraphics_Proxy( 
    IGuest * This,
    /* [retval][out] */ BOOL *aSupportsGraphics);


void __RPC_STUB IGuest_get_SupportsGraphics_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IGuest_get_MemoryBalloonSize_Proxy( 
    IGuest * This,
    /* [retval][out] */ ULONG *aMemoryBalloonSize);


void __RPC_STUB IGuest_get_MemoryBalloonSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IGuest_put_MemoryBalloonSize_Proxy( 
    IGuest * This,
    /* [in] */ ULONG aMemoryBalloonSize);


void __RPC_STUB IGuest_put_MemoryBalloonSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IGuest_get_StatisticsUpdateInterval_Proxy( 
    IGuest * This,
    /* [retval][out] */ ULONG *aStatisticsUpdateInterval);


void __RPC_STUB IGuest_get_StatisticsUpdateInterval_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IGuest_put_StatisticsUpdateInterval_Proxy( 
    IGuest * This,
    /* [in] */ ULONG aStatisticsUpdateInterval);


void __RPC_STUB IGuest_put_StatisticsUpdateInterval_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IGuest_SetCredentials_Proxy( 
    IGuest * This,
    /* [in] */ BSTR aUserName,
    /* [in] */ BSTR aPassword,
    /* [in] */ BSTR aDomain,
    /* [in] */ BOOL aAllowInteractiveLogon);


void __RPC_STUB IGuest_SetCredentials_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IGuest_GetStatistic_Proxy( 
    IGuest * This,
    /* [in] */ ULONG aCpuId,
    /* [in] */ GuestStatisticType aStatistic,
    /* [out] */ ULONG *aStatVal);


void __RPC_STUB IGuest_GetStatistic_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IGuest_INTERFACE_DEFINED__ */


#ifndef __IProgressEnumerator_INTERFACE_DEFINED__
#define __IProgressEnumerator_INTERFACE_DEFINED__

/* interface IProgressEnumerator */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IProgressEnumerator;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("e0380522-4ef1-48f4-856c-e455177ccb2d")
    IProgressEnumerator : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE HasMore( 
            /* [retval][out] */ BOOL *more) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetNext( 
            /* [retval][out] */ IProgress **next) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IProgressEnumeratorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IProgressEnumerator * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IProgressEnumerator * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IProgressEnumerator * This);
        
        HRESULT ( STDMETHODCALLTYPE *HasMore )( 
            IProgressEnumerator * This,
            /* [retval][out] */ BOOL *more);
        
        HRESULT ( STDMETHODCALLTYPE *GetNext )( 
            IProgressEnumerator * This,
            /* [retval][out] */ IProgress **next);
        
        END_INTERFACE
    } IProgressEnumeratorVtbl;

    interface IProgressEnumerator
    {
        CONST_VTBL struct IProgressEnumeratorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IProgressEnumerator_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IProgressEnumerator_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IProgressEnumerator_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IProgressEnumerator_HasMore(This,more)	\
    (This)->lpVtbl -> HasMore(This,more)

#define IProgressEnumerator_GetNext(This,next)	\
    (This)->lpVtbl -> GetNext(This,next)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IProgressEnumerator_HasMore_Proxy( 
    IProgressEnumerator * This,
    /* [retval][out] */ BOOL *more);


void __RPC_STUB IProgressEnumerator_HasMore_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IProgressEnumerator_GetNext_Proxy( 
    IProgressEnumerator * This,
    /* [retval][out] */ IProgress **next);


void __RPC_STUB IProgressEnumerator_GetNext_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IProgressEnumerator_INTERFACE_DEFINED__ */


#ifndef __IProgressCollection_INTERFACE_DEFINED__
#define __IProgressCollection_INTERFACE_DEFINED__

/* interface IProgressCollection */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IProgressCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("78B76A7C-F0F2-467c-9F0E-F089A54EE957")
    IProgressCollection : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ ULONG *count) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetItemAt( 
            /* [in] */ ULONG index,
            /* [retval][out] */ IProgress **item) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Enumerate( 
            /* [retval][out] */ IProgressEnumerator **enumerator) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IProgressCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IProgressCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IProgressCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IProgressCollection * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IProgressCollection * This,
            /* [retval][out] */ ULONG *count);
        
        HRESULT ( STDMETHODCALLTYPE *GetItemAt )( 
            IProgressCollection * This,
            /* [in] */ ULONG index,
            /* [retval][out] */ IProgress **item);
        
        HRESULT ( STDMETHODCALLTYPE *Enumerate )( 
            IProgressCollection * This,
            /* [retval][out] */ IProgressEnumerator **enumerator);
        
        END_INTERFACE
    } IProgressCollectionVtbl;

    interface IProgressCollection
    {
        CONST_VTBL struct IProgressCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IProgressCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IProgressCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IProgressCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IProgressCollection_get_Count(This,count)	\
    (This)->lpVtbl -> get_Count(This,count)

#define IProgressCollection_GetItemAt(This,index,item)	\
    (This)->lpVtbl -> GetItemAt(This,index,item)

#define IProgressCollection_Enumerate(This,enumerator)	\
    (This)->lpVtbl -> Enumerate(This,enumerator)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IProgressCollection_get_Count_Proxy( 
    IProgressCollection * This,
    /* [retval][out] */ ULONG *count);


void __RPC_STUB IProgressCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IProgressCollection_GetItemAt_Proxy( 
    IProgressCollection * This,
    /* [in] */ ULONG index,
    /* [retval][out] */ IProgress **item);


void __RPC_STUB IProgressCollection_GetItemAt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IProgressCollection_Enumerate_Proxy( 
    IProgressCollection * This,
    /* [retval][out] */ IProgressEnumerator **enumerator);


void __RPC_STUB IProgressCollection_Enumerate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IProgressCollection_INTERFACE_DEFINED__ */


#ifndef __IProgress_INTERFACE_DEFINED__
#define __IProgress_INTERFACE_DEFINED__

/* interface IProgress */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IProgress;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("10CC03A1-717E-429b-992D-C67B56175A51")
    IProgress : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Id( 
            /* [retval][out] */ GUID *aId) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Description( 
            /* [retval][out] */ BSTR *aDescription) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Initiator( 
            /* [retval][out] */ IUnknown **aInitiator) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Cancelable( 
            /* [retval][out] */ BOOL *aCancelable) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Percent( 
            /* [retval][out] */ LONG *aPercent) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Completed( 
            /* [retval][out] */ BOOL *aCompleted) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Canceled( 
            /* [retval][out] */ BOOL *aCanceled) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ResultCode( 
            /* [retval][out] */ HRESULT *aResultCode) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ErrorInfo( 
            /* [retval][out] */ IVirtualBoxErrorInfo **aErrorInfo) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_OperationCount( 
            /* [retval][out] */ ULONG *aOperationCount) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Operation( 
            /* [retval][out] */ ULONG *aOperation) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_OperationDescription( 
            /* [retval][out] */ BSTR *aOperationDescription) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_OperationPercent( 
            /* [retval][out] */ LONG *aOperationPercent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE WaitForCompletion( 
            /* [in] */ LONG aTimeout) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE WaitForOperationCompletion( 
            /* [in] */ ULONG aOperation,
            /* [in] */ LONG aTimeout) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Cancel( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IProgressVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IProgress * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IProgress * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IProgress * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Id )( 
            IProgress * This,
            /* [retval][out] */ GUID *aId);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Description )( 
            IProgress * This,
            /* [retval][out] */ BSTR *aDescription);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Initiator )( 
            IProgress * This,
            /* [retval][out] */ IUnknown **aInitiator);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Cancelable )( 
            IProgress * This,
            /* [retval][out] */ BOOL *aCancelable);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Percent )( 
            IProgress * This,
            /* [retval][out] */ LONG *aPercent);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Completed )( 
            IProgress * This,
            /* [retval][out] */ BOOL *aCompleted);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Canceled )( 
            IProgress * This,
            /* [retval][out] */ BOOL *aCanceled);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ResultCode )( 
            IProgress * This,
            /* [retval][out] */ HRESULT *aResultCode);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ErrorInfo )( 
            IProgress * This,
            /* [retval][out] */ IVirtualBoxErrorInfo **aErrorInfo);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_OperationCount )( 
            IProgress * This,
            /* [retval][out] */ ULONG *aOperationCount);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Operation )( 
            IProgress * This,
            /* [retval][out] */ ULONG *aOperation);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_OperationDescription )( 
            IProgress * This,
            /* [retval][out] */ BSTR *aOperationDescription);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_OperationPercent )( 
            IProgress * This,
            /* [retval][out] */ LONG *aOperationPercent);
        
        HRESULT ( STDMETHODCALLTYPE *WaitForCompletion )( 
            IProgress * This,
            /* [in] */ LONG aTimeout);
        
        HRESULT ( STDMETHODCALLTYPE *WaitForOperationCompletion )( 
            IProgress * This,
            /* [in] */ ULONG aOperation,
            /* [in] */ LONG aTimeout);
        
        HRESULT ( STDMETHODCALLTYPE *Cancel )( 
            IProgress * This);
        
        END_INTERFACE
    } IProgressVtbl;

    interface IProgress
    {
        CONST_VTBL struct IProgressVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IProgress_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IProgress_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IProgress_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IProgress_get_Id(This,aId)	\
    (This)->lpVtbl -> get_Id(This,aId)

#define IProgress_get_Description(This,aDescription)	\
    (This)->lpVtbl -> get_Description(This,aDescription)

#define IProgress_get_Initiator(This,aInitiator)	\
    (This)->lpVtbl -> get_Initiator(This,aInitiator)

#define IProgress_get_Cancelable(This,aCancelable)	\
    (This)->lpVtbl -> get_Cancelable(This,aCancelable)

#define IProgress_get_Percent(This,aPercent)	\
    (This)->lpVtbl -> get_Percent(This,aPercent)

#define IProgress_get_Completed(This,aCompleted)	\
    (This)->lpVtbl -> get_Completed(This,aCompleted)

#define IProgress_get_Canceled(This,aCanceled)	\
    (This)->lpVtbl -> get_Canceled(This,aCanceled)

#define IProgress_get_ResultCode(This,aResultCode)	\
    (This)->lpVtbl -> get_ResultCode(This,aResultCode)

#define IProgress_get_ErrorInfo(This,aErrorInfo)	\
    (This)->lpVtbl -> get_ErrorInfo(This,aErrorInfo)

#define IProgress_get_OperationCount(This,aOperationCount)	\
    (This)->lpVtbl -> get_OperationCount(This,aOperationCount)

#define IProgress_get_Operation(This,aOperation)	\
    (This)->lpVtbl -> get_Operation(This,aOperation)

#define IProgress_get_OperationDescription(This,aOperationDescription)	\
    (This)->lpVtbl -> get_OperationDescription(This,aOperationDescription)

#define IProgress_get_OperationPercent(This,aOperationPercent)	\
    (This)->lpVtbl -> get_OperationPercent(This,aOperationPercent)

#define IProgress_WaitForCompletion(This,aTimeout)	\
    (This)->lpVtbl -> WaitForCompletion(This,aTimeout)

#define IProgress_WaitForOperationCompletion(This,aOperation,aTimeout)	\
    (This)->lpVtbl -> WaitForOperationCompletion(This,aOperation,aTimeout)

#define IProgress_Cancel(This)	\
    (This)->lpVtbl -> Cancel(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IProgress_get_Id_Proxy( 
    IProgress * This,
    /* [retval][out] */ GUID *aId);


void __RPC_STUB IProgress_get_Id_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IProgress_get_Description_Proxy( 
    IProgress * This,
    /* [retval][out] */ BSTR *aDescription);


void __RPC_STUB IProgress_get_Description_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IProgress_get_Initiator_Proxy( 
    IProgress * This,
    /* [retval][out] */ IUnknown **aInitiator);


void __RPC_STUB IProgress_get_Initiator_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IProgress_get_Cancelable_Proxy( 
    IProgress * This,
    /* [retval][out] */ BOOL *aCancelable);


void __RPC_STUB IProgress_get_Cancelable_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IProgress_get_Percent_Proxy( 
    IProgress * This,
    /* [retval][out] */ LONG *aPercent);


void __RPC_STUB IProgress_get_Percent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IProgress_get_Completed_Proxy( 
    IProgress * This,
    /* [retval][out] */ BOOL *aCompleted);


void __RPC_STUB IProgress_get_Completed_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IProgress_get_Canceled_Proxy( 
    IProgress * This,
    /* [retval][out] */ BOOL *aCanceled);


void __RPC_STUB IProgress_get_Canceled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IProgress_get_ResultCode_Proxy( 
    IProgress * This,
    /* [retval][out] */ HRESULT *aResultCode);


void __RPC_STUB IProgress_get_ResultCode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IProgress_get_ErrorInfo_Proxy( 
    IProgress * This,
    /* [retval][out] */ IVirtualBoxErrorInfo **aErrorInfo);


void __RPC_STUB IProgress_get_ErrorInfo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IProgress_get_OperationCount_Proxy( 
    IProgress * This,
    /* [retval][out] */ ULONG *aOperationCount);


void __RPC_STUB IProgress_get_OperationCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IProgress_get_Operation_Proxy( 
    IProgress * This,
    /* [retval][out] */ ULONG *aOperation);


void __RPC_STUB IProgress_get_Operation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IProgress_get_OperationDescription_Proxy( 
    IProgress * This,
    /* [retval][out] */ BSTR *aOperationDescription);


void __RPC_STUB IProgress_get_OperationDescription_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IProgress_get_OperationPercent_Proxy( 
    IProgress * This,
    /* [retval][out] */ LONG *aOperationPercent);


void __RPC_STUB IProgress_get_OperationPercent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IProgress_WaitForCompletion_Proxy( 
    IProgress * This,
    /* [in] */ LONG aTimeout);


void __RPC_STUB IProgress_WaitForCompletion_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IProgress_WaitForOperationCompletion_Proxy( 
    IProgress * This,
    /* [in] */ ULONG aOperation,
    /* [in] */ LONG aTimeout);


void __RPC_STUB IProgress_WaitForOperationCompletion_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IProgress_Cancel_Proxy( 
    IProgress * This);


void __RPC_STUB IProgress_Cancel_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IProgress_INTERFACE_DEFINED__ */


#ifndef __ISnapshotEnumerator_INTERFACE_DEFINED__
#define __ISnapshotEnumerator_INTERFACE_DEFINED__

/* interface ISnapshotEnumerator */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_ISnapshotEnumerator;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("25cfa2a4-1f1d-4f05-9658-b7a5894ef1a3")
    ISnapshotEnumerator : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE HasMore( 
            /* [retval][out] */ BOOL *more) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetNext( 
            /* [retval][out] */ ISnapshot **next) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISnapshotEnumeratorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ISnapshotEnumerator * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ISnapshotEnumerator * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ISnapshotEnumerator * This);
        
        HRESULT ( STDMETHODCALLTYPE *HasMore )( 
            ISnapshotEnumerator * This,
            /* [retval][out] */ BOOL *more);
        
        HRESULT ( STDMETHODCALLTYPE *GetNext )( 
            ISnapshotEnumerator * This,
            /* [retval][out] */ ISnapshot **next);
        
        END_INTERFACE
    } ISnapshotEnumeratorVtbl;

    interface ISnapshotEnumerator
    {
        CONST_VTBL struct ISnapshotEnumeratorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ISnapshotEnumerator_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ISnapshotEnumerator_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ISnapshotEnumerator_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ISnapshotEnumerator_HasMore(This,more)	\
    (This)->lpVtbl -> HasMore(This,more)

#define ISnapshotEnumerator_GetNext(This,next)	\
    (This)->lpVtbl -> GetNext(This,next)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE ISnapshotEnumerator_HasMore_Proxy( 
    ISnapshotEnumerator * This,
    /* [retval][out] */ BOOL *more);


void __RPC_STUB ISnapshotEnumerator_HasMore_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE ISnapshotEnumerator_GetNext_Proxy( 
    ISnapshotEnumerator * This,
    /* [retval][out] */ ISnapshot **next);


void __RPC_STUB ISnapshotEnumerator_GetNext_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ISnapshotEnumerator_INTERFACE_DEFINED__ */


#ifndef __ISnapshotCollection_INTERFACE_DEFINED__
#define __ISnapshotCollection_INTERFACE_DEFINED__

/* interface ISnapshotCollection */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_ISnapshotCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("23852e3c-94cd-4801-ab05-ed35675b3894")
    ISnapshotCollection : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ ULONG *count) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetItemAt( 
            /* [in] */ ULONG index,
            /* [retval][out] */ ISnapshot **item) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Enumerate( 
            /* [retval][out] */ ISnapshotEnumerator **enumerator) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISnapshotCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ISnapshotCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ISnapshotCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ISnapshotCollection * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            ISnapshotCollection * This,
            /* [retval][out] */ ULONG *count);
        
        HRESULT ( STDMETHODCALLTYPE *GetItemAt )( 
            ISnapshotCollection * This,
            /* [in] */ ULONG index,
            /* [retval][out] */ ISnapshot **item);
        
        HRESULT ( STDMETHODCALLTYPE *Enumerate )( 
            ISnapshotCollection * This,
            /* [retval][out] */ ISnapshotEnumerator **enumerator);
        
        END_INTERFACE
    } ISnapshotCollectionVtbl;

    interface ISnapshotCollection
    {
        CONST_VTBL struct ISnapshotCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ISnapshotCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ISnapshotCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ISnapshotCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ISnapshotCollection_get_Count(This,count)	\
    (This)->lpVtbl -> get_Count(This,count)

#define ISnapshotCollection_GetItemAt(This,index,item)	\
    (This)->lpVtbl -> GetItemAt(This,index,item)

#define ISnapshotCollection_Enumerate(This,enumerator)	\
    (This)->lpVtbl -> Enumerate(This,enumerator)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE ISnapshotCollection_get_Count_Proxy( 
    ISnapshotCollection * This,
    /* [retval][out] */ ULONG *count);


void __RPC_STUB ISnapshotCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE ISnapshotCollection_GetItemAt_Proxy( 
    ISnapshotCollection * This,
    /* [in] */ ULONG index,
    /* [retval][out] */ ISnapshot **item);


void __RPC_STUB ISnapshotCollection_GetItemAt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE ISnapshotCollection_Enumerate_Proxy( 
    ISnapshotCollection * This,
    /* [retval][out] */ ISnapshotEnumerator **enumerator);


void __RPC_STUB ISnapshotCollection_Enumerate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ISnapshotCollection_INTERFACE_DEFINED__ */


#ifndef __ISnapshot_INTERFACE_DEFINED__
#define __ISnapshot_INTERFACE_DEFINED__

/* interface ISnapshot */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_ISnapshot;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9f1bbf79-13b0-4da2-abba-4a992c65c083")
    ISnapshot : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Id( 
            /* [retval][out] */ GUID *aId) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *aName) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR aName) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Description( 
            /* [retval][out] */ BSTR *aDescription) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Description( 
            /* [in] */ BSTR aDescription) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_TimeStamp( 
            /* [retval][out] */ LONG64 *aTimeStamp) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Online( 
            /* [retval][out] */ BOOL *aOnline) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Machine( 
            /* [retval][out] */ IMachine **aMachine) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Parent( 
            /* [retval][out] */ ISnapshot **aParent) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Children( 
            /* [retval][out] */ ISnapshotCollection **aChildren) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISnapshotVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ISnapshot * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ISnapshot * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ISnapshot * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Id )( 
            ISnapshot * This,
            /* [retval][out] */ GUID *aId);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            ISnapshot * This,
            /* [retval][out] */ BSTR *aName);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            ISnapshot * This,
            /* [in] */ BSTR aName);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Description )( 
            ISnapshot * This,
            /* [retval][out] */ BSTR *aDescription);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Description )( 
            ISnapshot * This,
            /* [in] */ BSTR aDescription);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_TimeStamp )( 
            ISnapshot * This,
            /* [retval][out] */ LONG64 *aTimeStamp);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Online )( 
            ISnapshot * This,
            /* [retval][out] */ BOOL *aOnline);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Machine )( 
            ISnapshot * This,
            /* [retval][out] */ IMachine **aMachine);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )( 
            ISnapshot * This,
            /* [retval][out] */ ISnapshot **aParent);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Children )( 
            ISnapshot * This,
            /* [retval][out] */ ISnapshotCollection **aChildren);
        
        END_INTERFACE
    } ISnapshotVtbl;

    interface ISnapshot
    {
        CONST_VTBL struct ISnapshotVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ISnapshot_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ISnapshot_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ISnapshot_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ISnapshot_get_Id(This,aId)	\
    (This)->lpVtbl -> get_Id(This,aId)

#define ISnapshot_get_Name(This,aName)	\
    (This)->lpVtbl -> get_Name(This,aName)

#define ISnapshot_put_Name(This,aName)	\
    (This)->lpVtbl -> put_Name(This,aName)

#define ISnapshot_get_Description(This,aDescription)	\
    (This)->lpVtbl -> get_Description(This,aDescription)

#define ISnapshot_put_Description(This,aDescription)	\
    (This)->lpVtbl -> put_Description(This,aDescription)

#define ISnapshot_get_TimeStamp(This,aTimeStamp)	\
    (This)->lpVtbl -> get_TimeStamp(This,aTimeStamp)

#define ISnapshot_get_Online(This,aOnline)	\
    (This)->lpVtbl -> get_Online(This,aOnline)

#define ISnapshot_get_Machine(This,aMachine)	\
    (This)->lpVtbl -> get_Machine(This,aMachine)

#define ISnapshot_get_Parent(This,aParent)	\
    (This)->lpVtbl -> get_Parent(This,aParent)

#define ISnapshot_get_Children(This,aChildren)	\
    (This)->lpVtbl -> get_Children(This,aChildren)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE ISnapshot_get_Id_Proxy( 
    ISnapshot * This,
    /* [retval][out] */ GUID *aId);


void __RPC_STUB ISnapshot_get_Id_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISnapshot_get_Name_Proxy( 
    ISnapshot * This,
    /* [retval][out] */ BSTR *aName);


void __RPC_STUB ISnapshot_get_Name_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE ISnapshot_put_Name_Proxy( 
    ISnapshot * This,
    /* [in] */ BSTR aName);


void __RPC_STUB ISnapshot_put_Name_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISnapshot_get_Description_Proxy( 
    ISnapshot * This,
    /* [retval][out] */ BSTR *aDescription);


void __RPC_STUB ISnapshot_get_Description_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE ISnapshot_put_Description_Proxy( 
    ISnapshot * This,
    /* [in] */ BSTR aDescription);


void __RPC_STUB ISnapshot_put_Description_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISnapshot_get_TimeStamp_Proxy( 
    ISnapshot * This,
    /* [retval][out] */ LONG64 *aTimeStamp);


void __RPC_STUB ISnapshot_get_TimeStamp_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISnapshot_get_Online_Proxy( 
    ISnapshot * This,
    /* [retval][out] */ BOOL *aOnline);


void __RPC_STUB ISnapshot_get_Online_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISnapshot_get_Machine_Proxy( 
    ISnapshot * This,
    /* [retval][out] */ IMachine **aMachine);


void __RPC_STUB ISnapshot_get_Machine_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISnapshot_get_Parent_Proxy( 
    ISnapshot * This,
    /* [retval][out] */ ISnapshot **aParent);


void __RPC_STUB ISnapshot_get_Parent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISnapshot_get_Children_Proxy( 
    ISnapshot * This,
    /* [retval][out] */ ISnapshotCollection **aChildren);


void __RPC_STUB ISnapshot_get_Children_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ISnapshot_INTERFACE_DEFINED__ */


#ifndef __IHardDiskAttachment_INTERFACE_DEFINED__
#define __IHardDiskAttachment_INTERFACE_DEFINED__

/* interface IHardDiskAttachment */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IHardDiskAttachment;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("c0ffe596-21c6-4797-8d8a-b47b66881e7a")
    IHardDiskAttachment : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HardDisk( 
            /* [retval][out] */ IHardDisk **aHardDisk) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Bus( 
            /* [retval][out] */ StorageBus *aBus) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Channel( 
            /* [retval][out] */ LONG *aChannel) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Device( 
            /* [retval][out] */ LONG *aDevice) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IHardDiskAttachmentVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IHardDiskAttachment * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IHardDiskAttachment * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IHardDiskAttachment * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HardDisk )( 
            IHardDiskAttachment * This,
            /* [retval][out] */ IHardDisk **aHardDisk);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Bus )( 
            IHardDiskAttachment * This,
            /* [retval][out] */ StorageBus *aBus);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Channel )( 
            IHardDiskAttachment * This,
            /* [retval][out] */ LONG *aChannel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Device )( 
            IHardDiskAttachment * This,
            /* [retval][out] */ LONG *aDevice);
        
        END_INTERFACE
    } IHardDiskAttachmentVtbl;

    interface IHardDiskAttachment
    {
        CONST_VTBL struct IHardDiskAttachmentVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IHardDiskAttachment_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IHardDiskAttachment_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IHardDiskAttachment_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IHardDiskAttachment_get_HardDisk(This,aHardDisk)	\
    (This)->lpVtbl -> get_HardDisk(This,aHardDisk)

#define IHardDiskAttachment_get_Bus(This,aBus)	\
    (This)->lpVtbl -> get_Bus(This,aBus)

#define IHardDiskAttachment_get_Channel(This,aChannel)	\
    (This)->lpVtbl -> get_Channel(This,aChannel)

#define IHardDiskAttachment_get_Device(This,aDevice)	\
    (This)->lpVtbl -> get_Device(This,aDevice)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IHardDiskAttachment_get_HardDisk_Proxy( 
    IHardDiskAttachment * This,
    /* [retval][out] */ IHardDisk **aHardDisk);


void __RPC_STUB IHardDiskAttachment_get_HardDisk_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHardDiskAttachment_get_Bus_Proxy( 
    IHardDiskAttachment * This,
    /* [retval][out] */ StorageBus *aBus);


void __RPC_STUB IHardDiskAttachment_get_Bus_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHardDiskAttachment_get_Channel_Proxy( 
    IHardDiskAttachment * This,
    /* [retval][out] */ LONG *aChannel);


void __RPC_STUB IHardDiskAttachment_get_Channel_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHardDiskAttachment_get_Device_Proxy( 
    IHardDiskAttachment * This,
    /* [retval][out] */ LONG *aDevice);


void __RPC_STUB IHardDiskAttachment_get_Device_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IHardDiskAttachment_INTERFACE_DEFINED__ */


#ifndef __IHardDiskAttachmentEnumerator_INTERFACE_DEFINED__
#define __IHardDiskAttachmentEnumerator_INTERFACE_DEFINED__

/* interface IHardDiskAttachmentEnumerator */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IHardDiskAttachmentEnumerator;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9955e486-2f0b-432a-99e4-0ebbd338875e")
    IHardDiskAttachmentEnumerator : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE HasMore( 
            /* [retval][out] */ BOOL *more) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetNext( 
            /* [retval][out] */ IHardDiskAttachment **next) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IHardDiskAttachmentEnumeratorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IHardDiskAttachmentEnumerator * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IHardDiskAttachmentEnumerator * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IHardDiskAttachmentEnumerator * This);
        
        HRESULT ( STDMETHODCALLTYPE *HasMore )( 
            IHardDiskAttachmentEnumerator * This,
            /* [retval][out] */ BOOL *more);
        
        HRESULT ( STDMETHODCALLTYPE *GetNext )( 
            IHardDiskAttachmentEnumerator * This,
            /* [retval][out] */ IHardDiskAttachment **next);
        
        END_INTERFACE
    } IHardDiskAttachmentEnumeratorVtbl;

    interface IHardDiskAttachmentEnumerator
    {
        CONST_VTBL struct IHardDiskAttachmentEnumeratorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IHardDiskAttachmentEnumerator_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IHardDiskAttachmentEnumerator_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IHardDiskAttachmentEnumerator_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IHardDiskAttachmentEnumerator_HasMore(This,more)	\
    (This)->lpVtbl -> HasMore(This,more)

#define IHardDiskAttachmentEnumerator_GetNext(This,next)	\
    (This)->lpVtbl -> GetNext(This,next)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IHardDiskAttachmentEnumerator_HasMore_Proxy( 
    IHardDiskAttachmentEnumerator * This,
    /* [retval][out] */ BOOL *more);


void __RPC_STUB IHardDiskAttachmentEnumerator_HasMore_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHardDiskAttachmentEnumerator_GetNext_Proxy( 
    IHardDiskAttachmentEnumerator * This,
    /* [retval][out] */ IHardDiskAttachment **next);


void __RPC_STUB IHardDiskAttachmentEnumerator_GetNext_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IHardDiskAttachmentEnumerator_INTERFACE_DEFINED__ */


#ifndef __IHardDiskAttachmentCollection_INTERFACE_DEFINED__
#define __IHardDiskAttachmentCollection_INTERFACE_DEFINED__

/* interface IHardDiskAttachmentCollection */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IHardDiskAttachmentCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8f727842-bb77-45d4-92de-4ec14bf613c9")
    IHardDiskAttachmentCollection : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ ULONG *count) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetItemAt( 
            /* [in] */ ULONG index,
            /* [retval][out] */ IHardDiskAttachment **item) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Enumerate( 
            /* [retval][out] */ IHardDiskAttachmentEnumerator **enumerator) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IHardDiskAttachmentCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IHardDiskAttachmentCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IHardDiskAttachmentCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IHardDiskAttachmentCollection * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IHardDiskAttachmentCollection * This,
            /* [retval][out] */ ULONG *count);
        
        HRESULT ( STDMETHODCALLTYPE *GetItemAt )( 
            IHardDiskAttachmentCollection * This,
            /* [in] */ ULONG index,
            /* [retval][out] */ IHardDiskAttachment **item);
        
        HRESULT ( STDMETHODCALLTYPE *Enumerate )( 
            IHardDiskAttachmentCollection * This,
            /* [retval][out] */ IHardDiskAttachmentEnumerator **enumerator);
        
        END_INTERFACE
    } IHardDiskAttachmentCollectionVtbl;

    interface IHardDiskAttachmentCollection
    {
        CONST_VTBL struct IHardDiskAttachmentCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IHardDiskAttachmentCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IHardDiskAttachmentCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IHardDiskAttachmentCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IHardDiskAttachmentCollection_get_Count(This,count)	\
    (This)->lpVtbl -> get_Count(This,count)

#define IHardDiskAttachmentCollection_GetItemAt(This,index,item)	\
    (This)->lpVtbl -> GetItemAt(This,index,item)

#define IHardDiskAttachmentCollection_Enumerate(This,enumerator)	\
    (This)->lpVtbl -> Enumerate(This,enumerator)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IHardDiskAttachmentCollection_get_Count_Proxy( 
    IHardDiskAttachmentCollection * This,
    /* [retval][out] */ ULONG *count);


void __RPC_STUB IHardDiskAttachmentCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHardDiskAttachmentCollection_GetItemAt_Proxy( 
    IHardDiskAttachmentCollection * This,
    /* [in] */ ULONG index,
    /* [retval][out] */ IHardDiskAttachment **item);


void __RPC_STUB IHardDiskAttachmentCollection_GetItemAt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHardDiskAttachmentCollection_Enumerate_Proxy( 
    IHardDiskAttachmentCollection * This,
    /* [retval][out] */ IHardDiskAttachmentEnumerator **enumerator);


void __RPC_STUB IHardDiskAttachmentCollection_Enumerate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IHardDiskAttachmentCollection_INTERFACE_DEFINED__ */


#ifndef __IHardDiskEnumerator_INTERFACE_DEFINED__
#define __IHardDiskEnumerator_INTERFACE_DEFINED__

/* interface IHardDiskEnumerator */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IHardDiskEnumerator;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("b976f97b-cdb8-47e3-9860-084031cbd533")
    IHardDiskEnumerator : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE HasMore( 
            /* [retval][out] */ BOOL *more) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetNext( 
            /* [retval][out] */ IHardDisk **next) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IHardDiskEnumeratorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IHardDiskEnumerator * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IHardDiskEnumerator * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IHardDiskEnumerator * This);
        
        HRESULT ( STDMETHODCALLTYPE *HasMore )( 
            IHardDiskEnumerator * This,
            /* [retval][out] */ BOOL *more);
        
        HRESULT ( STDMETHODCALLTYPE *GetNext )( 
            IHardDiskEnumerator * This,
            /* [retval][out] */ IHardDisk **next);
        
        END_INTERFACE
    } IHardDiskEnumeratorVtbl;

    interface IHardDiskEnumerator
    {
        CONST_VTBL struct IHardDiskEnumeratorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IHardDiskEnumerator_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IHardDiskEnumerator_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IHardDiskEnumerator_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IHardDiskEnumerator_HasMore(This,more)	\
    (This)->lpVtbl -> HasMore(This,more)

#define IHardDiskEnumerator_GetNext(This,next)	\
    (This)->lpVtbl -> GetNext(This,next)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IHardDiskEnumerator_HasMore_Proxy( 
    IHardDiskEnumerator * This,
    /* [retval][out] */ BOOL *more);


void __RPC_STUB IHardDiskEnumerator_HasMore_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHardDiskEnumerator_GetNext_Proxy( 
    IHardDiskEnumerator * This,
    /* [retval][out] */ IHardDisk **next);


void __RPC_STUB IHardDiskEnumerator_GetNext_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IHardDiskEnumerator_INTERFACE_DEFINED__ */


#ifndef __IHardDiskCollection_INTERFACE_DEFINED__
#define __IHardDiskCollection_INTERFACE_DEFINED__

/* interface IHardDiskCollection */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IHardDiskCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("43EAC2BC-5C61-40fa-BC38-46DE2C7DB6BB")
    IHardDiskCollection : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ ULONG *count) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetItemAt( 
            /* [in] */ ULONG index,
            /* [retval][out] */ IHardDisk **item) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Enumerate( 
            /* [retval][out] */ IHardDiskEnumerator **enumerator) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IHardDiskCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IHardDiskCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IHardDiskCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IHardDiskCollection * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IHardDiskCollection * This,
            /* [retval][out] */ ULONG *count);
        
        HRESULT ( STDMETHODCALLTYPE *GetItemAt )( 
            IHardDiskCollection * This,
            /* [in] */ ULONG index,
            /* [retval][out] */ IHardDisk **item);
        
        HRESULT ( STDMETHODCALLTYPE *Enumerate )( 
            IHardDiskCollection * This,
            /* [retval][out] */ IHardDiskEnumerator **enumerator);
        
        END_INTERFACE
    } IHardDiskCollectionVtbl;

    interface IHardDiskCollection
    {
        CONST_VTBL struct IHardDiskCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IHardDiskCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IHardDiskCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IHardDiskCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IHardDiskCollection_get_Count(This,count)	\
    (This)->lpVtbl -> get_Count(This,count)

#define IHardDiskCollection_GetItemAt(This,index,item)	\
    (This)->lpVtbl -> GetItemAt(This,index,item)

#define IHardDiskCollection_Enumerate(This,enumerator)	\
    (This)->lpVtbl -> Enumerate(This,enumerator)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IHardDiskCollection_get_Count_Proxy( 
    IHardDiskCollection * This,
    /* [retval][out] */ ULONG *count);


void __RPC_STUB IHardDiskCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHardDiskCollection_GetItemAt_Proxy( 
    IHardDiskCollection * This,
    /* [in] */ ULONG index,
    /* [retval][out] */ IHardDisk **item);


void __RPC_STUB IHardDiskCollection_GetItemAt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHardDiskCollection_Enumerate_Proxy( 
    IHardDiskCollection * This,
    /* [retval][out] */ IHardDiskEnumerator **enumerator);


void __RPC_STUB IHardDiskCollection_Enumerate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IHardDiskCollection_INTERFACE_DEFINED__ */


#ifndef __IHardDisk_INTERFACE_DEFINED__
#define __IHardDisk_INTERFACE_DEFINED__

/* interface IHardDisk */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IHardDisk;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("FD443EC1-000F-4F5B-9282-D72760A66916")
    IHardDisk : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Id( 
            /* [retval][out] */ GUID *aId) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Description( 
            /* [retval][out] */ BSTR *aDescription) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Description( 
            /* [in] */ BSTR aDescription) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_StorageType( 
            /* [retval][out] */ HardDiskStorageType *aStorageType) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Location( 
            /* [retval][out] */ BSTR *aLocation) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Type( 
            /* [retval][out] */ HardDiskType *aType) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Type( 
            /* [in] */ HardDiskType aType) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Parent( 
            /* [retval][out] */ IHardDisk **aParent) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Children( 
            /* [retval][out] */ IHardDiskCollection **aChildren) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Root( 
            /* [retval][out] */ IHardDisk **aRoot) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Accessible( 
            /* [retval][out] */ BOOL *aAccessible) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AllAccessible( 
            /* [retval][out] */ BOOL *aAllAccessible) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_LastAccessError( 
            /* [retval][out] */ BSTR *aLastAccessError) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Size( 
            /* [retval][out] */ ULONG64 *aSize) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ActualSize( 
            /* [retval][out] */ ULONG64 *aActualSize) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MachineId( 
            /* [retval][out] */ GUID *aMachineId) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SnapshotId( 
            /* [retval][out] */ GUID *aSnapshotId) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CloneToImage( 
            /* [in] */ BSTR aFilePath,
            /* [out] */ IVirtualDiskImage **aImage,
            /* [retval][out] */ IProgress **aProgress) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IHardDiskVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IHardDisk * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IHardDisk * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IHardDisk * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Id )( 
            IHardDisk * This,
            /* [retval][out] */ GUID *aId);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Description )( 
            IHardDisk * This,
            /* [retval][out] */ BSTR *aDescription);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Description )( 
            IHardDisk * This,
            /* [in] */ BSTR aDescription);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_StorageType )( 
            IHardDisk * This,
            /* [retval][out] */ HardDiskStorageType *aStorageType);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Location )( 
            IHardDisk * This,
            /* [retval][out] */ BSTR *aLocation);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Type )( 
            IHardDisk * This,
            /* [retval][out] */ HardDiskType *aType);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Type )( 
            IHardDisk * This,
            /* [in] */ HardDiskType aType);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )( 
            IHardDisk * This,
            /* [retval][out] */ IHardDisk **aParent);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Children )( 
            IHardDisk * This,
            /* [retval][out] */ IHardDiskCollection **aChildren);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Root )( 
            IHardDisk * This,
            /* [retval][out] */ IHardDisk **aRoot);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Accessible )( 
            IHardDisk * This,
            /* [retval][out] */ BOOL *aAccessible);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AllAccessible )( 
            IHardDisk * This,
            /* [retval][out] */ BOOL *aAllAccessible);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_LastAccessError )( 
            IHardDisk * This,
            /* [retval][out] */ BSTR *aLastAccessError);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Size )( 
            IHardDisk * This,
            /* [retval][out] */ ULONG64 *aSize);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ActualSize )( 
            IHardDisk * This,
            /* [retval][out] */ ULONG64 *aActualSize);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MachineId )( 
            IHardDisk * This,
            /* [retval][out] */ GUID *aMachineId);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SnapshotId )( 
            IHardDisk * This,
            /* [retval][out] */ GUID *aSnapshotId);
        
        HRESULT ( STDMETHODCALLTYPE *CloneToImage )( 
            IHardDisk * This,
            /* [in] */ BSTR aFilePath,
            /* [out] */ IVirtualDiskImage **aImage,
            /* [retval][out] */ IProgress **aProgress);
        
        END_INTERFACE
    } IHardDiskVtbl;

    interface IHardDisk
    {
        CONST_VTBL struct IHardDiskVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IHardDisk_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IHardDisk_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IHardDisk_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IHardDisk_get_Id(This,aId)	\
    (This)->lpVtbl -> get_Id(This,aId)

#define IHardDisk_get_Description(This,aDescription)	\
    (This)->lpVtbl -> get_Description(This,aDescription)

#define IHardDisk_put_Description(This,aDescription)	\
    (This)->lpVtbl -> put_Description(This,aDescription)

#define IHardDisk_get_StorageType(This,aStorageType)	\
    (This)->lpVtbl -> get_StorageType(This,aStorageType)

#define IHardDisk_get_Location(This,aLocation)	\
    (This)->lpVtbl -> get_Location(This,aLocation)

#define IHardDisk_get_Type(This,aType)	\
    (This)->lpVtbl -> get_Type(This,aType)

#define IHardDisk_put_Type(This,aType)	\
    (This)->lpVtbl -> put_Type(This,aType)

#define IHardDisk_get_Parent(This,aParent)	\
    (This)->lpVtbl -> get_Parent(This,aParent)

#define IHardDisk_get_Children(This,aChildren)	\
    (This)->lpVtbl -> get_Children(This,aChildren)

#define IHardDisk_get_Root(This,aRoot)	\
    (This)->lpVtbl -> get_Root(This,aRoot)

#define IHardDisk_get_Accessible(This,aAccessible)	\
    (This)->lpVtbl -> get_Accessible(This,aAccessible)

#define IHardDisk_get_AllAccessible(This,aAllAccessible)	\
    (This)->lpVtbl -> get_AllAccessible(This,aAllAccessible)

#define IHardDisk_get_LastAccessError(This,aLastAccessError)	\
    (This)->lpVtbl -> get_LastAccessError(This,aLastAccessError)

#define IHardDisk_get_Size(This,aSize)	\
    (This)->lpVtbl -> get_Size(This,aSize)

#define IHardDisk_get_ActualSize(This,aActualSize)	\
    (This)->lpVtbl -> get_ActualSize(This,aActualSize)

#define IHardDisk_get_MachineId(This,aMachineId)	\
    (This)->lpVtbl -> get_MachineId(This,aMachineId)

#define IHardDisk_get_SnapshotId(This,aSnapshotId)	\
    (This)->lpVtbl -> get_SnapshotId(This,aSnapshotId)

#define IHardDisk_CloneToImage(This,aFilePath,aImage,aProgress)	\
    (This)->lpVtbl -> CloneToImage(This,aFilePath,aImage,aProgress)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IHardDisk_get_Id_Proxy( 
    IHardDisk * This,
    /* [retval][out] */ GUID *aId);


void __RPC_STUB IHardDisk_get_Id_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHardDisk_get_Description_Proxy( 
    IHardDisk * This,
    /* [retval][out] */ BSTR *aDescription);


void __RPC_STUB IHardDisk_get_Description_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IHardDisk_put_Description_Proxy( 
    IHardDisk * This,
    /* [in] */ BSTR aDescription);


void __RPC_STUB IHardDisk_put_Description_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHardDisk_get_StorageType_Proxy( 
    IHardDisk * This,
    /* [retval][out] */ HardDiskStorageType *aStorageType);


void __RPC_STUB IHardDisk_get_StorageType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHardDisk_get_Location_Proxy( 
    IHardDisk * This,
    /* [retval][out] */ BSTR *aLocation);


void __RPC_STUB IHardDisk_get_Location_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHardDisk_get_Type_Proxy( 
    IHardDisk * This,
    /* [retval][out] */ HardDiskType *aType);


void __RPC_STUB IHardDisk_get_Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IHardDisk_put_Type_Proxy( 
    IHardDisk * This,
    /* [in] */ HardDiskType aType);


void __RPC_STUB IHardDisk_put_Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHardDisk_get_Parent_Proxy( 
    IHardDisk * This,
    /* [retval][out] */ IHardDisk **aParent);


void __RPC_STUB IHardDisk_get_Parent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHardDisk_get_Children_Proxy( 
    IHardDisk * This,
    /* [retval][out] */ IHardDiskCollection **aChildren);


void __RPC_STUB IHardDisk_get_Children_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHardDisk_get_Root_Proxy( 
    IHardDisk * This,
    /* [retval][out] */ IHardDisk **aRoot);


void __RPC_STUB IHardDisk_get_Root_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHardDisk_get_Accessible_Proxy( 
    IHardDisk * This,
    /* [retval][out] */ BOOL *aAccessible);


void __RPC_STUB IHardDisk_get_Accessible_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHardDisk_get_AllAccessible_Proxy( 
    IHardDisk * This,
    /* [retval][out] */ BOOL *aAllAccessible);


void __RPC_STUB IHardDisk_get_AllAccessible_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHardDisk_get_LastAccessError_Proxy( 
    IHardDisk * This,
    /* [retval][out] */ BSTR *aLastAccessError);


void __RPC_STUB IHardDisk_get_LastAccessError_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHardDisk_get_Size_Proxy( 
    IHardDisk * This,
    /* [retval][out] */ ULONG64 *aSize);


void __RPC_STUB IHardDisk_get_Size_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHardDisk_get_ActualSize_Proxy( 
    IHardDisk * This,
    /* [retval][out] */ ULONG64 *aActualSize);


void __RPC_STUB IHardDisk_get_ActualSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHardDisk_get_MachineId_Proxy( 
    IHardDisk * This,
    /* [retval][out] */ GUID *aMachineId);


void __RPC_STUB IHardDisk_get_MachineId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IHardDisk_get_SnapshotId_Proxy( 
    IHardDisk * This,
    /* [retval][out] */ GUID *aSnapshotId);


void __RPC_STUB IHardDisk_get_SnapshotId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHardDisk_CloneToImage_Proxy( 
    IHardDisk * This,
    /* [in] */ BSTR aFilePath,
    /* [out] */ IVirtualDiskImage **aImage,
    /* [retval][out] */ IProgress **aProgress);


void __RPC_STUB IHardDisk_CloneToImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IHardDisk_INTERFACE_DEFINED__ */


#ifndef __IVirtualDiskImage_INTERFACE_DEFINED__
#define __IVirtualDiskImage_INTERFACE_DEFINED__

/* interface IVirtualDiskImage */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IVirtualDiskImage;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("a8265b5a-0d20-4a46-a02f-65693a4e8239")
    IVirtualDiskImage : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FilePath( 
            /* [retval][out] */ BSTR *aFilePath) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_FilePath( 
            /* [in] */ BSTR aFilePath) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Created( 
            /* [retval][out] */ BOOL *aCreated) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateDynamicImage( 
            /* [in] */ ULONG64 aSize,
            /* [retval][out] */ IProgress **aProgress) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateFixedImage( 
            /* [in] */ ULONG64 aSize,
            /* [retval][out] */ IProgress **aProgress) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE DeleteImage( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IVirtualDiskImageVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IVirtualDiskImage * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IVirtualDiskImage * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IVirtualDiskImage * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_FilePath )( 
            IVirtualDiskImage * This,
            /* [retval][out] */ BSTR *aFilePath);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_FilePath )( 
            IVirtualDiskImage * This,
            /* [in] */ BSTR aFilePath);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Created )( 
            IVirtualDiskImage * This,
            /* [retval][out] */ BOOL *aCreated);
        
        HRESULT ( STDMETHODCALLTYPE *CreateDynamicImage )( 
            IVirtualDiskImage * This,
            /* [in] */ ULONG64 aSize,
            /* [retval][out] */ IProgress **aProgress);
        
        HRESULT ( STDMETHODCALLTYPE *CreateFixedImage )( 
            IVirtualDiskImage * This,
            /* [in] */ ULONG64 aSize,
            /* [retval][out] */ IProgress **aProgress);
        
        HRESULT ( STDMETHODCALLTYPE *DeleteImage )( 
            IVirtualDiskImage * This);
        
        END_INTERFACE
    } IVirtualDiskImageVtbl;

    interface IVirtualDiskImage
    {
        CONST_VTBL struct IVirtualDiskImageVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IVirtualDiskImage_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IVirtualDiskImage_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IVirtualDiskImage_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IVirtualDiskImage_get_FilePath(This,aFilePath)	\
    (This)->lpVtbl -> get_FilePath(This,aFilePath)

#define IVirtualDiskImage_put_FilePath(This,aFilePath)	\
    (This)->lpVtbl -> put_FilePath(This,aFilePath)

#define IVirtualDiskImage_get_Created(This,aCreated)	\
    (This)->lpVtbl -> get_Created(This,aCreated)

#define IVirtualDiskImage_CreateDynamicImage(This,aSize,aProgress)	\
    (This)->lpVtbl -> CreateDynamicImage(This,aSize,aProgress)

#define IVirtualDiskImage_CreateFixedImage(This,aSize,aProgress)	\
    (This)->lpVtbl -> CreateFixedImage(This,aSize,aProgress)

#define IVirtualDiskImage_DeleteImage(This)	\
    (This)->lpVtbl -> DeleteImage(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IVirtualDiskImage_get_FilePath_Proxy( 
    IVirtualDiskImage * This,
    /* [retval][out] */ BSTR *aFilePath);


void __RPC_STUB IVirtualDiskImage_get_FilePath_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IVirtualDiskImage_put_FilePath_Proxy( 
    IVirtualDiskImage * This,
    /* [in] */ BSTR aFilePath);


void __RPC_STUB IVirtualDiskImage_put_FilePath_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IVirtualDiskImage_get_Created_Proxy( 
    IVirtualDiskImage * This,
    /* [retval][out] */ BOOL *aCreated);


void __RPC_STUB IVirtualDiskImage_get_Created_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualDiskImage_CreateDynamicImage_Proxy( 
    IVirtualDiskImage * This,
    /* [in] */ ULONG64 aSize,
    /* [retval][out] */ IProgress **aProgress);


void __RPC_STUB IVirtualDiskImage_CreateDynamicImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualDiskImage_CreateFixedImage_Proxy( 
    IVirtualDiskImage * This,
    /* [in] */ ULONG64 aSize,
    /* [retval][out] */ IProgress **aProgress);


void __RPC_STUB IVirtualDiskImage_CreateFixedImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVirtualDiskImage_DeleteImage_Proxy( 
    IVirtualDiskImage * This);


void __RPC_STUB IVirtualDiskImage_DeleteImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IVirtualDiskImage_INTERFACE_DEFINED__ */


#ifndef __IISCSIHardDisk_INTERFACE_DEFINED__
#define __IISCSIHardDisk_INTERFACE_DEFINED__

/* interface IISCSIHardDisk */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IISCSIHardDisk;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("003f6ca9-3257-4ef9-99c9-c66ce44576cb")
    IISCSIHardDisk : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Server( 
            /* [retval][out] */ BSTR *aServer) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Server( 
            /* [in] */ BSTR aServer) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Port( 
            /* [retval][out] */ USHORT *aPort) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Port( 
            /* [in] */ USHORT aPort) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Target( 
            /* [retval][out] */ BSTR *aTarget) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Target( 
            /* [in] */ BSTR aTarget) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Lun( 
            /* [retval][out] */ ULONG64 *aLun) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Lun( 
            /* [in] */ ULONG64 aLun) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_UserName( 
            /* [retval][out] */ BSTR *aUserName) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_UserName( 
            /* [in] */ BSTR aUserName) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Password( 
            /* [retval][out] */ BSTR *aPassword) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Password( 
            /* [in] */ BSTR aPassword) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IISCSIHardDiskVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IISCSIHardDisk * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IISCSIHardDisk * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IISCSIHardDisk * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Server )( 
            IISCSIHardDisk * This,
            /* [retval][out] */ BSTR *aServer);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Server )( 
            IISCSIHardDisk * This,
            /* [in] */ BSTR aServer);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Port )( 
            IISCSIHardDisk * This,
            /* [retval][out] */ USHORT *aPort);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Port )( 
            IISCSIHardDisk * This,
            /* [in] */ USHORT aPort);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Target )( 
            IISCSIHardDisk * This,
            /* [retval][out] */ BSTR *aTarget);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Target )( 
            IISCSIHardDisk * This,
            /* [in] */ BSTR aTarget);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Lun )( 
            IISCSIHardDisk * This,
            /* [retval][out] */ ULONG64 *aLun);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Lun )( 
            IISCSIHardDisk * This,
            /* [in] */ ULONG64 aLun);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_UserName )( 
            IISCSIHardDisk * This,
            /* [retval][out] */ BSTR *aUserName);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_UserName )( 
            IISCSIHardDisk * This,
            /* [in] */ BSTR aUserName);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Password )( 
            IISCSIHardDisk * This,
            /* [retval][out] */ BSTR *aPassword);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Password )( 
            IISCSIHardDisk * This,
            /* [in] */ BSTR aPassword);
        
        END_INTERFACE
    } IISCSIHardDiskVtbl;

    interface IISCSIHardDisk
    {
        CONST_VTBL struct IISCSIHardDiskVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IISCSIHardDisk_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IISCSIHardDisk_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IISCSIHardDisk_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IISCSIHardDisk_get_Server(This,aServer)	\
    (This)->lpVtbl -> get_Server(This,aServer)

#define IISCSIHardDisk_put_Server(This,aServer)	\
    (This)->lpVtbl -> put_Server(This,aServer)

#define IISCSIHardDisk_get_Port(This,aPort)	\
    (This)->lpVtbl -> get_Port(This,aPort)

#define IISCSIHardDisk_put_Port(This,aPort)	\
    (This)->lpVtbl -> put_Port(This,aPort)

#define IISCSIHardDisk_get_Target(This,aTarget)	\
    (This)->lpVtbl -> get_Target(This,aTarget)

#define IISCSIHardDisk_put_Target(This,aTarget)	\
    (This)->lpVtbl -> put_Target(This,aTarget)

#define IISCSIHardDisk_get_Lun(This,aLun)	\
    (This)->lpVtbl -> get_Lun(This,aLun)

#define IISCSIHardDisk_put_Lun(This,aLun)	\
    (This)->lpVtbl -> put_Lun(This,aLun)

#define IISCSIHardDisk_get_UserName(This,aUserName)	\
    (This)->lpVtbl -> get_UserName(This,aUserName)

#define IISCSIHardDisk_put_UserName(This,aUserName)	\
    (This)->lpVtbl -> put_UserName(This,aUserName)

#define IISCSIHardDisk_get_Password(This,aPassword)	\
    (This)->lpVtbl -> get_Password(This,aPassword)

#define IISCSIHardDisk_put_Password(This,aPassword)	\
    (This)->lpVtbl -> put_Password(This,aPassword)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IISCSIHardDisk_get_Server_Proxy( 
    IISCSIHardDisk * This,
    /* [retval][out] */ BSTR *aServer);


void __RPC_STUB IISCSIHardDisk_get_Server_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IISCSIHardDisk_put_Server_Proxy( 
    IISCSIHardDisk * This,
    /* [in] */ BSTR aServer);


void __RPC_STUB IISCSIHardDisk_put_Server_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IISCSIHardDisk_get_Port_Proxy( 
    IISCSIHardDisk * This,
    /* [retval][out] */ USHORT *aPort);


void __RPC_STUB IISCSIHardDisk_get_Port_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IISCSIHardDisk_put_Port_Proxy( 
    IISCSIHardDisk * This,
    /* [in] */ USHORT aPort);


void __RPC_STUB IISCSIHardDisk_put_Port_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IISCSIHardDisk_get_Target_Proxy( 
    IISCSIHardDisk * This,
    /* [retval][out] */ BSTR *aTarget);


void __RPC_STUB IISCSIHardDisk_get_Target_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IISCSIHardDisk_put_Target_Proxy( 
    IISCSIHardDisk * This,
    /* [in] */ BSTR aTarget);


void __RPC_STUB IISCSIHardDisk_put_Target_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IISCSIHardDisk_get_Lun_Proxy( 
    IISCSIHardDisk * This,
    /* [retval][out] */ ULONG64 *aLun);


void __RPC_STUB IISCSIHardDisk_get_Lun_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IISCSIHardDisk_put_Lun_Proxy( 
    IISCSIHardDisk * This,
    /* [in] */ ULONG64 aLun);


void __RPC_STUB IISCSIHardDisk_put_Lun_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IISCSIHardDisk_get_UserName_Proxy( 
    IISCSIHardDisk * This,
    /* [retval][out] */ BSTR *aUserName);


void __RPC_STUB IISCSIHardDisk_get_UserName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IISCSIHardDisk_put_UserName_Proxy( 
    IISCSIHardDisk * This,
    /* [in] */ BSTR aUserName);


void __RPC_STUB IISCSIHardDisk_put_UserName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IISCSIHardDisk_get_Password_Proxy( 
    IISCSIHardDisk * This,
    /* [retval][out] */ BSTR *aPassword);


void __RPC_STUB IISCSIHardDisk_get_Password_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IISCSIHardDisk_put_Password_Proxy( 
    IISCSIHardDisk * This,
    /* [in] */ BSTR aPassword);


void __RPC_STUB IISCSIHardDisk_put_Password_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IISCSIHardDisk_INTERFACE_DEFINED__ */


#ifndef __IVMDKImage_INTERFACE_DEFINED__
#define __IVMDKImage_INTERFACE_DEFINED__

/* interface IVMDKImage */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IVMDKImage;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("178398f5-8559-4fee-979e-420af5b53eef")
    IVMDKImage : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FilePath( 
            /* [retval][out] */ BSTR *aFilePath) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_FilePath( 
            /* [in] */ BSTR aFilePath) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Created( 
            /* [retval][out] */ BOOL *aCreated) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateDynamicImage( 
            /* [in] */ ULONG64 aSize,
            /* [retval][out] */ IProgress **aProgress) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateFixedImage( 
            /* [in] */ ULONG64 aSize,
            /* [retval][out] */ IProgress **aProgress) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE DeleteImage( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IVMDKImageVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IVMDKImage * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IVMDKImage * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IVMDKImage * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_FilePath )( 
            IVMDKImage * This,
            /* [retval][out] */ BSTR *aFilePath);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_FilePath )( 
            IVMDKImage * This,
            /* [in] */ BSTR aFilePath);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Created )( 
            IVMDKImage * This,
            /* [retval][out] */ BOOL *aCreated);
        
        HRESULT ( STDMETHODCALLTYPE *CreateDynamicImage )( 
            IVMDKImage * This,
            /* [in] */ ULONG64 aSize,
            /* [retval][out] */ IProgress **aProgress);
        
        HRESULT ( STDMETHODCALLTYPE *CreateFixedImage )( 
            IVMDKImage * This,
            /* [in] */ ULONG64 aSize,
            /* [retval][out] */ IProgress **aProgress);
        
        HRESULT ( STDMETHODCALLTYPE *DeleteImage )( 
            IVMDKImage * This);
        
        END_INTERFACE
    } IVMDKImageVtbl;

    interface IVMDKImage
    {
        CONST_VTBL struct IVMDKImageVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IVMDKImage_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IVMDKImage_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IVMDKImage_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IVMDKImage_get_FilePath(This,aFilePath)	\
    (This)->lpVtbl -> get_FilePath(This,aFilePath)

#define IVMDKImage_put_FilePath(This,aFilePath)	\
    (This)->lpVtbl -> put_FilePath(This,aFilePath)

#define IVMDKImage_get_Created(This,aCreated)	\
    (This)->lpVtbl -> get_Created(This,aCreated)

#define IVMDKImage_CreateDynamicImage(This,aSize,aProgress)	\
    (This)->lpVtbl -> CreateDynamicImage(This,aSize,aProgress)

#define IVMDKImage_CreateFixedImage(This,aSize,aProgress)	\
    (This)->lpVtbl -> CreateFixedImage(This,aSize,aProgress)

#define IVMDKImage_DeleteImage(This)	\
    (This)->lpVtbl -> DeleteImage(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IVMDKImage_get_FilePath_Proxy( 
    IVMDKImage * This,
    /* [retval][out] */ BSTR *aFilePath);


void __RPC_STUB IVMDKImage_get_FilePath_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IVMDKImage_put_FilePath_Proxy( 
    IVMDKImage * This,
    /* [in] */ BSTR aFilePath);


void __RPC_STUB IVMDKImage_put_FilePath_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IVMDKImage_get_Created_Proxy( 
    IVMDKImage * This,
    /* [retval][out] */ BOOL *aCreated);


void __RPC_STUB IVMDKImage_get_Created_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVMDKImage_CreateDynamicImage_Proxy( 
    IVMDKImage * This,
    /* [in] */ ULONG64 aSize,
    /* [retval][out] */ IProgress **aProgress);


void __RPC_STUB IVMDKImage_CreateDynamicImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVMDKImage_CreateFixedImage_Proxy( 
    IVMDKImage * This,
    /* [in] */ ULONG64 aSize,
    /* [retval][out] */ IProgress **aProgress);


void __RPC_STUB IVMDKImage_CreateFixedImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVMDKImage_DeleteImage_Proxy( 
    IVMDKImage * This);


void __RPC_STUB IVMDKImage_DeleteImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IVMDKImage_INTERFACE_DEFINED__ */


#ifndef __ICustomHardDisk_INTERFACE_DEFINED__
#define __ICustomHardDisk_INTERFACE_DEFINED__

/* interface ICustomHardDisk */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_ICustomHardDisk;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("a7b0236d-3ff4-47c0-a4aa-ddc4ddc1141a")
    ICustomHardDisk : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Location( 
            /* [retval][out] */ BSTR *aLocation) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Location( 
            /* [in] */ BSTR aLocation) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Format( 
            /* [retval][out] */ BSTR *aFormat) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Created( 
            /* [retval][out] */ BOOL *aCreated) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateDynamicImage( 
            /* [in] */ ULONG64 aSize,
            /* [retval][out] */ IProgress **aProgress) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateFixedImage( 
            /* [in] */ ULONG64 aSize,
            /* [retval][out] */ IProgress **aProgress) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE DeleteImage( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ICustomHardDiskVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ICustomHardDisk * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ICustomHardDisk * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ICustomHardDisk * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Location )( 
            ICustomHardDisk * This,
            /* [retval][out] */ BSTR *aLocation);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Location )( 
            ICustomHardDisk * This,
            /* [in] */ BSTR aLocation);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Format )( 
            ICustomHardDisk * This,
            /* [retval][out] */ BSTR *aFormat);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Created )( 
            ICustomHardDisk * This,
            /* [retval][out] */ BOOL *aCreated);
        
        HRESULT ( STDMETHODCALLTYPE *CreateDynamicImage )( 
            ICustomHardDisk * This,
            /* [in] */ ULONG64 aSize,
            /* [retval][out] */ IProgress **aProgress);
        
        HRESULT ( STDMETHODCALLTYPE *CreateFixedImage )( 
            ICustomHardDisk * This,
            /* [in] */ ULONG64 aSize,
            /* [retval][out] */ IProgress **aProgress);
        
        HRESULT ( STDMETHODCALLTYPE *DeleteImage )( 
            ICustomHardDisk * This);
        
        END_INTERFACE
    } ICustomHardDiskVtbl;

    interface ICustomHardDisk
    {
        CONST_VTBL struct ICustomHardDiskVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ICustomHardDisk_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ICustomHardDisk_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ICustomHardDisk_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ICustomHardDisk_get_Location(This,aLocation)	\
    (This)->lpVtbl -> get_Location(This,aLocation)

#define ICustomHardDisk_put_Location(This,aLocation)	\
    (This)->lpVtbl -> put_Location(This,aLocation)

#define ICustomHardDisk_get_Format(This,aFormat)	\
    (This)->lpVtbl -> get_Format(This,aFormat)

#define ICustomHardDisk_get_Created(This,aCreated)	\
    (This)->lpVtbl -> get_Created(This,aCreated)

#define ICustomHardDisk_CreateDynamicImage(This,aSize,aProgress)	\
    (This)->lpVtbl -> CreateDynamicImage(This,aSize,aProgress)

#define ICustomHardDisk_CreateFixedImage(This,aSize,aProgress)	\
    (This)->lpVtbl -> CreateFixedImage(This,aSize,aProgress)

#define ICustomHardDisk_DeleteImage(This)	\
    (This)->lpVtbl -> DeleteImage(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE ICustomHardDisk_get_Location_Proxy( 
    ICustomHardDisk * This,
    /* [retval][out] */ BSTR *aLocation);


void __RPC_STUB ICustomHardDisk_get_Location_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE ICustomHardDisk_put_Location_Proxy( 
    ICustomHardDisk * This,
    /* [in] */ BSTR aLocation);


void __RPC_STUB ICustomHardDisk_put_Location_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ICustomHardDisk_get_Format_Proxy( 
    ICustomHardDisk * This,
    /* [retval][out] */ BSTR *aFormat);


void __RPC_STUB ICustomHardDisk_get_Format_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ICustomHardDisk_get_Created_Proxy( 
    ICustomHardDisk * This,
    /* [retval][out] */ BOOL *aCreated);


void __RPC_STUB ICustomHardDisk_get_Created_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE ICustomHardDisk_CreateDynamicImage_Proxy( 
    ICustomHardDisk * This,
    /* [in] */ ULONG64 aSize,
    /* [retval][out] */ IProgress **aProgress);


void __RPC_STUB ICustomHardDisk_CreateDynamicImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE ICustomHardDisk_CreateFixedImage_Proxy( 
    ICustomHardDisk * This,
    /* [in] */ ULONG64 aSize,
    /* [retval][out] */ IProgress **aProgress);


void __RPC_STUB ICustomHardDisk_CreateFixedImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE ICustomHardDisk_DeleteImage_Proxy( 
    ICustomHardDisk * This);


void __RPC_STUB ICustomHardDisk_DeleteImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ICustomHardDisk_INTERFACE_DEFINED__ */


#ifndef __IVHDImage_INTERFACE_DEFINED__
#define __IVHDImage_INTERFACE_DEFINED__

/* interface IVHDImage */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IVHDImage;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("163b88c3-7552-424a-8205-daf17a004747")
    IVHDImage : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FilePath( 
            /* [retval][out] */ BSTR *aFilePath) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_FilePath( 
            /* [in] */ BSTR aFilePath) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Created( 
            /* [retval][out] */ BOOL *aCreated) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateDynamicImage( 
            /* [in] */ ULONG64 aSize,
            /* [retval][out] */ IProgress **aProgress) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateFixedImage( 
            /* [in] */ ULONG64 aSize,
            /* [retval][out] */ IProgress **aProgress) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE DeleteImage( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IVHDImageVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IVHDImage * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IVHDImage * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IVHDImage * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_FilePath )( 
            IVHDImage * This,
            /* [retval][out] */ BSTR *aFilePath);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_FilePath )( 
            IVHDImage * This,
            /* [in] */ BSTR aFilePath);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Created )( 
            IVHDImage * This,
            /* [retval][out] */ BOOL *aCreated);
        
        HRESULT ( STDMETHODCALLTYPE *CreateDynamicImage )( 
            IVHDImage * This,
            /* [in] */ ULONG64 aSize,
            /* [retval][out] */ IProgress **aProgress);
        
        HRESULT ( STDMETHODCALLTYPE *CreateFixedImage )( 
            IVHDImage * This,
            /* [in] */ ULONG64 aSize,
            /* [retval][out] */ IProgress **aProgress);
        
        HRESULT ( STDMETHODCALLTYPE *DeleteImage )( 
            IVHDImage * This);
        
        END_INTERFACE
    } IVHDImageVtbl;

    interface IVHDImage
    {
        CONST_VTBL struct IVHDImageVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IVHDImage_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IVHDImage_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IVHDImage_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IVHDImage_get_FilePath(This,aFilePath)	\
    (This)->lpVtbl -> get_FilePath(This,aFilePath)

#define IVHDImage_put_FilePath(This,aFilePath)	\
    (This)->lpVtbl -> put_FilePath(This,aFilePath)

#define IVHDImage_get_Created(This,aCreated)	\
    (This)->lpVtbl -> get_Created(This,aCreated)

#define IVHDImage_CreateDynamicImage(This,aSize,aProgress)	\
    (This)->lpVtbl -> CreateDynamicImage(This,aSize,aProgress)

#define IVHDImage_CreateFixedImage(This,aSize,aProgress)	\
    (This)->lpVtbl -> CreateFixedImage(This,aSize,aProgress)

#define IVHDImage_DeleteImage(This)	\
    (This)->lpVtbl -> DeleteImage(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IVHDImage_get_FilePath_Proxy( 
    IVHDImage * This,
    /* [retval][out] */ BSTR *aFilePath);


void __RPC_STUB IVHDImage_get_FilePath_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IVHDImage_put_FilePath_Proxy( 
    IVHDImage * This,
    /* [in] */ BSTR aFilePath);


void __RPC_STUB IVHDImage_put_FilePath_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IVHDImage_get_Created_Proxy( 
    IVHDImage * This,
    /* [retval][out] */ BOOL *aCreated);


void __RPC_STUB IVHDImage_get_Created_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVHDImage_CreateDynamicImage_Proxy( 
    IVHDImage * This,
    /* [in] */ ULONG64 aSize,
    /* [retval][out] */ IProgress **aProgress);


void __RPC_STUB IVHDImage_CreateDynamicImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVHDImage_CreateFixedImage_Proxy( 
    IVHDImage * This,
    /* [in] */ ULONG64 aSize,
    /* [retval][out] */ IProgress **aProgress);


void __RPC_STUB IVHDImage_CreateFixedImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IVHDImage_DeleteImage_Proxy( 
    IVHDImage * This);


void __RPC_STUB IVHDImage_DeleteImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IVHDImage_INTERFACE_DEFINED__ */


#ifndef __IDVDImageEnumerator_INTERFACE_DEFINED__
#define __IDVDImageEnumerator_INTERFACE_DEFINED__

/* interface IDVDImageEnumerator */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IDVDImageEnumerator;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9BE77C8D-E1BE-4bf2-A67B-B4DD3D2B0F28")
    IDVDImageEnumerator : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE HasMore( 
            /* [retval][out] */ BOOL *more) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetNext( 
            /* [retval][out] */ IDVDImage **next) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IDVDImageEnumeratorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IDVDImageEnumerator * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IDVDImageEnumerator * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IDVDImageEnumerator * This);
        
        HRESULT ( STDMETHODCALLTYPE *HasMore )( 
            IDVDImageEnumerator * This,
            /* [retval][out] */ BOOL *more);
        
        HRESULT ( STDMETHODCALLTYPE *GetNext )( 
            IDVDImageEnumerator * This,
            /* [retval][out] */ IDVDImage **next);
        
        END_INTERFACE
    } IDVDImageEnumeratorVtbl;

    interface IDVDImageEnumerator
    {
        CONST_VTBL struct IDVDImageEnumeratorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IDVDImageEnumerator_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IDVDImageEnumerator_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IDVDImageEnumerator_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IDVDImageEnumerator_HasMore(This,more)	\
    (This)->lpVtbl -> HasMore(This,more)

#define IDVDImageEnumerator_GetNext(This,next)	\
    (This)->lpVtbl -> GetNext(This,next)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IDVDImageEnumerator_HasMore_Proxy( 
    IDVDImageEnumerator * This,
    /* [retval][out] */ BOOL *more);


void __RPC_STUB IDVDImageEnumerator_HasMore_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IDVDImageEnumerator_GetNext_Proxy( 
    IDVDImageEnumerator * This,
    /* [retval][out] */ IDVDImage **next);


void __RPC_STUB IDVDImageEnumerator_GetNext_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IDVDImageEnumerator_INTERFACE_DEFINED__ */


#ifndef __IDVDImageCollection_INTERFACE_DEFINED__
#define __IDVDImageCollection_INTERFACE_DEFINED__

/* interface IDVDImageCollection */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IDVDImageCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("AE7053FA-ADD2-4ea4-AFCF-24D5F8DDED64")
    IDVDImageCollection : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ ULONG *count) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetItemAt( 
            /* [in] */ ULONG index,
            /* [retval][out] */ IDVDImage **item) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Enumerate( 
            /* [retval][out] */ IDVDImageEnumerator **enumerator) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE FindByPath( 
            /* [in] */ BSTR aPath,
            /* [retval][out] */ IDVDImage **aImage) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IDVDImageCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IDVDImageCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IDVDImageCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IDVDImageCollection * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IDVDImageCollection * This,
            /* [retval][out] */ ULONG *count);
        
        HRESULT ( STDMETHODCALLTYPE *GetItemAt )( 
            IDVDImageCollection * This,
            /* [in] */ ULONG index,
            /* [retval][out] */ IDVDImage **item);
        
        HRESULT ( STDMETHODCALLTYPE *Enumerate )( 
            IDVDImageCollection * This,
            /* [retval][out] */ IDVDImageEnumerator **enumerator);
        
        HRESULT ( STDMETHODCALLTYPE *FindByPath )( 
            IDVDImageCollection * This,
            /* [in] */ BSTR aPath,
            /* [retval][out] */ IDVDImage **aImage);
        
        END_INTERFACE
    } IDVDImageCollectionVtbl;

    interface IDVDImageCollection
    {
        CONST_VTBL struct IDVDImageCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IDVDImageCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IDVDImageCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IDVDImageCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IDVDImageCollection_get_Count(This,count)	\
    (This)->lpVtbl -> get_Count(This,count)

#define IDVDImageCollection_GetItemAt(This,index,item)	\
    (This)->lpVtbl -> GetItemAt(This,index,item)

#define IDVDImageCollection_Enumerate(This,enumerator)	\
    (This)->lpVtbl -> Enumerate(This,enumerator)

#define IDVDImageCollection_FindByPath(This,aPath,aImage)	\
    (This)->lpVtbl -> FindByPath(This,aPath,aImage)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IDVDImageCollection_get_Count_Proxy( 
    IDVDImageCollection * This,
    /* [retval][out] */ ULONG *count);


void __RPC_STUB IDVDImageCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IDVDImageCollection_GetItemAt_Proxy( 
    IDVDImageCollection * This,
    /* [in] */ ULONG index,
    /* [retval][out] */ IDVDImage **item);


void __RPC_STUB IDVDImageCollection_GetItemAt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IDVDImageCollection_Enumerate_Proxy( 
    IDVDImageCollection * This,
    /* [retval][out] */ IDVDImageEnumerator **enumerator);


void __RPC_STUB IDVDImageCollection_Enumerate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IDVDImageCollection_FindByPath_Proxy( 
    IDVDImageCollection * This,
    /* [in] */ BSTR aPath,
    /* [retval][out] */ IDVDImage **aImage);


void __RPC_STUB IDVDImageCollection_FindByPath_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IDVDImageCollection_INTERFACE_DEFINED__ */


#ifndef __IDVDImage_INTERFACE_DEFINED__
#define __IDVDImage_INTERFACE_DEFINED__

/* interface IDVDImage */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IDVDImage;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("140FFF03-E479-4194-8562-ABC4F8171009")
    IDVDImage : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Id( 
            /* [retval][out] */ GUID *aId) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FilePath( 
            /* [retval][out] */ BSTR *aFilePath) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Accessible( 
            /* [retval][out] */ BOOL *aAccessible) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Size( 
            /* [retval][out] */ ULONG64 *aSize) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IDVDImageVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IDVDImage * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IDVDImage * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IDVDImage * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Id )( 
            IDVDImage * This,
            /* [retval][out] */ GUID *aId);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_FilePath )( 
            IDVDImage * This,
            /* [retval][out] */ BSTR *aFilePath);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Accessible )( 
            IDVDImage * This,
            /* [retval][out] */ BOOL *aAccessible);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Size )( 
            IDVDImage * This,
            /* [retval][out] */ ULONG64 *aSize);
        
        END_INTERFACE
    } IDVDImageVtbl;

    interface IDVDImage
    {
        CONST_VTBL struct IDVDImageVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IDVDImage_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IDVDImage_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IDVDImage_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IDVDImage_get_Id(This,aId)	\
    (This)->lpVtbl -> get_Id(This,aId)

#define IDVDImage_get_FilePath(This,aFilePath)	\
    (This)->lpVtbl -> get_FilePath(This,aFilePath)

#define IDVDImage_get_Accessible(This,aAccessible)	\
    (This)->lpVtbl -> get_Accessible(This,aAccessible)

#define IDVDImage_get_Size(This,aSize)	\
    (This)->lpVtbl -> get_Size(This,aSize)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IDVDImage_get_Id_Proxy( 
    IDVDImage * This,
    /* [retval][out] */ GUID *aId);


void __RPC_STUB IDVDImage_get_Id_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IDVDImage_get_FilePath_Proxy( 
    IDVDImage * This,
    /* [retval][out] */ BSTR *aFilePath);


void __RPC_STUB IDVDImage_get_FilePath_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IDVDImage_get_Accessible_Proxy( 
    IDVDImage * This,
    /* [retval][out] */ BOOL *aAccessible);


void __RPC_STUB IDVDImage_get_Accessible_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IDVDImage_get_Size_Proxy( 
    IDVDImage * This,
    /* [retval][out] */ ULONG64 *aSize);


void __RPC_STUB IDVDImage_get_Size_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IDVDImage_INTERFACE_DEFINED__ */


#ifndef __IDVDDrive_INTERFACE_DEFINED__
#define __IDVDDrive_INTERFACE_DEFINED__

/* interface IDVDDrive */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IDVDDrive;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("d9bd101a-8079-4fb9-bad1-31bf32482b75")
    IDVDDrive : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_State( 
            /* [retval][out] */ DriveState *aState) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Passthrough( 
            /* [retval][out] */ BOOL *aPassthrough) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Passthrough( 
            /* [in] */ BOOL aPassthrough) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE MountImage( 
            /* [in] */ GUID aImageId) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CaptureHostDrive( 
            /* [in] */ IHostDVDDrive *aDrive) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Unmount( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetImage( 
            /* [retval][out] */ IDVDImage **aImage) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetHostDrive( 
            /* [retval][out] */ IHostDVDDrive **aDrive) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IDVDDriveVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IDVDDrive * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IDVDDrive * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IDVDDrive * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_State )( 
            IDVDDrive * This,
            /* [retval][out] */ DriveState *aState);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Passthrough )( 
            IDVDDrive * This,
            /* [retval][out] */ BOOL *aPassthrough);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Passthrough )( 
            IDVDDrive * This,
            /* [in] */ BOOL aPassthrough);
        
        HRESULT ( STDMETHODCALLTYPE *MountImage )( 
            IDVDDrive * This,
            /* [in] */ GUID aImageId);
        
        HRESULT ( STDMETHODCALLTYPE *CaptureHostDrive )( 
            IDVDDrive * This,
            /* [in] */ IHostDVDDrive *aDrive);
        
        HRESULT ( STDMETHODCALLTYPE *Unmount )( 
            IDVDDrive * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetImage )( 
            IDVDDrive * This,
            /* [retval][out] */ IDVDImage **aImage);
        
        HRESULT ( STDMETHODCALLTYPE *GetHostDrive )( 
            IDVDDrive * This,
            /* [retval][out] */ IHostDVDDrive **aDrive);
        
        END_INTERFACE
    } IDVDDriveVtbl;

    interface IDVDDrive
    {
        CONST_VTBL struct IDVDDriveVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IDVDDrive_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IDVDDrive_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IDVDDrive_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IDVDDrive_get_State(This,aState)	\
    (This)->lpVtbl -> get_State(This,aState)

#define IDVDDrive_get_Passthrough(This,aPassthrough)	\
    (This)->lpVtbl -> get_Passthrough(This,aPassthrough)

#define IDVDDrive_put_Passthrough(This,aPassthrough)	\
    (This)->lpVtbl -> put_Passthrough(This,aPassthrough)

#define IDVDDrive_MountImage(This,aImageId)	\
    (This)->lpVtbl -> MountImage(This,aImageId)

#define IDVDDrive_CaptureHostDrive(This,aDrive)	\
    (This)->lpVtbl -> CaptureHostDrive(This,aDrive)

#define IDVDDrive_Unmount(This)	\
    (This)->lpVtbl -> Unmount(This)

#define IDVDDrive_GetImage(This,aImage)	\
    (This)->lpVtbl -> GetImage(This,aImage)

#define IDVDDrive_GetHostDrive(This,aDrive)	\
    (This)->lpVtbl -> GetHostDrive(This,aDrive)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IDVDDrive_get_State_Proxy( 
    IDVDDrive * This,
    /* [retval][out] */ DriveState *aState);


void __RPC_STUB IDVDDrive_get_State_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IDVDDrive_get_Passthrough_Proxy( 
    IDVDDrive * This,
    /* [retval][out] */ BOOL *aPassthrough);


void __RPC_STUB IDVDDrive_get_Passthrough_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IDVDDrive_put_Passthrough_Proxy( 
    IDVDDrive * This,
    /* [in] */ BOOL aPassthrough);


void __RPC_STUB IDVDDrive_put_Passthrough_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IDVDDrive_MountImage_Proxy( 
    IDVDDrive * This,
    /* [in] */ GUID aImageId);


void __RPC_STUB IDVDDrive_MountImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IDVDDrive_CaptureHostDrive_Proxy( 
    IDVDDrive * This,
    /* [in] */ IHostDVDDrive *aDrive);


void __RPC_STUB IDVDDrive_CaptureHostDrive_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IDVDDrive_Unmount_Proxy( 
    IDVDDrive * This);


void __RPC_STUB IDVDDrive_Unmount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IDVDDrive_GetImage_Proxy( 
    IDVDDrive * This,
    /* [retval][out] */ IDVDImage **aImage);


void __RPC_STUB IDVDDrive_GetImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IDVDDrive_GetHostDrive_Proxy( 
    IDVDDrive * This,
    /* [retval][out] */ IHostDVDDrive **aDrive);


void __RPC_STUB IDVDDrive_GetHostDrive_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IDVDDrive_INTERFACE_DEFINED__ */


#ifndef __IFloppyImageEnumerator_INTERFACE_DEFINED__
#define __IFloppyImageEnumerator_INTERFACE_DEFINED__

/* interface IFloppyImageEnumerator */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IFloppyImageEnumerator;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("902C4089-76B7-41f1-91E8-49A261A28A2C")
    IFloppyImageEnumerator : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE HasMore( 
            /* [retval][out] */ BOOL *more) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetNext( 
            /* [retval][out] */ IFloppyImage **next) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IFloppyImageEnumeratorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IFloppyImageEnumerator * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IFloppyImageEnumerator * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IFloppyImageEnumerator * This);
        
        HRESULT ( STDMETHODCALLTYPE *HasMore )( 
            IFloppyImageEnumerator * This,
            /* [retval][out] */ BOOL *more);
        
        HRESULT ( STDMETHODCALLTYPE *GetNext )( 
            IFloppyImageEnumerator * This,
            /* [retval][out] */ IFloppyImage **next);
        
        END_INTERFACE
    } IFloppyImageEnumeratorVtbl;

    interface IFloppyImageEnumerator
    {
        CONST_VTBL struct IFloppyImageEnumeratorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IFloppyImageEnumerator_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IFloppyImageEnumerator_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IFloppyImageEnumerator_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IFloppyImageEnumerator_HasMore(This,more)	\
    (This)->lpVtbl -> HasMore(This,more)

#define IFloppyImageEnumerator_GetNext(This,next)	\
    (This)->lpVtbl -> GetNext(This,next)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IFloppyImageEnumerator_HasMore_Proxy( 
    IFloppyImageEnumerator * This,
    /* [retval][out] */ BOOL *more);


void __RPC_STUB IFloppyImageEnumerator_HasMore_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IFloppyImageEnumerator_GetNext_Proxy( 
    IFloppyImageEnumerator * This,
    /* [retval][out] */ IFloppyImage **next);


void __RPC_STUB IFloppyImageEnumerator_GetNext_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IFloppyImageEnumerator_INTERFACE_DEFINED__ */


#ifndef __IFloppyImageCollection_INTERFACE_DEFINED__
#define __IFloppyImageCollection_INTERFACE_DEFINED__

/* interface IFloppyImageCollection */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IFloppyImageCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("327A8928-8572-446e-AD9A-18FE30E81F3F")
    IFloppyImageCollection : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ ULONG *count) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetItemAt( 
            /* [in] */ ULONG index,
            /* [retval][out] */ IFloppyImage **item) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Enumerate( 
            /* [retval][out] */ IFloppyImageEnumerator **enumerator) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE FindByPath( 
            /* [in] */ BSTR aPath,
            /* [retval][out] */ IFloppyImage **aImage) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IFloppyImageCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IFloppyImageCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IFloppyImageCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IFloppyImageCollection * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IFloppyImageCollection * This,
            /* [retval][out] */ ULONG *count);
        
        HRESULT ( STDMETHODCALLTYPE *GetItemAt )( 
            IFloppyImageCollection * This,
            /* [in] */ ULONG index,
            /* [retval][out] */ IFloppyImage **item);
        
        HRESULT ( STDMETHODCALLTYPE *Enumerate )( 
            IFloppyImageCollection * This,
            /* [retval][out] */ IFloppyImageEnumerator **enumerator);
        
        HRESULT ( STDMETHODCALLTYPE *FindByPath )( 
            IFloppyImageCollection * This,
            /* [in] */ BSTR aPath,
            /* [retval][out] */ IFloppyImage **aImage);
        
        END_INTERFACE
    } IFloppyImageCollectionVtbl;

    interface IFloppyImageCollection
    {
        CONST_VTBL struct IFloppyImageCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IFloppyImageCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IFloppyImageCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IFloppyImageCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IFloppyImageCollection_get_Count(This,count)	\
    (This)->lpVtbl -> get_Count(This,count)

#define IFloppyImageCollection_GetItemAt(This,index,item)	\
    (This)->lpVtbl -> GetItemAt(This,index,item)

#define IFloppyImageCollection_Enumerate(This,enumerator)	\
    (This)->lpVtbl -> Enumerate(This,enumerator)

#define IFloppyImageCollection_FindByPath(This,aPath,aImage)	\
    (This)->lpVtbl -> FindByPath(This,aPath,aImage)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IFloppyImageCollection_get_Count_Proxy( 
    IFloppyImageCollection * This,
    /* [retval][out] */ ULONG *count);


void __RPC_STUB IFloppyImageCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IFloppyImageCollection_GetItemAt_Proxy( 
    IFloppyImageCollection * This,
    /* [in] */ ULONG index,
    /* [retval][out] */ IFloppyImage **item);


void __RPC_STUB IFloppyImageCollection_GetItemAt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IFloppyImageCollection_Enumerate_Proxy( 
    IFloppyImageCollection * This,
    /* [retval][out] */ IFloppyImageEnumerator **enumerator);


void __RPC_STUB IFloppyImageCollection_Enumerate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IFloppyImageCollection_FindByPath_Proxy( 
    IFloppyImageCollection * This,
    /* [in] */ BSTR aPath,
    /* [retval][out] */ IFloppyImage **aImage);


void __RPC_STUB IFloppyImageCollection_FindByPath_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IFloppyImageCollection_INTERFACE_DEFINED__ */


#ifndef __IFloppyImage_INTERFACE_DEFINED__
#define __IFloppyImage_INTERFACE_DEFINED__

/* interface IFloppyImage */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IFloppyImage;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("CC696755-EA98-4ffe-9DC5-C003047034AB")
    IFloppyImage : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Id( 
            /* [retval][out] */ GUID *aId) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FilePath( 
            /* [retval][out] */ BSTR *aFilePath) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Accessible( 
            /* [retval][out] */ BOOL *aAccessible) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Size( 
            /* [retval][out] */ ULONG *aSize) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IFloppyImageVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IFloppyImage * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IFloppyImage * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IFloppyImage * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Id )( 
            IFloppyImage * This,
            /* [retval][out] */ GUID *aId);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_FilePath )( 
            IFloppyImage * This,
            /* [retval][out] */ BSTR *aFilePath);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Accessible )( 
            IFloppyImage * This,
            /* [retval][out] */ BOOL *aAccessible);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Size )( 
            IFloppyImage * This,
            /* [retval][out] */ ULONG *aSize);
        
        END_INTERFACE
    } IFloppyImageVtbl;

    interface IFloppyImage
    {
        CONST_VTBL struct IFloppyImageVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IFloppyImage_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IFloppyImage_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IFloppyImage_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IFloppyImage_get_Id(This,aId)	\
    (This)->lpVtbl -> get_Id(This,aId)

#define IFloppyImage_get_FilePath(This,aFilePath)	\
    (This)->lpVtbl -> get_FilePath(This,aFilePath)

#define IFloppyImage_get_Accessible(This,aAccessible)	\
    (This)->lpVtbl -> get_Accessible(This,aAccessible)

#define IFloppyImage_get_Size(This,aSize)	\
    (This)->lpVtbl -> get_Size(This,aSize)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IFloppyImage_get_Id_Proxy( 
    IFloppyImage * This,
    /* [retval][out] */ GUID *aId);


void __RPC_STUB IFloppyImage_get_Id_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IFloppyImage_get_FilePath_Proxy( 
    IFloppyImage * This,
    /* [retval][out] */ BSTR *aFilePath);


void __RPC_STUB IFloppyImage_get_FilePath_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IFloppyImage_get_Accessible_Proxy( 
    IFloppyImage * This,
    /* [retval][out] */ BOOL *aAccessible);


void __RPC_STUB IFloppyImage_get_Accessible_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IFloppyImage_get_Size_Proxy( 
    IFloppyImage * This,
    /* [retval][out] */ ULONG *aSize);


void __RPC_STUB IFloppyImage_get_Size_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IFloppyImage_INTERFACE_DEFINED__ */


#ifndef __IFloppyDrive_INTERFACE_DEFINED__
#define __IFloppyDrive_INTERFACE_DEFINED__

/* interface IFloppyDrive */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IFloppyDrive;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E9318F71-78D2-4b00-863C-B7CB0030A2D9")
    IFloppyDrive : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Enabled( 
            /* [retval][out] */ BOOL *aEnabled) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Enabled( 
            /* [in] */ BOOL aEnabled) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_State( 
            /* [retval][out] */ DriveState *aState) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE MountImage( 
            /* [in] */ GUID aImageId) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CaptureHostDrive( 
            /* [in] */ IHostFloppyDrive *aDrive) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Unmount( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetImage( 
            /* [retval][out] */ IFloppyImage **aImage) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetHostDrive( 
            /* [retval][out] */ IHostFloppyDrive **aDrive) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IFloppyDriveVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IFloppyDrive * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IFloppyDrive * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IFloppyDrive * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Enabled )( 
            IFloppyDrive * This,
            /* [retval][out] */ BOOL *aEnabled);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Enabled )( 
            IFloppyDrive * This,
            /* [in] */ BOOL aEnabled);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_State )( 
            IFloppyDrive * This,
            /* [retval][out] */ DriveState *aState);
        
        HRESULT ( STDMETHODCALLTYPE *MountImage )( 
            IFloppyDrive * This,
            /* [in] */ GUID aImageId);
        
        HRESULT ( STDMETHODCALLTYPE *CaptureHostDrive )( 
            IFloppyDrive * This,
            /* [in] */ IHostFloppyDrive *aDrive);
        
        HRESULT ( STDMETHODCALLTYPE *Unmount )( 
            IFloppyDrive * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetImage )( 
            IFloppyDrive * This,
            /* [retval][out] */ IFloppyImage **aImage);
        
        HRESULT ( STDMETHODCALLTYPE *GetHostDrive )( 
            IFloppyDrive * This,
            /* [retval][out] */ IHostFloppyDrive **aDrive);
        
        END_INTERFACE
    } IFloppyDriveVtbl;

    interface IFloppyDrive
    {
        CONST_VTBL struct IFloppyDriveVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IFloppyDrive_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IFloppyDrive_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IFloppyDrive_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IFloppyDrive_get_Enabled(This,aEnabled)	\
    (This)->lpVtbl -> get_Enabled(This,aEnabled)

#define IFloppyDrive_put_Enabled(This,aEnabled)	\
    (This)->lpVtbl -> put_Enabled(This,aEnabled)

#define IFloppyDrive_get_State(This,aState)	\
    (This)->lpVtbl -> get_State(This,aState)

#define IFloppyDrive_MountImage(This,aImageId)	\
    (This)->lpVtbl -> MountImage(This,aImageId)

#define IFloppyDrive_CaptureHostDrive(This,aDrive)	\
    (This)->lpVtbl -> CaptureHostDrive(This,aDrive)

#define IFloppyDrive_Unmount(This)	\
    (This)->lpVtbl -> Unmount(This)

#define IFloppyDrive_GetImage(This,aImage)	\
    (This)->lpVtbl -> GetImage(This,aImage)

#define IFloppyDrive_GetHostDrive(This,aDrive)	\
    (This)->lpVtbl -> GetHostDrive(This,aDrive)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IFloppyDrive_get_Enabled_Proxy( 
    IFloppyDrive * This,
    /* [retval][out] */ BOOL *aEnabled);


void __RPC_STUB IFloppyDrive_get_Enabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IFloppyDrive_put_Enabled_Proxy( 
    IFloppyDrive * This,
    /* [in] */ BOOL aEnabled);


void __RPC_STUB IFloppyDrive_put_Enabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IFloppyDrive_get_State_Proxy( 
    IFloppyDrive * This,
    /* [retval][out] */ DriveState *aState);


void __RPC_STUB IFloppyDrive_get_State_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IFloppyDrive_MountImage_Proxy( 
    IFloppyDrive * This,
    /* [in] */ GUID aImageId);


void __RPC_STUB IFloppyDrive_MountImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IFloppyDrive_CaptureHostDrive_Proxy( 
    IFloppyDrive * This,
    /* [in] */ IHostFloppyDrive *aDrive);


void __RPC_STUB IFloppyDrive_CaptureHostDrive_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IFloppyDrive_Unmount_Proxy( 
    IFloppyDrive * This);


void __RPC_STUB IFloppyDrive_Unmount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IFloppyDrive_GetImage_Proxy( 
    IFloppyDrive * This,
    /* [retval][out] */ IFloppyImage **aImage);


void __RPC_STUB IFloppyDrive_GetImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IFloppyDrive_GetHostDrive_Proxy( 
    IFloppyDrive * This,
    /* [retval][out] */ IHostFloppyDrive **aDrive);


void __RPC_STUB IFloppyDrive_GetHostDrive_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IFloppyDrive_INTERFACE_DEFINED__ */


#ifndef __IKeyboard_INTERFACE_DEFINED__
#define __IKeyboard_INTERFACE_DEFINED__

/* interface IKeyboard */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IKeyboard;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2d1a531b-4c6e-49cc-8af6-5c857b78b5d7")
    IKeyboard : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE PutScancode( 
            /* [in] */ LONG aScancode) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE PutScancodes( 
            /* [out][in] */ SAFEARRAY * *aScancodes,
            /* [retval][out] */ ULONG *aCodesStored) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE PutCAD( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IKeyboardVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IKeyboard * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IKeyboard * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IKeyboard * This);
        
        HRESULT ( STDMETHODCALLTYPE *PutScancode )( 
            IKeyboard * This,
            /* [in] */ LONG aScancode);
        
        HRESULT ( STDMETHODCALLTYPE *PutScancodes )( 
            IKeyboard * This,
            /* [out][in] */ SAFEARRAY * *aScancodes,
            /* [retval][out] */ ULONG *aCodesStored);
        
        HRESULT ( STDMETHODCALLTYPE *PutCAD )( 
            IKeyboard * This);
        
        END_INTERFACE
    } IKeyboardVtbl;

    interface IKeyboard
    {
        CONST_VTBL struct IKeyboardVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IKeyboard_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IKeyboard_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IKeyboard_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IKeyboard_PutScancode(This,aScancode)	\
    (This)->lpVtbl -> PutScancode(This,aScancode)

#define IKeyboard_PutScancodes(This,aScancodes,aCodesStored)	\
    (This)->lpVtbl -> PutScancodes(This,aScancodes,aCodesStored)

#define IKeyboard_PutCAD(This)	\
    (This)->lpVtbl -> PutCAD(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IKeyboard_PutScancode_Proxy( 
    IKeyboard * This,
    /* [in] */ LONG aScancode);


void __RPC_STUB IKeyboard_PutScancode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IKeyboard_PutScancodes_Proxy( 
    IKeyboard * This,
    /* [out][in] */ SAFEARRAY * *aScancodes,
    /* [retval][out] */ ULONG *aCodesStored);


void __RPC_STUB IKeyboard_PutScancodes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IKeyboard_PutCAD_Proxy( 
    IKeyboard * This);


void __RPC_STUB IKeyboard_PutCAD_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IKeyboard_INTERFACE_DEFINED__ */


#ifndef __IMouse_INTERFACE_DEFINED__
#define __IMouse_INTERFACE_DEFINED__

/* interface IMouse */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IMouse;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("FD443EC1-0006-4F5B-9282-D72760A66916")
    IMouse : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AbsoluteSupported( 
            /* [retval][out] */ BOOL *aAbsoluteSupported) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE PutMouseEvent( 
            /* [in] */ LONG aDx,
            /* [in] */ LONG aDy,
            /* [in] */ LONG aDz,
            /* [in] */ LONG aButtonState) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE PutMouseEventAbsolute( 
            /* [in] */ LONG aX,
            /* [in] */ LONG aY,
            /* [in] */ LONG aDz,
            /* [in] */ LONG aButtonState) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IMouseVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IMouse * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IMouse * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IMouse * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AbsoluteSupported )( 
            IMouse * This,
            /* [retval][out] */ BOOL *aAbsoluteSupported);
        
        HRESULT ( STDMETHODCALLTYPE *PutMouseEvent )( 
            IMouse * This,
            /* [in] */ LONG aDx,
            /* [in] */ LONG aDy,
            /* [in] */ LONG aDz,
            /* [in] */ LONG aButtonState);
        
        HRESULT ( STDMETHODCALLTYPE *PutMouseEventAbsolute )( 
            IMouse * This,
            /* [in] */ LONG aX,
            /* [in] */ LONG aY,
            /* [in] */ LONG aDz,
            /* [in] */ LONG aButtonState);
        
        END_INTERFACE
    } IMouseVtbl;

    interface IMouse
    {
        CONST_VTBL struct IMouseVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IMouse_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IMouse_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IMouse_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IMouse_get_AbsoluteSupported(This,aAbsoluteSupported)	\
    (This)->lpVtbl -> get_AbsoluteSupported(This,aAbsoluteSupported)

#define IMouse_PutMouseEvent(This,aDx,aDy,aDz,aButtonState)	\
    (This)->lpVtbl -> PutMouseEvent(This,aDx,aDy,aDz,aButtonState)

#define IMouse_PutMouseEventAbsolute(This,aX,aY,aDz,aButtonState)	\
    (This)->lpVtbl -> PutMouseEventAbsolute(This,aX,aY,aDz,aButtonState)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IMouse_get_AbsoluteSupported_Proxy( 
    IMouse * This,
    /* [retval][out] */ BOOL *aAbsoluteSupported);


void __RPC_STUB IMouse_get_AbsoluteSupported_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMouse_PutMouseEvent_Proxy( 
    IMouse * This,
    /* [in] */ LONG aDx,
    /* [in] */ LONG aDy,
    /* [in] */ LONG aDz,
    /* [in] */ LONG aButtonState);


void __RPC_STUB IMouse_PutMouseEvent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMouse_PutMouseEventAbsolute_Proxy( 
    IMouse * This,
    /* [in] */ LONG aX,
    /* [in] */ LONG aY,
    /* [in] */ LONG aDz,
    /* [in] */ LONG aButtonState);


void __RPC_STUB IMouse_PutMouseEventAbsolute_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IMouse_INTERFACE_DEFINED__ */


#ifndef __IFramebuffer_INTERFACE_DEFINED__
#define __IFramebuffer_INTERFACE_DEFINED__

/* interface IFramebuffer */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IFramebuffer;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("af431304-5b09-40e2-94da-3c3cb03822c1")
    IFramebuffer : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Address( 
            /* [retval][out] */ BYTE **aAddress) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Width( 
            /* [retval][out] */ ULONG *aWidth) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Height( 
            /* [retval][out] */ ULONG *aHeight) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BitsPerPixel( 
            /* [retval][out] */ ULONG *aBitsPerPixel) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BytesPerLine( 
            /* [retval][out] */ ULONG *aBytesPerLine) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PixelFormat( 
            /* [retval][out] */ ULONG *aPixelFormat) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_UsesGuestVRAM( 
            /* [retval][out] */ BOOL *aUsesGuestVRAM) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HeightReduction( 
            /* [retval][out] */ ULONG *aHeightReduction) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Overlay( 
            /* [retval][out] */ IFramebufferOverlay **aOverlay) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Lock( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Unlock( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE NotifyUpdate( 
            /* [in] */ ULONG aX,
            /* [in] */ ULONG aY,
            /* [in] */ ULONG aWidth,
            /* [in] */ ULONG aHeight,
            /* [retval][out] */ BOOL *aFinished) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RequestResize( 
            /* [in] */ ULONG aScreenId,
            /* [in] */ ULONG aPixelFormat,
            /* [in] */ BYTE *aVRAM,
            /* [in] */ ULONG aBitsPerPixel,
            /* [in] */ ULONG aBytesPerLine,
            /* [in] */ ULONG aWidth,
            /* [in] */ ULONG aHeight,
            /* [retval][out] */ BOOL *aFinished) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OperationSupported( 
            /* [in] */ FramebufferAccelerationOperation aOperation,
            /* [retval][out] */ BOOL *aSupported) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE VideoModeSupported( 
            /* [in] */ ULONG aWidth,
            /* [in] */ ULONG aHeight,
            /* [in] */ ULONG aBpp,
            /* [retval][out] */ BOOL *aSupported) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SolidFill( 
            /* [in] */ ULONG aX,
            /* [in] */ ULONG aY,
            /* [in] */ ULONG aWidth,
            /* [in] */ ULONG aHeight,
            /* [in] */ ULONG aColor,
            /* [retval][out] */ BOOL *aHandled) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CopyScreenBits( 
            /* [in] */ ULONG aXDst,
            /* [in] */ ULONG aYDst,
            /* [in] */ ULONG aXSrc,
            /* [in] */ ULONG aYSrc,
            /* [in] */ ULONG aWidth,
            /* [in] */ ULONG aHeight,
            /* [retval][out] */ BOOL *aHandled) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetVisibleRegion( 
            /* [in] */ BYTE *aRectangles,
            /* [in] */ ULONG aCount,
            /* [retval][out] */ ULONG *aCountCopied) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetVisibleRegion( 
            /* [in] */ BYTE *aRectangles,
            /* [in] */ ULONG aCount) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IFramebufferVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IFramebuffer * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IFramebuffer * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IFramebuffer * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Address )( 
            IFramebuffer * This,
            /* [retval][out] */ BYTE **aAddress);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Width )( 
            IFramebuffer * This,
            /* [retval][out] */ ULONG *aWidth);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Height )( 
            IFramebuffer * This,
            /* [retval][out] */ ULONG *aHeight);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BitsPerPixel )( 
            IFramebuffer * This,
            /* [retval][out] */ ULONG *aBitsPerPixel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BytesPerLine )( 
            IFramebuffer * This,
            /* [retval][out] */ ULONG *aBytesPerLine);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PixelFormat )( 
            IFramebuffer * This,
            /* [retval][out] */ ULONG *aPixelFormat);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_UsesGuestVRAM )( 
            IFramebuffer * This,
            /* [retval][out] */ BOOL *aUsesGuestVRAM);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HeightReduction )( 
            IFramebuffer * This,
            /* [retval][out] */ ULONG *aHeightReduction);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Overlay )( 
            IFramebuffer * This,
            /* [retval][out] */ IFramebufferOverlay **aOverlay);
        
        HRESULT ( STDMETHODCALLTYPE *Lock )( 
            IFramebuffer * This);
        
        HRESULT ( STDMETHODCALLTYPE *Unlock )( 
            IFramebuffer * This);
        
        HRESULT ( STDMETHODCALLTYPE *NotifyUpdate )( 
            IFramebuffer * This,
            /* [in] */ ULONG aX,
            /* [in] */ ULONG aY,
            /* [in] */ ULONG aWidth,
            /* [in] */ ULONG aHeight,
            /* [retval][out] */ BOOL *aFinished);
        
        HRESULT ( STDMETHODCALLTYPE *RequestResize )( 
            IFramebuffer * This,
            /* [in] */ ULONG aScreenId,
            /* [in] */ ULONG aPixelFormat,
            /* [in] */ BYTE *aVRAM,
            /* [in] */ ULONG aBitsPerPixel,
            /* [in] */ ULONG aBytesPerLine,
            /* [in] */ ULONG aWidth,
            /* [in] */ ULONG aHeight,
            /* [retval][out] */ BOOL *aFinished);
        
        HRESULT ( STDMETHODCALLTYPE *OperationSupported )( 
            IFramebuffer * This,
            /* [in] */ FramebufferAccelerationOperation aOperation,
            /* [retval][out] */ BOOL *aSupported);
        
        HRESULT ( STDMETHODCALLTYPE *VideoModeSupported )( 
            IFramebuffer * This,
            /* [in] */ ULONG aWidth,
            /* [in] */ ULONG aHeight,
            /* [in] */ ULONG aBpp,
            /* [retval][out] */ BOOL *aSupported);
        
        HRESULT ( STDMETHODCALLTYPE *SolidFill )( 
            IFramebuffer * This,
            /* [in] */ ULONG aX,
            /* [in] */ ULONG aY,
            /* [in] */ ULONG aWidth,
            /* [in] */ ULONG aHeight,
            /* [in] */ ULONG aColor,
            /* [retval][out] */ BOOL *aHandled);
        
        HRESULT ( STDMETHODCALLTYPE *CopyScreenBits )( 
            IFramebuffer * This,
            /* [in] */ ULONG aXDst,
            /* [in] */ ULONG aYDst,
            /* [in] */ ULONG aXSrc,
            /* [in] */ ULONG aYSrc,
            /* [in] */ ULONG aWidth,
            /* [in] */ ULONG aHeight,
            /* [retval][out] */ BOOL *aHandled);
        
        HRESULT ( STDMETHODCALLTYPE *GetVisibleRegion )( 
            IFramebuffer * This,
            /* [in] */ BYTE *aRectangles,
            /* [in] */ ULONG aCount,
            /* [retval][out] */ ULONG *aCountCopied);
        
        HRESULT ( STDMETHODCALLTYPE *SetVisibleRegion )( 
            IFramebuffer * This,
            /* [in] */ BYTE *aRectangles,
            /* [in] */ ULONG aCount);
        
        END_INTERFACE
    } IFramebufferVtbl;

    interface IFramebuffer
    {
        CONST_VTBL struct IFramebufferVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IFramebuffer_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IFramebuffer_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IFramebuffer_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IFramebuffer_get_Address(This,aAddress)	\
    (This)->lpVtbl -> get_Address(This,aAddress)

#define IFramebuffer_get_Width(This,aWidth)	\
    (This)->lpVtbl -> get_Width(This,aWidth)

#define IFramebuffer_get_Height(This,aHeight)	\
    (This)->lpVtbl -> get_Height(This,aHeight)

#define IFramebuffer_get_BitsPerPixel(This,aBitsPerPixel)	\
    (This)->lpVtbl -> get_BitsPerPixel(This,aBitsPerPixel)

#define IFramebuffer_get_BytesPerLine(This,aBytesPerLine)	\
    (This)->lpVtbl -> get_BytesPerLine(This,aBytesPerLine)

#define IFramebuffer_get_PixelFormat(This,aPixelFormat)	\
    (This)->lpVtbl -> get_PixelFormat(This,aPixelFormat)

#define IFramebuffer_get_UsesGuestVRAM(This,aUsesGuestVRAM)	\
    (This)->lpVtbl -> get_UsesGuestVRAM(This,aUsesGuestVRAM)

#define IFramebuffer_get_HeightReduction(This,aHeightReduction)	\
    (This)->lpVtbl -> get_HeightReduction(This,aHeightReduction)

#define IFramebuffer_get_Overlay(This,aOverlay)	\
    (This)->lpVtbl -> get_Overlay(This,aOverlay)

#define IFramebuffer_Lock(This)	\
    (This)->lpVtbl -> Lock(This)

#define IFramebuffer_Unlock(This)	\
    (This)->lpVtbl -> Unlock(This)

#define IFramebuffer_NotifyUpdate(This,aX,aY,aWidth,aHeight,aFinished)	\
    (This)->lpVtbl -> NotifyUpdate(This,aX,aY,aWidth,aHeight,aFinished)

#define IFramebuffer_RequestResize(This,aScreenId,aPixelFormat,aVRAM,aBitsPerPixel,aBytesPerLine,aWidth,aHeight,aFinished)	\
    (This)->lpVtbl -> RequestResize(This,aScreenId,aPixelFormat,aVRAM,aBitsPerPixel,aBytesPerLine,aWidth,aHeight,aFinished)

#define IFramebuffer_OperationSupported(This,aOperation,aSupported)	\
    (This)->lpVtbl -> OperationSupported(This,aOperation,aSupported)

#define IFramebuffer_VideoModeSupported(This,aWidth,aHeight,aBpp,aSupported)	\
    (This)->lpVtbl -> VideoModeSupported(This,aWidth,aHeight,aBpp,aSupported)

#define IFramebuffer_SolidFill(This,aX,aY,aWidth,aHeight,aColor,aHandled)	\
    (This)->lpVtbl -> SolidFill(This,aX,aY,aWidth,aHeight,aColor,aHandled)

#define IFramebuffer_CopyScreenBits(This,aXDst,aYDst,aXSrc,aYSrc,aWidth,aHeight,aHandled)	\
    (This)->lpVtbl -> CopyScreenBits(This,aXDst,aYDst,aXSrc,aYSrc,aWidth,aHeight,aHandled)

#define IFramebuffer_GetVisibleRegion(This,aRectangles,aCount,aCountCopied)	\
    (This)->lpVtbl -> GetVisibleRegion(This,aRectangles,aCount,aCountCopied)

#define IFramebuffer_SetVisibleRegion(This,aRectangles,aCount)	\
    (This)->lpVtbl -> SetVisibleRegion(This,aRectangles,aCount)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IFramebuffer_get_Address_Proxy( 
    IFramebuffer * This,
    /* [retval][out] */ BYTE **aAddress);


void __RPC_STUB IFramebuffer_get_Address_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IFramebuffer_get_Width_Proxy( 
    IFramebuffer * This,
    /* [retval][out] */ ULONG *aWidth);


void __RPC_STUB IFramebuffer_get_Width_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IFramebuffer_get_Height_Proxy( 
    IFramebuffer * This,
    /* [retval][out] */ ULONG *aHeight);


void __RPC_STUB IFramebuffer_get_Height_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IFramebuffer_get_BitsPerPixel_Proxy( 
    IFramebuffer * This,
    /* [retval][out] */ ULONG *aBitsPerPixel);


void __RPC_STUB IFramebuffer_get_BitsPerPixel_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IFramebuffer_get_BytesPerLine_Proxy( 
    IFramebuffer * This,
    /* [retval][out] */ ULONG *aBytesPerLine);


void __RPC_STUB IFramebuffer_get_BytesPerLine_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IFramebuffer_get_PixelFormat_Proxy( 
    IFramebuffer * This,
    /* [retval][out] */ ULONG *aPixelFormat);


void __RPC_STUB IFramebuffer_get_PixelFormat_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IFramebuffer_get_UsesGuestVRAM_Proxy( 
    IFramebuffer * This,
    /* [retval][out] */ BOOL *aUsesGuestVRAM);


void __RPC_STUB IFramebuffer_get_UsesGuestVRAM_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IFramebuffer_get_HeightReduction_Proxy( 
    IFramebuffer * This,
    /* [retval][out] */ ULONG *aHeightReduction);


void __RPC_STUB IFramebuffer_get_HeightReduction_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IFramebuffer_get_Overlay_Proxy( 
    IFramebuffer * This,
    /* [retval][out] */ IFramebufferOverlay **aOverlay);


void __RPC_STUB IFramebuffer_get_Overlay_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IFramebuffer_Lock_Proxy( 
    IFramebuffer * This);


void __RPC_STUB IFramebuffer_Lock_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IFramebuffer_Unlock_Proxy( 
    IFramebuffer * This);


void __RPC_STUB IFramebuffer_Unlock_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IFramebuffer_NotifyUpdate_Proxy( 
    IFramebuffer * This,
    /* [in] */ ULONG aX,
    /* [in] */ ULONG aY,
    /* [in] */ ULONG aWidth,
    /* [in] */ ULONG aHeight,
    /* [retval][out] */ BOOL *aFinished);


void __RPC_STUB IFramebuffer_NotifyUpdate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IFramebuffer_RequestResize_Proxy( 
    IFramebuffer * This,
    /* [in] */ ULONG aScreenId,
    /* [in] */ ULONG aPixelFormat,
    /* [in] */ BYTE *aVRAM,
    /* [in] */ ULONG aBitsPerPixel,
    /* [in] */ ULONG aBytesPerLine,
    /* [in] */ ULONG aWidth,
    /* [in] */ ULONG aHeight,
    /* [retval][out] */ BOOL *aFinished);


void __RPC_STUB IFramebuffer_RequestResize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IFramebuffer_OperationSupported_Proxy( 
    IFramebuffer * This,
    /* [in] */ FramebufferAccelerationOperation aOperation,
    /* [retval][out] */ BOOL *aSupported);


void __RPC_STUB IFramebuffer_OperationSupported_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IFramebuffer_VideoModeSupported_Proxy( 
    IFramebuffer * This,
    /* [in] */ ULONG aWidth,
    /* [in] */ ULONG aHeight,
    /* [in] */ ULONG aBpp,
    /* [retval][out] */ BOOL *aSupported);


void __RPC_STUB IFramebuffer_VideoModeSupported_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IFramebuffer_SolidFill_Proxy( 
    IFramebuffer * This,
    /* [in] */ ULONG aX,
    /* [in] */ ULONG aY,
    /* [in] */ ULONG aWidth,
    /* [in] */ ULONG aHeight,
    /* [in] */ ULONG aColor,
    /* [retval][out] */ BOOL *aHandled);


void __RPC_STUB IFramebuffer_SolidFill_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IFramebuffer_CopyScreenBits_Proxy( 
    IFramebuffer * This,
    /* [in] */ ULONG aXDst,
    /* [in] */ ULONG aYDst,
    /* [in] */ ULONG aXSrc,
    /* [in] */ ULONG aYSrc,
    /* [in] */ ULONG aWidth,
    /* [in] */ ULONG aHeight,
    /* [retval][out] */ BOOL *aHandled);


void __RPC_STUB IFramebuffer_CopyScreenBits_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IFramebuffer_GetVisibleRegion_Proxy( 
    IFramebuffer * This,
    /* [in] */ BYTE *aRectangles,
    /* [in] */ ULONG aCount,
    /* [retval][out] */ ULONG *aCountCopied);


void __RPC_STUB IFramebuffer_GetVisibleRegion_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IFramebuffer_SetVisibleRegion_Proxy( 
    IFramebuffer * This,
    /* [in] */ BYTE *aRectangles,
    /* [in] */ ULONG aCount);


void __RPC_STUB IFramebuffer_SetVisibleRegion_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IFramebuffer_INTERFACE_DEFINED__ */


#ifndef __IFramebufferOverlay_INTERFACE_DEFINED__
#define __IFramebufferOverlay_INTERFACE_DEFINED__

/* interface IFramebufferOverlay */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IFramebufferOverlay;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0bcc1c7e-e415-47d2-bfdb-e4c705fb0f47")
    IFramebufferOverlay : public IFramebuffer
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_X( 
            /* [retval][out] */ ULONG *aX) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Y( 
            /* [retval][out] */ ULONG *aY) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Visible( 
            /* [retval][out] */ BOOL *aVisible) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Visible( 
            /* [in] */ BOOL aVisible) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Alpha( 
            /* [retval][out] */ ULONG *aAlpha) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Alpha( 
            /* [in] */ ULONG aAlpha) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Move( 
            /* [in] */ ULONG aX,
            /* [in] */ ULONG aY) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IFramebufferOverlayVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IFramebufferOverlay * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IFramebufferOverlay * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IFramebufferOverlay * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Address )( 
            IFramebufferOverlay * This,
            /* [retval][out] */ BYTE **aAddress);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Width )( 
            IFramebufferOverlay * This,
            /* [retval][out] */ ULONG *aWidth);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Height )( 
            IFramebufferOverlay * This,
            /* [retval][out] */ ULONG *aHeight);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BitsPerPixel )( 
            IFramebufferOverlay * This,
            /* [retval][out] */ ULONG *aBitsPerPixel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BytesPerLine )( 
            IFramebufferOverlay * This,
            /* [retval][out] */ ULONG *aBytesPerLine);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PixelFormat )( 
            IFramebufferOverlay * This,
            /* [retval][out] */ ULONG *aPixelFormat);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_UsesGuestVRAM )( 
            IFramebufferOverlay * This,
            /* [retval][out] */ BOOL *aUsesGuestVRAM);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HeightReduction )( 
            IFramebufferOverlay * This,
            /* [retval][out] */ ULONG *aHeightReduction);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Overlay )( 
            IFramebufferOverlay * This,
            /* [retval][out] */ IFramebufferOverlay **aOverlay);
        
        HRESULT ( STDMETHODCALLTYPE *Lock )( 
            IFramebufferOverlay * This);
        
        HRESULT ( STDMETHODCALLTYPE *Unlock )( 
            IFramebufferOverlay * This);
        
        HRESULT ( STDMETHODCALLTYPE *NotifyUpdate )( 
            IFramebufferOverlay * This,
            /* [in] */ ULONG aX,
            /* [in] */ ULONG aY,
            /* [in] */ ULONG aWidth,
            /* [in] */ ULONG aHeight,
            /* [retval][out] */ BOOL *aFinished);
        
        HRESULT ( STDMETHODCALLTYPE *RequestResize )( 
            IFramebufferOverlay * This,
            /* [in] */ ULONG aScreenId,
            /* [in] */ ULONG aPixelFormat,
            /* [in] */ BYTE *aVRAM,
            /* [in] */ ULONG aBitsPerPixel,
            /* [in] */ ULONG aBytesPerLine,
            /* [in] */ ULONG aWidth,
            /* [in] */ ULONG aHeight,
            /* [retval][out] */ BOOL *aFinished);
        
        HRESULT ( STDMETHODCALLTYPE *OperationSupported )( 
            IFramebufferOverlay * This,
            /* [in] */ FramebufferAccelerationOperation aOperation,
            /* [retval][out] */ BOOL *aSupported);
        
        HRESULT ( STDMETHODCALLTYPE *VideoModeSupported )( 
            IFramebufferOverlay * This,
            /* [in] */ ULONG aWidth,
            /* [in] */ ULONG aHeight,
            /* [in] */ ULONG aBpp,
            /* [retval][out] */ BOOL *aSupported);
        
        HRESULT ( STDMETHODCALLTYPE *SolidFill )( 
            IFramebufferOverlay * This,
            /* [in] */ ULONG aX,
            /* [in] */ ULONG aY,
            /* [in] */ ULONG aWidth,
            /* [in] */ ULONG aHeight,
            /* [in] */ ULONG aColor,
            /* [retval][out] */ BOOL *aHandled);
        
        HRESULT ( STDMETHODCALLTYPE *CopyScreenBits )( 
            IFramebufferOverlay * This,
            /* [in] */ ULONG aXDst,
            /* [in] */ ULONG aYDst,
            /* [in] */ ULONG aXSrc,
            /* [in] */ ULONG aYSrc,
            /* [in] */ ULONG aWidth,
            /* [in] */ ULONG aHeight,
            /* [retval][out] */ BOOL *aHandled);
        
        HRESULT ( STDMETHODCALLTYPE *GetVisibleRegion )( 
            IFramebufferOverlay * This,
            /* [in] */ BYTE *aRectangles,
            /* [in] */ ULONG aCount,
            /* [retval][out] */ ULONG *aCountCopied);
        
        HRESULT ( STDMETHODCALLTYPE *SetVisibleRegion )( 
            IFramebufferOverlay * This,
            /* [in] */ BYTE *aRectangles,
            /* [in] */ ULONG aCount);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_X )( 
            IFramebufferOverlay * This,
            /* [retval][out] */ ULONG *aX);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Y )( 
            IFramebufferOverlay * This,
            /* [retval][out] */ ULONG *aY);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( 
            IFramebufferOverlay * This,
            /* [retval][out] */ BOOL *aVisible);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( 
            IFramebufferOverlay * This,
            /* [in] */ BOOL aVisible);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Alpha )( 
            IFramebufferOverlay * This,
            /* [retval][out] */ ULONG *aAlpha);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Alpha )( 
            IFramebufferOverlay * This,
            /* [in] */ ULONG aAlpha);
        
        HRESULT ( STDMETHODCALLTYPE *Move )( 
            IFramebufferOverlay * This,
            /* [in] */ ULONG aX,
            /* [in] */ ULONG aY);
        
        END_INTERFACE
    } IFramebufferOverlayVtbl;

    interface IFramebufferOverlay
    {
        CONST_VTBL struct IFramebufferOverlayVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IFramebufferOverlay_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IFramebufferOverlay_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IFramebufferOverlay_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IFramebufferOverlay_get_Address(This,aAddress)	\
    (This)->lpVtbl -> get_Address(This,aAddress)

#define IFramebufferOverlay_get_Width(This,aWidth)	\
    (This)->lpVtbl -> get_Width(This,aWidth)

#define IFramebufferOverlay_get_Height(This,aHeight)	\
    (This)->lpVtbl -> get_Height(This,aHeight)

#define IFramebufferOverlay_get_BitsPerPixel(This,aBitsPerPixel)	\
    (This)->lpVtbl -> get_BitsPerPixel(This,aBitsPerPixel)

#define IFramebufferOverlay_get_BytesPerLine(This,aBytesPerLine)	\
    (This)->lpVtbl -> get_BytesPerLine(This,aBytesPerLine)

#define IFramebufferOverlay_get_PixelFormat(This,aPixelFormat)	\
    (This)->lpVtbl -> get_PixelFormat(This,aPixelFormat)

#define IFramebufferOverlay_get_UsesGuestVRAM(This,aUsesGuestVRAM)	\
    (This)->lpVtbl -> get_UsesGuestVRAM(This,aUsesGuestVRAM)

#define IFramebufferOverlay_get_HeightReduction(This,aHeightReduction)	\
    (This)->lpVtbl -> get_HeightReduction(This,aHeightReduction)

#define IFramebufferOverlay_get_Overlay(This,aOverlay)	\
    (This)->lpVtbl -> get_Overlay(This,aOverlay)

#define IFramebufferOverlay_Lock(This)	\
    (This)->lpVtbl -> Lock(This)

#define IFramebufferOverlay_Unlock(This)	\
    (This)->lpVtbl -> Unlock(This)

#define IFramebufferOverlay_NotifyUpdate(This,aX,aY,aWidth,aHeight,aFinished)	\
    (This)->lpVtbl -> NotifyUpdate(This,aX,aY,aWidth,aHeight,aFinished)

#define IFramebufferOverlay_RequestResize(This,aScreenId,aPixelFormat,aVRAM,aBitsPerPixel,aBytesPerLine,aWidth,aHeight,aFinished)	\
    (This)->lpVtbl -> RequestResize(This,aScreenId,aPixelFormat,aVRAM,aBitsPerPixel,aBytesPerLine,aWidth,aHeight,aFinished)

#define IFramebufferOverlay_OperationSupported(This,aOperation,aSupported)	\
    (This)->lpVtbl -> OperationSupported(This,aOperation,aSupported)

#define IFramebufferOverlay_VideoModeSupported(This,aWidth,aHeight,aBpp,aSupported)	\
    (This)->lpVtbl -> VideoModeSupported(This,aWidth,aHeight,aBpp,aSupported)

#define IFramebufferOverlay_SolidFill(This,aX,aY,aWidth,aHeight,aColor,aHandled)	\
    (This)->lpVtbl -> SolidFill(This,aX,aY,aWidth,aHeight,aColor,aHandled)

#define IFramebufferOverlay_CopyScreenBits(This,aXDst,aYDst,aXSrc,aYSrc,aWidth,aHeight,aHandled)	\
    (This)->lpVtbl -> CopyScreenBits(This,aXDst,aYDst,aXSrc,aYSrc,aWidth,aHeight,aHandled)

#define IFramebufferOverlay_GetVisibleRegion(This,aRectangles,aCount,aCountCopied)	\
    (This)->lpVtbl -> GetVisibleRegion(This,aRectangles,aCount,aCountCopied)

#define IFramebufferOverlay_SetVisibleRegion(This,aRectangles,aCount)	\
    (This)->lpVtbl -> SetVisibleRegion(This,aRectangles,aCount)


#define IFramebufferOverlay_get_X(This,aX)	\
    (This)->lpVtbl -> get_X(This,aX)

#define IFramebufferOverlay_get_Y(This,aY)	\
    (This)->lpVtbl -> get_Y(This,aY)

#define IFramebufferOverlay_get_Visible(This,aVisible)	\
    (This)->lpVtbl -> get_Visible(This,aVisible)

#define IFramebufferOverlay_put_Visible(This,aVisible)	\
    (This)->lpVtbl -> put_Visible(This,aVisible)

#define IFramebufferOverlay_get_Alpha(This,aAlpha)	\
    (This)->lpVtbl -> get_Alpha(This,aAlpha)

#define IFramebufferOverlay_put_Alpha(This,aAlpha)	\
    (This)->lpVtbl -> put_Alpha(This,aAlpha)

#define IFramebufferOverlay_Move(This,aX,aY)	\
    (This)->lpVtbl -> Move(This,aX,aY)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IFramebufferOverlay_get_X_Proxy( 
    IFramebufferOverlay * This,
    /* [retval][out] */ ULONG *aX);


void __RPC_STUB IFramebufferOverlay_get_X_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IFramebufferOverlay_get_Y_Proxy( 
    IFramebufferOverlay * This,
    /* [retval][out] */ ULONG *aY);


void __RPC_STUB IFramebufferOverlay_get_Y_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IFramebufferOverlay_get_Visible_Proxy( 
    IFramebufferOverlay * This,
    /* [retval][out] */ BOOL *aVisible);


void __RPC_STUB IFramebufferOverlay_get_Visible_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IFramebufferOverlay_put_Visible_Proxy( 
    IFramebufferOverlay * This,
    /* [in] */ BOOL aVisible);


void __RPC_STUB IFramebufferOverlay_put_Visible_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IFramebufferOverlay_get_Alpha_Proxy( 
    IFramebufferOverlay * This,
    /* [retval][out] */ ULONG *aAlpha);


void __RPC_STUB IFramebufferOverlay_get_Alpha_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IFramebufferOverlay_put_Alpha_Proxy( 
    IFramebufferOverlay * This,
    /* [in] */ ULONG aAlpha);


void __RPC_STUB IFramebufferOverlay_put_Alpha_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IFramebufferOverlay_Move_Proxy( 
    IFramebufferOverlay * This,
    /* [in] */ ULONG aX,
    /* [in] */ ULONG aY);


void __RPC_STUB IFramebufferOverlay_Move_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IFramebufferOverlay_INTERFACE_DEFINED__ */


#ifndef __IDisplay_INTERFACE_DEFINED__
#define __IDisplay_INTERFACE_DEFINED__

/* interface IDisplay */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IDisplay;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("09789f63-4525-48e5-a5e4-1080453b0eab")
    IDisplay : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Width( 
            /* [retval][out] */ ULONG *aWidth) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Height( 
            /* [retval][out] */ ULONG *aHeight) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BitsPerPixel( 
            /* [retval][out] */ ULONG *aBitsPerPixel) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetupInternalFramebuffer( 
            /* [in] */ ULONG aDepth) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE LockFramebuffer( 
            /* [retval][out] */ BYTE **aAddress) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE UnlockFramebuffer( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RegisterExternalFramebuffer( 
            /* [in] */ IFramebuffer *aFramebuffer) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetFramebuffer( 
            /* [in] */ ULONG aScreenId,
            /* [in] */ IFramebuffer *aFramebuffer) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetFramebuffer( 
            /* [in] */ ULONG aScreenId,
            /* [out] */ IFramebuffer **aFramebuffer,
            /* [out] */ LONG *aXOrigin,
            /* [out] */ LONG *aYOrigin) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetVideoModeHint( 
            /* [in] */ ULONG aWidth,
            /* [in] */ ULONG aHeight,
            /* [in] */ ULONG aBitsPerPixel,
            /* [in] */ ULONG aDisplay) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetSeamlessMode( 
            /* [in] */ BOOL aEnabled) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE TakeScreenShot( 
            /* [in] */ BYTE *aAddress,
            /* [in] */ ULONG aWidth,
            /* [in] */ ULONG aHeight) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE DrawToScreen( 
            /* [in] */ BYTE *aAddress,
            /* [in] */ ULONG aX,
            /* [in] */ ULONG aY,
            /* [in] */ ULONG aWidth,
            /* [in] */ ULONG aHeight) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE InvalidateAndUpdate( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ResizeCompleted( 
            /* [in] */ ULONG aScreenId) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE UpdateCompleted( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IDisplayVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IDisplay * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IDisplay * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IDisplay * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Width )( 
            IDisplay * This,
            /* [retval][out] */ ULONG *aWidth);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Height )( 
            IDisplay * This,
            /* [retval][out] */ ULONG *aHeight);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BitsPerPixel )( 
            IDisplay * This,
            /* [retval][out] */ ULONG *aBitsPerPixel);
        
        HRESULT ( STDMETHODCALLTYPE *SetupInternalFramebuffer )( 
            IDisplay * This,
            /* [in] */ ULONG aDepth);
        
        HRESULT ( STDMETHODCALLTYPE *LockFramebuffer )( 
            IDisplay * This,
            /* [retval][out] */ BYTE **aAddress);
        
        HRESULT ( STDMETHODCALLTYPE *UnlockFramebuffer )( 
            IDisplay * This);
        
        HRESULT ( STDMETHODCALLTYPE *RegisterExternalFramebuffer )( 
            IDisplay * This,
            /* [in] */ IFramebuffer *aFramebuffer);
        
        HRESULT ( STDMETHODCALLTYPE *SetFramebuffer )( 
            IDisplay * This,
            /* [in] */ ULONG aScreenId,
            /* [in] */ IFramebuffer *aFramebuffer);
        
        HRESULT ( STDMETHODCALLTYPE *GetFramebuffer )( 
            IDisplay * This,
            /* [in] */ ULONG aScreenId,
            /* [out] */ IFramebuffer **aFramebuffer,
            /* [out] */ LONG *aXOrigin,
            /* [out] */ LONG *aYOrigin);
        
        HRESULT ( STDMETHODCALLTYPE *SetVideoModeHint )( 
            IDisplay * This,
            /* [in] */ ULONG aWidth,
            /* [in] */ ULONG aHeight,
            /* [in] */ ULONG aBitsPerPixel,
            /* [in] */ ULONG aDisplay);
        
        HRESULT ( STDMETHODCALLTYPE *SetSeamlessMode )( 
            IDisplay * This,
            /* [in] */ BOOL aEnabled);
        
        HRESULT ( STDMETHODCALLTYPE *TakeScreenShot )( 
            IDisplay * This,
            /* [in] */ BYTE *aAddress,
            /* [in] */ ULONG aWidth,
            /* [in] */ ULONG aHeight);
        
        HRESULT ( STDMETHODCALLTYPE *DrawToScreen )( 
            IDisplay * This,
            /* [in] */ BYTE *aAddress,
            /* [in] */ ULONG aX,
            /* [in] */ ULONG aY,
            /* [in] */ ULONG aWidth,
            /* [in] */ ULONG aHeight);
        
        HRESULT ( STDMETHODCALLTYPE *InvalidateAndUpdate )( 
            IDisplay * This);
        
        HRESULT ( STDMETHODCALLTYPE *ResizeCompleted )( 
            IDisplay * This,
            /* [in] */ ULONG aScreenId);
        
        HRESULT ( STDMETHODCALLTYPE *UpdateCompleted )( 
            IDisplay * This);
        
        END_INTERFACE
    } IDisplayVtbl;

    interface IDisplay
    {
        CONST_VTBL struct IDisplayVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IDisplay_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IDisplay_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IDisplay_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IDisplay_get_Width(This,aWidth)	\
    (This)->lpVtbl -> get_Width(This,aWidth)

#define IDisplay_get_Height(This,aHeight)	\
    (This)->lpVtbl -> get_Height(This,aHeight)

#define IDisplay_get_BitsPerPixel(This,aBitsPerPixel)	\
    (This)->lpVtbl -> get_BitsPerPixel(This,aBitsPerPixel)

#define IDisplay_SetupInternalFramebuffer(This,aDepth)	\
    (This)->lpVtbl -> SetupInternalFramebuffer(This,aDepth)

#define IDisplay_LockFramebuffer(This,aAddress)	\
    (This)->lpVtbl -> LockFramebuffer(This,aAddress)

#define IDisplay_UnlockFramebuffer(This)	\
    (This)->lpVtbl -> UnlockFramebuffer(This)

#define IDisplay_RegisterExternalFramebuffer(This,aFramebuffer)	\
    (This)->lpVtbl -> RegisterExternalFramebuffer(This,aFramebuffer)

#define IDisplay_SetFramebuffer(This,aScreenId,aFramebuffer)	\
    (This)->lpVtbl -> SetFramebuffer(This,aScreenId,aFramebuffer)

#define IDisplay_GetFramebuffer(This,aScreenId,aFramebuffer,aXOrigin,aYOrigin)	\
    (This)->lpVtbl -> GetFramebuffer(This,aScreenId,aFramebuffer,aXOrigin,aYOrigin)

#define IDisplay_SetVideoModeHint(This,aWidth,aHeight,aBitsPerPixel,aDisplay)	\
    (This)->lpVtbl -> SetVideoModeHint(This,aWidth,aHeight,aBitsPerPixel,aDisplay)

#define IDisplay_SetSeamlessMode(This,aEnabled)	\
    (This)->lpVtbl -> SetSeamlessMode(This,aEnabled)

#define IDisplay_TakeScreenShot(This,aAddress,aWidth,aHeight)	\
    (This)->lpVtbl -> TakeScreenShot(This,aAddress,aWidth,aHeight)

#define IDisplay_DrawToScreen(This,aAddress,aX,aY,aWidth,aHeight)	\
    (This)->lpVtbl -> DrawToScreen(This,aAddress,aX,aY,aWidth,aHeight)

#define IDisplay_InvalidateAndUpdate(This)	\
    (This)->lpVtbl -> InvalidateAndUpdate(This)

#define IDisplay_ResizeCompleted(This,aScreenId)	\
    (This)->lpVtbl -> ResizeCompleted(This,aScreenId)

#define IDisplay_UpdateCompleted(This)	\
    (This)->lpVtbl -> UpdateCompleted(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IDisplay_get_Width_Proxy( 
    IDisplay * This,
    /* [retval][out] */ ULONG *aWidth);


void __RPC_STUB IDisplay_get_Width_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IDisplay_get_Height_Proxy( 
    IDisplay * This,
    /* [retval][out] */ ULONG *aHeight);


void __RPC_STUB IDisplay_get_Height_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IDisplay_get_BitsPerPixel_Proxy( 
    IDisplay * This,
    /* [retval][out] */ ULONG *aBitsPerPixel);


void __RPC_STUB IDisplay_get_BitsPerPixel_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IDisplay_SetupInternalFramebuffer_Proxy( 
    IDisplay * This,
    /* [in] */ ULONG aDepth);


void __RPC_STUB IDisplay_SetupInternalFramebuffer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IDisplay_LockFramebuffer_Proxy( 
    IDisplay * This,
    /* [retval][out] */ BYTE **aAddress);


void __RPC_STUB IDisplay_LockFramebuffer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IDisplay_UnlockFramebuffer_Proxy( 
    IDisplay * This);


void __RPC_STUB IDisplay_UnlockFramebuffer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IDisplay_RegisterExternalFramebuffer_Proxy( 
    IDisplay * This,
    /* [in] */ IFramebuffer *aFramebuffer);


void __RPC_STUB IDisplay_RegisterExternalFramebuffer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IDisplay_SetFramebuffer_Proxy( 
    IDisplay * This,
    /* [in] */ ULONG aScreenId,
    /* [in] */ IFramebuffer *aFramebuffer);


void __RPC_STUB IDisplay_SetFramebuffer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IDisplay_GetFramebuffer_Proxy( 
    IDisplay * This,
    /* [in] */ ULONG aScreenId,
    /* [out] */ IFramebuffer **aFramebuffer,
    /* [out] */ LONG *aXOrigin,
    /* [out] */ LONG *aYOrigin);


void __RPC_STUB IDisplay_GetFramebuffer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IDisplay_SetVideoModeHint_Proxy( 
    IDisplay * This,
    /* [in] */ ULONG aWidth,
    /* [in] */ ULONG aHeight,
    /* [in] */ ULONG aBitsPerPixel,
    /* [in] */ ULONG aDisplay);


void __RPC_STUB IDisplay_SetVideoModeHint_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IDisplay_SetSeamlessMode_Proxy( 
    IDisplay * This,
    /* [in] */ BOOL aEnabled);


void __RPC_STUB IDisplay_SetSeamlessMode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IDisplay_TakeScreenShot_Proxy( 
    IDisplay * This,
    /* [in] */ BYTE *aAddress,
    /* [in] */ ULONG aWidth,
    /* [in] */ ULONG aHeight);


void __RPC_STUB IDisplay_TakeScreenShot_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IDisplay_DrawToScreen_Proxy( 
    IDisplay * This,
    /* [in] */ BYTE *aAddress,
    /* [in] */ ULONG aX,
    /* [in] */ ULONG aY,
    /* [in] */ ULONG aWidth,
    /* [in] */ ULONG aHeight);


void __RPC_STUB IDisplay_DrawToScreen_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IDisplay_InvalidateAndUpdate_Proxy( 
    IDisplay * This);


void __RPC_STUB IDisplay_InvalidateAndUpdate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IDisplay_ResizeCompleted_Proxy( 
    IDisplay * This,
    /* [in] */ ULONG aScreenId);


void __RPC_STUB IDisplay_ResizeCompleted_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IDisplay_UpdateCompleted_Proxy( 
    IDisplay * This);


void __RPC_STUB IDisplay_UpdateCompleted_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IDisplay_INTERFACE_DEFINED__ */


#ifndef __INetworkAdapter_INTERFACE_DEFINED__
#define __INetworkAdapter_INTERFACE_DEFINED__

/* interface INetworkAdapter */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_INetworkAdapter;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("a876d9b1-68d9-43b1-9c68-ddea0a473663")
    INetworkAdapter : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AdapterType( 
            /* [retval][out] */ NetworkAdapterType *aAdapterType) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_AdapterType( 
            /* [in] */ NetworkAdapterType aAdapterType) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Slot( 
            /* [retval][out] */ ULONG *aSlot) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Enabled( 
            /* [retval][out] */ BOOL *aEnabled) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Enabled( 
            /* [in] */ BOOL aEnabled) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MACAddress( 
            /* [retval][out] */ BSTR *aMACAddress) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_MACAddress( 
            /* [in] */ BSTR aMACAddress) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AttachmentType( 
            /* [retval][out] */ NetworkAttachmentType *aAttachmentType) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HostInterface( 
            /* [retval][out] */ BSTR *aHostInterface) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_HostInterface( 
            /* [in] */ BSTR aHostInterface) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_InternalNetwork( 
            /* [retval][out] */ BSTR *aInternalNetwork) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_InternalNetwork( 
            /* [in] */ BSTR aInternalNetwork) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_NATNetwork( 
            /* [retval][out] */ BSTR *aNATNetwork) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_NATNetwork( 
            /* [in] */ BSTR aNATNetwork) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_CableConnected( 
            /* [retval][out] */ BOOL *aCableConnected) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_CableConnected( 
            /* [in] */ BOOL aCableConnected) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_LineSpeed( 
            /* [retval][out] */ ULONG *aLineSpeed) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_LineSpeed( 
            /* [in] */ ULONG aLineSpeed) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_TraceEnabled( 
            /* [retval][out] */ BOOL *aTraceEnabled) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_TraceEnabled( 
            /* [in] */ BOOL aTraceEnabled) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_TraceFile( 
            /* [retval][out] */ BSTR *aTraceFile) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_TraceFile( 
            /* [in] */ BSTR aTraceFile) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AttachToNAT( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AttachToHostInterface( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AttachToInternalNetwork( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Detach( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct INetworkAdapterVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            INetworkAdapter * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            INetworkAdapter * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            INetworkAdapter * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AdapterType )( 
            INetworkAdapter * This,
            /* [retval][out] */ NetworkAdapterType *aAdapterType);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_AdapterType )( 
            INetworkAdapter * This,
            /* [in] */ NetworkAdapterType aAdapterType);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Slot )( 
            INetworkAdapter * This,
            /* [retval][out] */ ULONG *aSlot);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Enabled )( 
            INetworkAdapter * This,
            /* [retval][out] */ BOOL *aEnabled);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Enabled )( 
            INetworkAdapter * This,
            /* [in] */ BOOL aEnabled);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MACAddress )( 
            INetworkAdapter * This,
            /* [retval][out] */ BSTR *aMACAddress);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_MACAddress )( 
            INetworkAdapter * This,
            /* [in] */ BSTR aMACAddress);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AttachmentType )( 
            INetworkAdapter * This,
            /* [retval][out] */ NetworkAttachmentType *aAttachmentType);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HostInterface )( 
            INetworkAdapter * This,
            /* [retval][out] */ BSTR *aHostInterface);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_HostInterface )( 
            INetworkAdapter * This,
            /* [in] */ BSTR aHostInterface);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_InternalNetwork )( 
            INetworkAdapter * This,
            /* [retval][out] */ BSTR *aInternalNetwork);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_InternalNetwork )( 
            INetworkAdapter * This,
            /* [in] */ BSTR aInternalNetwork);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_NATNetwork )( 
            INetworkAdapter * This,
            /* [retval][out] */ BSTR *aNATNetwork);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_NATNetwork )( 
            INetworkAdapter * This,
            /* [in] */ BSTR aNATNetwork);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CableConnected )( 
            INetworkAdapter * This,
            /* [retval][out] */ BOOL *aCableConnected);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_CableConnected )( 
            INetworkAdapter * This,
            /* [in] */ BOOL aCableConnected);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_LineSpeed )( 
            INetworkAdapter * This,
            /* [retval][out] */ ULONG *aLineSpeed);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_LineSpeed )( 
            INetworkAdapter * This,
            /* [in] */ ULONG aLineSpeed);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_TraceEnabled )( 
            INetworkAdapter * This,
            /* [retval][out] */ BOOL *aTraceEnabled);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_TraceEnabled )( 
            INetworkAdapter * This,
            /* [in] */ BOOL aTraceEnabled);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_TraceFile )( 
            INetworkAdapter * This,
            /* [retval][out] */ BSTR *aTraceFile);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_TraceFile )( 
            INetworkAdapter * This,
            /* [in] */ BSTR aTraceFile);
        
        HRESULT ( STDMETHODCALLTYPE *AttachToNAT )( 
            INetworkAdapter * This);
        
        HRESULT ( STDMETHODCALLTYPE *AttachToHostInterface )( 
            INetworkAdapter * This);
        
        HRESULT ( STDMETHODCALLTYPE *AttachToInternalNetwork )( 
            INetworkAdapter * This);
        
        HRESULT ( STDMETHODCALLTYPE *Detach )( 
            INetworkAdapter * This);
        
        END_INTERFACE
    } INetworkAdapterVtbl;

    interface INetworkAdapter
    {
        CONST_VTBL struct INetworkAdapterVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define INetworkAdapter_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define INetworkAdapter_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define INetworkAdapter_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define INetworkAdapter_get_AdapterType(This,aAdapterType)	\
    (This)->lpVtbl -> get_AdapterType(This,aAdapterType)

#define INetworkAdapter_put_AdapterType(This,aAdapterType)	\
    (This)->lpVtbl -> put_AdapterType(This,aAdapterType)

#define INetworkAdapter_get_Slot(This,aSlot)	\
    (This)->lpVtbl -> get_Slot(This,aSlot)

#define INetworkAdapter_get_Enabled(This,aEnabled)	\
    (This)->lpVtbl -> get_Enabled(This,aEnabled)

#define INetworkAdapter_put_Enabled(This,aEnabled)	\
    (This)->lpVtbl -> put_Enabled(This,aEnabled)

#define INetworkAdapter_get_MACAddress(This,aMACAddress)	\
    (This)->lpVtbl -> get_MACAddress(This,aMACAddress)

#define INetworkAdapter_put_MACAddress(This,aMACAddress)	\
    (This)->lpVtbl -> put_MACAddress(This,aMACAddress)

#define INetworkAdapter_get_AttachmentType(This,aAttachmentType)	\
    (This)->lpVtbl -> get_AttachmentType(This,aAttachmentType)

#define INetworkAdapter_get_HostInterface(This,aHostInterface)	\
    (This)->lpVtbl -> get_HostInterface(This,aHostInterface)

#define INetworkAdapter_put_HostInterface(This,aHostInterface)	\
    (This)->lpVtbl -> put_HostInterface(This,aHostInterface)

#define INetworkAdapter_get_InternalNetwork(This,aInternalNetwork)	\
    (This)->lpVtbl -> get_InternalNetwork(This,aInternalNetwork)

#define INetworkAdapter_put_InternalNetwork(This,aInternalNetwork)	\
    (This)->lpVtbl -> put_InternalNetwork(This,aInternalNetwork)

#define INetworkAdapter_get_NATNetwork(This,aNATNetwork)	\
    (This)->lpVtbl -> get_NATNetwork(This,aNATNetwork)

#define INetworkAdapter_put_NATNetwork(This,aNATNetwork)	\
    (This)->lpVtbl -> put_NATNetwork(This,aNATNetwork)

#define INetworkAdapter_get_CableConnected(This,aCableConnected)	\
    (This)->lpVtbl -> get_CableConnected(This,aCableConnected)

#define INetworkAdapter_put_CableConnected(This,aCableConnected)	\
    (This)->lpVtbl -> put_CableConnected(This,aCableConnected)

#define INetworkAdapter_get_LineSpeed(This,aLineSpeed)	\
    (This)->lpVtbl -> get_LineSpeed(This,aLineSpeed)

#define INetworkAdapter_put_LineSpeed(This,aLineSpeed)	\
    (This)->lpVtbl -> put_LineSpeed(This,aLineSpeed)

#define INetworkAdapter_get_TraceEnabled(This,aTraceEnabled)	\
    (This)->lpVtbl -> get_TraceEnabled(This,aTraceEnabled)

#define INetworkAdapter_put_TraceEnabled(This,aTraceEnabled)	\
    (This)->lpVtbl -> put_TraceEnabled(This,aTraceEnabled)

#define INetworkAdapter_get_TraceFile(This,aTraceFile)	\
    (This)->lpVtbl -> get_TraceFile(This,aTraceFile)

#define INetworkAdapter_put_TraceFile(This,aTraceFile)	\
    (This)->lpVtbl -> put_TraceFile(This,aTraceFile)

#define INetworkAdapter_AttachToNAT(This)	\
    (This)->lpVtbl -> AttachToNAT(This)

#define INetworkAdapter_AttachToHostInterface(This)	\
    (This)->lpVtbl -> AttachToHostInterface(This)

#define INetworkAdapter_AttachToInternalNetwork(This)	\
    (This)->lpVtbl -> AttachToInternalNetwork(This)

#define INetworkAdapter_Detach(This)	\
    (This)->lpVtbl -> Detach(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE INetworkAdapter_get_AdapterType_Proxy( 
    INetworkAdapter * This,
    /* [retval][out] */ NetworkAdapterType *aAdapterType);


void __RPC_STUB INetworkAdapter_get_AdapterType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE INetworkAdapter_put_AdapterType_Proxy( 
    INetworkAdapter * This,
    /* [in] */ NetworkAdapterType aAdapterType);


void __RPC_STUB INetworkAdapter_put_AdapterType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE INetworkAdapter_get_Slot_Proxy( 
    INetworkAdapter * This,
    /* [retval][out] */ ULONG *aSlot);


void __RPC_STUB INetworkAdapter_get_Slot_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE INetworkAdapter_get_Enabled_Proxy( 
    INetworkAdapter * This,
    /* [retval][out] */ BOOL *aEnabled);


void __RPC_STUB INetworkAdapter_get_Enabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE INetworkAdapter_put_Enabled_Proxy( 
    INetworkAdapter * This,
    /* [in] */ BOOL aEnabled);


void __RPC_STUB INetworkAdapter_put_Enabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE INetworkAdapter_get_MACAddress_Proxy( 
    INetworkAdapter * This,
    /* [retval][out] */ BSTR *aMACAddress);


void __RPC_STUB INetworkAdapter_get_MACAddress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE INetworkAdapter_put_MACAddress_Proxy( 
    INetworkAdapter * This,
    /* [in] */ BSTR aMACAddress);


void __RPC_STUB INetworkAdapter_put_MACAddress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE INetworkAdapter_get_AttachmentType_Proxy( 
    INetworkAdapter * This,
    /* [retval][out] */ NetworkAttachmentType *aAttachmentType);


void __RPC_STUB INetworkAdapter_get_AttachmentType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE INetworkAdapter_get_HostInterface_Proxy( 
    INetworkAdapter * This,
    /* [retval][out] */ BSTR *aHostInterface);


void __RPC_STUB INetworkAdapter_get_HostInterface_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE INetworkAdapter_put_HostInterface_Proxy( 
    INetworkAdapter * This,
    /* [in] */ BSTR aHostInterface);


void __RPC_STUB INetworkAdapter_put_HostInterface_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE INetworkAdapter_get_InternalNetwork_Proxy( 
    INetworkAdapter * This,
    /* [retval][out] */ BSTR *aInternalNetwork);


void __RPC_STUB INetworkAdapter_get_InternalNetwork_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE INetworkAdapter_put_InternalNetwork_Proxy( 
    INetworkAdapter * This,
    /* [in] */ BSTR aInternalNetwork);


void __RPC_STUB INetworkAdapter_put_InternalNetwork_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE INetworkAdapter_get_NATNetwork_Proxy( 
    INetworkAdapter * This,
    /* [retval][out] */ BSTR *aNATNetwork);


void __RPC_STUB INetworkAdapter_get_NATNetwork_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE INetworkAdapter_put_NATNetwork_Proxy( 
    INetworkAdapter * This,
    /* [in] */ BSTR aNATNetwork);


void __RPC_STUB INetworkAdapter_put_NATNetwork_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE INetworkAdapter_get_CableConnected_Proxy( 
    INetworkAdapter * This,
    /* [retval][out] */ BOOL *aCableConnected);


void __RPC_STUB INetworkAdapter_get_CableConnected_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE INetworkAdapter_put_CableConnected_Proxy( 
    INetworkAdapter * This,
    /* [in] */ BOOL aCableConnected);


void __RPC_STUB INetworkAdapter_put_CableConnected_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE INetworkAdapter_get_LineSpeed_Proxy( 
    INetworkAdapter * This,
    /* [retval][out] */ ULONG *aLineSpeed);


void __RPC_STUB INetworkAdapter_get_LineSpeed_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE INetworkAdapter_put_LineSpeed_Proxy( 
    INetworkAdapter * This,
    /* [in] */ ULONG aLineSpeed);


void __RPC_STUB INetworkAdapter_put_LineSpeed_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE INetworkAdapter_get_TraceEnabled_Proxy( 
    INetworkAdapter * This,
    /* [retval][out] */ BOOL *aTraceEnabled);


void __RPC_STUB INetworkAdapter_get_TraceEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE INetworkAdapter_put_TraceEnabled_Proxy( 
    INetworkAdapter * This,
    /* [in] */ BOOL aTraceEnabled);


void __RPC_STUB INetworkAdapter_put_TraceEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE INetworkAdapter_get_TraceFile_Proxy( 
    INetworkAdapter * This,
    /* [retval][out] */ BSTR *aTraceFile);


void __RPC_STUB INetworkAdapter_get_TraceFile_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE INetworkAdapter_put_TraceFile_Proxy( 
    INetworkAdapter * This,
    /* [in] */ BSTR aTraceFile);


void __RPC_STUB INetworkAdapter_put_TraceFile_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE INetworkAdapter_AttachToNAT_Proxy( 
    INetworkAdapter * This);


void __RPC_STUB INetworkAdapter_AttachToNAT_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE INetworkAdapter_AttachToHostInterface_Proxy( 
    INetworkAdapter * This);


void __RPC_STUB INetworkAdapter_AttachToHostInterface_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE INetworkAdapter_AttachToInternalNetwork_Proxy( 
    INetworkAdapter * This);


void __RPC_STUB INetworkAdapter_AttachToInternalNetwork_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE INetworkAdapter_Detach_Proxy( 
    INetworkAdapter * This);


void __RPC_STUB INetworkAdapter_Detach_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __INetworkAdapter_INTERFACE_DEFINED__ */


#ifndef __ISerialPort_INTERFACE_DEFINED__
#define __ISerialPort_INTERFACE_DEFINED__

/* interface ISerialPort */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_ISerialPort;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("937f6970-5103-4745-b78e-d28dcf1479a8")
    ISerialPort : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Slot( 
            /* [retval][out] */ ULONG *aSlot) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Enabled( 
            /* [retval][out] */ BOOL *aEnabled) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Enabled( 
            /* [in] */ BOOL aEnabled) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IOBase( 
            /* [retval][out] */ ULONG *aIOBase) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IOBase( 
            /* [in] */ ULONG aIOBase) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IRQ( 
            /* [retval][out] */ ULONG *aIRQ) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IRQ( 
            /* [in] */ ULONG aIRQ) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HostMode( 
            /* [retval][out] */ PortMode *aHostMode) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_HostMode( 
            /* [in] */ PortMode aHostMode) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Server( 
            /* [retval][out] */ BOOL *aServer) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Server( 
            /* [in] */ BOOL aServer) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Path( 
            /* [retval][out] */ BSTR *aPath) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Path( 
            /* [in] */ BSTR aPath) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISerialPortVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ISerialPort * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ISerialPort * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ISerialPort * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Slot )( 
            ISerialPort * This,
            /* [retval][out] */ ULONG *aSlot);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Enabled )( 
            ISerialPort * This,
            /* [retval][out] */ BOOL *aEnabled);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Enabled )( 
            ISerialPort * This,
            /* [in] */ BOOL aEnabled);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_IOBase )( 
            ISerialPort * This,
            /* [retval][out] */ ULONG *aIOBase);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_IOBase )( 
            ISerialPort * This,
            /* [in] */ ULONG aIOBase);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_IRQ )( 
            ISerialPort * This,
            /* [retval][out] */ ULONG *aIRQ);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_IRQ )( 
            ISerialPort * This,
            /* [in] */ ULONG aIRQ);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HostMode )( 
            ISerialPort * This,
            /* [retval][out] */ PortMode *aHostMode);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_HostMode )( 
            ISerialPort * This,
            /* [in] */ PortMode aHostMode);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Server )( 
            ISerialPort * This,
            /* [retval][out] */ BOOL *aServer);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Server )( 
            ISerialPort * This,
            /* [in] */ BOOL aServer);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Path )( 
            ISerialPort * This,
            /* [retval][out] */ BSTR *aPath);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Path )( 
            ISerialPort * This,
            /* [in] */ BSTR aPath);
        
        END_INTERFACE
    } ISerialPortVtbl;

    interface ISerialPort
    {
        CONST_VTBL struct ISerialPortVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ISerialPort_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ISerialPort_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ISerialPort_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ISerialPort_get_Slot(This,aSlot)	\
    (This)->lpVtbl -> get_Slot(This,aSlot)

#define ISerialPort_get_Enabled(This,aEnabled)	\
    (This)->lpVtbl -> get_Enabled(This,aEnabled)

#define ISerialPort_put_Enabled(This,aEnabled)	\
    (This)->lpVtbl -> put_Enabled(This,aEnabled)

#define ISerialPort_get_IOBase(This,aIOBase)	\
    (This)->lpVtbl -> get_IOBase(This,aIOBase)

#define ISerialPort_put_IOBase(This,aIOBase)	\
    (This)->lpVtbl -> put_IOBase(This,aIOBase)

#define ISerialPort_get_IRQ(This,aIRQ)	\
    (This)->lpVtbl -> get_IRQ(This,aIRQ)

#define ISerialPort_put_IRQ(This,aIRQ)	\
    (This)->lpVtbl -> put_IRQ(This,aIRQ)

#define ISerialPort_get_HostMode(This,aHostMode)	\
    (This)->lpVtbl -> get_HostMode(This,aHostMode)

#define ISerialPort_put_HostMode(This,aHostMode)	\
    (This)->lpVtbl -> put_HostMode(This,aHostMode)

#define ISerialPort_get_Server(This,aServer)	\
    (This)->lpVtbl -> get_Server(This,aServer)

#define ISerialPort_put_Server(This,aServer)	\
    (This)->lpVtbl -> put_Server(This,aServer)

#define ISerialPort_get_Path(This,aPath)	\
    (This)->lpVtbl -> get_Path(This,aPath)

#define ISerialPort_put_Path(This,aPath)	\
    (This)->lpVtbl -> put_Path(This,aPath)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE ISerialPort_get_Slot_Proxy( 
    ISerialPort * This,
    /* [retval][out] */ ULONG *aSlot);


void __RPC_STUB ISerialPort_get_Slot_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISerialPort_get_Enabled_Proxy( 
    ISerialPort * This,
    /* [retval][out] */ BOOL *aEnabled);


void __RPC_STUB ISerialPort_get_Enabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE ISerialPort_put_Enabled_Proxy( 
    ISerialPort * This,
    /* [in] */ BOOL aEnabled);


void __RPC_STUB ISerialPort_put_Enabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISerialPort_get_IOBase_Proxy( 
    ISerialPort * This,
    /* [retval][out] */ ULONG *aIOBase);


void __RPC_STUB ISerialPort_get_IOBase_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE ISerialPort_put_IOBase_Proxy( 
    ISerialPort * This,
    /* [in] */ ULONG aIOBase);


void __RPC_STUB ISerialPort_put_IOBase_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISerialPort_get_IRQ_Proxy( 
    ISerialPort * This,
    /* [retval][out] */ ULONG *aIRQ);


void __RPC_STUB ISerialPort_get_IRQ_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE ISerialPort_put_IRQ_Proxy( 
    ISerialPort * This,
    /* [in] */ ULONG aIRQ);


void __RPC_STUB ISerialPort_put_IRQ_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISerialPort_get_HostMode_Proxy( 
    ISerialPort * This,
    /* [retval][out] */ PortMode *aHostMode);


void __RPC_STUB ISerialPort_get_HostMode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE ISerialPort_put_HostMode_Proxy( 
    ISerialPort * This,
    /* [in] */ PortMode aHostMode);


void __RPC_STUB ISerialPort_put_HostMode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISerialPort_get_Server_Proxy( 
    ISerialPort * This,
    /* [retval][out] */ BOOL *aServer);


void __RPC_STUB ISerialPort_get_Server_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE ISerialPort_put_Server_Proxy( 
    ISerialPort * This,
    /* [in] */ BOOL aServer);


void __RPC_STUB ISerialPort_put_Server_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISerialPort_get_Path_Proxy( 
    ISerialPort * This,
    /* [retval][out] */ BSTR *aPath);


void __RPC_STUB ISerialPort_get_Path_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE ISerialPort_put_Path_Proxy( 
    ISerialPort * This,
    /* [in] */ BSTR aPath);


void __RPC_STUB ISerialPort_put_Path_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ISerialPort_INTERFACE_DEFINED__ */


#ifndef __IParallelPort_INTERFACE_DEFINED__
#define __IParallelPort_INTERFACE_DEFINED__

/* interface IParallelPort */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IParallelPort;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0c925f06-dd10-4b77-8de8-294d738c3214")
    IParallelPort : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Slot( 
            /* [retval][out] */ ULONG *aSlot) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Enabled( 
            /* [retval][out] */ BOOL *aEnabled) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Enabled( 
            /* [in] */ BOOL aEnabled) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IOBase( 
            /* [retval][out] */ ULONG *aIOBase) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IOBase( 
            /* [in] */ ULONG aIOBase) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IRQ( 
            /* [retval][out] */ ULONG *aIRQ) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IRQ( 
            /* [in] */ ULONG aIRQ) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Path( 
            /* [retval][out] */ BSTR *aPath) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Path( 
            /* [in] */ BSTR aPath) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IParallelPortVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IParallelPort * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IParallelPort * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IParallelPort * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Slot )( 
            IParallelPort * This,
            /* [retval][out] */ ULONG *aSlot);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Enabled )( 
            IParallelPort * This,
            /* [retval][out] */ BOOL *aEnabled);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Enabled )( 
            IParallelPort * This,
            /* [in] */ BOOL aEnabled);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_IOBase )( 
            IParallelPort * This,
            /* [retval][out] */ ULONG *aIOBase);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_IOBase )( 
            IParallelPort * This,
            /* [in] */ ULONG aIOBase);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_IRQ )( 
            IParallelPort * This,
            /* [retval][out] */ ULONG *aIRQ);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_IRQ )( 
            IParallelPort * This,
            /* [in] */ ULONG aIRQ);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Path )( 
            IParallelPort * This,
            /* [retval][out] */ BSTR *aPath);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Path )( 
            IParallelPort * This,
            /* [in] */ BSTR aPath);
        
        END_INTERFACE
    } IParallelPortVtbl;

    interface IParallelPort
    {
        CONST_VTBL struct IParallelPortVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IParallelPort_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IParallelPort_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IParallelPort_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IParallelPort_get_Slot(This,aSlot)	\
    (This)->lpVtbl -> get_Slot(This,aSlot)

#define IParallelPort_get_Enabled(This,aEnabled)	\
    (This)->lpVtbl -> get_Enabled(This,aEnabled)

#define IParallelPort_put_Enabled(This,aEnabled)	\
    (This)->lpVtbl -> put_Enabled(This,aEnabled)

#define IParallelPort_get_IOBase(This,aIOBase)	\
    (This)->lpVtbl -> get_IOBase(This,aIOBase)

#define IParallelPort_put_IOBase(This,aIOBase)	\
    (This)->lpVtbl -> put_IOBase(This,aIOBase)

#define IParallelPort_get_IRQ(This,aIRQ)	\
    (This)->lpVtbl -> get_IRQ(This,aIRQ)

#define IParallelPort_put_IRQ(This,aIRQ)	\
    (This)->lpVtbl -> put_IRQ(This,aIRQ)

#define IParallelPort_get_Path(This,aPath)	\
    (This)->lpVtbl -> get_Path(This,aPath)

#define IParallelPort_put_Path(This,aPath)	\
    (This)->lpVtbl -> put_Path(This,aPath)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IParallelPort_get_Slot_Proxy( 
    IParallelPort * This,
    /* [retval][out] */ ULONG *aSlot);


void __RPC_STUB IParallelPort_get_Slot_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IParallelPort_get_Enabled_Proxy( 
    IParallelPort * This,
    /* [retval][out] */ BOOL *aEnabled);


void __RPC_STUB IParallelPort_get_Enabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IParallelPort_put_Enabled_Proxy( 
    IParallelPort * This,
    /* [in] */ BOOL aEnabled);


void __RPC_STUB IParallelPort_put_Enabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IParallelPort_get_IOBase_Proxy( 
    IParallelPort * This,
    /* [retval][out] */ ULONG *aIOBase);


void __RPC_STUB IParallelPort_get_IOBase_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IParallelPort_put_IOBase_Proxy( 
    IParallelPort * This,
    /* [in] */ ULONG aIOBase);


void __RPC_STUB IParallelPort_put_IOBase_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IParallelPort_get_IRQ_Proxy( 
    IParallelPort * This,
    /* [retval][out] */ ULONG *aIRQ);


void __RPC_STUB IParallelPort_get_IRQ_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IParallelPort_put_IRQ_Proxy( 
    IParallelPort * This,
    /* [in] */ ULONG aIRQ);


void __RPC_STUB IParallelPort_put_IRQ_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IParallelPort_get_Path_Proxy( 
    IParallelPort * This,
    /* [retval][out] */ BSTR *aPath);


void __RPC_STUB IParallelPort_get_Path_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IParallelPort_put_Path_Proxy( 
    IParallelPort * This,
    /* [in] */ BSTR aPath);


void __RPC_STUB IParallelPort_put_Path_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IParallelPort_INTERFACE_DEFINED__ */


#ifndef __IMachineDebugger_INTERFACE_DEFINED__
#define __IMachineDebugger_INTERFACE_DEFINED__

/* interface IMachineDebugger */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IMachineDebugger;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("54ebce96-fa7d-4a4d-bc81-a7db41c29637")
    IMachineDebugger : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Singlestep( 
            /* [retval][out] */ BOOL *aSinglestep) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Singlestep( 
            /* [in] */ BOOL aSinglestep) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RecompileUser( 
            /* [retval][out] */ BOOL *aRecompileUser) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_RecompileUser( 
            /* [in] */ BOOL aRecompileUser) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RecompileSupervisor( 
            /* [retval][out] */ BOOL *aRecompileSupervisor) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_RecompileSupervisor( 
            /* [in] */ BOOL aRecompileSupervisor) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PATMEnabled( 
            /* [retval][out] */ BOOL *aPATMEnabled) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PATMEnabled( 
            /* [in] */ BOOL aPATMEnabled) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_CSAMEnabled( 
            /* [retval][out] */ BOOL *aCSAMEnabled) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_CSAMEnabled( 
            /* [in] */ BOOL aCSAMEnabled) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_LogEnabled( 
            /* [retval][out] */ BOOL *aLogEnabled) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_LogEnabled( 
            /* [in] */ BOOL aLogEnabled) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HWVirtExEnabled( 
            /* [retval][out] */ BOOL *aHWVirtExEnabled) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HWVirtExNestedPagingEnabled( 
            /* [retval][out] */ BOOL *aHWVirtExNestedPagingEnabled) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PAEEnabled( 
            /* [retval][out] */ BOOL *aPAEEnabled) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_VirtualTimeRate( 
            /* [retval][out] */ ULONG *aVirtualTimeRate) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_VirtualTimeRate( 
            /* [in] */ ULONG aVirtualTimeRate) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_VM( 
            /* [retval][out] */ ULONG64 *aVM) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ResetStats( 
            /* [in] */ BSTR aPattern) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE DumpStats( 
            /* [in] */ BSTR aPattern) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetStats( 
            /* [in] */ BSTR aPattern,
            /* [in] */ BOOL aWithDescriptions,
            /* [out] */ BSTR *aStats) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IMachineDebuggerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IMachineDebugger * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IMachineDebugger * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IMachineDebugger * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Singlestep )( 
            IMachineDebugger * This,
            /* [retval][out] */ BOOL *aSinglestep);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Singlestep )( 
            IMachineDebugger * This,
            /* [in] */ BOOL aSinglestep);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RecompileUser )( 
            IMachineDebugger * This,
            /* [retval][out] */ BOOL *aRecompileUser);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_RecompileUser )( 
            IMachineDebugger * This,
            /* [in] */ BOOL aRecompileUser);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RecompileSupervisor )( 
            IMachineDebugger * This,
            /* [retval][out] */ BOOL *aRecompileSupervisor);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_RecompileSupervisor )( 
            IMachineDebugger * This,
            /* [in] */ BOOL aRecompileSupervisor);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PATMEnabled )( 
            IMachineDebugger * This,
            /* [retval][out] */ BOOL *aPATMEnabled);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PATMEnabled )( 
            IMachineDebugger * This,
            /* [in] */ BOOL aPATMEnabled);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CSAMEnabled )( 
            IMachineDebugger * This,
            /* [retval][out] */ BOOL *aCSAMEnabled);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_CSAMEnabled )( 
            IMachineDebugger * This,
            /* [in] */ BOOL aCSAMEnabled);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_LogEnabled )( 
            IMachineDebugger * This,
            /* [retval][out] */ BOOL *aLogEnabled);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_LogEnabled )( 
            IMachineDebugger * This,
            /* [in] */ BOOL aLogEnabled);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HWVirtExEnabled )( 
            IMachineDebugger * This,
            /* [retval][out] */ BOOL *aHWVirtExEnabled);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HWVirtExNestedPagingEnabled )( 
            IMachineDebugger * This,
            /* [retval][out] */ BOOL *aHWVirtExNestedPagingEnabled);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PAEEnabled )( 
            IMachineDebugger * This,
            /* [retval][out] */ BOOL *aPAEEnabled);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_VirtualTimeRate )( 
            IMachineDebugger * This,
            /* [retval][out] */ ULONG *aVirtualTimeRate);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_VirtualTimeRate )( 
            IMachineDebugger * This,
            /* [in] */ ULONG aVirtualTimeRate);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_VM )( 
            IMachineDebugger * This,
            /* [retval][out] */ ULONG64 *aVM);
        
        HRESULT ( STDMETHODCALLTYPE *ResetStats )( 
            IMachineDebugger * This,
            /* [in] */ BSTR aPattern);
        
        HRESULT ( STDMETHODCALLTYPE *DumpStats )( 
            IMachineDebugger * This,
            /* [in] */ BSTR aPattern);
        
        HRESULT ( STDMETHODCALLTYPE *GetStats )( 
            IMachineDebugger * This,
            /* [in] */ BSTR aPattern,
            /* [in] */ BOOL aWithDescriptions,
            /* [out] */ BSTR *aStats);
        
        END_INTERFACE
    } IMachineDebuggerVtbl;

    interface IMachineDebugger
    {
        CONST_VTBL struct IMachineDebuggerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IMachineDebugger_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IMachineDebugger_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IMachineDebugger_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IMachineDebugger_get_Singlestep(This,aSinglestep)	\
    (This)->lpVtbl -> get_Singlestep(This,aSinglestep)

#define IMachineDebugger_put_Singlestep(This,aSinglestep)	\
    (This)->lpVtbl -> put_Singlestep(This,aSinglestep)

#define IMachineDebugger_get_RecompileUser(This,aRecompileUser)	\
    (This)->lpVtbl -> get_RecompileUser(This,aRecompileUser)

#define IMachineDebugger_put_RecompileUser(This,aRecompileUser)	\
    (This)->lpVtbl -> put_RecompileUser(This,aRecompileUser)

#define IMachineDebugger_get_RecompileSupervisor(This,aRecompileSupervisor)	\
    (This)->lpVtbl -> get_RecompileSupervisor(This,aRecompileSupervisor)

#define IMachineDebugger_put_RecompileSupervisor(This,aRecompileSupervisor)	\
    (This)->lpVtbl -> put_RecompileSupervisor(This,aRecompileSupervisor)

#define IMachineDebugger_get_PATMEnabled(This,aPATMEnabled)	\
    (This)->lpVtbl -> get_PATMEnabled(This,aPATMEnabled)

#define IMachineDebugger_put_PATMEnabled(This,aPATMEnabled)	\
    (This)->lpVtbl -> put_PATMEnabled(This,aPATMEnabled)

#define IMachineDebugger_get_CSAMEnabled(This,aCSAMEnabled)	\
    (This)->lpVtbl -> get_CSAMEnabled(This,aCSAMEnabled)

#define IMachineDebugger_put_CSAMEnabled(This,aCSAMEnabled)	\
    (This)->lpVtbl -> put_CSAMEnabled(This,aCSAMEnabled)

#define IMachineDebugger_get_LogEnabled(This,aLogEnabled)	\
    (This)->lpVtbl -> get_LogEnabled(This,aLogEnabled)

#define IMachineDebugger_put_LogEnabled(This,aLogEnabled)	\
    (This)->lpVtbl -> put_LogEnabled(This,aLogEnabled)

#define IMachineDebugger_get_HWVirtExEnabled(This,aHWVirtExEnabled)	\
    (This)->lpVtbl -> get_HWVirtExEnabled(This,aHWVirtExEnabled)

#define IMachineDebugger_get_HWVirtExNestedPagingEnabled(This,aHWVirtExNestedPagingEnabled)	\
    (This)->lpVtbl -> get_HWVirtExNestedPagingEnabled(This,aHWVirtExNestedPagingEnabled)

#define IMachineDebugger_get_PAEEnabled(This,aPAEEnabled)	\
    (This)->lpVtbl -> get_PAEEnabled(This,aPAEEnabled)

#define IMachineDebugger_get_VirtualTimeRate(This,aVirtualTimeRate)	\
    (This)->lpVtbl -> get_VirtualTimeRate(This,aVirtualTimeRate)

#define IMachineDebugger_put_VirtualTimeRate(This,aVirtualTimeRate)	\
    (This)->lpVtbl -> put_VirtualTimeRate(This,aVirtualTimeRate)

#define IMachineDebugger_get_VM(This,aVM)	\
    (This)->lpVtbl -> get_VM(This,aVM)

#define IMachineDebugger_ResetStats(This,aPattern)	\
    (This)->lpVtbl -> ResetStats(This,aPattern)

#define IMachineDebugger_DumpStats(This,aPattern)	\
    (This)->lpVtbl -> DumpStats(This,aPattern)

#define IMachineDebugger_GetStats(This,aPattern,aWithDescriptions,aStats)	\
    (This)->lpVtbl -> GetStats(This,aPattern,aWithDescriptions,aStats)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IMachineDebugger_get_Singlestep_Proxy( 
    IMachineDebugger * This,
    /* [retval][out] */ BOOL *aSinglestep);


void __RPC_STUB IMachineDebugger_get_Singlestep_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IMachineDebugger_put_Singlestep_Proxy( 
    IMachineDebugger * This,
    /* [in] */ BOOL aSinglestep);


void __RPC_STUB IMachineDebugger_put_Singlestep_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachineDebugger_get_RecompileUser_Proxy( 
    IMachineDebugger * This,
    /* [retval][out] */ BOOL *aRecompileUser);


void __RPC_STUB IMachineDebugger_get_RecompileUser_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IMachineDebugger_put_RecompileUser_Proxy( 
    IMachineDebugger * This,
    /* [in] */ BOOL aRecompileUser);


void __RPC_STUB IMachineDebugger_put_RecompileUser_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachineDebugger_get_RecompileSupervisor_Proxy( 
    IMachineDebugger * This,
    /* [retval][out] */ BOOL *aRecompileSupervisor);


void __RPC_STUB IMachineDebugger_get_RecompileSupervisor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IMachineDebugger_put_RecompileSupervisor_Proxy( 
    IMachineDebugger * This,
    /* [in] */ BOOL aRecompileSupervisor);


void __RPC_STUB IMachineDebugger_put_RecompileSupervisor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachineDebugger_get_PATMEnabled_Proxy( 
    IMachineDebugger * This,
    /* [retval][out] */ BOOL *aPATMEnabled);


void __RPC_STUB IMachineDebugger_get_PATMEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IMachineDebugger_put_PATMEnabled_Proxy( 
    IMachineDebugger * This,
    /* [in] */ BOOL aPATMEnabled);


void __RPC_STUB IMachineDebugger_put_PATMEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachineDebugger_get_CSAMEnabled_Proxy( 
    IMachineDebugger * This,
    /* [retval][out] */ BOOL *aCSAMEnabled);


void __RPC_STUB IMachineDebugger_get_CSAMEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IMachineDebugger_put_CSAMEnabled_Proxy( 
    IMachineDebugger * This,
    /* [in] */ BOOL aCSAMEnabled);


void __RPC_STUB IMachineDebugger_put_CSAMEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachineDebugger_get_LogEnabled_Proxy( 
    IMachineDebugger * This,
    /* [retval][out] */ BOOL *aLogEnabled);


void __RPC_STUB IMachineDebugger_get_LogEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IMachineDebugger_put_LogEnabled_Proxy( 
    IMachineDebugger * This,
    /* [in] */ BOOL aLogEnabled);


void __RPC_STUB IMachineDebugger_put_LogEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachineDebugger_get_HWVirtExEnabled_Proxy( 
    IMachineDebugger * This,
    /* [retval][out] */ BOOL *aHWVirtExEnabled);


void __RPC_STUB IMachineDebugger_get_HWVirtExEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachineDebugger_get_HWVirtExNestedPagingEnabled_Proxy( 
    IMachineDebugger * This,
    /* [retval][out] */ BOOL *aHWVirtExNestedPagingEnabled);


void __RPC_STUB IMachineDebugger_get_HWVirtExNestedPagingEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachineDebugger_get_PAEEnabled_Proxy( 
    IMachineDebugger * This,
    /* [retval][out] */ BOOL *aPAEEnabled);


void __RPC_STUB IMachineDebugger_get_PAEEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachineDebugger_get_VirtualTimeRate_Proxy( 
    IMachineDebugger * This,
    /* [retval][out] */ ULONG *aVirtualTimeRate);


void __RPC_STUB IMachineDebugger_get_VirtualTimeRate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IMachineDebugger_put_VirtualTimeRate_Proxy( 
    IMachineDebugger * This,
    /* [in] */ ULONG aVirtualTimeRate);


void __RPC_STUB IMachineDebugger_put_VirtualTimeRate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IMachineDebugger_get_VM_Proxy( 
    IMachineDebugger * This,
    /* [retval][out] */ ULONG64 *aVM);


void __RPC_STUB IMachineDebugger_get_VM_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachineDebugger_ResetStats_Proxy( 
    IMachineDebugger * This,
    /* [in] */ BSTR aPattern);


void __RPC_STUB IMachineDebugger_ResetStats_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachineDebugger_DumpStats_Proxy( 
    IMachineDebugger * This,
    /* [in] */ BSTR aPattern);


void __RPC_STUB IMachineDebugger_DumpStats_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IMachineDebugger_GetStats_Proxy( 
    IMachineDebugger * This,
    /* [in] */ BSTR aPattern,
    /* [in] */ BOOL aWithDescriptions,
    /* [out] */ BSTR *aStats);


void __RPC_STUB IMachineDebugger_GetStats_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IMachineDebugger_INTERFACE_DEFINED__ */


#ifndef __IUSBController_INTERFACE_DEFINED__
#define __IUSBController_INTERFACE_DEFINED__

/* interface IUSBController */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IUSBController;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("f4c2d3dc-f109-4da7-93b1-ec28973ac89f")
    IUSBController : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Enabled( 
            /* [retval][out] */ BOOL *aEnabled) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Enabled( 
            /* [in] */ BOOL aEnabled) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_EnabledEhci( 
            /* [retval][out] */ BOOL *aEnabledEhci) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_EnabledEhci( 
            /* [in] */ BOOL aEnabledEhci) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_USBStandard( 
            /* [retval][out] */ USHORT *aUSBStandard) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DeviceFilters( 
            /* [retval][out] */ IUSBDeviceFilterCollection **aDeviceFilters) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateDeviceFilter( 
            /* [in] */ BSTR aName,
            /* [retval][out] */ IUSBDeviceFilter **aFilter) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE InsertDeviceFilter( 
            /* [in] */ ULONG aPosition,
            /* [in] */ IUSBDeviceFilter *aFilter) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveDeviceFilter( 
            /* [in] */ ULONG aPosition,
            /* [retval][out] */ IUSBDeviceFilter **aFilter) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IUSBControllerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IUSBController * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IUSBController * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IUSBController * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Enabled )( 
            IUSBController * This,
            /* [retval][out] */ BOOL *aEnabled);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Enabled )( 
            IUSBController * This,
            /* [in] */ BOOL aEnabled);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_EnabledEhci )( 
            IUSBController * This,
            /* [retval][out] */ BOOL *aEnabledEhci);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_EnabledEhci )( 
            IUSBController * This,
            /* [in] */ BOOL aEnabledEhci);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_USBStandard )( 
            IUSBController * This,
            /* [retval][out] */ USHORT *aUSBStandard);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_DeviceFilters )( 
            IUSBController * This,
            /* [retval][out] */ IUSBDeviceFilterCollection **aDeviceFilters);
        
        HRESULT ( STDMETHODCALLTYPE *CreateDeviceFilter )( 
            IUSBController * This,
            /* [in] */ BSTR aName,
            /* [retval][out] */ IUSBDeviceFilter **aFilter);
        
        HRESULT ( STDMETHODCALLTYPE *InsertDeviceFilter )( 
            IUSBController * This,
            /* [in] */ ULONG aPosition,
            /* [in] */ IUSBDeviceFilter *aFilter);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveDeviceFilter )( 
            IUSBController * This,
            /* [in] */ ULONG aPosition,
            /* [retval][out] */ IUSBDeviceFilter **aFilter);
        
        END_INTERFACE
    } IUSBControllerVtbl;

    interface IUSBController
    {
        CONST_VTBL struct IUSBControllerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IUSBController_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IUSBController_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IUSBController_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IUSBController_get_Enabled(This,aEnabled)	\
    (This)->lpVtbl -> get_Enabled(This,aEnabled)

#define IUSBController_put_Enabled(This,aEnabled)	\
    (This)->lpVtbl -> put_Enabled(This,aEnabled)

#define IUSBController_get_EnabledEhci(This,aEnabledEhci)	\
    (This)->lpVtbl -> get_EnabledEhci(This,aEnabledEhci)

#define IUSBController_put_EnabledEhci(This,aEnabledEhci)	\
    (This)->lpVtbl -> put_EnabledEhci(This,aEnabledEhci)

#define IUSBController_get_USBStandard(This,aUSBStandard)	\
    (This)->lpVtbl -> get_USBStandard(This,aUSBStandard)

#define IUSBController_get_DeviceFilters(This,aDeviceFilters)	\
    (This)->lpVtbl -> get_DeviceFilters(This,aDeviceFilters)

#define IUSBController_CreateDeviceFilter(This,aName,aFilter)	\
    (This)->lpVtbl -> CreateDeviceFilter(This,aName,aFilter)

#define IUSBController_InsertDeviceFilter(This,aPosition,aFilter)	\
    (This)->lpVtbl -> InsertDeviceFilter(This,aPosition,aFilter)

#define IUSBController_RemoveDeviceFilter(This,aPosition,aFilter)	\
    (This)->lpVtbl -> RemoveDeviceFilter(This,aPosition,aFilter)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IUSBController_get_Enabled_Proxy( 
    IUSBController * This,
    /* [retval][out] */ BOOL *aEnabled);


void __RPC_STUB IUSBController_get_Enabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IUSBController_put_Enabled_Proxy( 
    IUSBController * This,
    /* [in] */ BOOL aEnabled);


void __RPC_STUB IUSBController_put_Enabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IUSBController_get_EnabledEhci_Proxy( 
    IUSBController * This,
    /* [retval][out] */ BOOL *aEnabledEhci);


void __RPC_STUB IUSBController_get_EnabledEhci_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IUSBController_put_EnabledEhci_Proxy( 
    IUSBController * This,
    /* [in] */ BOOL aEnabledEhci);


void __RPC_STUB IUSBController_put_EnabledEhci_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IUSBController_get_USBStandard_Proxy( 
    IUSBController * This,
    /* [retval][out] */ USHORT *aUSBStandard);


void __RPC_STUB IUSBController_get_USBStandard_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IUSBController_get_DeviceFilters_Proxy( 
    IUSBController * This,
    /* [retval][out] */ IUSBDeviceFilterCollection **aDeviceFilters);


void __RPC_STUB IUSBController_get_DeviceFilters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IUSBController_CreateDeviceFilter_Proxy( 
    IUSBController * This,
    /* [in] */ BSTR aName,
    /* [retval][out] */ IUSBDeviceFilter **aFilter);


void __RPC_STUB IUSBController_CreateDeviceFilter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IUSBController_InsertDeviceFilter_Proxy( 
    IUSBController * This,
    /* [in] */ ULONG aPosition,
    /* [in] */ IUSBDeviceFilter *aFilter);


void __RPC_STUB IUSBController_InsertDeviceFilter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IUSBController_RemoveDeviceFilter_Proxy( 
    IUSBController * This,
    /* [in] */ ULONG aPosition,
    /* [retval][out] */ IUSBDeviceFilter **aFilter);


void __RPC_STUB IUSBController_RemoveDeviceFilter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IUSBController_INTERFACE_DEFINED__ */


#ifndef __IUSBDeviceEnumerator_INTERFACE_DEFINED__
#define __IUSBDeviceEnumerator_INTERFACE_DEFINED__

/* interface IUSBDeviceEnumerator */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IUSBDeviceEnumerator;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("aefe00f7-eb8a-454b-9ea4-fd5ad93c0e99")
    IUSBDeviceEnumerator : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE HasMore( 
            /* [retval][out] */ BOOL *more) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetNext( 
            /* [retval][out] */ IUSBDevice **next) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IUSBDeviceEnumeratorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IUSBDeviceEnumerator * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IUSBDeviceEnumerator * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IUSBDeviceEnumerator * This);
        
        HRESULT ( STDMETHODCALLTYPE *HasMore )( 
            IUSBDeviceEnumerator * This,
            /* [retval][out] */ BOOL *more);
        
        HRESULT ( STDMETHODCALLTYPE *GetNext )( 
            IUSBDeviceEnumerator * This,
            /* [retval][out] */ IUSBDevice **next);
        
        END_INTERFACE
    } IUSBDeviceEnumeratorVtbl;

    interface IUSBDeviceEnumerator
    {
        CONST_VTBL struct IUSBDeviceEnumeratorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IUSBDeviceEnumerator_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IUSBDeviceEnumerator_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IUSBDeviceEnumerator_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IUSBDeviceEnumerator_HasMore(This,more)	\
    (This)->lpVtbl -> HasMore(This,more)

#define IUSBDeviceEnumerator_GetNext(This,next)	\
    (This)->lpVtbl -> GetNext(This,next)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IUSBDeviceEnumerator_HasMore_Proxy( 
    IUSBDeviceEnumerator * This,
    /* [retval][out] */ BOOL *more);


void __RPC_STUB IUSBDeviceEnumerator_HasMore_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IUSBDeviceEnumerator_GetNext_Proxy( 
    IUSBDeviceEnumerator * This,
    /* [retval][out] */ IUSBDevice **next);


void __RPC_STUB IUSBDeviceEnumerator_GetNext_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IUSBDeviceEnumerator_INTERFACE_DEFINED__ */


#ifndef __IUSBDeviceCollection_INTERFACE_DEFINED__
#define __IUSBDeviceCollection_INTERFACE_DEFINED__

/* interface IUSBDeviceCollection */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IUSBDeviceCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("e31f3248-90dd-4ca2-95f0-6b36042d96a2")
    IUSBDeviceCollection : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ ULONG *count) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetItemAt( 
            /* [in] */ ULONG index,
            /* [retval][out] */ IUSBDevice **item) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Enumerate( 
            /* [retval][out] */ IUSBDeviceEnumerator **enumerator) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE FindById( 
            /* [in] */ GUID aId,
            /* [retval][out] */ IUSBDevice **aDevice) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE FindByAddress( 
            /* [in] */ BSTR aName,
            /* [retval][out] */ IUSBDevice **aDevice) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IUSBDeviceCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IUSBDeviceCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IUSBDeviceCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IUSBDeviceCollection * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IUSBDeviceCollection * This,
            /* [retval][out] */ ULONG *count);
        
        HRESULT ( STDMETHODCALLTYPE *GetItemAt )( 
            IUSBDeviceCollection * This,
            /* [in] */ ULONG index,
            /* [retval][out] */ IUSBDevice **item);
        
        HRESULT ( STDMETHODCALLTYPE *Enumerate )( 
            IUSBDeviceCollection * This,
            /* [retval][out] */ IUSBDeviceEnumerator **enumerator);
        
        HRESULT ( STDMETHODCALLTYPE *FindById )( 
            IUSBDeviceCollection * This,
            /* [in] */ GUID aId,
            /* [retval][out] */ IUSBDevice **aDevice);
        
        HRESULT ( STDMETHODCALLTYPE *FindByAddress )( 
            IUSBDeviceCollection * This,
            /* [in] */ BSTR aName,
            /* [retval][out] */ IUSBDevice **aDevice);
        
        END_INTERFACE
    } IUSBDeviceCollectionVtbl;

    interface IUSBDeviceCollection
    {
        CONST_VTBL struct IUSBDeviceCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IUSBDeviceCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IUSBDeviceCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IUSBDeviceCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IUSBDeviceCollection_get_Count(This,count)	\
    (This)->lpVtbl -> get_Count(This,count)

#define IUSBDeviceCollection_GetItemAt(This,index,item)	\
    (This)->lpVtbl -> GetItemAt(This,index,item)

#define IUSBDeviceCollection_Enumerate(This,enumerator)	\
    (This)->lpVtbl -> Enumerate(This,enumerator)

#define IUSBDeviceCollection_FindById(This,aId,aDevice)	\
    (This)->lpVtbl -> FindById(This,aId,aDevice)

#define IUSBDeviceCollection_FindByAddress(This,aName,aDevice)	\
    (This)->lpVtbl -> FindByAddress(This,aName,aDevice)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IUSBDeviceCollection_get_Count_Proxy( 
    IUSBDeviceCollection * This,
    /* [retval][out] */ ULONG *count);


void __RPC_STUB IUSBDeviceCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IUSBDeviceCollection_GetItemAt_Proxy( 
    IUSBDeviceCollection * This,
    /* [in] */ ULONG index,
    /* [retval][out] */ IUSBDevice **item);


void __RPC_STUB IUSBDeviceCollection_GetItemAt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IUSBDeviceCollection_Enumerate_Proxy( 
    IUSBDeviceCollection * This,
    /* [retval][out] */ IUSBDeviceEnumerator **enumerator);


void __RPC_STUB IUSBDeviceCollection_Enumerate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IUSBDeviceCollection_FindById_Proxy( 
    IUSBDeviceCollection * This,
    /* [in] */ GUID aId,
    /* [retval][out] */ IUSBDevice **aDevice);


void __RPC_STUB IUSBDeviceCollection_FindById_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IUSBDeviceCollection_FindByAddress_Proxy( 
    IUSBDeviceCollection * This,
    /* [in] */ BSTR aName,
    /* [retval][out] */ IUSBDevice **aDevice);


void __RPC_STUB IUSBDeviceCollection_FindByAddress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IUSBDeviceCollection_INTERFACE_DEFINED__ */


#ifndef __IUSBDevice_INTERFACE_DEFINED__
#define __IUSBDevice_INTERFACE_DEFINED__

/* interface IUSBDevice */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IUSBDevice;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("850af07b-9ee8-48c2-b6b0-f6d0acbf63c3")
    IUSBDevice : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Id( 
            /* [retval][out] */ GUID *aId) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_VendorId( 
            /* [retval][out] */ USHORT *aVendorId) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ProductId( 
            /* [retval][out] */ USHORT *aProductId) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Revision( 
            /* [retval][out] */ USHORT *aRevision) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Manufacturer( 
            /* [retval][out] */ BSTR *aManufacturer) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Product( 
            /* [retval][out] */ BSTR *aProduct) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SerialNumber( 
            /* [retval][out] */ BSTR *aSerialNumber) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Address( 
            /* [retval][out] */ BSTR *aAddress) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Port( 
            /* [retval][out] */ USHORT *aPort) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Version( 
            /* [retval][out] */ USHORT *aVersion) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PortVersion( 
            /* [retval][out] */ USHORT *aPortVersion) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Remote( 
            /* [retval][out] */ BOOL *aRemote) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IUSBDeviceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IUSBDevice * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IUSBDevice * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IUSBDevice * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Id )( 
            IUSBDevice * This,
            /* [retval][out] */ GUID *aId);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_VendorId )( 
            IUSBDevice * This,
            /* [retval][out] */ USHORT *aVendorId);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ProductId )( 
            IUSBDevice * This,
            /* [retval][out] */ USHORT *aProductId);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Revision )( 
            IUSBDevice * This,
            /* [retval][out] */ USHORT *aRevision);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Manufacturer )( 
            IUSBDevice * This,
            /* [retval][out] */ BSTR *aManufacturer);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Product )( 
            IUSBDevice * This,
            /* [retval][out] */ BSTR *aProduct);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SerialNumber )( 
            IUSBDevice * This,
            /* [retval][out] */ BSTR *aSerialNumber);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Address )( 
            IUSBDevice * This,
            /* [retval][out] */ BSTR *aAddress);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Port )( 
            IUSBDevice * This,
            /* [retval][out] */ USHORT *aPort);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Version )( 
            IUSBDevice * This,
            /* [retval][out] */ USHORT *aVersion);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortVersion )( 
            IUSBDevice * This,
            /* [retval][out] */ USHORT *aPortVersion);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Remote )( 
            IUSBDevice * This,
            /* [retval][out] */ BOOL *aRemote);
        
        END_INTERFACE
    } IUSBDeviceVtbl;

    interface IUSBDevice
    {
        CONST_VTBL struct IUSBDeviceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IUSBDevice_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IUSBDevice_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IUSBDevice_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IUSBDevice_get_Id(This,aId)	\
    (This)->lpVtbl -> get_Id(This,aId)

#define IUSBDevice_get_VendorId(This,aVendorId)	\
    (This)->lpVtbl -> get_VendorId(This,aVendorId)

#define IUSBDevice_get_ProductId(This,aProductId)	\
    (This)->lpVtbl -> get_ProductId(This,aProductId)

#define IUSBDevice_get_Revision(This,aRevision)	\
    (This)->lpVtbl -> get_Revision(This,aRevision)

#define IUSBDevice_get_Manufacturer(This,aManufacturer)	\
    (This)->lpVtbl -> get_Manufacturer(This,aManufacturer)

#define IUSBDevice_get_Product(This,aProduct)	\
    (This)->lpVtbl -> get_Product(This,aProduct)

#define IUSBDevice_get_SerialNumber(This,aSerialNumber)	\
    (This)->lpVtbl -> get_SerialNumber(This,aSerialNumber)

#define IUSBDevice_get_Address(This,aAddress)	\
    (This)->lpVtbl -> get_Address(This,aAddress)

#define IUSBDevice_get_Port(This,aPort)	\
    (This)->lpVtbl -> get_Port(This,aPort)

#define IUSBDevice_get_Version(This,aVersion)	\
    (This)->lpVtbl -> get_Version(This,aVersion)

#define IUSBDevice_get_PortVersion(This,aPortVersion)	\
    (This)->lpVtbl -> get_PortVersion(This,aPortVersion)

#define IUSBDevice_get_Remote(This,aRemote)	\
    (This)->lpVtbl -> get_Remote(This,aRemote)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IUSBDevice_get_Id_Proxy( 
    IUSBDevice * This,
    /* [retval][out] */ GUID *aId);


void __RPC_STUB IUSBDevice_get_Id_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IUSBDevice_get_VendorId_Proxy( 
    IUSBDevice * This,
    /* [retval][out] */ USHORT *aVendorId);


void __RPC_STUB IUSBDevice_get_VendorId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IUSBDevice_get_ProductId_Proxy( 
    IUSBDevice * This,
    /* [retval][out] */ USHORT *aProductId);


void __RPC_STUB IUSBDevice_get_ProductId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IUSBDevice_get_Revision_Proxy( 
    IUSBDevice * This,
    /* [retval][out] */ USHORT *aRevision);


void __RPC_STUB IUSBDevice_get_Revision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IUSBDevice_get_Manufacturer_Proxy( 
    IUSBDevice * This,
    /* [retval][out] */ BSTR *aManufacturer);


void __RPC_STUB IUSBDevice_get_Manufacturer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IUSBDevice_get_Product_Proxy( 
    IUSBDevice * This,
    /* [retval][out] */ BSTR *aProduct);


void __RPC_STUB IUSBDevice_get_Product_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IUSBDevice_get_SerialNumber_Proxy( 
    IUSBDevice * This,
    /* [retval][out] */ BSTR *aSerialNumber);


void __RPC_STUB IUSBDevice_get_SerialNumber_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IUSBDevice_get_Address_Proxy( 
    IUSBDevice * This,
    /* [retval][out] */ BSTR *aAddress);


void __RPC_STUB IUSBDevice_get_Address_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IUSBDevice_get_Port_Proxy( 
    IUSBDevice * This,
    /* [retval][out] */ USHORT *aPort);


void __RPC_STUB IUSBDevice_get_Port_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IUSBDevice_get_Version_Proxy( 
    IUSBDevice * This,
    /* [retval][out] */ USHORT *aVersion);


void __RPC_STUB IUSBDevice_get_Version_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IUSBDevice_get_PortVersion_Proxy( 
    IUSBDevice * This,
    /* [retval][out] */ USHORT *aPortVersion);


void __RPC_STUB IUSBDevice_get_PortVersion_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IUSBDevice_get_Remote_Proxy( 
    IUSBDevice * This,
    /* [retval][out] */ BOOL *aRemote);


void __RPC_STUB IUSBDevice_get_Remote_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IUSBDevice_INTERFACE_DEFINED__ */


#ifndef __IUSBDeviceFilterEnumerator_INTERFACE_DEFINED__
#define __IUSBDeviceFilterEnumerator_INTERFACE_DEFINED__

/* interface IUSBDeviceFilterEnumerator */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IUSBDeviceFilterEnumerator;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("d5109c61-93e7-4726-926b-0dee1020da56")
    IUSBDeviceFilterEnumerator : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE HasMore( 
            /* [retval][out] */ BOOL *more) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetNext( 
            /* [retval][out] */ IUSBDeviceFilter **next) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IUSBDeviceFilterEnumeratorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IUSBDeviceFilterEnumerator * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IUSBDeviceFilterEnumerator * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IUSBDeviceFilterEnumerator * This);
        
        HRESULT ( STDMETHODCALLTYPE *HasMore )( 
            IUSBDeviceFilterEnumerator * This,
            /* [retval][out] */ BOOL *more);
        
        HRESULT ( STDMETHODCALLTYPE *GetNext )( 
            IUSBDeviceFilterEnumerator * This,
            /* [retval][out] */ IUSBDeviceFilter **next);
        
        END_INTERFACE
    } IUSBDeviceFilterEnumeratorVtbl;

    interface IUSBDeviceFilterEnumerator
    {
        CONST_VTBL struct IUSBDeviceFilterEnumeratorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IUSBDeviceFilterEnumerator_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IUSBDeviceFilterEnumerator_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IUSBDeviceFilterEnumerator_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IUSBDeviceFilterEnumerator_HasMore(This,more)	\
    (This)->lpVtbl -> HasMore(This,more)

#define IUSBDeviceFilterEnumerator_GetNext(This,next)	\
    (This)->lpVtbl -> GetNext(This,next)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IUSBDeviceFilterEnumerator_HasMore_Proxy( 
    IUSBDeviceFilterEnumerator * This,
    /* [retval][out] */ BOOL *more);


void __RPC_STUB IUSBDeviceFilterEnumerator_HasMore_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IUSBDeviceFilterEnumerator_GetNext_Proxy( 
    IUSBDeviceFilterEnumerator * This,
    /* [retval][out] */ IUSBDeviceFilter **next);


void __RPC_STUB IUSBDeviceFilterEnumerator_GetNext_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IUSBDeviceFilterEnumerator_INTERFACE_DEFINED__ */


#ifndef __IUSBDeviceFilterCollection_INTERFACE_DEFINED__
#define __IUSBDeviceFilterCollection_INTERFACE_DEFINED__

/* interface IUSBDeviceFilterCollection */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IUSBDeviceFilterCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("4fa3fc99-ceb1-4bf5-a9cb-e962d825c1ef")
    IUSBDeviceFilterCollection : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ ULONG *count) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetItemAt( 
            /* [in] */ ULONG index,
            /* [retval][out] */ IUSBDeviceFilter **item) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Enumerate( 
            /* [retval][out] */ IUSBDeviceFilterEnumerator **enumerator) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IUSBDeviceFilterCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IUSBDeviceFilterCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IUSBDeviceFilterCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IUSBDeviceFilterCollection * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IUSBDeviceFilterCollection * This,
            /* [retval][out] */ ULONG *count);
        
        HRESULT ( STDMETHODCALLTYPE *GetItemAt )( 
            IUSBDeviceFilterCollection * This,
            /* [in] */ ULONG index,
            /* [retval][out] */ IUSBDeviceFilter **item);
        
        HRESULT ( STDMETHODCALLTYPE *Enumerate )( 
            IUSBDeviceFilterCollection * This,
            /* [retval][out] */ IUSBDeviceFilterEnumerator **enumerator);
        
        END_INTERFACE
    } IUSBDeviceFilterCollectionVtbl;

    interface IUSBDeviceFilterCollection
    {
        CONST_VTBL struct IUSBDeviceFilterCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IUSBDeviceFilterCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IUSBDeviceFilterCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IUSBDeviceFilterCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IUSBDeviceFilterCollection_get_Count(This,count)	\
    (This)->lpVtbl -> get_Count(This,count)

#define IUSBDeviceFilterCollection_GetItemAt(This,index,item)	\
    (This)->lpVtbl -> GetItemAt(This,index,item)

#define IUSBDeviceFilterCollection_Enumerate(This,enumerator)	\
    (This)->lpVtbl -> Enumerate(This,enumerator)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IUSBDeviceFilterCollection_get_Count_Proxy( 
    IUSBDeviceFilterCollection * This,
    /* [retval][out] */ ULONG *count);


void __RPC_STUB IUSBDeviceFilterCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IUSBDeviceFilterCollection_GetItemAt_Proxy( 
    IUSBDeviceFilterCollection * This,
    /* [in] */ ULONG index,
    /* [retval][out] */ IUSBDeviceFilter **item);


void __RPC_STUB IUSBDeviceFilterCollection_GetItemAt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IUSBDeviceFilterCollection_Enumerate_Proxy( 
    IUSBDeviceFilterCollection * This,
    /* [retval][out] */ IUSBDeviceFilterEnumerator **enumerator);


void __RPC_STUB IUSBDeviceFilterCollection_Enumerate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IUSBDeviceFilterCollection_INTERFACE_DEFINED__ */


#ifndef __IUSBDeviceFilter_INTERFACE_DEFINED__
#define __IUSBDeviceFilter_INTERFACE_DEFINED__

/* interface IUSBDeviceFilter */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IUSBDeviceFilter;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("d6831fb4-1a94-4c2c-96ef-8d0d6192066d")
    IUSBDeviceFilter : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *aName) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR aName) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Active( 
            /* [retval][out] */ BOOL *aActive) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Active( 
            /* [in] */ BOOL aActive) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_VendorId( 
            /* [retval][out] */ BSTR *aVendorId) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_VendorId( 
            /* [in] */ BSTR aVendorId) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ProductId( 
            /* [retval][out] */ BSTR *aProductId) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ProductId( 
            /* [in] */ BSTR aProductId) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Revision( 
            /* [retval][out] */ BSTR *aRevision) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Revision( 
            /* [in] */ BSTR aRevision) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Manufacturer( 
            /* [retval][out] */ BSTR *aManufacturer) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Manufacturer( 
            /* [in] */ BSTR aManufacturer) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Product( 
            /* [retval][out] */ BSTR *aProduct) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Product( 
            /* [in] */ BSTR aProduct) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SerialNumber( 
            /* [retval][out] */ BSTR *aSerialNumber) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_SerialNumber( 
            /* [in] */ BSTR aSerialNumber) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Port( 
            /* [retval][out] */ BSTR *aPort) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Port( 
            /* [in] */ BSTR aPort) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Remote( 
            /* [retval][out] */ BSTR *aRemote) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Remote( 
            /* [in] */ BSTR aRemote) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MaskedInterfaces( 
            /* [retval][out] */ ULONG *aMaskedInterfaces) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_MaskedInterfaces( 
            /* [in] */ ULONG aMaskedInterfaces) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IUSBDeviceFilterVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IUSBDeviceFilter * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IUSBDeviceFilter * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IUSBDeviceFilter * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IUSBDeviceFilter * This,
            /* [retval][out] */ BSTR *aName);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IUSBDeviceFilter * This,
            /* [in] */ BSTR aName);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Active )( 
            IUSBDeviceFilter * This,
            /* [retval][out] */ BOOL *aActive);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Active )( 
            IUSBDeviceFilter * This,
            /* [in] */ BOOL aActive);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_VendorId )( 
            IUSBDeviceFilter * This,
            /* [retval][out] */ BSTR *aVendorId);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_VendorId )( 
            IUSBDeviceFilter * This,
            /* [in] */ BSTR aVendorId);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ProductId )( 
            IUSBDeviceFilter * This,
            /* [retval][out] */ BSTR *aProductId);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ProductId )( 
            IUSBDeviceFilter * This,
            /* [in] */ BSTR aProductId);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Revision )( 
            IUSBDeviceFilter * This,
            /* [retval][out] */ BSTR *aRevision);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Revision )( 
            IUSBDeviceFilter * This,
            /* [in] */ BSTR aRevision);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Manufacturer )( 
            IUSBDeviceFilter * This,
            /* [retval][out] */ BSTR *aManufacturer);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Manufacturer )( 
            IUSBDeviceFilter * This,
            /* [in] */ BSTR aManufacturer);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Product )( 
            IUSBDeviceFilter * This,
            /* [retval][out] */ BSTR *aProduct);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Product )( 
            IUSBDeviceFilter * This,
            /* [in] */ BSTR aProduct);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SerialNumber )( 
            IUSBDeviceFilter * This,
            /* [retval][out] */ BSTR *aSerialNumber);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_SerialNumber )( 
            IUSBDeviceFilter * This,
            /* [in] */ BSTR aSerialNumber);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Port )( 
            IUSBDeviceFilter * This,
            /* [retval][out] */ BSTR *aPort);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Port )( 
            IUSBDeviceFilter * This,
            /* [in] */ BSTR aPort);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Remote )( 
            IUSBDeviceFilter * This,
            /* [retval][out] */ BSTR *aRemote);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Remote )( 
            IUSBDeviceFilter * This,
            /* [in] */ BSTR aRemote);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MaskedInterfaces )( 
            IUSBDeviceFilter * This,
            /* [retval][out] */ ULONG *aMaskedInterfaces);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_MaskedInterfaces )( 
            IUSBDeviceFilter * This,
            /* [in] */ ULONG aMaskedInterfaces);
        
        END_INTERFACE
    } IUSBDeviceFilterVtbl;

    interface IUSBDeviceFilter
    {
        CONST_VTBL struct IUSBDeviceFilterVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IUSBDeviceFilter_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IUSBDeviceFilter_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IUSBDeviceFilter_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IUSBDeviceFilter_get_Name(This,aName)	\
    (This)->lpVtbl -> get_Name(This,aName)

#define IUSBDeviceFilter_put_Name(This,aName)	\
    (This)->lpVtbl -> put_Name(This,aName)

#define IUSBDeviceFilter_get_Active(This,aActive)	\
    (This)->lpVtbl -> get_Active(This,aActive)

#define IUSBDeviceFilter_put_Active(This,aActive)	\
    (This)->lpVtbl -> put_Active(This,aActive)

#define IUSBDeviceFilter_get_VendorId(This,aVendorId)	\
    (This)->lpVtbl -> get_VendorId(This,aVendorId)

#define IUSBDeviceFilter_put_VendorId(This,aVendorId)	\
    (This)->lpVtbl -> put_VendorId(This,aVendorId)

#define IUSBDeviceFilter_get_ProductId(This,aProductId)	\
    (This)->lpVtbl -> get_ProductId(This,aProductId)

#define IUSBDeviceFilter_put_ProductId(This,aProductId)	\
    (This)->lpVtbl -> put_ProductId(This,aProductId)

#define IUSBDeviceFilter_get_Revision(This,aRevision)	\
    (This)->lpVtbl -> get_Revision(This,aRevision)

#define IUSBDeviceFilter_put_Revision(This,aRevision)	\
    (This)->lpVtbl -> put_Revision(This,aRevision)

#define IUSBDeviceFilter_get_Manufacturer(This,aManufacturer)	\
    (This)->lpVtbl -> get_Manufacturer(This,aManufacturer)

#define IUSBDeviceFilter_put_Manufacturer(This,aManufacturer)	\
    (This)->lpVtbl -> put_Manufacturer(This,aManufacturer)

#define IUSBDeviceFilter_get_Product(This,aProduct)	\
    (This)->lpVtbl -> get_Product(This,aProduct)

#define IUSBDeviceFilter_put_Product(This,aProduct)	\
    (This)->lpVtbl -> put_Product(This,aProduct)

#define IUSBDeviceFilter_get_SerialNumber(This,aSerialNumber)	\
    (This)->lpVtbl -> get_SerialNumber(This,aSerialNumber)

#define IUSBDeviceFilter_put_SerialNumber(This,aSerialNumber)	\
    (This)->lpVtbl -> put_SerialNumber(This,aSerialNumber)

#define IUSBDeviceFilter_get_Port(This,aPort)	\
    (This)->lpVtbl -> get_Port(This,aPort)

#define IUSBDeviceFilter_put_Port(This,aPort)	\
    (This)->lpVtbl -> put_Port(This,aPort)

#define IUSBDeviceFilter_get_Remote(This,aRemote)	\
    (This)->lpVtbl -> get_Remote(This,aRemote)

#define IUSBDeviceFilter_put_Remote(This,aRemote)	\
    (This)->lpVtbl -> put_Remote(This,aRemote)

#define IUSBDeviceFilter_get_MaskedInterfaces(This,aMaskedInterfaces)	\
    (This)->lpVtbl -> get_MaskedInterfaces(This,aMaskedInterfaces)

#define IUSBDeviceFilter_put_MaskedInterfaces(This,aMaskedInterfaces)	\
    (This)->lpVtbl -> put_MaskedInterfaces(This,aMaskedInterfaces)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IUSBDeviceFilter_get_Name_Proxy( 
    IUSBDeviceFilter * This,
    /* [retval][out] */ BSTR *aName);


void __RPC_STUB IUSBDeviceFilter_get_Name_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IUSBDeviceFilter_put_Name_Proxy( 
    IUSBDeviceFilter * This,
    /* [in] */ BSTR aName);


void __RPC_STUB IUSBDeviceFilter_put_Name_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IUSBDeviceFilter_get_Active_Proxy( 
    IUSBDeviceFilter * This,
    /* [retval][out] */ BOOL *aActive);


void __RPC_STUB IUSBDeviceFilter_get_Active_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IUSBDeviceFilter_put_Active_Proxy( 
    IUSBDeviceFilter * This,
    /* [in] */ BOOL aActive);


void __RPC_STUB IUSBDeviceFilter_put_Active_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IUSBDeviceFilter_get_VendorId_Proxy( 
    IUSBDeviceFilter * This,
    /* [retval][out] */ BSTR *aVendorId);


void __RPC_STUB IUSBDeviceFilter_get_VendorId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IUSBDeviceFilter_put_VendorId_Proxy( 
    IUSBDeviceFilter * This,
    /* [in] */ BSTR aVendorId);


void __RPC_STUB IUSBDeviceFilter_put_VendorId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IUSBDeviceFilter_get_ProductId_Proxy( 
    IUSBDeviceFilter * This,
    /* [retval][out] */ BSTR *aProductId);


void __RPC_STUB IUSBDeviceFilter_get_ProductId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IUSBDeviceFilter_put_ProductId_Proxy( 
    IUSBDeviceFilter * This,
    /* [in] */ BSTR aProductId);


void __RPC_STUB IUSBDeviceFilter_put_ProductId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IUSBDeviceFilter_get_Revision_Proxy( 
    IUSBDeviceFilter * This,
    /* [retval][out] */ BSTR *aRevision);


void __RPC_STUB IUSBDeviceFilter_get_Revision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IUSBDeviceFilter_put_Revision_Proxy( 
    IUSBDeviceFilter * This,
    /* [in] */ BSTR aRevision);


void __RPC_STUB IUSBDeviceFilter_put_Revision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IUSBDeviceFilter_get_Manufacturer_Proxy( 
    IUSBDeviceFilter * This,
    /* [retval][out] */ BSTR *aManufacturer);


void __RPC_STUB IUSBDeviceFilter_get_Manufacturer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IUSBDeviceFilter_put_Manufacturer_Proxy( 
    IUSBDeviceFilter * This,
    /* [in] */ BSTR aManufacturer);


void __RPC_STUB IUSBDeviceFilter_put_Manufacturer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IUSBDeviceFilter_get_Product_Proxy( 
    IUSBDeviceFilter * This,
    /* [retval][out] */ BSTR *aProduct);


void __RPC_STUB IUSBDeviceFilter_get_Product_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IUSBDeviceFilter_put_Product_Proxy( 
    IUSBDeviceFilter * This,
    /* [in] */ BSTR aProduct);


void __RPC_STUB IUSBDeviceFilter_put_Product_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IUSBDeviceFilter_get_SerialNumber_Proxy( 
    IUSBDeviceFilter * This,
    /* [retval][out] */ BSTR *aSerialNumber);


void __RPC_STUB IUSBDeviceFilter_get_SerialNumber_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IUSBDeviceFilter_put_SerialNumber_Proxy( 
    IUSBDeviceFilter * This,
    /* [in] */ BSTR aSerialNumber);


void __RPC_STUB IUSBDeviceFilter_put_SerialNumber_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IUSBDeviceFilter_get_Port_Proxy( 
    IUSBDeviceFilter * This,
    /* [retval][out] */ BSTR *aPort);


void __RPC_STUB IUSBDeviceFilter_get_Port_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IUSBDeviceFilter_put_Port_Proxy( 
    IUSBDeviceFilter * This,
    /* [in] */ BSTR aPort);


void __RPC_STUB IUSBDeviceFilter_put_Port_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IUSBDeviceFilter_get_Remote_Proxy( 
    IUSBDeviceFilter * This,
    /* [retval][out] */ BSTR *aRemote);


void __RPC_STUB IUSBDeviceFilter_get_Remote_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IUSBDeviceFilter_put_Remote_Proxy( 
    IUSBDeviceFilter * This,
    /* [in] */ BSTR aRemote);


void __RPC_STUB IUSBDeviceFilter_put_Remote_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IUSBDeviceFilter_get_MaskedInterfaces_Proxy( 
    IUSBDeviceFilter * This,
    /* [retval][out] */ ULONG *aMaskedInterfaces);


void __RPC_STUB IUSBDeviceFilter_get_MaskedInterfaces_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IUSBDeviceFilter_put_MaskedInterfaces_Proxy( 
    IUSBDeviceFilter * This,
    /* [in] */ ULONG aMaskedInterfaces);


void __RPC_STUB IUSBDeviceFilter_put_MaskedInterfaces_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IUSBDeviceFilter_INTERFACE_DEFINED__ */


#ifndef __IHostUSBDeviceEnumerator_INTERFACE_DEFINED__
#define __IHostUSBDeviceEnumerator_INTERFACE_DEFINED__

/* interface IHostUSBDeviceEnumerator */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IHostUSBDeviceEnumerator;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("a0c55136-939f-4d20-b9d3-4d406f08bfa5")
    IHostUSBDeviceEnumerator : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE HasMore( 
            /* [retval][out] */ BOOL *more) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetNext( 
            /* [retval][out] */ IHostUSBDevice **next) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IHostUSBDeviceEnumeratorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IHostUSBDeviceEnumerator * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IHostUSBDeviceEnumerator * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IHostUSBDeviceEnumerator * This);
        
        HRESULT ( STDMETHODCALLTYPE *HasMore )( 
            IHostUSBDeviceEnumerator * This,
            /* [retval][out] */ BOOL *more);
        
        HRESULT ( STDMETHODCALLTYPE *GetNext )( 
            IHostUSBDeviceEnumerator * This,
            /* [retval][out] */ IHostUSBDevice **next);
        
        END_INTERFACE
    } IHostUSBDeviceEnumeratorVtbl;

    interface IHostUSBDeviceEnumerator
    {
        CONST_VTBL struct IHostUSBDeviceEnumeratorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IHostUSBDeviceEnumerator_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IHostUSBDeviceEnumerator_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IHostUSBDeviceEnumerator_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IHostUSBDeviceEnumerator_HasMore(This,more)	\
    (This)->lpVtbl -> HasMore(This,more)

#define IHostUSBDeviceEnumerator_GetNext(This,next)	\
    (This)->lpVtbl -> GetNext(This,next)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IHostUSBDeviceEnumerator_HasMore_Proxy( 
    IHostUSBDeviceEnumerator * This,
    /* [retval][out] */ BOOL *more);


void __RPC_STUB IHostUSBDeviceEnumerator_HasMore_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHostUSBDeviceEnumerator_GetNext_Proxy( 
    IHostUSBDeviceEnumerator * This,
    /* [retval][out] */ IHostUSBDevice **next);


void __RPC_STUB IHostUSBDeviceEnumerator_GetNext_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IHostUSBDeviceEnumerator_INTERFACE_DEFINED__ */


#ifndef __IHostUSBDeviceCollection_INTERFACE_DEFINED__
#define __IHostUSBDeviceCollection_INTERFACE_DEFINED__

/* interface IHostUSBDeviceCollection */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IHostUSBDeviceCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("f9d3f96d-b027-4994-b589-70bb9ee0d364")
    IHostUSBDeviceCollection : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ ULONG *count) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetItemAt( 
            /* [in] */ ULONG index,
            /* [retval][out] */ IHostUSBDevice **item) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Enumerate( 
            /* [retval][out] */ IHostUSBDeviceEnumerator **enumerator) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE FindById( 
            /* [in] */ GUID aId,
            /* [retval][out] */ IHostUSBDevice **aDevice) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE FindByAddress( 
            /* [in] */ BSTR aName,
            /* [retval][out] */ IHostUSBDevice **aDevice) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IHostUSBDeviceCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IHostUSBDeviceCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IHostUSBDeviceCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IHostUSBDeviceCollection * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IHostUSBDeviceCollection * This,
            /* [retval][out] */ ULONG *count);
        
        HRESULT ( STDMETHODCALLTYPE *GetItemAt )( 
            IHostUSBDeviceCollection * This,
            /* [in] */ ULONG index,
            /* [retval][out] */ IHostUSBDevice **item);
        
        HRESULT ( STDMETHODCALLTYPE *Enumerate )( 
            IHostUSBDeviceCollection * This,
            /* [retval][out] */ IHostUSBDeviceEnumerator **enumerator);
        
        HRESULT ( STDMETHODCALLTYPE *FindById )( 
            IHostUSBDeviceCollection * This,
            /* [in] */ GUID aId,
            /* [retval][out] */ IHostUSBDevice **aDevice);
        
        HRESULT ( STDMETHODCALLTYPE *FindByAddress )( 
            IHostUSBDeviceCollection * This,
            /* [in] */ BSTR aName,
            /* [retval][out] */ IHostUSBDevice **aDevice);
        
        END_INTERFACE
    } IHostUSBDeviceCollectionVtbl;

    interface IHostUSBDeviceCollection
    {
        CONST_VTBL struct IHostUSBDeviceCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IHostUSBDeviceCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IHostUSBDeviceCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IHostUSBDeviceCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IHostUSBDeviceCollection_get_Count(This,count)	\
    (This)->lpVtbl -> get_Count(This,count)

#define IHostUSBDeviceCollection_GetItemAt(This,index,item)	\
    (This)->lpVtbl -> GetItemAt(This,index,item)

#define IHostUSBDeviceCollection_Enumerate(This,enumerator)	\
    (This)->lpVtbl -> Enumerate(This,enumerator)

#define IHostUSBDeviceCollection_FindById(This,aId,aDevice)	\
    (This)->lpVtbl -> FindById(This,aId,aDevice)

#define IHostUSBDeviceCollection_FindByAddress(This,aName,aDevice)	\
    (This)->lpVtbl -> FindByAddress(This,aName,aDevice)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IHostUSBDeviceCollection_get_Count_Proxy( 
    IHostUSBDeviceCollection * This,
    /* [retval][out] */ ULONG *count);


void __RPC_STUB IHostUSBDeviceCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHostUSBDeviceCollection_GetItemAt_Proxy( 
    IHostUSBDeviceCollection * This,
    /* [in] */ ULONG index,
    /* [retval][out] */ IHostUSBDevice **item);


void __RPC_STUB IHostUSBDeviceCollection_GetItemAt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHostUSBDeviceCollection_Enumerate_Proxy( 
    IHostUSBDeviceCollection * This,
    /* [retval][out] */ IHostUSBDeviceEnumerator **enumerator);


void __RPC_STUB IHostUSBDeviceCollection_Enumerate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHostUSBDeviceCollection_FindById_Proxy( 
    IHostUSBDeviceCollection * This,
    /* [in] */ GUID aId,
    /* [retval][out] */ IHostUSBDevice **aDevice);


void __RPC_STUB IHostUSBDeviceCollection_FindById_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHostUSBDeviceCollection_FindByAddress_Proxy( 
    IHostUSBDeviceCollection * This,
    /* [in] */ BSTR aName,
    /* [retval][out] */ IHostUSBDevice **aDevice);


void __RPC_STUB IHostUSBDeviceCollection_FindByAddress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IHostUSBDeviceCollection_INTERFACE_DEFINED__ */


#ifndef __IHostUSBDevice_INTERFACE_DEFINED__
#define __IHostUSBDevice_INTERFACE_DEFINED__

/* interface IHostUSBDevice */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IHostUSBDevice;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("173b4b44-d268-4334-a00d-b6521c9a740a")
    IHostUSBDevice : public IUSBDevice
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_State( 
            /* [retval][out] */ USBDeviceState *aState) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IHostUSBDeviceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IHostUSBDevice * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IHostUSBDevice * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IHostUSBDevice * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Id )( 
            IHostUSBDevice * This,
            /* [retval][out] */ GUID *aId);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_VendorId )( 
            IHostUSBDevice * This,
            /* [retval][out] */ USHORT *aVendorId);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ProductId )( 
            IHostUSBDevice * This,
            /* [retval][out] */ USHORT *aProductId);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Revision )( 
            IHostUSBDevice * This,
            /* [retval][out] */ USHORT *aRevision);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Manufacturer )( 
            IHostUSBDevice * This,
            /* [retval][out] */ BSTR *aManufacturer);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Product )( 
            IHostUSBDevice * This,
            /* [retval][out] */ BSTR *aProduct);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SerialNumber )( 
            IHostUSBDevice * This,
            /* [retval][out] */ BSTR *aSerialNumber);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Address )( 
            IHostUSBDevice * This,
            /* [retval][out] */ BSTR *aAddress);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Port )( 
            IHostUSBDevice * This,
            /* [retval][out] */ USHORT *aPort);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Version )( 
            IHostUSBDevice * This,
            /* [retval][out] */ USHORT *aVersion);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortVersion )( 
            IHostUSBDevice * This,
            /* [retval][out] */ USHORT *aPortVersion);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Remote )( 
            IHostUSBDevice * This,
            /* [retval][out] */ BOOL *aRemote);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_State )( 
            IHostUSBDevice * This,
            /* [retval][out] */ USBDeviceState *aState);
        
        END_INTERFACE
    } IHostUSBDeviceVtbl;

    interface IHostUSBDevice
    {
        CONST_VTBL struct IHostUSBDeviceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IHostUSBDevice_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IHostUSBDevice_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IHostUSBDevice_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IHostUSBDevice_get_Id(This,aId)	\
    (This)->lpVtbl -> get_Id(This,aId)

#define IHostUSBDevice_get_VendorId(This,aVendorId)	\
    (This)->lpVtbl -> get_VendorId(This,aVendorId)

#define IHostUSBDevice_get_ProductId(This,aProductId)	\
    (This)->lpVtbl -> get_ProductId(This,aProductId)

#define IHostUSBDevice_get_Revision(This,aRevision)	\
    (This)->lpVtbl -> get_Revision(This,aRevision)

#define IHostUSBDevice_get_Manufacturer(This,aManufacturer)	\
    (This)->lpVtbl -> get_Manufacturer(This,aManufacturer)

#define IHostUSBDevice_get_Product(This,aProduct)	\
    (This)->lpVtbl -> get_Product(This,aProduct)

#define IHostUSBDevice_get_SerialNumber(This,aSerialNumber)	\
    (This)->lpVtbl -> get_SerialNumber(This,aSerialNumber)

#define IHostUSBDevice_get_Address(This,aAddress)	\
    (This)->lpVtbl -> get_Address(This,aAddress)

#define IHostUSBDevice_get_Port(This,aPort)	\
    (This)->lpVtbl -> get_Port(This,aPort)

#define IHostUSBDevice_get_Version(This,aVersion)	\
    (This)->lpVtbl -> get_Version(This,aVersion)

#define IHostUSBDevice_get_PortVersion(This,aPortVersion)	\
    (This)->lpVtbl -> get_PortVersion(This,aPortVersion)

#define IHostUSBDevice_get_Remote(This,aRemote)	\
    (This)->lpVtbl -> get_Remote(This,aRemote)


#define IHostUSBDevice_get_State(This,aState)	\
    (This)->lpVtbl -> get_State(This,aState)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IHostUSBDevice_get_State_Proxy( 
    IHostUSBDevice * This,
    /* [retval][out] */ USBDeviceState *aState);


void __RPC_STUB IHostUSBDevice_get_State_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IHostUSBDevice_INTERFACE_DEFINED__ */


#ifndef __IHostUSBDeviceFilterEnumerator_INTERFACE_DEFINED__
#define __IHostUSBDeviceFilterEnumerator_INTERFACE_DEFINED__

/* interface IHostUSBDeviceFilterEnumerator */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IHostUSBDeviceFilterEnumerator;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("ff735211-903e-4642-9c37-189eb44579fe")
    IHostUSBDeviceFilterEnumerator : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE HasMore( 
            /* [retval][out] */ BOOL *more) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetNext( 
            /* [retval][out] */ IHostUSBDeviceFilter **next) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IHostUSBDeviceFilterEnumeratorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IHostUSBDeviceFilterEnumerator * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IHostUSBDeviceFilterEnumerator * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IHostUSBDeviceFilterEnumerator * This);
        
        HRESULT ( STDMETHODCALLTYPE *HasMore )( 
            IHostUSBDeviceFilterEnumerator * This,
            /* [retval][out] */ BOOL *more);
        
        HRESULT ( STDMETHODCALLTYPE *GetNext )( 
            IHostUSBDeviceFilterEnumerator * This,
            /* [retval][out] */ IHostUSBDeviceFilter **next);
        
        END_INTERFACE
    } IHostUSBDeviceFilterEnumeratorVtbl;

    interface IHostUSBDeviceFilterEnumerator
    {
        CONST_VTBL struct IHostUSBDeviceFilterEnumeratorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IHostUSBDeviceFilterEnumerator_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IHostUSBDeviceFilterEnumerator_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IHostUSBDeviceFilterEnumerator_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IHostUSBDeviceFilterEnumerator_HasMore(This,more)	\
    (This)->lpVtbl -> HasMore(This,more)

#define IHostUSBDeviceFilterEnumerator_GetNext(This,next)	\
    (This)->lpVtbl -> GetNext(This,next)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IHostUSBDeviceFilterEnumerator_HasMore_Proxy( 
    IHostUSBDeviceFilterEnumerator * This,
    /* [retval][out] */ BOOL *more);


void __RPC_STUB IHostUSBDeviceFilterEnumerator_HasMore_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHostUSBDeviceFilterEnumerator_GetNext_Proxy( 
    IHostUSBDeviceFilterEnumerator * This,
    /* [retval][out] */ IHostUSBDeviceFilter **next);


void __RPC_STUB IHostUSBDeviceFilterEnumerator_GetNext_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IHostUSBDeviceFilterEnumerator_INTERFACE_DEFINED__ */


#ifndef __IHostUSBDeviceFilterCollection_INTERFACE_DEFINED__
#define __IHostUSBDeviceFilterCollection_INTERFACE_DEFINED__

/* interface IHostUSBDeviceFilterCollection */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IHostUSBDeviceFilterCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1a80458b-87f1-4a74-995d-04e2330119e0")
    IHostUSBDeviceFilterCollection : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ ULONG *count) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetItemAt( 
            /* [in] */ ULONG index,
            /* [retval][out] */ IHostUSBDeviceFilter **item) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Enumerate( 
            /* [retval][out] */ IHostUSBDeviceFilterEnumerator **enumerator) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IHostUSBDeviceFilterCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IHostUSBDeviceFilterCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IHostUSBDeviceFilterCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IHostUSBDeviceFilterCollection * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IHostUSBDeviceFilterCollection * This,
            /* [retval][out] */ ULONG *count);
        
        HRESULT ( STDMETHODCALLTYPE *GetItemAt )( 
            IHostUSBDeviceFilterCollection * This,
            /* [in] */ ULONG index,
            /* [retval][out] */ IHostUSBDeviceFilter **item);
        
        HRESULT ( STDMETHODCALLTYPE *Enumerate )( 
            IHostUSBDeviceFilterCollection * This,
            /* [retval][out] */ IHostUSBDeviceFilterEnumerator **enumerator);
        
        END_INTERFACE
    } IHostUSBDeviceFilterCollectionVtbl;

    interface IHostUSBDeviceFilterCollection
    {
        CONST_VTBL struct IHostUSBDeviceFilterCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IHostUSBDeviceFilterCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IHostUSBDeviceFilterCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IHostUSBDeviceFilterCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IHostUSBDeviceFilterCollection_get_Count(This,count)	\
    (This)->lpVtbl -> get_Count(This,count)

#define IHostUSBDeviceFilterCollection_GetItemAt(This,index,item)	\
    (This)->lpVtbl -> GetItemAt(This,index,item)

#define IHostUSBDeviceFilterCollection_Enumerate(This,enumerator)	\
    (This)->lpVtbl -> Enumerate(This,enumerator)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IHostUSBDeviceFilterCollection_get_Count_Proxy( 
    IHostUSBDeviceFilterCollection * This,
    /* [retval][out] */ ULONG *count);


void __RPC_STUB IHostUSBDeviceFilterCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHostUSBDeviceFilterCollection_GetItemAt_Proxy( 
    IHostUSBDeviceFilterCollection * This,
    /* [in] */ ULONG index,
    /* [retval][out] */ IHostUSBDeviceFilter **item);


void __RPC_STUB IHostUSBDeviceFilterCollection_GetItemAt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IHostUSBDeviceFilterCollection_Enumerate_Proxy( 
    IHostUSBDeviceFilterCollection * This,
    /* [retval][out] */ IHostUSBDeviceFilterEnumerator **enumerator);


void __RPC_STUB IHostUSBDeviceFilterCollection_Enumerate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IHostUSBDeviceFilterCollection_INTERFACE_DEFINED__ */


#ifndef __IHostUSBDeviceFilter_INTERFACE_DEFINED__
#define __IHostUSBDeviceFilter_INTERFACE_DEFINED__

/* interface IHostUSBDeviceFilter */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IHostUSBDeviceFilter;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("4cc70246-d74a-400f-8222-3900489c0374")
    IHostUSBDeviceFilter : public IUSBDeviceFilter
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Action( 
            /* [retval][out] */ USBDeviceFilterAction *aAction) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Action( 
            /* [in] */ USBDeviceFilterAction aAction) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IHostUSBDeviceFilterVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IHostUSBDeviceFilter * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IHostUSBDeviceFilter * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IHostUSBDeviceFilter * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IHostUSBDeviceFilter * This,
            /* [retval][out] */ BSTR *aName);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IHostUSBDeviceFilter * This,
            /* [in] */ BSTR aName);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Active )( 
            IHostUSBDeviceFilter * This,
            /* [retval][out] */ BOOL *aActive);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Active )( 
            IHostUSBDeviceFilter * This,
            /* [in] */ BOOL aActive);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_VendorId )( 
            IHostUSBDeviceFilter * This,
            /* [retval][out] */ BSTR *aVendorId);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_VendorId )( 
            IHostUSBDeviceFilter * This,
            /* [in] */ BSTR aVendorId);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ProductId )( 
            IHostUSBDeviceFilter * This,
            /* [retval][out] */ BSTR *aProductId);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ProductId )( 
            IHostUSBDeviceFilter * This,
            /* [in] */ BSTR aProductId);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Revision )( 
            IHostUSBDeviceFilter * This,
            /* [retval][out] */ BSTR *aRevision);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Revision )( 
            IHostUSBDeviceFilter * This,
            /* [in] */ BSTR aRevision);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Manufacturer )( 
            IHostUSBDeviceFilter * This,
            /* [retval][out] */ BSTR *aManufacturer);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Manufacturer )( 
            IHostUSBDeviceFilter * This,
            /* [in] */ BSTR aManufacturer);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Product )( 
            IHostUSBDeviceFilter * This,
            /* [retval][out] */ BSTR *aProduct);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Product )( 
            IHostUSBDeviceFilter * This,
            /* [in] */ BSTR aProduct);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SerialNumber )( 
            IHostUSBDeviceFilter * This,
            /* [retval][out] */ BSTR *aSerialNumber);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_SerialNumber )( 
            IHostUSBDeviceFilter * This,
            /* [in] */ BSTR aSerialNumber);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Port )( 
            IHostUSBDeviceFilter * This,
            /* [retval][out] */ BSTR *aPort);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Port )( 
            IHostUSBDeviceFilter * This,
            /* [in] */ BSTR aPort);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Remote )( 
            IHostUSBDeviceFilter * This,
            /* [retval][out] */ BSTR *aRemote);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Remote )( 
            IHostUSBDeviceFilter * This,
            /* [in] */ BSTR aRemote);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MaskedInterfaces )( 
            IHostUSBDeviceFilter * This,
            /* [retval][out] */ ULONG *aMaskedInterfaces);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_MaskedInterfaces )( 
            IHostUSBDeviceFilter * This,
            /* [in] */ ULONG aMaskedInterfaces);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Action )( 
            IHostUSBDeviceFilter * This,
            /* [retval][out] */ USBDeviceFilterAction *aAction);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Action )( 
            IHostUSBDeviceFilter * This,
            /* [in] */ USBDeviceFilterAction aAction);
        
        END_INTERFACE
    } IHostUSBDeviceFilterVtbl;

    interface IHostUSBDeviceFilter
    {
        CONST_VTBL struct IHostUSBDeviceFilterVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IHostUSBDeviceFilter_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IHostUSBDeviceFilter_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IHostUSBDeviceFilter_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IHostUSBDeviceFilter_get_Name(This,aName)	\
    (This)->lpVtbl -> get_Name(This,aName)

#define IHostUSBDeviceFilter_put_Name(This,aName)	\
    (This)->lpVtbl -> put_Name(This,aName)

#define IHostUSBDeviceFilter_get_Active(This,aActive)	\
    (This)->lpVtbl -> get_Active(This,aActive)

#define IHostUSBDeviceFilter_put_Active(This,aActive)	\
    (This)->lpVtbl -> put_Active(This,aActive)

#define IHostUSBDeviceFilter_get_VendorId(This,aVendorId)	\
    (This)->lpVtbl -> get_VendorId(This,aVendorId)

#define IHostUSBDeviceFilter_put_VendorId(This,aVendorId)	\
    (This)->lpVtbl -> put_VendorId(This,aVendorId)

#define IHostUSBDeviceFilter_get_ProductId(This,aProductId)	\
    (This)->lpVtbl -> get_ProductId(This,aProductId)

#define IHostUSBDeviceFilter_put_ProductId(This,aProductId)	\
    (This)->lpVtbl -> put_ProductId(This,aProductId)

#define IHostUSBDeviceFilter_get_Revision(This,aRevision)	\
    (This)->lpVtbl -> get_Revision(This,aRevision)

#define IHostUSBDeviceFilter_put_Revision(This,aRevision)	\
    (This)->lpVtbl -> put_Revision(This,aRevision)

#define IHostUSBDeviceFilter_get_Manufacturer(This,aManufacturer)	\
    (This)->lpVtbl -> get_Manufacturer(This,aManufacturer)

#define IHostUSBDeviceFilter_put_Manufacturer(This,aManufacturer)	\
    (This)->lpVtbl -> put_Manufacturer(This,aManufacturer)

#define IHostUSBDeviceFilter_get_Product(This,aProduct)	\
    (This)->lpVtbl -> get_Product(This,aProduct)

#define IHostUSBDeviceFilter_put_Product(This,aProduct)	\
    (This)->lpVtbl -> put_Product(This,aProduct)

#define IHostUSBDeviceFilter_get_SerialNumber(This,aSerialNumber)	\
    (This)->lpVtbl -> get_SerialNumber(This,aSerialNumber)

#define IHostUSBDeviceFilter_put_SerialNumber(This,aSerialNumber)	\
    (This)->lpVtbl -> put_SerialNumber(This,aSerialNumber)

#define IHostUSBDeviceFilter_get_Port(This,aPort)	\
    (This)->lpVtbl -> get_Port(This,aPort)

#define IHostUSBDeviceFilter_put_Port(This,aPort)	\
    (This)->lpVtbl -> put_Port(This,aPort)

#define IHostUSBDeviceFilter_get_Remote(This,aRemote)	\
    (This)->lpVtbl -> get_Remote(This,aRemote)

#define IHostUSBDeviceFilter_put_Remote(This,aRemote)	\
    (This)->lpVtbl -> put_Remote(This,aRemote)

#define IHostUSBDeviceFilter_get_MaskedInterfaces(This,aMaskedInterfaces)	\
    (This)->lpVtbl -> get_MaskedInterfaces(This,aMaskedInterfaces)

#define IHostUSBDeviceFilter_put_MaskedInterfaces(This,aMaskedInterfaces)	\
    (This)->lpVtbl -> put_MaskedInterfaces(This,aMaskedInterfaces)


#define IHostUSBDeviceFilter_get_Action(This,aAction)	\
    (This)->lpVtbl -> get_Action(This,aAction)

#define IHostUSBDeviceFilter_put_Action(This,aAction)	\
    (This)->lpVtbl -> put_Action(This,aAction)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IHostUSBDeviceFilter_get_Action_Proxy( 
    IHostUSBDeviceFilter * This,
    /* [retval][out] */ USBDeviceFilterAction *aAction);


void __RPC_STUB IHostUSBDeviceFilter_get_Action_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IHostUSBDeviceFilter_put_Action_Proxy( 
    IHostUSBDeviceFilter * This,
    /* [in] */ USBDeviceFilterAction aAction);


void __RPC_STUB IHostUSBDeviceFilter_put_Action_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IHostUSBDeviceFilter_INTERFACE_DEFINED__ */


#ifndef __IAudioAdapter_INTERFACE_DEFINED__
#define __IAudioAdapter_INTERFACE_DEFINED__

/* interface IAudioAdapter */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IAudioAdapter;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("921873db-5f3f-4b69-91f9-7be9e535a2cb")
    IAudioAdapter : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Enabled( 
            /* [retval][out] */ BOOL *aEnabled) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Enabled( 
            /* [in] */ BOOL aEnabled) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AudioController( 
            /* [retval][out] */ AudioControllerType *aAudioController) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_AudioController( 
            /* [in] */ AudioControllerType aAudioController) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AudioDriver( 
            /* [retval][out] */ AudioDriverType *aAudioDriver) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_AudioDriver( 
            /* [in] */ AudioDriverType aAudioDriver) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IAudioAdapterVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IAudioAdapter * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IAudioAdapter * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IAudioAdapter * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Enabled )( 
            IAudioAdapter * This,
            /* [retval][out] */ BOOL *aEnabled);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Enabled )( 
            IAudioAdapter * This,
            /* [in] */ BOOL aEnabled);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AudioController )( 
            IAudioAdapter * This,
            /* [retval][out] */ AudioControllerType *aAudioController);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_AudioController )( 
            IAudioAdapter * This,
            /* [in] */ AudioControllerType aAudioController);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AudioDriver )( 
            IAudioAdapter * This,
            /* [retval][out] */ AudioDriverType *aAudioDriver);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_AudioDriver )( 
            IAudioAdapter * This,
            /* [in] */ AudioDriverType aAudioDriver);
        
        END_INTERFACE
    } IAudioAdapterVtbl;

    interface IAudioAdapter
    {
        CONST_VTBL struct IAudioAdapterVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IAudioAdapter_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IAudioAdapter_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IAudioAdapter_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IAudioAdapter_get_Enabled(This,aEnabled)	\
    (This)->lpVtbl -> get_Enabled(This,aEnabled)

#define IAudioAdapter_put_Enabled(This,aEnabled)	\
    (This)->lpVtbl -> put_Enabled(This,aEnabled)

#define IAudioAdapter_get_AudioController(This,aAudioController)	\
    (This)->lpVtbl -> get_AudioController(This,aAudioController)

#define IAudioAdapter_put_AudioController(This,aAudioController)	\
    (This)->lpVtbl -> put_AudioController(This,aAudioController)

#define IAudioAdapter_get_AudioDriver(This,aAudioDriver)	\
    (This)->lpVtbl -> get_AudioDriver(This,aAudioDriver)

#define IAudioAdapter_put_AudioDriver(This,aAudioDriver)	\
    (This)->lpVtbl -> put_AudioDriver(This,aAudioDriver)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IAudioAdapter_get_Enabled_Proxy( 
    IAudioAdapter * This,
    /* [retval][out] */ BOOL *aEnabled);


void __RPC_STUB IAudioAdapter_get_Enabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IAudioAdapter_put_Enabled_Proxy( 
    IAudioAdapter * This,
    /* [in] */ BOOL aEnabled);


void __RPC_STUB IAudioAdapter_put_Enabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IAudioAdapter_get_AudioController_Proxy( 
    IAudioAdapter * This,
    /* [retval][out] */ AudioControllerType *aAudioController);


void __RPC_STUB IAudioAdapter_get_AudioController_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IAudioAdapter_put_AudioController_Proxy( 
    IAudioAdapter * This,
    /* [in] */ AudioControllerType aAudioController);


void __RPC_STUB IAudioAdapter_put_AudioController_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IAudioAdapter_get_AudioDriver_Proxy( 
    IAudioAdapter * This,
    /* [retval][out] */ AudioDriverType *aAudioDriver);


void __RPC_STUB IAudioAdapter_get_AudioDriver_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IAudioAdapter_put_AudioDriver_Proxy( 
    IAudioAdapter * This,
    /* [in] */ AudioDriverType aAudioDriver);


void __RPC_STUB IAudioAdapter_put_AudioDriver_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IAudioAdapter_INTERFACE_DEFINED__ */


#ifndef __IVRDPServer_INTERFACE_DEFINED__
#define __IVRDPServer_INTERFACE_DEFINED__

/* interface IVRDPServer */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IVRDPServer;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("f4584ae7-6bce-474b-83d6-17d235e6aa89")
    IVRDPServer : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Enabled( 
            /* [retval][out] */ BOOL *aEnabled) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Enabled( 
            /* [in] */ BOOL aEnabled) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Port( 
            /* [retval][out] */ ULONG *aPort) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Port( 
            /* [in] */ ULONG aPort) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_NetAddress( 
            /* [retval][out] */ BSTR *aNetAddress) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_NetAddress( 
            /* [in] */ BSTR aNetAddress) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AuthType( 
            /* [retval][out] */ VRDPAuthType *aAuthType) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_AuthType( 
            /* [in] */ VRDPAuthType aAuthType) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AuthTimeout( 
            /* [retval][out] */ ULONG *aAuthTimeout) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_AuthTimeout( 
            /* [in] */ ULONG aAuthTimeout) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AllowMultiConnection( 
            /* [retval][out] */ BOOL *aAllowMultiConnection) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_AllowMultiConnection( 
            /* [in] */ BOOL aAllowMultiConnection) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ReuseSingleConnection( 
            /* [retval][out] */ BOOL *aReuseSingleConnection) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ReuseSingleConnection( 
            /* [in] */ BOOL aReuseSingleConnection) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IVRDPServerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IVRDPServer * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IVRDPServer * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IVRDPServer * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Enabled )( 
            IVRDPServer * This,
            /* [retval][out] */ BOOL *aEnabled);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Enabled )( 
            IVRDPServer * This,
            /* [in] */ BOOL aEnabled);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Port )( 
            IVRDPServer * This,
            /* [retval][out] */ ULONG *aPort);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Port )( 
            IVRDPServer * This,
            /* [in] */ ULONG aPort);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_NetAddress )( 
            IVRDPServer * This,
            /* [retval][out] */ BSTR *aNetAddress);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_NetAddress )( 
            IVRDPServer * This,
            /* [in] */ BSTR aNetAddress);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AuthType )( 
            IVRDPServer * This,
            /* [retval][out] */ VRDPAuthType *aAuthType);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_AuthType )( 
            IVRDPServer * This,
            /* [in] */ VRDPAuthType aAuthType);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AuthTimeout )( 
            IVRDPServer * This,
            /* [retval][out] */ ULONG *aAuthTimeout);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_AuthTimeout )( 
            IVRDPServer * This,
            /* [in] */ ULONG aAuthTimeout);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AllowMultiConnection )( 
            IVRDPServer * This,
            /* [retval][out] */ BOOL *aAllowMultiConnection);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_AllowMultiConnection )( 
            IVRDPServer * This,
            /* [in] */ BOOL aAllowMultiConnection);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ReuseSingleConnection )( 
            IVRDPServer * This,
            /* [retval][out] */ BOOL *aReuseSingleConnection);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ReuseSingleConnection )( 
            IVRDPServer * This,
            /* [in] */ BOOL aReuseSingleConnection);
        
        END_INTERFACE
    } IVRDPServerVtbl;

    interface IVRDPServer
    {
        CONST_VTBL struct IVRDPServerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IVRDPServer_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IVRDPServer_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IVRDPServer_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IVRDPServer_get_Enabled(This,aEnabled)	\
    (This)->lpVtbl -> get_Enabled(This,aEnabled)

#define IVRDPServer_put_Enabled(This,aEnabled)	\
    (This)->lpVtbl -> put_Enabled(This,aEnabled)

#define IVRDPServer_get_Port(This,aPort)	\
    (This)->lpVtbl -> get_Port(This,aPort)

#define IVRDPServer_put_Port(This,aPort)	\
    (This)->lpVtbl -> put_Port(This,aPort)

#define IVRDPServer_get_NetAddress(This,aNetAddress)	\
    (This)->lpVtbl -> get_NetAddress(This,aNetAddress)

#define IVRDPServer_put_NetAddress(This,aNetAddress)	\
    (This)->lpVtbl -> put_NetAddress(This,aNetAddress)

#define IVRDPServer_get_AuthType(This,aAuthType)	\
    (This)->lpVtbl -> get_AuthType(This,aAuthType)

#define IVRDPServer_put_AuthType(This,aAuthType)	\
    (This)->lpVtbl -> put_AuthType(This,aAuthType)

#define IVRDPServer_get_AuthTimeout(This,aAuthTimeout)	\
    (This)->lpVtbl -> get_AuthTimeout(This,aAuthTimeout)

#define IVRDPServer_put_AuthTimeout(This,aAuthTimeout)	\
    (This)->lpVtbl -> put_AuthTimeout(This,aAuthTimeout)

#define IVRDPServer_get_AllowMultiConnection(This,aAllowMultiConnection)	\
    (This)->lpVtbl -> get_AllowMultiConnection(This,aAllowMultiConnection)

#define IVRDPServer_put_AllowMultiConnection(This,aAllowMultiConnection)	\
    (This)->lpVtbl -> put_AllowMultiConnection(This,aAllowMultiConnection)

#define IVRDPServer_get_ReuseSingleConnection(This,aReuseSingleConnection)	\
    (This)->lpVtbl -> get_ReuseSingleConnection(This,aReuseSingleConnection)

#define IVRDPServer_put_ReuseSingleConnection(This,aReuseSingleConnection)	\
    (This)->lpVtbl -> put_ReuseSingleConnection(This,aReuseSingleConnection)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IVRDPServer_get_Enabled_Proxy( 
    IVRDPServer * This,
    /* [retval][out] */ BOOL *aEnabled);


void __RPC_STUB IVRDPServer_get_Enabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IVRDPServer_put_Enabled_Proxy( 
    IVRDPServer * This,
    /* [in] */ BOOL aEnabled);


void __RPC_STUB IVRDPServer_put_Enabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IVRDPServer_get_Port_Proxy( 
    IVRDPServer * This,
    /* [retval][out] */ ULONG *aPort);


void __RPC_STUB IVRDPServer_get_Port_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IVRDPServer_put_Port_Proxy( 
    IVRDPServer * This,
    /* [in] */ ULONG aPort);


void __RPC_STUB IVRDPServer_put_Port_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IVRDPServer_get_NetAddress_Proxy( 
    IVRDPServer * This,
    /* [retval][out] */ BSTR *aNetAddress);


void __RPC_STUB IVRDPServer_get_NetAddress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IVRDPServer_put_NetAddress_Proxy( 
    IVRDPServer * This,
    /* [in] */ BSTR aNetAddress);


void __RPC_STUB IVRDPServer_put_NetAddress_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IVRDPServer_get_AuthType_Proxy( 
    IVRDPServer * This,
    /* [retval][out] */ VRDPAuthType *aAuthType);


void __RPC_STUB IVRDPServer_get_AuthType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IVRDPServer_put_AuthType_Proxy( 
    IVRDPServer * This,
    /* [in] */ VRDPAuthType aAuthType);


void __RPC_STUB IVRDPServer_put_AuthType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IVRDPServer_get_AuthTimeout_Proxy( 
    IVRDPServer * This,
    /* [retval][out] */ ULONG *aAuthTimeout);


void __RPC_STUB IVRDPServer_get_AuthTimeout_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IVRDPServer_put_AuthTimeout_Proxy( 
    IVRDPServer * This,
    /* [in] */ ULONG aAuthTimeout);


void __RPC_STUB IVRDPServer_put_AuthTimeout_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IVRDPServer_get_AllowMultiConnection_Proxy( 
    IVRDPServer * This,
    /* [retval][out] */ BOOL *aAllowMultiConnection);


void __RPC_STUB IVRDPServer_get_AllowMultiConnection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IVRDPServer_put_AllowMultiConnection_Proxy( 
    IVRDPServer * This,
    /* [in] */ BOOL aAllowMultiConnection);


void __RPC_STUB IVRDPServer_put_AllowMultiConnection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IVRDPServer_get_ReuseSingleConnection_Proxy( 
    IVRDPServer * This,
    /* [retval][out] */ BOOL *aReuseSingleConnection);


void __RPC_STUB IVRDPServer_get_ReuseSingleConnection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IVRDPServer_put_ReuseSingleConnection_Proxy( 
    IVRDPServer * This,
    /* [in] */ BOOL aReuseSingleConnection);


void __RPC_STUB IVRDPServer_put_ReuseSingleConnection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IVRDPServer_INTERFACE_DEFINED__ */


#ifndef __ISharedFolderEnumerator_INTERFACE_DEFINED__
#define __ISharedFolderEnumerator_INTERFACE_DEFINED__

/* interface ISharedFolderEnumerator */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_ISharedFolderEnumerator;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1d420fd8-e7c1-4511-abf4-a504dc6d0cbf")
    ISharedFolderEnumerator : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE HasMore( 
            /* [retval][out] */ BOOL *more) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetNext( 
            /* [retval][out] */ ISharedFolder **next) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISharedFolderEnumeratorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ISharedFolderEnumerator * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ISharedFolderEnumerator * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ISharedFolderEnumerator * This);
        
        HRESULT ( STDMETHODCALLTYPE *HasMore )( 
            ISharedFolderEnumerator * This,
            /* [retval][out] */ BOOL *more);
        
        HRESULT ( STDMETHODCALLTYPE *GetNext )( 
            ISharedFolderEnumerator * This,
            /* [retval][out] */ ISharedFolder **next);
        
        END_INTERFACE
    } ISharedFolderEnumeratorVtbl;

    interface ISharedFolderEnumerator
    {
        CONST_VTBL struct ISharedFolderEnumeratorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ISharedFolderEnumerator_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ISharedFolderEnumerator_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ISharedFolderEnumerator_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ISharedFolderEnumerator_HasMore(This,more)	\
    (This)->lpVtbl -> HasMore(This,more)

#define ISharedFolderEnumerator_GetNext(This,next)	\
    (This)->lpVtbl -> GetNext(This,next)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE ISharedFolderEnumerator_HasMore_Proxy( 
    ISharedFolderEnumerator * This,
    /* [retval][out] */ BOOL *more);


void __RPC_STUB ISharedFolderEnumerator_HasMore_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE ISharedFolderEnumerator_GetNext_Proxy( 
    ISharedFolderEnumerator * This,
    /* [retval][out] */ ISharedFolder **next);


void __RPC_STUB ISharedFolderEnumerator_GetNext_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ISharedFolderEnumerator_INTERFACE_DEFINED__ */


#ifndef __ISharedFolderCollection_INTERFACE_DEFINED__
#define __ISharedFolderCollection_INTERFACE_DEFINED__

/* interface ISharedFolderCollection */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_ISharedFolderCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9c7e2282-bb16-4fa7-9138-f383c5e02353")
    ISharedFolderCollection : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ ULONG *count) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetItemAt( 
            /* [in] */ ULONG index,
            /* [retval][out] */ ISharedFolder **item) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Enumerate( 
            /* [retval][out] */ ISharedFolderEnumerator **enumerator) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE FindByName( 
            /* [in] */ BSTR aName,
            /* [retval][out] */ ISharedFolder **aSharedFolder) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISharedFolderCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ISharedFolderCollection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ISharedFolderCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ISharedFolderCollection * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            ISharedFolderCollection * This,
            /* [retval][out] */ ULONG *count);
        
        HRESULT ( STDMETHODCALLTYPE *GetItemAt )( 
            ISharedFolderCollection * This,
            /* [in] */ ULONG index,
            /* [retval][out] */ ISharedFolder **item);
        
        HRESULT ( STDMETHODCALLTYPE *Enumerate )( 
            ISharedFolderCollection * This,
            /* [retval][out] */ ISharedFolderEnumerator **enumerator);
        
        HRESULT ( STDMETHODCALLTYPE *FindByName )( 
            ISharedFolderCollection * This,
            /* [in] */ BSTR aName,
            /* [retval][out] */ ISharedFolder **aSharedFolder);
        
        END_INTERFACE
    } ISharedFolderCollectionVtbl;

    interface ISharedFolderCollection
    {
        CONST_VTBL struct ISharedFolderCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ISharedFolderCollection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ISharedFolderCollection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ISharedFolderCollection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ISharedFolderCollection_get_Count(This,count)	\
    (This)->lpVtbl -> get_Count(This,count)

#define ISharedFolderCollection_GetItemAt(This,index,item)	\
    (This)->lpVtbl -> GetItemAt(This,index,item)

#define ISharedFolderCollection_Enumerate(This,enumerator)	\
    (This)->lpVtbl -> Enumerate(This,enumerator)

#define ISharedFolderCollection_FindByName(This,aName,aSharedFolder)	\
    (This)->lpVtbl -> FindByName(This,aName,aSharedFolder)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE ISharedFolderCollection_get_Count_Proxy( 
    ISharedFolderCollection * This,
    /* [retval][out] */ ULONG *count);


void __RPC_STUB ISharedFolderCollection_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE ISharedFolderCollection_GetItemAt_Proxy( 
    ISharedFolderCollection * This,
    /* [in] */ ULONG index,
    /* [retval][out] */ ISharedFolder **item);


void __RPC_STUB ISharedFolderCollection_GetItemAt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE ISharedFolderCollection_Enumerate_Proxy( 
    ISharedFolderCollection * This,
    /* [retval][out] */ ISharedFolderEnumerator **enumerator);


void __RPC_STUB ISharedFolderCollection_Enumerate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE ISharedFolderCollection_FindByName_Proxy( 
    ISharedFolderCollection * This,
    /* [in] */ BSTR aName,
    /* [retval][out] */ ISharedFolder **aSharedFolder);


void __RPC_STUB ISharedFolderCollection_FindByName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ISharedFolderCollection_INTERFACE_DEFINED__ */


#ifndef __ISharedFolder_INTERFACE_DEFINED__
#define __ISharedFolder_INTERFACE_DEFINED__

/* interface ISharedFolder */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_ISharedFolder;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8b0c5f70-9139-4f97-a421-64d5e9c335d5")
    ISharedFolder : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *aName) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HostPath( 
            /* [retval][out] */ BSTR *aHostPath) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Accessible( 
            /* [retval][out] */ BOOL *aAccessible) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Writable( 
            /* [retval][out] */ BOOL *aWritable) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISharedFolderVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ISharedFolder * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ISharedFolder * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ISharedFolder * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            ISharedFolder * This,
            /* [retval][out] */ BSTR *aName);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HostPath )( 
            ISharedFolder * This,
            /* [retval][out] */ BSTR *aHostPath);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Accessible )( 
            ISharedFolder * This,
            /* [retval][out] */ BOOL *aAccessible);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Writable )( 
            ISharedFolder * This,
            /* [retval][out] */ BOOL *aWritable);
        
        END_INTERFACE
    } ISharedFolderVtbl;

    interface ISharedFolder
    {
        CONST_VTBL struct ISharedFolderVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ISharedFolder_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ISharedFolder_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ISharedFolder_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ISharedFolder_get_Name(This,aName)	\
    (This)->lpVtbl -> get_Name(This,aName)

#define ISharedFolder_get_HostPath(This,aHostPath)	\
    (This)->lpVtbl -> get_HostPath(This,aHostPath)

#define ISharedFolder_get_Accessible(This,aAccessible)	\
    (This)->lpVtbl -> get_Accessible(This,aAccessible)

#define ISharedFolder_get_Writable(This,aWritable)	\
    (This)->lpVtbl -> get_Writable(This,aWritable)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE ISharedFolder_get_Name_Proxy( 
    ISharedFolder * This,
    /* [retval][out] */ BSTR *aName);


void __RPC_STUB ISharedFolder_get_Name_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISharedFolder_get_HostPath_Proxy( 
    ISharedFolder * This,
    /* [retval][out] */ BSTR *aHostPath);


void __RPC_STUB ISharedFolder_get_HostPath_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISharedFolder_get_Accessible_Proxy( 
    ISharedFolder * This,
    /* [retval][out] */ BOOL *aAccessible);


void __RPC_STUB ISharedFolder_get_Accessible_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISharedFolder_get_Writable_Proxy( 
    ISharedFolder * This,
    /* [retval][out] */ BOOL *aWritable);


void __RPC_STUB ISharedFolder_get_Writable_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ISharedFolder_INTERFACE_DEFINED__ */


#ifndef __IInternalSessionControl_INTERFACE_DEFINED__
#define __IInternalSessionControl_INTERFACE_DEFINED__

/* interface IInternalSessionControl */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IInternalSessionControl;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2581845a-5a9d-45fb-bc3b-2476552dd970")
    IInternalSessionControl : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetPID( 
            /* [retval][out] */ ULONG *aPid) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetRemoteConsole( 
            /* [retval][out] */ IConsole **aConsole) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AssignMachine( 
            /* [in] */ IMachine *aMachine) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AssignRemoteMachine( 
            /* [in] */ IMachine *aMachine,
            /* [in] */ IConsole *aConsole) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE UpdateMachineState( 
            /* [in] */ MachineState aAMachineState) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Uninitialize( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnDVDDriveChange( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnFloppyDriveChange( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnNetworkAdapterChange( 
            /* [in] */ INetworkAdapter *aNetworkAdapter) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnSerialPortChange( 
            /* [in] */ ISerialPort *aSerialPort) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnParallelPortChange( 
            /* [in] */ IParallelPort *aParallelPort) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnVRDPServerChange( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnUSBControllerChange( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnSharedFolderChange( 
            /* [in] */ BOOL aGlobal) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnUSBDeviceAttach( 
            /* [in] */ IUSBDevice *aDevice,
            /* [in] */ IVirtualBoxErrorInfo *aError,
            /* [in] */ ULONG aMaskedInterfaces) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnUSBDeviceDetach( 
            /* [in] */ GUID aId,
            /* [in] */ IVirtualBoxErrorInfo *aError) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnShowWindow( 
            /* [in] */ BOOL aCheck,
            /* [out] */ BOOL *aCanShow,
            /* [out] */ ULONG64 *aWinId) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AccessGuestProperty( 
            /* [in] */ BSTR aName,
            /* [in] */ BSTR aValue,
            /* [in] */ BSTR aFlags,
            /* [in] */ BOOL aIsSetter,
            /* [out] */ BSTR *aRetValue,
            /* [out] */ ULONG64 *aRetTimestamp,
            /* [out] */ BSTR *aRetFlags) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE EnumerateGuestProperties( 
            /* [in] */ BSTR aPatterns,
            /* [out] */ SAFEARRAY * *aKey,
            /* [out] */ SAFEARRAY * *aValue,
            /* [out] */ SAFEARRAY * *aTimestamp,
            /* [out] */ SAFEARRAY * *aFlags) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IInternalSessionControlVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IInternalSessionControl * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IInternalSessionControl * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IInternalSessionControl * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetPID )( 
            IInternalSessionControl * This,
            /* [retval][out] */ ULONG *aPid);
        
        HRESULT ( STDMETHODCALLTYPE *GetRemoteConsole )( 
            IInternalSessionControl * This,
            /* [retval][out] */ IConsole **aConsole);
        
        HRESULT ( STDMETHODCALLTYPE *AssignMachine )( 
            IInternalSessionControl * This,
            /* [in] */ IMachine *aMachine);
        
        HRESULT ( STDMETHODCALLTYPE *AssignRemoteMachine )( 
            IInternalSessionControl * This,
            /* [in] */ IMachine *aMachine,
            /* [in] */ IConsole *aConsole);
        
        HRESULT ( STDMETHODCALLTYPE *UpdateMachineState )( 
            IInternalSessionControl * This,
            /* [in] */ MachineState aAMachineState);
        
        HRESULT ( STDMETHODCALLTYPE *Uninitialize )( 
            IInternalSessionControl * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnDVDDriveChange )( 
            IInternalSessionControl * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnFloppyDriveChange )( 
            IInternalSessionControl * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnNetworkAdapterChange )( 
            IInternalSessionControl * This,
            /* [in] */ INetworkAdapter *aNetworkAdapter);
        
        HRESULT ( STDMETHODCALLTYPE *OnSerialPortChange )( 
            IInternalSessionControl * This,
            /* [in] */ ISerialPort *aSerialPort);
        
        HRESULT ( STDMETHODCALLTYPE *OnParallelPortChange )( 
            IInternalSessionControl * This,
            /* [in] */ IParallelPort *aParallelPort);
        
        HRESULT ( STDMETHODCALLTYPE *OnVRDPServerChange )( 
            IInternalSessionControl * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnUSBControllerChange )( 
            IInternalSessionControl * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnSharedFolderChange )( 
            IInternalSessionControl * This,
            /* [in] */ BOOL aGlobal);
        
        HRESULT ( STDMETHODCALLTYPE *OnUSBDeviceAttach )( 
            IInternalSessionControl * This,
            /* [in] */ IUSBDevice *aDevice,
            /* [in] */ IVirtualBoxErrorInfo *aError,
            /* [in] */ ULONG aMaskedInterfaces);
        
        HRESULT ( STDMETHODCALLTYPE *OnUSBDeviceDetach )( 
            IInternalSessionControl * This,
            /* [in] */ GUID aId,
            /* [in] */ IVirtualBoxErrorInfo *aError);
        
        HRESULT ( STDMETHODCALLTYPE *OnShowWindow )( 
            IInternalSessionControl * This,
            /* [in] */ BOOL aCheck,
            /* [out] */ BOOL *aCanShow,
            /* [out] */ ULONG64 *aWinId);
        
        HRESULT ( STDMETHODCALLTYPE *AccessGuestProperty )( 
            IInternalSessionControl * This,
            /* [in] */ BSTR aName,
            /* [in] */ BSTR aValue,
            /* [in] */ BSTR aFlags,
            /* [in] */ BOOL aIsSetter,
            /* [out] */ BSTR *aRetValue,
            /* [out] */ ULONG64 *aRetTimestamp,
            /* [out] */ BSTR *aRetFlags);
        
        HRESULT ( STDMETHODCALLTYPE *EnumerateGuestProperties )( 
            IInternalSessionControl * This,
            /* [in] */ BSTR aPatterns,
            /* [out] */ SAFEARRAY * *aKey,
            /* [out] */ SAFEARRAY * *aValue,
            /* [out] */ SAFEARRAY * *aTimestamp,
            /* [out] */ SAFEARRAY * *aFlags);
        
        END_INTERFACE
    } IInternalSessionControlVtbl;

    interface IInternalSessionControl
    {
        CONST_VTBL struct IInternalSessionControlVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IInternalSessionControl_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IInternalSessionControl_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IInternalSessionControl_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IInternalSessionControl_GetPID(This,aPid)	\
    (This)->lpVtbl -> GetPID(This,aPid)

#define IInternalSessionControl_GetRemoteConsole(This,aConsole)	\
    (This)->lpVtbl -> GetRemoteConsole(This,aConsole)

#define IInternalSessionControl_AssignMachine(This,aMachine)	\
    (This)->lpVtbl -> AssignMachine(This,aMachine)

#define IInternalSessionControl_AssignRemoteMachine(This,aMachine,aConsole)	\
    (This)->lpVtbl -> AssignRemoteMachine(This,aMachine,aConsole)

#define IInternalSessionControl_UpdateMachineState(This,aAMachineState)	\
    (This)->lpVtbl -> UpdateMachineState(This,aAMachineState)

#define IInternalSessionControl_Uninitialize(This)	\
    (This)->lpVtbl -> Uninitialize(This)

#define IInternalSessionControl_OnDVDDriveChange(This)	\
    (This)->lpVtbl -> OnDVDDriveChange(This)

#define IInternalSessionControl_OnFloppyDriveChange(This)	\
    (This)->lpVtbl -> OnFloppyDriveChange(This)

#define IInternalSessionControl_OnNetworkAdapterChange(This,aNetworkAdapter)	\
    (This)->lpVtbl -> OnNetworkAdapterChange(This,aNetworkAdapter)

#define IInternalSessionControl_OnSerialPortChange(This,aSerialPort)	\
    (This)->lpVtbl -> OnSerialPortChange(This,aSerialPort)

#define IInternalSessionControl_OnParallelPortChange(This,aParallelPort)	\
    (This)->lpVtbl -> OnParallelPortChange(This,aParallelPort)

#define IInternalSessionControl_OnVRDPServerChange(This)	\
    (This)->lpVtbl -> OnVRDPServerChange(This)

#define IInternalSessionControl_OnUSBControllerChange(This)	\
    (This)->lpVtbl -> OnUSBControllerChange(This)

#define IInternalSessionControl_OnSharedFolderChange(This,aGlobal)	\
    (This)->lpVtbl -> OnSharedFolderChange(This,aGlobal)

#define IInternalSessionControl_OnUSBDeviceAttach(This,aDevice,aError,aMaskedInterfaces)	\
    (This)->lpVtbl -> OnUSBDeviceAttach(This,aDevice,aError,aMaskedInterfaces)

#define IInternalSessionControl_OnUSBDeviceDetach(This,aId,aError)	\
    (This)->lpVtbl -> OnUSBDeviceDetach(This,aId,aError)

#define IInternalSessionControl_OnShowWindow(This,aCheck,aCanShow,aWinId)	\
    (This)->lpVtbl -> OnShowWindow(This,aCheck,aCanShow,aWinId)

#define IInternalSessionControl_AccessGuestProperty(This,aName,aValue,aFlags,aIsSetter,aRetValue,aRetTimestamp,aRetFlags)	\
    (This)->lpVtbl -> AccessGuestProperty(This,aName,aValue,aFlags,aIsSetter,aRetValue,aRetTimestamp,aRetFlags)

#define IInternalSessionControl_EnumerateGuestProperties(This,aPatterns,aKey,aValue,aTimestamp,aFlags)	\
    (This)->lpVtbl -> EnumerateGuestProperties(This,aPatterns,aKey,aValue,aTimestamp,aFlags)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IInternalSessionControl_GetPID_Proxy( 
    IInternalSessionControl * This,
    /* [retval][out] */ ULONG *aPid);


void __RPC_STUB IInternalSessionControl_GetPID_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalSessionControl_GetRemoteConsole_Proxy( 
    IInternalSessionControl * This,
    /* [retval][out] */ IConsole **aConsole);


void __RPC_STUB IInternalSessionControl_GetRemoteConsole_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalSessionControl_AssignMachine_Proxy( 
    IInternalSessionControl * This,
    /* [in] */ IMachine *aMachine);


void __RPC_STUB IInternalSessionControl_AssignMachine_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalSessionControl_AssignRemoteMachine_Proxy( 
    IInternalSessionControl * This,
    /* [in] */ IMachine *aMachine,
    /* [in] */ IConsole *aConsole);


void __RPC_STUB IInternalSessionControl_AssignRemoteMachine_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalSessionControl_UpdateMachineState_Proxy( 
    IInternalSessionControl * This,
    /* [in] */ MachineState aAMachineState);


void __RPC_STUB IInternalSessionControl_UpdateMachineState_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalSessionControl_Uninitialize_Proxy( 
    IInternalSessionControl * This);


void __RPC_STUB IInternalSessionControl_Uninitialize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalSessionControl_OnDVDDriveChange_Proxy( 
    IInternalSessionControl * This);


void __RPC_STUB IInternalSessionControl_OnDVDDriveChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalSessionControl_OnFloppyDriveChange_Proxy( 
    IInternalSessionControl * This);


void __RPC_STUB IInternalSessionControl_OnFloppyDriveChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalSessionControl_OnNetworkAdapterChange_Proxy( 
    IInternalSessionControl * This,
    /* [in] */ INetworkAdapter *aNetworkAdapter);


void __RPC_STUB IInternalSessionControl_OnNetworkAdapterChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalSessionControl_OnSerialPortChange_Proxy( 
    IInternalSessionControl * This,
    /* [in] */ ISerialPort *aSerialPort);


void __RPC_STUB IInternalSessionControl_OnSerialPortChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalSessionControl_OnParallelPortChange_Proxy( 
    IInternalSessionControl * This,
    /* [in] */ IParallelPort *aParallelPort);


void __RPC_STUB IInternalSessionControl_OnParallelPortChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalSessionControl_OnVRDPServerChange_Proxy( 
    IInternalSessionControl * This);


void __RPC_STUB IInternalSessionControl_OnVRDPServerChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalSessionControl_OnUSBControllerChange_Proxy( 
    IInternalSessionControl * This);


void __RPC_STUB IInternalSessionControl_OnUSBControllerChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalSessionControl_OnSharedFolderChange_Proxy( 
    IInternalSessionControl * This,
    /* [in] */ BOOL aGlobal);


void __RPC_STUB IInternalSessionControl_OnSharedFolderChange_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalSessionControl_OnUSBDeviceAttach_Proxy( 
    IInternalSessionControl * This,
    /* [in] */ IUSBDevice *aDevice,
    /* [in] */ IVirtualBoxErrorInfo *aError,
    /* [in] */ ULONG aMaskedInterfaces);


void __RPC_STUB IInternalSessionControl_OnUSBDeviceAttach_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalSessionControl_OnUSBDeviceDetach_Proxy( 
    IInternalSessionControl * This,
    /* [in] */ GUID aId,
    /* [in] */ IVirtualBoxErrorInfo *aError);


void __RPC_STUB IInternalSessionControl_OnUSBDeviceDetach_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalSessionControl_OnShowWindow_Proxy( 
    IInternalSessionControl * This,
    /* [in] */ BOOL aCheck,
    /* [out] */ BOOL *aCanShow,
    /* [out] */ ULONG64 *aWinId);


void __RPC_STUB IInternalSessionControl_OnShowWindow_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalSessionControl_AccessGuestProperty_Proxy( 
    IInternalSessionControl * This,
    /* [in] */ BSTR aName,
    /* [in] */ BSTR aValue,
    /* [in] */ BSTR aFlags,
    /* [in] */ BOOL aIsSetter,
    /* [out] */ BSTR *aRetValue,
    /* [out] */ ULONG64 *aRetTimestamp,
    /* [out] */ BSTR *aRetFlags);


void __RPC_STUB IInternalSessionControl_AccessGuestProperty_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IInternalSessionControl_EnumerateGuestProperties_Proxy( 
    IInternalSessionControl * This,
    /* [in] */ BSTR aPatterns,
    /* [out] */ SAFEARRAY * *aKey,
    /* [out] */ SAFEARRAY * *aValue,
    /* [out] */ SAFEARRAY * *aTimestamp,
    /* [out] */ SAFEARRAY * *aFlags);


void __RPC_STUB IInternalSessionControl_EnumerateGuestProperties_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IInternalSessionControl_INTERFACE_DEFINED__ */


#ifndef __ISession_INTERFACE_DEFINED__
#define __ISession_INTERFACE_DEFINED__

/* interface ISession */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_ISession;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("12F4DCDB-12B2-4ec1-B7CD-DDD9F6C5BF4D")
    ISession : public IDispatch
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_State( 
            /* [retval][out] */ SessionState *aState) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Type( 
            /* [retval][out] */ SessionType *aType) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Machine( 
            /* [retval][out] */ IMachine **aMachine) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Console( 
            /* [retval][out] */ IConsole **aConsole) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISessionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ISession * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ISession * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ISession * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ISession * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ISession * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ISession * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ISession * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_State )( 
            ISession * This,
            /* [retval][out] */ SessionState *aState);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Type )( 
            ISession * This,
            /* [retval][out] */ SessionType *aType);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Machine )( 
            ISession * This,
            /* [retval][out] */ IMachine **aMachine);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Console )( 
            ISession * This,
            /* [retval][out] */ IConsole **aConsole);
        
        HRESULT ( STDMETHODCALLTYPE *Close )( 
            ISession * This);
        
        END_INTERFACE
    } ISessionVtbl;

    interface ISession
    {
        CONST_VTBL struct ISessionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ISession_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ISession_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ISession_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ISession_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define ISession_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define ISession_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define ISession_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define ISession_get_State(This,aState)	\
    (This)->lpVtbl -> get_State(This,aState)

#define ISession_get_Type(This,aType)	\
    (This)->lpVtbl -> get_Type(This,aType)

#define ISession_get_Machine(This,aMachine)	\
    (This)->lpVtbl -> get_Machine(This,aMachine)

#define ISession_get_Console(This,aConsole)	\
    (This)->lpVtbl -> get_Console(This,aConsole)

#define ISession_Close(This)	\
    (This)->lpVtbl -> Close(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE ISession_get_State_Proxy( 
    ISession * This,
    /* [retval][out] */ SessionState *aState);


void __RPC_STUB ISession_get_State_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISession_get_Type_Proxy( 
    ISession * This,
    /* [retval][out] */ SessionType *aType);


void __RPC_STUB ISession_get_Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISession_get_Machine_Proxy( 
    ISession * This,
    /* [retval][out] */ IMachine **aMachine);


void __RPC_STUB ISession_get_Machine_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISession_get_Console_Proxy( 
    ISession * This,
    /* [retval][out] */ IConsole **aConsole);


void __RPC_STUB ISession_get_Console_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE ISession_Close_Proxy( 
    ISession * This);


void __RPC_STUB ISession_Close_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ISession_INTERFACE_DEFINED__ */


#ifndef __ISATAController_INTERFACE_DEFINED__
#define __ISATAController_INTERFACE_DEFINED__

/* interface ISATAController */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_ISATAController;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9a4b868b-1376-4533-8ef5-065b8e8cedff")
    ISATAController : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Enabled( 
            /* [retval][out] */ BOOL *aEnabled) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Enabled( 
            /* [in] */ BOOL aEnabled) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PortCount( 
            /* [retval][out] */ ULONG *aPortCount) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PortCount( 
            /* [in] */ ULONG aPortCount) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetIDEEmulationPort( 
            /* [in] */ LONG aDevicePosition,
            /* [retval][out] */ LONG *aPortNumber) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetIDEEmulationPort( 
            /* [in] */ LONG aDevicePosition,
            /* [in] */ LONG aPortNumber) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISATAControllerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ISATAController * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ISATAController * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ISATAController * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Enabled )( 
            ISATAController * This,
            /* [retval][out] */ BOOL *aEnabled);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Enabled )( 
            ISATAController * This,
            /* [in] */ BOOL aEnabled);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortCount )( 
            ISATAController * This,
            /* [retval][out] */ ULONG *aPortCount);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortCount )( 
            ISATAController * This,
            /* [in] */ ULONG aPortCount);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDEEmulationPort )( 
            ISATAController * This,
            /* [in] */ LONG aDevicePosition,
            /* [retval][out] */ LONG *aPortNumber);
        
        HRESULT ( STDMETHODCALLTYPE *SetIDEEmulationPort )( 
            ISATAController * This,
            /* [in] */ LONG aDevicePosition,
            /* [in] */ LONG aPortNumber);
        
        END_INTERFACE
    } ISATAControllerVtbl;

    interface ISATAController
    {
        CONST_VTBL struct ISATAControllerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ISATAController_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define ISATAController_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define ISATAController_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define ISATAController_get_Enabled(This,aEnabled)	\
    (This)->lpVtbl -> get_Enabled(This,aEnabled)

#define ISATAController_put_Enabled(This,aEnabled)	\
    (This)->lpVtbl -> put_Enabled(This,aEnabled)

#define ISATAController_get_PortCount(This,aPortCount)	\
    (This)->lpVtbl -> get_PortCount(This,aPortCount)

#define ISATAController_put_PortCount(This,aPortCount)	\
    (This)->lpVtbl -> put_PortCount(This,aPortCount)

#define ISATAController_GetIDEEmulationPort(This,aDevicePosition,aPortNumber)	\
    (This)->lpVtbl -> GetIDEEmulationPort(This,aDevicePosition,aPortNumber)

#define ISATAController_SetIDEEmulationPort(This,aDevicePosition,aPortNumber)	\
    (This)->lpVtbl -> SetIDEEmulationPort(This,aDevicePosition,aPortNumber)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE ISATAController_get_Enabled_Proxy( 
    ISATAController * This,
    /* [retval][out] */ BOOL *aEnabled);


void __RPC_STUB ISATAController_get_Enabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE ISATAController_put_Enabled_Proxy( 
    ISATAController * This,
    /* [in] */ BOOL aEnabled);


void __RPC_STUB ISATAController_put_Enabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE ISATAController_get_PortCount_Proxy( 
    ISATAController * This,
    /* [retval][out] */ ULONG *aPortCount);


void __RPC_STUB ISATAController_get_PortCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE ISATAController_put_PortCount_Proxy( 
    ISATAController * This,
    /* [in] */ ULONG aPortCount);


void __RPC_STUB ISATAController_put_PortCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE ISATAController_GetIDEEmulationPort_Proxy( 
    ISATAController * This,
    /* [in] */ LONG aDevicePosition,
    /* [retval][out] */ LONG *aPortNumber);


void __RPC_STUB ISATAController_GetIDEEmulationPort_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE ISATAController_SetIDEEmulationPort_Proxy( 
    ISATAController * This,
    /* [in] */ LONG aDevicePosition,
    /* [in] */ LONG aPortNumber);


void __RPC_STUB ISATAController_SetIDEEmulationPort_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ISATAController_INTERFACE_DEFINED__ */


#ifndef __IPerformanceMetric_INTERFACE_DEFINED__
#define __IPerformanceMetric_INTERFACE_DEFINED__

/* interface IPerformanceMetric */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IPerformanceMetric;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2a1a60ae-9345-4019-ad53-d34ba41cbfe9")
    IPerformanceMetric : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MetricName( 
            /* [retval][out] */ BSTR *aMetricName) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Object( 
            /* [retval][out] */ IUnknown **aObject) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Description( 
            /* [retval][out] */ BSTR *aDescription) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Period( 
            /* [retval][out] */ ULONG *aPeriod) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ ULONG *aCount) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Unit( 
            /* [retval][out] */ BSTR *aUnit) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MinimumValue( 
            /* [retval][out] */ LONG *aMinimumValue) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MaximumValue( 
            /* [retval][out] */ LONG *aMaximumValue) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IPerformanceMetricVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IPerformanceMetric * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IPerformanceMetric * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IPerformanceMetric * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MetricName )( 
            IPerformanceMetric * This,
            /* [retval][out] */ BSTR *aMetricName);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Object )( 
            IPerformanceMetric * This,
            /* [retval][out] */ IUnknown **aObject);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Description )( 
            IPerformanceMetric * This,
            /* [retval][out] */ BSTR *aDescription);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Period )( 
            IPerformanceMetric * This,
            /* [retval][out] */ ULONG *aPeriod);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IPerformanceMetric * This,
            /* [retval][out] */ ULONG *aCount);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Unit )( 
            IPerformanceMetric * This,
            /* [retval][out] */ BSTR *aUnit);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MinimumValue )( 
            IPerformanceMetric * This,
            /* [retval][out] */ LONG *aMinimumValue);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MaximumValue )( 
            IPerformanceMetric * This,
            /* [retval][out] */ LONG *aMaximumValue);
        
        END_INTERFACE
    } IPerformanceMetricVtbl;

    interface IPerformanceMetric
    {
        CONST_VTBL struct IPerformanceMetricVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IPerformanceMetric_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IPerformanceMetric_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IPerformanceMetric_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IPerformanceMetric_get_MetricName(This,aMetricName)	\
    (This)->lpVtbl -> get_MetricName(This,aMetricName)

#define IPerformanceMetric_get_Object(This,aObject)	\
    (This)->lpVtbl -> get_Object(This,aObject)

#define IPerformanceMetric_get_Description(This,aDescription)	\
    (This)->lpVtbl -> get_Description(This,aDescription)

#define IPerformanceMetric_get_Period(This,aPeriod)	\
    (This)->lpVtbl -> get_Period(This,aPeriod)

#define IPerformanceMetric_get_Count(This,aCount)	\
    (This)->lpVtbl -> get_Count(This,aCount)

#define IPerformanceMetric_get_Unit(This,aUnit)	\
    (This)->lpVtbl -> get_Unit(This,aUnit)

#define IPerformanceMetric_get_MinimumValue(This,aMinimumValue)	\
    (This)->lpVtbl -> get_MinimumValue(This,aMinimumValue)

#define IPerformanceMetric_get_MaximumValue(This,aMaximumValue)	\
    (This)->lpVtbl -> get_MaximumValue(This,aMaximumValue)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IPerformanceMetric_get_MetricName_Proxy( 
    IPerformanceMetric * This,
    /* [retval][out] */ BSTR *aMetricName);


void __RPC_STUB IPerformanceMetric_get_MetricName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IPerformanceMetric_get_Object_Proxy( 
    IPerformanceMetric * This,
    /* [retval][out] */ IUnknown **aObject);


void __RPC_STUB IPerformanceMetric_get_Object_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IPerformanceMetric_get_Description_Proxy( 
    IPerformanceMetric * This,
    /* [retval][out] */ BSTR *aDescription);


void __RPC_STUB IPerformanceMetric_get_Description_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IPerformanceMetric_get_Period_Proxy( 
    IPerformanceMetric * This,
    /* [retval][out] */ ULONG *aPeriod);


void __RPC_STUB IPerformanceMetric_get_Period_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IPerformanceMetric_get_Count_Proxy( 
    IPerformanceMetric * This,
    /* [retval][out] */ ULONG *aCount);


void __RPC_STUB IPerformanceMetric_get_Count_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IPerformanceMetric_get_Unit_Proxy( 
    IPerformanceMetric * This,
    /* [retval][out] */ BSTR *aUnit);


void __RPC_STUB IPerformanceMetric_get_Unit_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IPerformanceMetric_get_MinimumValue_Proxy( 
    IPerformanceMetric * This,
    /* [retval][out] */ LONG *aMinimumValue);


void __RPC_STUB IPerformanceMetric_get_MinimumValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IPerformanceMetric_get_MaximumValue_Proxy( 
    IPerformanceMetric * This,
    /* [retval][out] */ LONG *aMaximumValue);


void __RPC_STUB IPerformanceMetric_get_MaximumValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IPerformanceMetric_INTERFACE_DEFINED__ */


#ifndef __IPerformanceCollector_INTERFACE_DEFINED__
#define __IPerformanceCollector_INTERFACE_DEFINED__

/* interface IPerformanceCollector */
/* [dual][object][uuid] */ 


EXTERN_C const IID IID_IPerformanceCollector;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("dcd37e5a-3964-43d1-be30-0f3c7234e347")
    IPerformanceCollector : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MetricNames( 
            /* [retval][out] */ SAFEARRAY * *aMetricNames) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMetrics( 
            /* [out][in] */ SAFEARRAY * *aMetricNames,
            /* [out][in] */ SAFEARRAY * *aObjects,
            /* [retval][out] */ SAFEARRAY * *aMetrics) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetupMetrics( 
            /* [out][in] */ SAFEARRAY * *aMetricNames,
            /* [out][in] */ SAFEARRAY * *aObjects,
            /* [in] */ ULONG aPeriod,
            /* [in] */ ULONG aCount) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE EnableMetrics( 
            /* [out][in] */ SAFEARRAY * *aMetricNames,
            /* [out][in] */ SAFEARRAY * *aObjects) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE DisableMetrics( 
            /* [out][in] */ SAFEARRAY * *aMetricNames,
            /* [out][in] */ SAFEARRAY * *aObjects) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE QueryMetricsData( 
            /* [out][in] */ SAFEARRAY * *aMetricNames,
            /* [out][in] */ SAFEARRAY * *aObjects,
            /* [out] */ SAFEARRAY * *aReturnMetricNames,
            /* [out] */ SAFEARRAY * *aReturnObjects,
            /* [out] */ SAFEARRAY * *aReturnDataIndices,
            /* [out] */ SAFEARRAY * *aReturnDataLengths,
            /* [retval][out] */ SAFEARRAY * *aReturnData) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IPerformanceCollectorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IPerformanceCollector * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IPerformanceCollector * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IPerformanceCollector * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MetricNames )( 
            IPerformanceCollector * This,
            /* [retval][out] */ SAFEARRAY * *aMetricNames);
        
        HRESULT ( STDMETHODCALLTYPE *GetMetrics )( 
            IPerformanceCollector * This,
            /* [out][in] */ SAFEARRAY * *aMetricNames,
            /* [out][in] */ SAFEARRAY * *aObjects,
            /* [retval][out] */ SAFEARRAY * *aMetrics);
        
        HRESULT ( STDMETHODCALLTYPE *SetupMetrics )( 
            IPerformanceCollector * This,
            /* [out][in] */ SAFEARRAY * *aMetricNames,
            /* [out][in] */ SAFEARRAY * *aObjects,
            /* [in] */ ULONG aPeriod,
            /* [in] */ ULONG aCount);
        
        HRESULT ( STDMETHODCALLTYPE *EnableMetrics )( 
            IPerformanceCollector * This,
            /* [out][in] */ SAFEARRAY * *aMetricNames,
            /* [out][in] */ SAFEARRAY * *aObjects);
        
        HRESULT ( STDMETHODCALLTYPE *DisableMetrics )( 
            IPerformanceCollector * This,
            /* [out][in] */ SAFEARRAY * *aMetricNames,
            /* [out][in] */ SAFEARRAY * *aObjects);
        
        HRESULT ( STDMETHODCALLTYPE *QueryMetricsData )( 
            IPerformanceCollector * This,
            /* [out][in] */ SAFEARRAY * *aMetricNames,
            /* [out][in] */ SAFEARRAY * *aObjects,
            /* [out] */ SAFEARRAY * *aReturnMetricNames,
            /* [out] */ SAFEARRAY * *aReturnObjects,
            /* [out] */ SAFEARRAY * *aReturnDataIndices,
            /* [out] */ SAFEARRAY * *aReturnDataLengths,
            /* [retval][out] */ SAFEARRAY * *aReturnData);
        
        END_INTERFACE
    } IPerformanceCollectorVtbl;

    interface IPerformanceCollector
    {
        CONST_VTBL struct IPerformanceCollectorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IPerformanceCollector_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IPerformanceCollector_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IPerformanceCollector_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IPerformanceCollector_get_MetricNames(This,aMetricNames)	\
    (This)->lpVtbl -> get_MetricNames(This,aMetricNames)

#define IPerformanceCollector_GetMetrics(This,aMetricNames,aObjects,aMetrics)	\
    (This)->lpVtbl -> GetMetrics(This,aMetricNames,aObjects,aMetrics)

#define IPerformanceCollector_SetupMetrics(This,aMetricNames,aObjects,aPeriod,aCount)	\
    (This)->lpVtbl -> SetupMetrics(This,aMetricNames,aObjects,aPeriod,aCount)

#define IPerformanceCollector_EnableMetrics(This,aMetricNames,aObjects)	\
    (This)->lpVtbl -> EnableMetrics(This,aMetricNames,aObjects)

#define IPerformanceCollector_DisableMetrics(This,aMetricNames,aObjects)	\
    (This)->lpVtbl -> DisableMetrics(This,aMetricNames,aObjects)

#define IPerformanceCollector_QueryMetricsData(This,aMetricNames,aObjects,aReturnMetricNames,aReturnObjects,aReturnDataIndices,aReturnDataLengths,aReturnData)	\
    (This)->lpVtbl -> QueryMetricsData(This,aMetricNames,aObjects,aReturnMetricNames,aReturnObjects,aReturnDataIndices,aReturnDataLengths,aReturnData)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IPerformanceCollector_get_MetricNames_Proxy( 
    IPerformanceCollector * This,
    /* [retval][out] */ SAFEARRAY * *aMetricNames);


void __RPC_STUB IPerformanceCollector_get_MetricNames_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IPerformanceCollector_GetMetrics_Proxy( 
    IPerformanceCollector * This,
    /* [out][in] */ SAFEARRAY * *aMetricNames,
    /* [out][in] */ SAFEARRAY * *aObjects,
    /* [retval][out] */ SAFEARRAY * *aMetrics);


void __RPC_STUB IPerformanceCollector_GetMetrics_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IPerformanceCollector_SetupMetrics_Proxy( 
    IPerformanceCollector * This,
    /* [out][in] */ SAFEARRAY * *aMetricNames,
    /* [out][in] */ SAFEARRAY * *aObjects,
    /* [in] */ ULONG aPeriod,
    /* [in] */ ULONG aCount);


void __RPC_STUB IPerformanceCollector_SetupMetrics_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IPerformanceCollector_EnableMetrics_Proxy( 
    IPerformanceCollector * This,
    /* [out][in] */ SAFEARRAY * *aMetricNames,
    /* [out][in] */ SAFEARRAY * *aObjects);


void __RPC_STUB IPerformanceCollector_EnableMetrics_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IPerformanceCollector_DisableMetrics_Proxy( 
    IPerformanceCollector * This,
    /* [out][in] */ SAFEARRAY * *aMetricNames,
    /* [out][in] */ SAFEARRAY * *aObjects);


void __RPC_STUB IPerformanceCollector_DisableMetrics_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IPerformanceCollector_QueryMetricsData_Proxy( 
    IPerformanceCollector * This,
    /* [out][in] */ SAFEARRAY * *aMetricNames,
    /* [out][in] */ SAFEARRAY * *aObjects,
    /* [out] */ SAFEARRAY * *aReturnMetricNames,
    /* [out] */ SAFEARRAY * *aReturnObjects,
    /* [out] */ SAFEARRAY * *aReturnDataIndices,
    /* [out] */ SAFEARRAY * *aReturnDataLengths,
    /* [retval][out] */ SAFEARRAY * *aReturnData);


void __RPC_STUB IPerformanceCollector_QueryMetricsData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IPerformanceCollector_INTERFACE_DEFINED__ */


EXTERN_C const CLSID CLSID_VirtualBox;

#ifdef __cplusplus

class DECLSPEC_UUID("B1A7A4F2-47B9-4A1E-82B2-07CCD5323C3F")
VirtualBox;
#endif

EXTERN_C const CLSID CLSID_Session;

#ifdef __cplusplus

class DECLSPEC_UUID("3C02F46D-C9D2-4f11-A384-53F0CF917214")
Session;
#endif
#endif /* __VirtualBox_LIBRARY_DEFINED__ */

/* Additional Prototypes for ALL interfaces */

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif


