はい、仕様です
非同期読み込みでは LoadSoundMem から処理が戻ってきた段階ではファイルが存在するかすら
チェックしていないので、読み込み処理が成功したかどうかは CheckHandleASyncLoad で確認する必要があります
CheckHandleASyncLoad は渡されたハンドルの非同期読み込み処理が完了していれば FALSE が、
まだ完了していなければ TRUE が返るのですが、ハンドルが無効になっている場合は -1 が返ります
LoadGraph や LoadSoundMem はファイルが無かった場合やファイルがあっても非対応の形式だった等で
読み込みに失敗した場合はハンドルを自動的に削除するので、CheckHandleASyncLoad が FALSE を返すように
なったか -1 を返すようになったかで読み込みが成功したかどうかを判断することができます
( TRUE が返ってくる間は、まだ非同期読み込みの処理が完了していないということです )
SetUseASyncLoadFlag( TRUE ) ;
int SoundHandle = LoadSoundMem( "testWav.wav" ) ;
while( ProcessMessage() == 0 )
{
int Result = CheckHandleASyncLoad( SoundHandle ) ;
if( Result == FALSE )
{
// 読み込み成功
break ;
}
else
if( Result == -1 )
{
// 読み込み失敗
break ;
}
}