Well, the real goal is to code in neither UNICODE nor ANSI, but use universal types and methodology so you can build for either. That is what TCHAR and associated types and functions are for.
Along that line, I really don't think L"something" should be used at all. First of all, the syntax is completely counterintuitive to C/C++. Second, it is forcing wide char, so it will not build for ANSI. _T() or _TEXT() are the proper macros to use.
Another technique to that end, that I've demonstrated in examples many times here at PM, is to make certain you correctly note whether the API accepts string lengths by character count or by byte count. Most APIs take the length of the string in characters. So for example:
TCHAR buffer[128];
SomeAPI(buffer, sizeof(buffer)/sizeof(TCHAR));
That will provide the number of characters buffer can hold as the second parameter, while not hardcoding the value within the API call, and will build for both ANSI and UNICODE.
Dan East