使用 IViewHelper Clone-View COM 对象
TMM 将在新的监视器和持久化监视器配置中使用硬件供应商的克隆视图 IViewHelper COM 接口对象的方法。 在持久化监视器配置中,TMM 还原显示数据 (即显示模式和拓扑数据) 监视器。 TMM 可以通过 IViewHelper::SetConfiguration 方法将此显示数据传递给用户模式显示驱动程序,以便驱动程序可以修改或折叠其他显示数据 (例如 gamma 或电视设置) 。
视频演示网络 (VidPN) 错误通过 IViewHelper 的方法返回。 因此,如果 TMM 应用了不正确的拓扑,则 VidPN 会失败,失败结果将传回调用函数。 将目标映射到两个源或使用 VidPN 无法识别的目标或源标识符是不正确的拓扑示例。
TMM 通过 UserModeDriverGUID 字符串注册表值确定 IViewHelper COM 接口对象。 硬件供应商应在 DISPLAY_DEVICE 结构的 DeviceKey 成员指定的注册表项下添加此值。 调用 Win32 EnumDisplayDevices 函数将在 lpDisplayDevice 参数指向DISPLAY_DEVICE中返回此注册表项信息。 如果存在多个 DeviceKey 名称,则此值应出现在每个键下。 下面是设备密钥和 UserModeDriverGUID 字符串注册表值的示例:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\{7661971C-A9BD-48B5-ACBC-298A8826535D}\0000]
"UserModeDriverGUID"="{YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY}"
若要使 COM 加载 IViewHelper COM 接口对象,COM 对象应注册为进程内 (进程内) 处理程序,线程模型应为“两者”。 已注册的 GUID 应与 UserModeDriverGUID 中的 GUID 匹配。 有关两个线程模型属性的信息,请参阅Microsoft Windows SDK文档。
应仅在系统目录中复制并注册正确编译的 IViewHelper COM 接口对象 DLL 版本。 也就是说,应仅复制并注册 64 位操作系统的 64 位 IViewHelper DLL 和 32 位操作系统的 32 位 IViewHelper DLL。 这两个 DLL 二进制文件不应同时存在于同一台计算机上。 如果两个二进制文件同时存在于同一台计算机上,即使 Windows 上的 Windows (WOW) ,TMM 也不会正常运行。