What is the difference between the `A` and `W` functions in the Win32 API?

ascii, unicode, winapi

Solution

The `A` functions use Ansi (not ASCII) strings as input and output, and the `W` functions use Unicode string instead (UCS-2 on NT4 and earlier, UTF-16 on W2K and later). Refer to MSDN for more details.

Problem

What is the difference in calling the Win32 API function that have an `A` character appended to the end as opposed to the `W` character. I know it means `ASCII` and `WIDE CHARACTER` or Unicode, but what is the difference in the output or the input? For example, If I call GetDefaultCommConfigA, will it fill my COMMCONFIG structure with ASCII strings instead of WCHAR strings? (Or vice-versa for GetDefaultCommConfigW) In other words, how do I know what Encoding the string is in, ASCII or UNICODE, it must be by the version of the function I call `A` or `W`? Correct? I have found this question, but I don't think it answers my question.

Original source

Related problems