Compartir a través de


IDeviceEmulatorManager

Actualización: noviembre 2007

Esta interfaz representa el Administrador de emuladores de dispositivos. El objeto se utiliza para controlar la ventana Administrador de emuladores de dispositivos y recorrer en iteración los nodos de nivel raíz del Administrador de emuladores de dispositivos (DEM), por ejemplo Almacén de datos, Mis emuladores de dispositivos, Todos los emuladores de dispositivos y Otros.

interface IDeviceEmulatorManager : IDispatch ();

Métodos

Método

Descripción

IDeviceEmulatorManager::EnumerateSDKs

Enumera las plataformas del nodo actual.

IDeviceEmulatorManager::ShowManagerUI

Muestra u oculta la ventana Administrador de emuladores de dispositivos

IDeviceEmulatorManager::MoveNext

Se desplaza al siguiente nodo.

IDeviceEmulatorManager::Reset

Retrocede al primer nodo, normalmente Almacén de datos.

IDeviceEmulatorManager::Refresh

Actualiza la enumeración releyendo la información del Almacén de datos.

IDeviceEmulatorManager::get_Name

Obtiene el nombre del nodo actual, por ejemplo Almacén de datos, Mis emuladores de dispositivos, Todos los emuladores de dispositivos u Otros.

IDeviceEmulatorManager::RegisterRefreshEvent

Registra el evento de actualización del Administrador de emuladores de dispositivos.

IDeviceEmulatorManager::UnRegisterRefreshEvent

Cancela el registro del evento de actualización.

Comentarios

Para crear un objeto que implementa esta interfaz, utilice CoCreateInstance.

Un objeto que implementa esta interfaz es una lista vinculada que contiene todos los nodos de nivel raíz de la ventana del DEM.

Ejemplo

En este ejemplo se muestran los nodos, SDK o plataformas y emuladores de la ventana Administrador de emuladores de dispositivos.

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

Requisitos

DEMComInterface.tlb

Vea también

Otros recursos

Muestras del emulador de dispositivos