다음을 통해 공유


IDeviceEmulatorManager

업데이트: 2007년 11월

이 인터페이스는 장치 에뮬레이터 관리자를 나타냅니다. 이 개체는 장치 에뮬레이터 관리자 창을 제어하고 데이터 저장소, 내 장치 에뮬레이터, 모든 장치 에뮬레이터, 기타 같은 DEM(장치 에뮬레이터 관리자)의 루트 수준 노드를 반복하는 데 사용됩니다.

interface IDeviceEmulatorManager : IDispatch ();

메서드

메서드

설명

IDeviceEmulatorManager::EnumerateSDKs

현재 노드의 플랫폼을 열거합니다.

IDeviceEmulatorManager::ShowManagerUI

장치 에뮬레이터 관리자 창을 표시하거나 숨깁니다.

IDeviceEmulatorManager::MoveNext

다음 노드로 이동합니다.

IDeviceEmulatorManager::Reset

첫 번째 노드(대개 데이터 저장소)로 다시 이동합니다.

IDeviceEmulatorManager::Refresh

데이터 저장소에서 정보를 다시 읽어 열거형을 새로 고칩니다.

IDeviceEmulatorManager::get_Name

데이터 저장소, 내 장치 에뮬레이터, 모든 장치 에뮬레이터, 기타 같은 현재 노드 이름을 가져옵니다.

IDeviceEmulatorManager::RegisterRefreshEvent

장치 에뮬레이터 관리자의 새로 고침 이벤트를 등록합니다.

IDeviceEmulatorManager::UnRegisterRefreshEvent

새로 고침 이벤트 등록을 취소합니다.

설명

이 인터페이스를 구현하는 개체를 만들려면 CoCreateInstance를 사용합니다.

이 인터페이스를 구현하는 개체는 DEM 창의 모든 루트 수준 노드를 포함하는 연결된 목록입니다.

예제

이 예제에서는 장치 에뮬레이터 관리자 창에 노드, SDK/플랫폼 및 에뮬레이터를 나열합니다.

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

요구 사항

DEMComInterface.tlb

참고 항목

기타 리소스

장치 에뮬레이터 샘플