thpatch / win32_utf8

Transparent UTF-8 support for native Win32 ANSI applications
The Unlicense
99 stars 7 forks source link

Strange thing about RegisterClass: the lpfnWndProc property of WNDCLASS struct #1

Open Meigyoku-Thmn opened 7 years ago

Meigyoku-Thmn commented 7 years ago

At here https://github.com/thpatch/win32_utf8/blob/master/src/user32_dll.c#L45 I find it's very strange that you just copy the lpfnWndProc without doing anything more. A WindowProc callback can receive certain messages (such as WM_CREATE) which have string in lParam or wParam. So if we pass a WindowProc to RegisterClassW, then it can receive wide character string. But the WindowProc itself is programmed to handle only ANSI string (or Multibyte string). So how can it work properly?

Amaroq-Clearwater commented 4 years ago

That's a good question. The repository was last updated in 2019 though, so this might have already been addressed.

brliron commented 4 years ago

Nope, I think that's still the case. The only thing we do is replacing DefWindowProcA with DefWindowProcW. This project is pushed by the needs of thcrap, which itself is pushed by the Touhou Project games, so I guess these games just don't do that.

Amaroq-Clearwater commented 3 months ago

This project should probably be forked then, that way it can be updated more frequently for a more general use case.

brliron commented 3 months ago

I don't think a fork would fix this issue. What this project would need, in order to have greater compatibility than whatever the Touhou Project games need, is more contributors.

Amaroq-Clearwater commented 3 months ago

Might wanna advertise it then. And win32_smartdlg.