PlaySound

https://msdn.microsoft.com/ja-jp/library/cc429066.aspx https://msdn.microsoft.com/ja-jp/library/cc429002.aspx

ファイル名、リソース、システムイベントのいずれかで指定されたサウンドを再生します。各システムイベントは、レジストリ内または WIN.INI ファイル内で、1 つのサウンドに関連付けることもできます。

BOOL PlaySound(
  LPCSTR pszSound,  // 再生対象のサウンド
  HMODULE hmod,     // インスタンスハンドル
  DWORD fdwSound    // 再生フラグ
);

パラメータ

pszSound
再生対象のサウンドを、NULL で終わる文字列で指定します。NULL を指定すると、現在再生中のウェーブフォームサウンドが停止します。ウェーブフォーム以外のサウンドを停止するには、fdwSound パラメータで SND_PURGE フラグを指定します。

fdwSound パラメータの 3 つのフラグ、SND_ALIAS、SND_FILENAME、SND_RESOURCE は、pszSound パラメータで指定した文字列が、システムイベントの別名、ファイル名、リソース識別子のどれを指すかを指定します。これらのフラグがいずれも指定されていない場合、PlaySound 関数は、レジストリ内または WIN.INI ファイル内で、指定されたサウンド名の関連付けを検索します。該当する関連付けが見つかった場合、そのサウンドイベントが再生されます。関連付けが見つからなかった場合、その名前はファイル名と解釈されます。

hmod
fdwSound パラメータで SND_RESOURCE を指定した場合、ロード対象のリソースを保持している実行可能ファイルのインスタンスハンドルを指定します。それ以外の場合、NULL を指定します。
fdwSound
サウンド再生のフラグを指定します。次のフラグの組み合わせを指定します。
意味
SND_APPLICATIONアプリケーション特有の関連付けを使ってサウンドを再生します。
SND_ALIASpszSound パラメータは、レジストリまたは WIN.INI ファイルに記述されているシステムイベントの別名(エイリアス)です。SND_FILENAME や SND_RESOURCE と同時に指定することはできません。
SND_ALIAS_IDpszSound パラメータは、定義済みのサウンド識別子("SystemStart"、"SystemExit" など)です。
SND_ASYNCサウンドを非同期再生し、サウンドが開始されると、PlaySound 関数は即座に制御を返します。非同期再生されているサウンドを停止するには、pszSound パラメータで NULL を指定して PlaySound 関数を呼び出してください。
SND_FILENAMEpszSound パラメータは、ファイル名を表します。
SND_LOOPサウンドを繰り返し再生します。pszSound パラメータで NULL を指定して PlaySound 関数を呼び出すと、サウンドが停止します。サウンドイベントを非同期再生するよう指示するために、SND_ASYNC と同時に指定しなければなりません。
SND_MEMORYサウンドイベントのファイルは、メモリ内に既にロードされています。pszSound パラメータは、メモリ内のサウンドイメージへのポインタを表します。
SND_NODEFAULT既定のサウンドイベントを使いません。指定されたサウンドが見つからなかった場合、PlaySound 関数は、既定のサウンド(一般の警告音)を再生せずに静かに制御を返します。
SND_NOSTOP既にほかのサウンドが再生されている場合、指定されたサウンドを再生しません。指定されたサウンドを再生するために必要なリソースが、ほかのサウンドを再生していてビジーであり、指定されたサウンドを再生できない場合、この関数は指定されたサウンドを再生せずに、即座に FALSE を返します。
このフラグを指定しなかった場合、PlaySound 関数は現在再生されているサウンドを停止して、指定された新しいサウンドを再生しようとします。
SND_NOWAITドライバがビジー状態の場合、指定されたサウンドを再生せずに即座に制御を返します。
SND_PURGE呼び出し側タスクに関係するサウンドの再生を停止します。pszSound パラメータが NULL ではない場合、指定したサウンドのすべてのインスタンスを停止します。pszSound パラメータが NULL の場合、呼び出し側タスクに関係するすべてのサウンドを停止します。
SND_RESOURCE パラメータで指定したサウンドイベントを停止させる場合は、hmod パラメータでインスタンスハンドルも指定しなければなりません。
SND_RESOURCEpszSound パラメータは、リソース識別子を表します。hmod パラメータで、リソースを保持している実行可能ファイルのインタンスハンドルを指定しなければなりません。
SND_SYNCサウンドイベントを同期再生します。PlaySound 関数は、サウンドの再生が完了した後で制御を返します。

戻り値

関数が成功すると、TRUE が返ります。関数が失敗すると、FALSE が返ります。

解説

pszSound パラメータで指定したサウンドは、使用可能な物理メモリに収まるサイズでなければなりません。また、インストール済みのウェーブフォームオーディオのデバイスドライバで再生可能なものでなければなりません。PlaySound 関数は、カレントディレクトリ、Windows のディレクトリ、Windows のシステムディレクトリ、環境変数 PATH で記述されている各ディレクトリ、ネットワークにマップされているディレクトリで、サウンドファイルを検索します。ディレクトリ検索の順序については、 関数の説明も参照してください。

指定されたサウンドが見つからなかった場合、PlaySound 関数はシステムイベントに対応する既定のサウンドイベント(一般の警告音)を使います。システムの既定のサウンドイベントと既定のサウンドのどちらも設定されていなかった場合は、サウンドを再生せずに FALSE を返します。

対応情報

Windows NT/2000:Windows NT 3.1 以降
Windows 95/98:Windows 95 以降
ヘッダー:Mmsystem.h 内で宣言
インポートライブラリ:Winmm.lib を使用
Unicode:Windows NT/2000 は Unicode 版と ANSI 版を実装

参照

表示: