The MASM Forum

General => The Campus => Topic started by: minor28 on January 01, 2020, 12:20:43 AM

Title: [solved] GetPixel problem, manifest problem
Post by: minor28 on January 01, 2020, 12:20:43 AM
This is the manifest I usually use.


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
   <assemblyIdentity
      version="1.0.0.0"
      processorArchitecture="*"
      name="Company.Product.Name"
      type="win32"/>
   <description></description>
   <dependency>
      <dependentAssembly>
         <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="*"
            publicKeyToken="6595b64144ccf1df"
            language="*"/>
      </dependentAssembly>
   </dependency>
</assembly>


Now I need to run the application in different DPI modes to get GetPixel API to work correct. According to the documentation, it is advised not to use SetProcessDPIAware API but adjust the manifest instead. There are four modes. This is how I think the adjustment would be made.


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
   <assemblyIdentity
      version="1.0.0.0"
      processorArchitecture="*"
      name="Company.Product.Name"
      type="win32"/>
   <application xmlns="urn:schemas-microsoft-com:asm.v3">
      <windowsSettings>
         <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
            true
         </dpiAware>
      </windowsSettings>
   </application>
   <description></description>
   <dependency>
      <dependentAssembly>
         <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="*"
            publicKeyToken="6595b64144ccf1df"
            language="*"/>
      </dependentAssembly>
   </dependency>
</assembly>


No effect on GetPixel. With <dpiAwareness></dpiAwareness> you can't even open the window.

Does anyone have an idea how to solve this?
Title: Re: GetPixel problem, manifest problem
Post by: minor28 on January 01, 2020, 01:38:01 AM
Solved.


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="*"
name="Company.Product.Name"
type="win32"/>
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
true/pm
</dpiAware>
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
system
</dpiAwareness>
</windowsSettings>
</application>
<description></description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"/>
</dependentAssembly>
</dependency>
</assembly>