The [documentation](https://source.winehq.org/WineAPI/AtlAxWinInit.html) for `AtlAxWinInit` states that it initialises ATL's control hosting code by registering window classes "_and some messages_". MSDN's documentation phrases this as "_plus a couple of custom window messages_", but Wine's implementation didn't register any custom window messages. Logging calls to `RegisterWindowMessage` showed that Visual Studio 2005, when going into Options -\> Projects and Solutions -\> VC++ Directories, calls this function to get the message IDs for custom messages name `WM_ATLGETCONTROL` and `WM_ATLGETHOST`. I've then registered those same messages in `AtlAxWinInit` and logged when they were called in `AtlAxWin_wndproc`. Since they were called with 0 for both `wParam` and `lParam`, the only sensible implementation would be routing the calls through `AtlAxGetControl` and `AtlAxGetHost` and returning the `IUnknown` pointer from the window procedure. This minor change now makes the VC++ Directories control in Visual Studio 2005 work as expected (and probably other stuff too). In that, it fixes one of the problems listed on the [Visual Studio 2005 AppDb page](https://appdb.winehq.org/objectManager.php?sClass=version&iId=4494), specifically as described in the comment "Building" posted by Dave on 2021-08-01. -- v7: Added tests for proper handling of WM_ATLGETCONTROL and WM_ATLGETHOST. include: Define more runtimeclasses in windows.storage.streams.idl. bcrypt: Get rid of the unixlib. bcrypt: Use SymCrypt for keys. xml2: Remove unused files. vkd3d: Remove unused files. ldap: Remove unused files. icui18n: Remove unused files. icucommon: Remove unused files. gsm: Remove unused files. fluidsynth: Remove unused files. makedep: Also ignore missing headers when included from external lib header. makedep: Add a helper function to skip an initial directory. wineandroid: Raise minimum SDK version to 28 (Android 9.0). user32/tests: Fix test_window_extra_data_proc. user32: Set FNID for the builtin scrollbar window class. user32: Store a scroll_info pointer in the scrollbar control info. webservices/tests: Improve double tests. ddraw/tests: Remove extra backbuffer1 release in test_surface_attachment(). ntdll: Preserve nonvolatile registers across VEH callbacks. vbscript/tests: Add tests for sub declaration scope. vbscript: Handle class declaration scope in the parser. vbscript/tests: Add tests for class declaration scope. notices: Add a file to collect all third-party copyright notices. tomcrypt: Remove library. bcrypt: Use SymCrypt for hashes. opengl32: Track implicit buffer names allocation. opengl32: Track client-side buffer names allocation. opengl32: Query the context profile mask on init. opengl32: Share display lists in wglShareLists on the PE side. opengl32: Allocate display lists for client-side contexts. win32u: Fixed incorrect glyph outline size. riched20/tests: Expand editor tests to verify \pntext behaviour. riched20: Properly capture \pntext content. dsound/tests: Don't fail test if device cannot be opened the second time. dssenh: Use _aligned_free instead of free for aligned allocations (ASan). rsaenh: Use _aligned_free instead of free for aligned allocations (ASan). This merge request has too many patches to be relayed via email. Please visit the URL below to see the contents of the merge request. https://gitlab.winehq.org/wine/wine/-/merge_requests/10869