locked
Magnification API - Setting up an include list for the Magnifier on Win7 is not working RRS feed

  • Question

  •  

    Hi,

     

    According to the Magnification API it is possible to get the Magnifier window to show only the selected windows in the magnified view. For that all you need to do is to call the MagSetWindowFilterList function with the MW_FILTERMODE_INCLUDE flag. But when I try to do so the function returns TRUE, but it has completely no effect on the filtering, the magnified view is just the same as it was before the call. On Vista this function works alright, I was able to successfully set an include list for the magnifier window, but not on Windows 7, however the usage of this function does not seem to be very complicated. And I also have to mention that the MagSetWindowFilterList function also works alright on Windows 7 with the MW_FILTERMODE_EXCLUDE flag, up to 12 windows (why 12?), and Vista does not have this limitation.

     

    Is there any way to set a bunch of windows and show only them in the magnified view on Windows 7? And is really 12 the maximum number of windows that can be excluded from the magnified view on Windows 7? I tried this on both x86 and x64, and of course with Aero turned on, but the result was the same on both configurations (apart from the fact that sometimes the magnified view was a blank black view on x86 machines, but it is considered to be a Magnification bug according to these forums).

     

    Any help would be  highly appreciated!

    Best regards,

     

    Peter

     

    Wednesday, February 16, 2011 10:46 AM

All replies

  • Hi Peter,

    I had a similar problem a few weeks ago.

    I use MW_FILTERMODE_EXCLUDE to exclude a list of windows from magnification on Windows 7.

    I noticed that MagSetWindowFilterList doesn't work if you pass more than 25 window-handles to the function.

    So it's strange that it works only with 12 handles on your system.


    I also noticed that it's very important that all handles in the list are unique.

    For example:
    If you pass a list of three identical window handles to the function and call MagSetWindowTransform after that, the "Desktop Windows Manager"-Process will crash. I could reproduce it on all of my systems.

    So I guess there are still some bugs in the Magnification-API, apart from the Black-Magnifier-Bug ;-) 

    Best regards

    Martin
    Wednesday, February 16, 2011 3:01 PM
  •  

    Hi Martin,

    This "three-identical-window-handle" crash is just nasty! :) I didn't know about it, but I can also reproduce that. I've started to think that there is something wrong with this Magnification API a long before, but now I'm getting sure that it is buggy. But I'm still wondering why 25 is the limit for the exclude list on your system, and why 12 on mine. I checked it again, and it is still 12 by me.

    By the way, could you also confirm that MW_FILTERMODE_INCLUDE does not work at all? Or does it work on your system? (At least for a couple of windows.) And did you manage to report the Black-Magnifier-Bug to the Microsoft support? Are they willing to fix it?

    Best regards

    Peter

    Thursday, February 17, 2011 4:37 PM
  • Hi Martin and Peter,

    Thanks for all this feedback on the MagSetFilterList() function. We’ll investigate what might be happening in the cases you’ve described. (As you’ve pointed out, it’s necessary to specifically remove duplicate windows from the list before calling MagSetFilterList().) While the lower limit of 12 is unexpected, do you find this to be a problem for you in practice?

    Regarding the problem of the solid black magnification results, we’ve determined that this is often unavoidable when running a 32-bit magnification app on a 64-bit machine. Are you also seeing the problem with an app whose bitness matches the machine’s?

    Thanks

    Guy

    Friday, February 18, 2011 5:43 PM
  • Hi,

    I can confirm that MW_FILTERMODE_INCLUDE doesn't work at all on Windows 7. I just tried it out with a different count of windows, but it never works.

    I also checked the limit of MW_FILTERMODE_EXCLUDE again, but it's still 25 on my system. Anyway I guess neither 12 nor 25 is actual the intended limit of that function because that doesn't make much sense and isn't documented anywhere. Luckily I reached the limit only because of a bug in my own software, so it isn't a problem for me in practice.


    @Guy

    I've reported the Magnification Bug here last year:

    http://social.msdn.microsoft.com/Forums/en-US/windowsaccessibilityandautomation/thread/6cc761ea-8a54-4403-9cca-2fa8680f4409


    I've passed the Magnifier Bug to my co-worker a while ago. As far as I know he reported the bug to the microsoft assistive technology vendor program but didn't get any feedback by now.



    Best regards

    Martin
    Friday, February 18, 2011 6:23 PM
  •  

    Hi Guy,

    I can also confirm that there is no solid black magnification result with an app whose bitness matches the machine's. In that case it works fine. And I can also tell that the 12 or 25 limit of the exclude list is also not a problem for me in the practice, or at least it has not been a problem so far.

    But I would almost do anything for the properly working include filtermode. That would be really important for me in practice. Is there anything I could do for it? Of course I wait for the results of your investigation first.

    Thanks

    Peter

    Saturday, February 19, 2011 10:42 AM
  •  

    Hi Martin,

    Thank you for your confirmation! So it is not me who is doing something wrong with the include list.

    Peter

    Saturday, February 19, 2011 10:44 AM
  • Thanks again for the details. It looks like some of the unexpected behavior can be worked around before the call, (ie running 64-bit magnifiers on a 64-bit machine, and ensuring no duplicate windows exist in the list,) and the inconsistent (and undocumented) limit to the number of windows isn't a problem in practice.

    That leaves the issue that only the "exclude" portion of the API is working. Any attempt to set an "include" list has no effect. I'll reply to this forum if I find out anything that can help with this.

    Guy

     

    Friday, February 25, 2011 9:39 PM
  •  

    Thank you, Guy! I really hope for a positive answer!

    Peter

    Monday, February 28, 2011 8:02 PM
  •  

    Hi,

    Is there any news regarding to the include list problem?

    Peter

    Thursday, April 14, 2011 7:48 AM
  • That leaves the issue that only the "exclude" portion of the API is working. Any attempt to set an "include" list has no effect. I'll reply to this forum if I find out anything that can help with this.

    Bump? MSDN says that MW_FILTERMODE_INCLUDE is not supported in win7/win8, but I'm trying to use it on win10 and its not working either.

    Thursday, November 7, 2019 6:30 PM