Jacek Caban jacek@codeweavers.com writes:
I think both 2) and 3) are way better than regsvr.c. It avoids code duplication and you can add much more custom registries without a single line of C (I'd call it more flexible, but it's more a better flexibility/efforts factor). IRegistrar is much simplier than .inf parser, so it has fewer builtin features. Most useful things may be handled IRegistrar and very simple code in DllRegisterServer implementation to pass some string replacements. Using it would also require moving atliface.idl to include directory. Its advantage is that .rgs files are much cleaner as they represent keys as a tree (see dlls/atl/atl.rgs for an example).
I usually use .inf files, but if we'd be considering standardization, my vote would go for IRegistrar and I'm surely all for limiting regsvr.c use.
Certainly anything is better than regsvr.c files. The ideal solution would be to be able to generate the registration code with widl, along the lines of dlldata.c (though we could also have it generate a .inf/.rgs file if that's easier). It would probably require defining some sort of magic attributes to add to the headers.