regsvr32: Replace printf calls with WriteConsole function (try 2)

Hugh McMaster hugh.mcmaster at masterindexing.com
Sun Mar 30 19:14:47 CDT 2014


On Sunday, 30 March 2014 7:49 AM, Lauri Kenttä wrote:
> Hugh McMaster wrote:
> > -    printf("\t[/i]  Call DllInstall passing it an optional [cmdline];\n");
> > -    printf("\t      when used with /u calls dll uninstall\n");
> > +\  [/i]  Call DllInstall, passing an optional [cmdline].\n\ \tWhen
> > +used with [/u], regsvr32 also calls DLL Uninstall.\n\
> 
> This whole "calls DLL Uninstall" thing is a bit weird, as there isn't a function
> named DLL Uninstall or DllUninstall.

The string was simply an updated version of the official regsvr32 dialog:
   " /i - Call DllInstall passing it an option [cmdline]; when used with /u calls dll uninstall "
But I agree, as there is no DllUninstall function, updating the text for clarity would be preferable.

> Maybe you should change it to something more exact like:
> "When used with [/u], " +
> 1) "passes [also] the uninstall flag [to DllInstall]"
> 2) "uses DllInstall to uninstall the DLL"

These better capture the essence of the " regsvr32 /u /i ... " command.

> 3) "the bInstall parameter is set to FALSE"
> 4) "calls DllInstall with bInstall set to FALSE"

Both examples are good, but may cause confusion as the Boolean bInstall is not referenced anywhere else in the usage dialog. 

> If this is too radical, I'd suggest that you at least remove the "also".
> With my English, it now says that regsvr32 /i /u calls DllInstall and also calls DLL
> Uninstall, which is clearly neither true nor logical. (It really calls UnregisterDll
> and DllInstall(FALSE,cmdline).) In addition, repeating "regsvr32" looks strange
> to me in this kind of context.

Fair point.  Using your examples as a starting point, what do you think of the following options:
(1)    Call DllInstall, passing an optional [cmdline]. When used with [/u], passes an uninstall flag to DllInstall.
(2)    Call DllInstall, passing an optional [cmdline]. When used with [/u], an uninstall flag is passed to DllInstall.
(3)    Call DllInstall, passing an optional [cmdline]. When used with [/u], uses DllInstall to uninstall the DLL.
(4)    Call DllInstall, passing an optional [cmdline]. When used with [/u], the bInstall parameter of DllInstall is set to FALSE.

For the record, I'm favouring options (3) and (4).


More information about the wine-devel mailing list