Direc2D も XAudio2 も全く詳しくはないので、C++ と Visual Studio に関することだけ。
(C++ と Visual Studio に精通しているわけではないですが)
C++ では文字列リテラルの型は const char[] です。
C++98/03 では諸般の事情で、char * への代入が許容されていましたが、C++11 以降ではエラーになります。とはいえ、処理系によってはデフォルトの動作としてはエラーにしない場合もあります。
Visual C++ でもデフォルト(コンパイルオプションなし)ではエラーは出ないようですが、/permissive- オプションを付けるとエラーになります。
Visual Studio で新規プロジェクトを作成するとき、以前のバージョンでは /permissive- オプションは指定されていなかったのですが、バージョン 15.5 以降ではデフォルトで指定されるようになったみたいです。
標準への準拠参照
コンパイラーの動作を以前と同じようにするには、プロジェクトのプロパティを修正して、“準拠モード”を“いいえ”にして /permissive- オプションをはずせばいいのですが、個人的には新規で作るプログラムは /permissive- オプションは付けたままにして、ソースを修正するのがいいと思っています。
試しに
こちらのサンプルを Visual Studio 2017 (15.9.11) でビルドしてみましたが、/permissive- オプションをはずせば、そのままのソース(wav ファイル名は変更しましたが)で特にエラーも無くビルドが終了し、実行も出来ました。
ただし、API によっては LPTSTR となっているパラメーターに文字列リテラルを渡すとエラーになることがあるので、明確に LPCTSTR となっていないパラメータには文字列リテラルは渡さない方が無難ですね。