更新:2007 年 11 月
使用下列步骤可以创建以编程方式启动并控制设备仿真器管理器 (DEM) 的 Visual C++ Win32 控制台应用程序。该应用程序通过使用 DEM 自动化接口来控制 DEM。
通过使用这些接口,可以用编程方式枚举、启动、关闭计算机上的设备仿真程序以及将它们插入底座和移除底座。这些接口通常由需要对大量仿真程序自动执行测试的质量保证 (QA) 团队使用。
创建使用设备仿真器管理器自动化接口的项目
创建一个 Visual C++ Win32 控制台项目。
启动 Visual Studio
在“文件”菜单上,指向“新建”,然后单击“项目”。
将出现“新建项目”对话框。
展开“Visual C++”,然后单击“Win32”。
在“模板”窗格中单击“Win32 控制台应用程序”,将项目命名为 DEMSample,然后单击“确定”。
将出现“Win32 应用程序向导”。
单击“下一步”。
在“应用程序设置”页选中“ATL”,然后单击“完成”。
随即将创建新项目,并将其显示在“解决方案资源管理器”中。
将 Microsoft Device Emulator 添加到项目的包含目录中。
在“解决方案资源管理器”中右击“DEMSample”,再单击“属性”。
将出现“DEMSample 属性页”对话框。
展开“配置属性”,然后单击“C/C++”。
在“附加包含目录”旁边,添加 Microsoft Device Emulator 的文件夹,然后单击“确定”。
默认位置为 驱动器:\program files\Microsoft Device Emulator\1.0。
导入导入自动化接口。
在“解决方案资源管理器”中双击“stdafx.h”,以便在代码编辑器中将其打开。
将下面的代码添加到该文件的末尾:
#import "DEMComInterface.tlb" no_namespace raw_interfaces_only
使用应用程序 Main 方法中的 IDeviceEmulatorManager。
在“解决方案资源管理器”中双击“DEMSample.cpp”,以便在代码编辑器中将其打开。
在 Main 方法中的 return 0; 的紧上方添加以下代码:
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; } // Show the window. hr = pDeviceEmulatorManager->ShowManagerUI(true); system("pause"); // Hide the window. pDeviceEmulatorManager->ShowManagerUI(false); system("pause"); return true; CoUninitialize(); } return 0; }
在“调试”菜单上单击“启动调试”。
该程序会启动设备仿真器管理器并调用 IDeviceEmulatorManager::ShowManagerUI,以使其可见。