> I chose SHGetRegPathW from shlwapi, because that seemed to be the best > matching function for getting the registry string. I did not call a *AW > function directly. I fixed the SHQueryValueExW to convert the incoming > strings to ascii, _because_ the SHQueryValueExAW function had a bug in > handling ExpandEnviromentStringsA (always failed) and was ascii-only (it > doesn't seem to handle unicode at all). That was also the part i was not > completely happy about. I must say i'm not to happy about including > shlwapi either, but i think it is better than reinventing the wheel. I'm looking into the SHReg* functions at the moment and do a little cleanup i allready found some more glitches.
> What would you suggest i do? Move SHGetRegPath into a libwine and make a > dependency from shlwapi and compobj(ole32) to that library? reimplement > SHGetRegPathW and SHQueryValueExW in place in compobj.c ? Especially > with the lib seperation going on.. there will be more and more inter-dll > dependencys, must we avoid that at all cost? No, we must avoid such dependencys and reimplement this functionality where needed. I send a patch in a few days. juergen