microsoft / microsoft-ui-xaml

WinUI: a modern UI framework with a rich set of controls and styles to build dynamic and high-performing Windows applications.
MIT License
6.38k stars 683 forks source link

Pen Input in WinUI3 x86 App will cause a crash #9916

Open BradleyBao opened 3 months ago

BradleyBao commented 3 months ago

Describe the bug

WinUI3 x86 App cannot handle pen input. As long as you click the window (besides title bar) will cause a crash. Click on title bar / Drag the title bar will not cause the crash.

Steps to reproduce the bug

  1. Package your app in x86 (or you can create a new one)
  2. Use Pen Tablets to click the window (besides title bar)
  3. Crash due to an unhandled exception (The program ##### has exited with code 3221226525 (0xc000041d).)

Expected behavior

The app is expected to function properly.

Screenshots

No response

NuGet package version

WinUI 3 - Windows App SDK 1.5.6: 1.5.240802000

Windows version

Windows 11 (22H2): Build 22621

Additional context

Pen Input can be handled properly on x64 platform. I only tested Pen Tablets, not sure about the others like touch screen.

github-actions[bot] commented 3 months ago

Hi I'm an AI powered bot that finds similar issues based off the issue title.

Please view the issues below to see if they solve your problem, and if the issue describes your problem please consider closing this one. Thank you!

Open similar issues:

Note: You can give me feedback by thumbs upping or thumbs downing this comment.

mohuynh-clgx commented 2 weeks ago

Is there any update on this issue? We are experiencing this issue as well. We have a x86 MFC application using XAML islands and when using a pen to click anywhere within the XAML island window, our application crashes right away. This is a significant issue and we've not been able to find any workarounds and this is forcing us to postpone a major release of our application.

Using the mouse or the touch screen on the same device does not crash - it only happens when using the pen.

We've not been able to reproduce the crash on Windows 10. The crash only seems to happen when using the pen on Windows 11 devices.

We've tried the following versions and we seem to get a crash in each of them: Windows App SDK 1.4.7 Windows App SDK 1.5.0 Windows App SDK 1.5.5 Windows App SDK 1.6.1 Windows App SDK 1.6.2

We were also able to reproduce the issue using a small sample application. When building in x86, using the pen to click anywhere within the XAML island crashes. When building in x64, there are no crashes. Note that we cannot migrate our current MFC application to x64 due to other dependencies.

mohuynh-clgx commented 2 weeks ago

The crash details:

Windows App SDK 1.5.6 - access violation reading location

Microsoft.InputStateManager.dll!std::_Func_class<long,unsigned int,struct tagPOINT *,struct HWND__ *,unsigned int *>::operator()(unsigned int,struct tagPOINT *,struct HWND__ *,unsigned int *) Unknown
    msctf.dll!7710300c()    Unknown
    [Frames below may be incorrect and/or missing, no symbols loaded for msctf.dll] 
    msctf.dll!77106682()    Unknown
    msctf.dll!771046aa()    Unknown
    msctf.dll!77107351()    Unknown
    msctf.dll!77109a0a()    Unknown
    user32.dll!752654fa()   Unknown
    ntdll.dll!7721916d()    Unknown
    msctf.dll!77107ba9()    Unknown
    msctf.dll!77103d5b()    Unknown
    msctf.dll!77109a4d()    Unknown
    kernel32.dll!755f7ba9() Unknown
    ntdll.dll!7720c0cb()    Unknown
    ntdll.dll!7720c04f()    Unknown

Windows App SDK 1.6.2 - access violation reading location

Microsoft.InputStateManager.dll!HandwritingRoutingHandler::GetThreadIdForInput(unsigned int,struct tagPOINT *,struct HWND__ *,unsigned int *)   Unknown
    msctf.dll!7710300c()    Unknown
    [Frames below may be incorrect and/or missing, no symbols loaded for msctf.dll] 
    msctf.dll!77106682()    Unknown
    msctf.dll!771046aa()    Unknown
    msctf.dll!77107351()    Unknown
    msctf.dll!77109a0a()    Unknown
    user32.dll!752654fa()   Unknown
    ntdll.dll!7721916d()    Unknown
    msctf.dll!77107ba9()    Unknown
    msctf.dll!77103d5b()    Unknown
    msctf.dll!77109a4d()    Unknown
    kernel32.dll!755f7ba9() Unknown
    ntdll.dll!7720c0cb()    Unknown
    ntdll.dll!7720c04f()    Unknown
timesyang commented 1 week ago

we have the same issue in our project. and we can change to x64 to resolve this issue but it will take a lot time because some dependencies is not developer by ourselves. please update it ASAP! thank u