https://bugs.winehq.org/show_bug.cgi?id=52787
Bug ID: 52787 Summary: Invalid function prototype for "RegisterUserApiHook" when compiling for C++ Product: Wine Version: 7.5 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: tayarani@google.com Distribution: ---
This change added a function prototype which does not compile in C++: https://source.winehq.org/git/wine.git/blobdiff/e02a7e579cc48079d70f2ef00957...
This is invalid C++ syntax as "new" is a reserved keyword:
WINUSERAPI BOOL WINAPI RegisterUserApiHook(const struct user_api_hook *new, struct user_api_hook *old);
This is what the compiler generates:
"error: invalid parameter name: 'new' is a keyword"
This means any C++ code trying to include "windows.h" will fail with that error.
The fix is fairly simple. That line should be changed to this to fix it:
WINUSERAPI BOOL WINAPI RegisterUserApiHook(const struct user_api_hook *new_hook, struct user_api_hook *old_hook);
(i.e., rename the variable).