Use StrSafe string manipulation functions in place of most
instances of strcpy, strcat, sprintf, etc. With the use
of StringCbCopy, StringCbCat, StringCbPrintf, etc. there
is no longer a need to manually assign a NUL to the end
of a C string buffer as was required with strncpy or
strncat.
There is one strcpy instance remaining due to the inability
to know what the length of the destination buffer. The API
needs to be altered to make the destlen available and that is
not an appropriate change for this patchset. A deprecated
warning is a reminder to revisit this in the future.
Several int to unsigned int type changes to avoid signed
vs unsigned warnings.
Shuffle the order of header files to avoid macro
redefinition warnings.