当前位置: 首页 > news >正文

windows显示驱动开发-多监视器管理器(三)

处理现有的监视器配置

除了在双监视器配置中检测新监视器和启动暂时性多监视器管理器 (TMM) 对话框外,TMM 还必须还原以前的显示配置。 TMM 可以通过 IViewHelper::SetConfiguration 方法将显示数据传递给用户模式显示驱动程序来还原显示配置。 TMM 将分配内存,并将显示模式和拓扑信息存储在内存中。 TMM 在 SetConfiguration的 pIStream 参数指向的 IStream 接口中传递此内存。 用户模式显示驱动程序还可以修改或折叠其他显示数据 (例如 gamma 或电视设置) 。 驱动程序完成显示数据后,驱动程序将调用 IStream::Release 方法来释放内存。

下图显示了 TMM 还原现有监视器配置时发生的操作流。

确定平台是移动平台还是桌面平台

TMM 仅在移动计算机上运行,并在台式计算机上自动禁用。 硬件供应商应启用并使用自己的专有方法在台式计算机上进入克隆视图。 他们应确定平台是否为移动平台,以避免使用其专有方法在移动计算机上进入克隆视图,转而使用 TMM。

硬件供应商可以使用以下代码来确定平台是移动平台还是桌面平台。 然后,平台可以使用适当的机制进入克隆视图。

#include <Powrprof.h>   // For GetPwrCapabilitiesBOOL IsMobilePlatform(){BOOL fIsMobilePlatform = FALSE;fIsMobilePlatform = (PlatformRoleMobile == PowerDeterminePlatformRole());POWER_PLATFORM_ROLE iRole;// Check if the operating system determines // that the computer is a mobile computer.iRole = PowerDeterminePlatformRole();if (PlatformRoleMobile == iRole){fIsMobilePlatform = TRUE;}else if (PlatformRoleDesktop == iRole) // Can happen when a battery is not plugged into a laptop{SYSTEM_POWER_CAPABILITIES powerCapabilities;if (GetPwrCapabilities(&powerCapabilities)){// Check if a battery exists, and it is not for a UPS.// Note that SystemBatteriesPresent is set on a laptop even if the battery is unplugged.fIsMobilePlatform = ((TRUE == powerCapabilities.SystemBatteriesPresent) && (FALSE == powerCapabilities.BatteriesAreShortTerm));}// GetPwrCapabilities should never fail // However, if it does, leave fReturn == FALSE.}return fIsMobilePlatform;}
http://www.dtcms.com/a/508357.html

相关文章:

  • 未来之窗昭和仙君(二十七)智能硬件交互功——东方仙盟筑基期
  • map相关方法笔记
  • 保健品网站建设pc主页网站建设
  • 大数据网站建设和wordpress js代码放哪
  • hot100练习-13
  • 软件下载网站如何履行安全管理免费网络加速器永久免费版
  • 基于单片机的双机串口通信与数字串存储系统设计
  • 嘉兴建设网站模版用iis在自己家电脑上做网站
  • 无人机RTK信号增强技术要点
  • 重庆网站建设开发iis8.5 wordpress
  • Kubernetes(五) 集群调度与存储管理完全指南
  • 数据过滤网站模板下载网站防采集 如何采集
  • DeepSeek再开源3B-MoE-OCR模型,视觉压缩高达20倍,支持复杂图表解析等多模态能力!
  • 网站推广话术与技巧codewars网站
  • 南京个人做网站怎么创建网站后台
  • 【Misc】图片隐写刷题 1
  • Spring Boot 3零基础教程,WEB 开发 Thymeleaf 模板引用 笔记43
  • 深圳哪里做网站好青岛一品网站建设
  • 中小企业网站的建设实践报告电脑怎么打不开建设银行网站
  • 万网搭建淘宝客网站门户网站建设招标文件
  • 9、dockerfile
  • Python 创建、修改、或删除 Excel 命名区域
  • 上海网站seo诊断免费店铺logo设计
  • 专业做礼品团购的网站wordpress调用分类id
  • 网站设计用那个软件网站开发绩效考核
  • 软件开发和网站开发区别app简易开发平台
  • 如何不用百度推广做网站wordpress都是不安全模块
  • 机械加工类网站云主机 多个网站
  • 基于I2C的stm32f103c8t6的硬件配置(寄存器实现)
  • Android 系统中进程间通信方式