Sdílet prostřednictvím


IDeviceEmulatorManager

Aktualisiert: November 2007

Diese Schnittstelle stellt den Geräteemulator-Manager dar. Das Objekt wird verwendet, um das Fenster Geräteemulator-Manager zu steuern und die Knoten auf Stammebene im Geräteemulator-Manager zu durchlaufen, z. B. Datenspeicher, Meine Geräteemulatoren, Alle Geräteemulatoren und Andere.

interface IDeviceEmulatorManager : IDispatch ();

Methoden

Methode

Beschreibung

IDeviceEmulatorManager::EnumerateSDKs

Listet die Plattformen im aktuellen Knoten auf.

IDeviceEmulatorManager::ShowManagerUI

Blendet das Fenster Geräteemulator-Manager ein oder aus.

IDeviceEmulatorManager::MoveNext

Wechselt zum nächsten Knoten.

IDeviceEmulatorManager::Reset

Wechselt zurück zum ersten Knoten, normalerweise Datenspeicher.

IDeviceEmulatorManager::Refresh

Aktualisiert die Enumeration durch nochmaliges Lesen der Informationen aus dem Datenspeicher.

IDeviceEmulatorManager::get_Name

Ruft den Namen des aktuellen Knotens ab, z. B. Datenspeicher, Meine Geräteemulatoren, Alle Geräteemulatoren oder Andere.

IDeviceEmulatorManager::RegisterRefreshEvent

Registriert das Aktualisierungsereignis des Geräteemulator-Managers.

IDeviceEmulatorManager::UnRegisterRefreshEvent

Bricht die Registrierung des Aktualisierungsereignisses ab.

Hinweise

Um ein Objekt zu erstellen, durch das diese Schnittstelle implementiert, verwenden Sie CoCreateInstance.

Ein Objekt, durch das diese Schnittstelle implementiert wird, entspricht einer verknüpften Liste, die alle Knoten auf Stammebene im DEM-Fenster enthält.

Beispiel

In diesem Beispiel werden die Knoten, SDKs/Plattformen und Emulatoren im Fenster Geräteemulator-Manager aufgelistet.

int _tmain(int argc, _TCHAR* argv[])
{
    if (SUCCEEDED(CoInitializeEx(NULL, COINIT_MULTITHREADED)))
    {
        // HRESULT is used to determine whether method calls are successful
        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()))
        {
            // Output the name of node
            CComBSTR node;
            hr = pDeviceEmulatorManager->get_Name(&node);
            if (FAILED(hr)) {
                wprintf_s(L"Error: Failed to get current SDK category name. ErrorCode=0x%08X\n", hr);
                return false;
            }
            wprintf_s(L"- %s\n", node);

            // Get a list of SDKs/platforms in this node
            CComPtr<IEnumManagerSDKs> pSDKEnumerator;
            hr = pDeviceEmulatorManager->EnumerateSDKs(&pSDKEnumerator);
            if (FAILED(hr)) {
                wprintf_s(L"Error: Failed to get enumerator for the SDK Category[%s]. ErrorCode=0x%08X\n", node, hr);
                return false;
            }

            // For every SDK/platform in the list
            for (; SUCCEEDED(hr); (hr = pSDKEnumerator->MoveNext()))
            {
                // Output its name
                CComBSTR sdkName;
                hr = pSDKEnumerator->get_Name(&sdkName);
                if (hr == E_ENUMSDK_NOT_LOADED ) {
                    continue;
                } else if (FAILED(hr)) {
                    wprintf_s(L"Error: Failed to get SDK details. ErrorCode=0x%08X\n", hr);
                    return false;
                }
                wprintf_s(L"\t- %s\n", sdkName);

                // Get the list of emulators in the SDK/platform
                CComPtr<IEnumVMIDs> pDeviceEnumerator;
                hr = pSDKEnumerator->EnumerateVMIDs(&pDeviceEnumerator);
                if (FAILED(hr)) {
                    wprintf_s(L"Error: Failed to get enumerator for VM devices. ErrorCode=0x%08X\n", hr);
                    return false;
                }

                // For every emulator in the list
                for (; SUCCEEDED(hr); (hr = pDeviceEnumerator->MoveNext()))
                {
                    // Get the IDeviceEmulatorManagerVMID object.
                    CComPtr<IDeviceEmulatorManagerVMID> pDevice;
                    hr = pDeviceEnumerator->GetVMID(&pDevice);
                    if (FAILED(hr)) {
                        continue;
                    }

                    // Output the name of the emulator.
                    CComBSTR deviceName;
                    hr = pDevice->get_Name(&deviceName);
                    if (FAILED(hr)){
                        continue;
                    }
                    wprintf_s(L"\t\t%s\n", deviceName);
                }
            }
        }
        return true;
        CoUninitialize();
    }
    return false;
}

Anforderungen

DEMComInterface.tlb

Siehe auch

Weitere Ressourcen

Device Emulator samples