On Thu, Jan 31, 2008 at 09:52:17PM +0100, Roderick Colenbrander wrote:
In case of your dll I guess it should be hardcoded. Shipping extra files puts an extra burden on packagers and it likely isn't what windows is doing.
The .INF is compiled into the DLL as a resource. Packagers shipping binaries won't have to do anything different. It simply makes editting the registry keys much easier and less error prone. Also, Roy obviously put a lot of work into doing it the nice way, so I feel bad ripping it out and hardcoding everything which just makes the code uglier anyway.
The .INF is not loaded from a path, it's loaded from the HINSTANCE of the DLL, which is provided to the DLL in DllMain.
I admit this isn't exactly the way Windows does it because the registry entries appear to be in the initialized data section of the Windows DLL, but then again, we don't have to maintain the Windows DLL.