News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests

Main Menu

[solved] GetPixel problem, manifest problem

Started by minor28, January 01, 2020, 12:20:43 AM

Previous topic - Next topic

minor28

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?

minor28

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>