Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Aktualisiert: November 2007
Diese Schnittstelle stellt einen einzelnen Emulator im Geräteemulator-Manager (DEM) dar. Verwenden Sie diese Schnittstelle, um Vorgänge für den Emulator auszuführen, z. B. Verbinden, Ausführen von In Basisstation und Zurücksetzen.
interface IDeviceEmulatorManagerVMID : IDispatch{}
Methoden
Methode |
Beschreibung |
---|---|
Ruft die eindeutige VMID (Virtual Machine Identifier) ab, durch die der Emulator eindeutig identifiziert wird. |
|
Ruft den aktuellen Emulatorzustand ab. Der Emulator kann den Zustand Wird nicht ausgeführt, Aktiv oder In Basisstation haben. |
|
Ruft den Namen des Emulators ab, z. B. Pocket PC 2003 SE-Emulator. |
|
Startet den Geräteemulator, sofern er noch nicht gestartet wurde, und stellt eine Verbindung her. |
|
Verbindet den Emulator mit der Basisstation. |
|
Trennt die Verbindung des Emulators mit der Basisstation. |
|
Fährt den Emulator herunter und speichert optional den Emulatorzustand. |
|
Setzt den Emulator zurück. |
|
Löscht die mit dem Gerät verknüpfte DESS (Device Emulator Saved State)-Datei. Beim nächsten Start startet der Emulator vom ROM-Abbild und nicht von der Datei mit dem gespeicherten Zustand. |
|
Zeigt das Fenster Geräteemulator an. |
|
Ruft die Konfiguration des Emulators im XML-Format der Geräteemulatorkonfiguration ab. |
|
Legt die Konfiguration des Emulators fest, wenn eine ordnungsgemäß formatierte XML-Zeichenfolge für die Geräteemulatorkonfiguration verfügbar ist. |
Hinweise
Um ein Objekt zu erstellen, durch das diese Schnittstelle implementiert wird, verwenden Sie IEnumVMIDs::get_VMID.
Beispiel
In diesem Beispiel werden der Pocket PC 2003-Emulator gestartet und eine Reihe von Vorgängen ausgeführt.
BOOL FindDevice(const CComBSTR& deviceIdentifier, IDeviceEmulatorManagerVMID** pDeviceVMID);
int _tmain(int argc, _TCHAR* argv[])
{
if (SUCCEEDED(CoInitializeEx(NULL, COINIT_MULTITHREADED)))
{
HRESULT hr;
CComPtr<IDeviceEmulatorManagerVMID> pDevice = NULL;
// Get the emulator by calling a helper function
hr = FindDevice("Pocket PC 2003 SE Emulator", &pDevice);
// If the emulator is found
if (SUCCEEDED(hr))
{
// Output the name of the emulator
CComBSTR deviceName;
hr = pDevice->get_Name(&deviceName);
if (SUCCEEDED(hr)) wprintf_s(L"Device Name: %s\n", deviceName);
// Output the emulator's VMID
CComBSTR VMID;
hr = pDevice->get_VMID(&VMID);
if (SUCCEEDED(hr)) wprintf_s(L"Device VMID: %s\n", VMID);
// Output the emulator's current state
EMULATOR_STATE deviceState = EMU_NOT_RUNNING;
hr = pDevice->get_State(&deviceState);
if (SUCCEEDED(hr))
{
if (deviceState == EMU_CRADLED) wprintf_s(L"Emulator is Cradled\n");
else if (deviceState == EMU_RUNNING) wprintf_s(L"Emulator is Running\n");
else wprintf_s(L"Emulator is Not Running\n");
}
// Connect to the emulator
hr = pDevice->Connect();
if (SUCCEEDED(hr)) wprintf_s(L"Emulator is connected\n");
// Make the Device Emulator window visible
hr = pDevice->BringToFront();
if (SUCCEEDED(hr)) wprintf_s(L"Device Emulator window is on top\n");
// Cradle the emulator
hr = pDevice->Cradle();
if (SUCCEEDED(hr)) wprintf_s(L"Emulator is cradled\n");
system("pause");
// Uncradle the emulator
hr = pDevice->UnCradle();
if (SUCCEEDED(hr)) wprintf_s(L"Emulator is uncradled\n");
// Save state and shutdown the emulator
hr = pDevice->Shutdown(true);
if (SUCCEEDED(hr)) wprintf_s(L"Emulator is shutdown\n");
// Delete the .dess save state file for this device
hr = pDevice->ClearSaveState();
if (SUCCEEDED(hr)) wprintf_s(L"Save state file is deleted");
system("pause");
}
}
return 0;
}
// Helper method to find a device given name or VMID
BOOL FindDevice(const CComBSTR& deviceIdentifier, IDeviceEmulatorManagerVMID** pDeviceVMID)
{
HRESULT hr;
// Instantiate DeviceEmulatorManager (DEM) object.
// This starts DvcEmuManager.exe in silent mode
CComPtr<IDeviceEmulatorManager> pDeviceEmulatorManager;
hr = pDeviceEmulatorManager.CoCreateInstance(__uuidof(DeviceEmulatorManager));
if (FAILED(hr)) {
wprintf_s(L"Error: Unable to instantiate DeviceEmulatorManager. ErrorCode=0x%08X\n", hr);
return FALSE;
}
// For each of the four nodes in the Device Emulator Manager window
// (Datastore, My Device Emulators, All Device Emulators, and Others)
for (; SUCCEEDED(hr); (hr = pDeviceEmulatorManager->MoveNext()))
{
CComPtr<IEnumManagerSDKs> pSDKEnumerator;
// Get a list of SDKs/platforms in this node
hr = pDeviceEmulatorManager->EnumerateSDKs(&pSDKEnumerator);
if (FAILED(hr)) {
continue;
}
// For every SDK/platform in the list
for (; SUCCEEDED(hr); (hr = pSDKEnumerator->MoveNext()))
{
// Get the list of emulators in the SDK/platform
CComPtr<IEnumVMIDs> pDeviceEnumerator;
hr = pSDKEnumerator->EnumerateVMIDs(&pDeviceEnumerator);
if (FAILED(hr)) {
continue;
}
// For every emulator in the list
for (; SUCCEEDED(hr); (hr = pDeviceEnumerator->MoveNext()))
{
CComBSTR deviceName;
CComPtr<IDeviceEmulatorManagerVMID> pDevice;
// Get the IDeviceEmulatorManagerVMID object.
hr = pDeviceEnumerator->GetVMID(&pDevice);
if (FAILED(hr)) {
continue;
}
// Get the name of the emulator
hr = pDevice->get_Name(&deviceName);
if (FAILED(hr)){
continue;
}
// If the name of the device matches the supplied name,
// then this is the device we are looking for.
if (deviceIdentifier == deviceName){
*pDeviceVMID = pDevice;
(*pDeviceVMID)->AddRef();
return TRUE;
}
}
}
}
wprintf_s(L"Error: Unable to locate the device '%s'", deviceIdentifier);
return FALSE;
}
Anforderungen
DEMComInterface.tlb