📄 vcecominterfaces.idl
字号:
is exposed as a .DLL interface rather than a COM
interface, unfortunately. This interface mirrors the .dll
transport interface, and the .dll simply passes calls
through to this COM interface.
------------------------------------------------------------------*/
[
object,
uuid(5428171D-2047-4877-BF99-7E267567F3A8),
helpstring("IVirtualTransportPB Interface"),
pointer_default(unique)
]
interface IVirtualTransportPB : IUnknown
{
HRESULT Initialize();
HRESULT TearDown();
[ helpstring("Creates a new transport channel.") ]
HRESULT Create(
[in] GUID* virtualMachineID,
[in] ULONG dmaChannel,
[out] ULONG* transportID );
[ helpstring("Deletes a transport channel.") ]
HRESULT Delete(
[in] ULONG transportID );
[ helpstring("Installs a callback for data receiving.") ]
HRESULT Advise(
[in] IVirtualTransportSinkPB* transportSink );
[ helpstring("Sends data across the transport.") ]
HRESULT Send(
[in] ULONG transportID,
[in, size_is(byteCount)] const BYTE* dataBuffer,
[in] USHORT byteCount,
[in] ULONG timeout );
[ helpstring("Polls for data received from the transport, only works if datasink hasn't been installed.") ]
HRESULT Receive(
[in] ULONG transportID,
[out, size_is(*byteCount), length_is(*byteCount)] BYTE* dataBuffer,
[in, out] USHORT* byteCount,
[in] ULONG timeout );
[ helpstring("Indicates which virtual machine a transport should be talking to.") ]
HRESULT SetVirtualMachineIDForTransport(
[in] ULONG transportID,
[in] GUID* virtualMachineID );
};
/*------------------------------------------------------------------
IVirtualMachineManagerVS interface.
This interface allows the caller to manipulate virtual machines
within VirtualCE. It effectively replaces the standard
VirtualPC configuration dialog with a programmatic interface.
It is used by Microsoft's CE Platform Builder tools to
control the virtual machines.
------------------------------------------------------------------*/
[
object,
uuid(32C39948-D4BA-48d0-890A-CFA276F84ADC),
helpstring("IVirtualMachineManagerVS Interface"),
pointer_default(unique)
]
interface IVirtualMachineManagerVS : IUnknown
{
[ helpstring("Gets count of all virtual machines available (running or not)") ]
HRESULT GetVirtualMachineCount(
[out, retval] ULONG* numberOfVMs );
[ helpstring("Gets array of GUIDs of all virtual machines available (running or not)") ]
HRESULT EnumerateVirtualMachines(
[in, out] ULONG* numberOfVMs,
[out, size_is(*numberOfVMs)] GUID virtualMachineID[] );
[ helpstring("Tests if a virtual machine is running or not, returns error if unknown machine ID") ]
HRESULT IsVirtualMachineRunning(
[in] GUID* virtualMachineID,
[out, retval] boolean* isRunning );
[ helpstring("Resets a virtual machine, either a hard or soft reset") ]
HRESULT ResetVirtualMachine(
[in] GUID* virtualMachineID,
[in] boolean hardReset );
[ helpstring("Starts a new virtual machine using command line parameters") ]
HRESULT CreateVirtualMachine(
[in] LPOLESTR commandLine );
[ helpstring("Shuts down a virtual machine, optionally saving the state") ]
HRESULT ShutdownVirtualMachine(
[in] GUID* virtualMachineID,
[in] boolean saveMachine );
[ helpstring("Restores a previously saved virtual machine") ]
HRESULT RestoreVirtualMachine(
[in] GUID* virtualMachineID );
[ helpstring("Deletes a previously saved virtual machine") ]
HRESULT DeleteVirtualMachine(
[in] GUID* virtualMachineID );
[ helpstring("Returns the name of a virtual machine") ]
HRESULT GetVirtualMachineName(
[in] GUID* virtualMachineID,
[out] LPOLESTR* virtualMachineName );
[ helpstring("Sets the name of a virtual machine") ]
HRESULT SetVirtualMachineName(
[in] GUID* virtualMachineID,
[in] LPOLESTR virtualMachineName );
};
/*------------------------------------------------------------------
IVirtualTransportSinkVS interface.
This is used as a callback by the IVirtualTransport
interface. The IVirtualTransport object
will call this sink when data is available.
------------------------------------------------------------------*/
[
object,
uuid(8FC020EC-38C5-43fd-81E0-B9238B42303E),
helpstring("IVirtualTransportSinkVS Interface"),
pointer_default(unique)
]
interface IVirtualTransportSinkVS : IUnknown
{
HRESULT ReceiveData(
[in] ULONG transportID,
[in, size_is(byteCount)] const BYTE* dataBuffer,
[in] USHORT byteCount );
};
/*------------------------------------------------------------------
IVirtualTransportVS interface.
This interface provides the connection to the kernel
independent transport layer (KITL) to allow the Windows CE
kernel to talk to Microsoft's Windows CE Platform Builder
development tool. It will connect to a virtual transport
device in the emulator.
If a CE kernel is built with the emulator's kitl (a part
of the HAL that knows how to talk to this virtual
transport device), then the CE kernel can be debugged
using Platform Builder.
The bottom layer transport interface to Platform Builder
is exposed as a .DLL interface rather than a COM
interface, unfortunately. This interface mirrors the .dll
transport interface, and the .dll simply passes calls
through to this COM interface.
------------------------------------------------------------------*/
[
object,
uuid(553764E3-4E8B-445d-B116-9B90FDA76CC7),
helpstring("IVirtualTransportVS Interface"),
pointer_default(unique)
]
interface IVirtualTransportVS : IUnknown
{
HRESULT Initialize();
HRESULT TearDown();
[ helpstring("Creates a new transport channel.") ]
HRESULT Create(
[in] GUID* virtualMachineID,
[in] ULONG dmaChannel,
[out] ULONG* transportID );
[ helpstring("Deletes a transport channel.") ]
HRESULT Delete(
[in] ULONG transportID );
[ helpstring("Installs a callback for data receiving.") ]
HRESULT Advise(
[in] IVirtualTransportSinkVS* transportSink );
[ helpstring("Sends data across the transport.") ]
HRESULT Send(
[in] ULONG transportID,
[in, size_is(byteCount)] const BYTE* dataBuffer,
[in] USHORT byteCount,
[in] ULONG timeout );
[ helpstring("Polls for data received from the transport, only works if datasink hasn't been installed.") ]
HRESULT Receive(
[in] ULONG transportID,
[out, size_is(*byteCount), length_is(*byteCount)] BYTE* dataBuffer,
[in, out] USHORT* byteCount,
[in] ULONG timeout );
[ helpstring("Indicates which virtual machine a transport should be talking to.") ]
HRESULT SetVirtualMachineIDForTransport(
[in] ULONG transportID,
[in] GUID* virtualMachineID );
};
#endif // 0
/*------------------------------------------------------------------
Declaration of the classes within the VCEComInterfaces
library. This is used to create the COM '.tlb' type library.
------------------------------------------------------------------*/
[
uuid(0E61EFB0-48B2-4329-9778-F97976FF6DD6),
version(1.0),
helpstring("EmulatorComInterfaces 1.0 Type Library")
]
library VirtualCE
{
importlib("stdole2.tlb");
[
uuid(98BBBEB9-4A0C-43c1-8D83-A958EAD99778),
helpstring("EmulatorVirtualMachineManager Class")
]
coclass EmulatorVirtualMachineManager
{
[default] interface IEmulatorVirtualMachineManager;
[source] interface IDMATransportCompletionSink;
};
[
uuid(35A9592F-C618-4b79-8080-BC3FCCAC86F6),
helpstring("EmulatorVirtualTransport Class")
]
coclass EmulatorVirtualTransport
{
[default] interface IEmulatorVirtualTransport;
[source] interface IEmulatorVirtualTransportSink;
};
#if 0
// 4.1 & 4.2 PB classes...
[
uuid(902E2CF6-3DE6-4b96-80D2-6A08F6B1D320),
helpstring("VirtualMachineManagerPB Class")
]
coclass VirtualMachineManagerPB
{
[default] interface IVirtualMachineManagerPB;
};
[
uuid(D5983373-D9D4-4a9e-AD21-A7ED8AAA897F),
helpstring("VirtualTransportPB Class")
]
coclass VirtualTransportPB
{
[default] interface IVirtualTransportPB;
[source] interface IVirtualTransportSinkPB;
};
// 4.1 & 4.2 VS classes...
[
uuid(08CC2F95-FA84-46a2-8CDA-9BB47D4DDF97),
helpstring("VirtualMachineManagerVS Class")
]
coclass VirtualMachineManagerVS
{
[default] interface IVirtualMachineManagerVS;
};
[
uuid(662CE5C7-7F41-493a-8F1B-9C96BDA7AC3F),
helpstring("VirtualTransportVS Class")
]
coclass VirtualTransportVS
{
[default] interface IVirtualTransportVS;
[source] interface IVirtualTransportSinkVS;
};
#endif
};
/*==================================================================
Change History (most recent first):
$Log: VCEComInterfaces.idl,v $
Revision 1.10 2001/08/07 22:11:59 jhoelter
Removed GetInfo() method, modified Create().
Revision 1.9 2001/07/28 00:31:14 jhoelter
Made many changes to the IVirtualTransport interface, added a data sink interface for callbacks.
Revision 1.8 2001/06/20 20:42:13 jhoelter
Removed IService/IKitl interfaces, added IVirtualTransport.
Revision 1.7 2001/06/13 18:03:18 jhoelter
Removed interface definitions that appear in kitlcom.idl and cemgr.idl.
Revision 1.6 2001/06/08 00:54:09 jhoelter
Removed VirtualTransport coclass. Added KITLService coclass.
Revision 1.5 2001/06/06 19:04:21 jhoelter
Added IService, IServiceConfig interfaces and updated IKITL interface.
Revision 1.4 2001/06/01 19:06:18 jhoelter
Renamed StartupVirtualMachine to CreateVirtualMachine.
Revision 1.3 2001/05/30 23:50:15 jhoelter
Corrected spelling error in EnumerateVirtualMachines.
Revision 1.2 2001/05/29 02:28:48 jhoelter
Added methods to IVirtualMachineManager.
Revision 1.1 2001/05/28 21:33:46 jhoelter
Moved to "IDL_Components" folder.
Revision 1.3 2001/05/26 01:45:48 jhoelter
Moved IKITL interface from VirtualTransport to
VirtualMachineManager class.
Revision 1.2 2001/05/25 01:00:38 jhoelter
Added new KITL interfaces.
==================================================================*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -