ちょっと質問なんですが、WinAPIで文字列を表示するときに

LPTSTR ctStr = TEXT("あいうえおabcかきくけこdefさしすせそght");
DrawText(hdc , ctStr , -1 , &rect , DT_CENTER | DT_WORDBREAK );

でも

char *ctStr = TEXT("あいうえおabcかきくけこdefさしすせそght");
DrawText(hdc , ctStr , -1 , &rect , DT_CENTER | DT_WORDBREAK );

でも、クライアントエリアに表示されるのはどちらもきちんと 

あいうえおabcかきくけこdefさしすせそght

と表示されます。

自分の認識としては、char*で表示させると2バイト文字は文字化けしてでると思っていたのですが
どうしてきちんと表示されるのでしょうか?

もしどちらでもいいのであれば、LPCTSTRなどの存在する意味が分からないのですが…。