This guy has it all laid out in some nice reusable code (MIT license).
This visibly changes TreeView style ( + expand button becomes V), but the window remains white. I tried SetWindowTheme(hwnd, L'Explorer', NULL) for TreeView and ListView. One other example: Open File dialogs become dark in all Desktop applications, while the application itself remains in old light theme. I noticed that Windows Explorer Control Panel is partially light and partially dark, so it should be a per-window setting, rather then per-process setting. How is it implemented under the hood? Is there some way (manifest, WINAPI, etc) to subscribe for new dark theme? Still, Desktop applications other then Windows Explorer are not affected at the moment. This means that Windows now have internal support for it. However, with this Windows 10 release, it also affects Windows Explorer, which is a Desktop application. While this setting exists for a while now, it only affected UWP applications. Registry : HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize\AppsUseLightTheme = DWORD:0.
Starting with October 2018 Update (version 1809) Win10 has support for Dark theme in Windows Explorer.