IEnumVMIDs
업데이트: 2007년 11월
이 인터페이스는 Pocket PC 2003 Square 에뮬레이터 같은 DEM(장치 에뮬레이터 관리자)의 장치 수준 노드를 나타냅니다.
interface IEnumVMIDs : IDispatch {};
메서드
메서드 |
설명 |
---|---|
열거형의 현재 장치를 나타내는 IDeviceEmulatorManagerVMID를 구현하는 개체를 가져옵니다. |
|
목록의 다음 장치로 이동합니다. |
|
목록의 첫 번째 장치로 다시 이동합니다. |
설명
이 인터페이스를 구현하는 개체를 만들려면 IEnumManagerSDKs::EnumerateVMIDs를 사용합니다. 이 인터페이스를 구현하는 개체는 플랫폼의 모든 장치를 포함하는 연결된 목록입니다.
예제
이 예제에서는 장치 에뮬레이터 관리자 창에 노드, 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