Share via


IDeviceEmulatorManager

Mise à jour : novembre 2007

Cette interface représente le Gestionnaire Device Emulator. L'objet est utilisé pour commander la fenêtre Gestionnaire Device Emulator et parcourir les nœuds de niveau racine dans le Gestionnaire Device Emulator (DEM), comme Magasin de données, Mes émulateurs de périphérique, Tous les émulateurs de périphérique, et Autres.

interface IDeviceEmulatorManager : IDispatch ();

Méthodes

Méthode

Description

IDeviceEmulatorManager::EnumerateSDKs

Énumère les plateformes dans le nœud actuel.

IDeviceEmulatorManager::ShowManagerUI

Affiche ou masque la fenêtre Gestionnaire Device Emulator

IDeviceEmulatorManager::MoveNext

Se déplace au nœud suivant.

IDeviceEmulatorManager::Reset

Revient en arrière au premier nœud, généralement Magasin de données.

IDeviceEmulatorManager::Refresh

Actualise l'énumération en relisant les informations du Magasin de données.

IDeviceEmulatorManager::get_Name

Obtient le nom du nœud actuel tel que Magasin de données, Mes émulateurs de périphérique, Tous les émulateurs de périphérique, ou Autres.

IDeviceEmulatorManager::RegisterRefreshEvent

Inscrit l'événement d'actualisation du Gestionnaire Device Emulator.

IDeviceEmulatorManager::UnRegisterRefreshEvent

Annule l'inscription de l'événement d'actualisation.

Notes

Pour créer un objet qui implémente cette interface, utilisez CoCreateInstance.

Un objet qui implémente cette interface est une liste liée qui contient tous les nœuds de niveau racine dans la fenêtre DEM.

Exemple

Cet exemple répertorie les nœuds, Kits de développement logiciel (SDK)/plateformes et émulateurs dans la fenêtre Gestionnaire Device Emulator.

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

Configuration requise

DEMComInterface.tlb

Voir aussi

Autres ressources

Exemples Microsoft Device Emulator