MusicVillage Development Help

Help Version - 2.3

Last update - 2005/03/18






関数の型
ハンドル
構造体
関数
エラー定数
その他の定数


関数の型

typedef BOOL (CALLBACK fnMVCallback)(DWORD dwMsg,DWORD dwParam,DWORD dwUser)
typedef fnMVCallback FNMVCALLBACK, * LPFNMVCALLBACK;

MVSetCaps関数で設定できるコールバック関数の型です。 コールバック関数は、主にMusicVillageシステムの状態が変化した時などに、メッセージの形で送られます。 メッセージの種類についてはMusicVillage Callback Messagesを参照して下さい。
 関数はBOOL型ですが、現在のバージョンでは戻り値による処理の変化はありません。 しかし、将来仕様が変更される可能性がありますので、必ずTRUEを返して下さい。
 dwMsgには、MusicVillage Callback Messagesのいずれかのメッセージが入ります。
 dwParamには、コールバックからの追加情報が入ります。MusicVillage Callback Messagesを参照してください。
 dwUserには、MVSetCapsでセットされたdwUserの値が入ります。 未設定の場合は0が入ります。






ハンドル

DECLARE_HANDLE(HMVSOUND);
 MusicVillageでWAVEサウンドを扱うにはこのハンドルを使用します。 1つのサウンドにつき、1つのハンドルが作られます。 MusicVillageのWAVEサウンドは非同期ですので、同時に複数のサウンドをならすことが可能です。




構造体


typedef struct MVStatusInfo{
	DWORD dwSize;
	LONG  nUsedDevice;
	LONG  nState;
	DWORD dwCurPos;
	DWORD dwMusicLength;
	FLOAT fTempo;
	LPFNMVCALLBACK lpfnFunc;
	DWORD dwUser;
}MVSTATUSINFO, * LPMVSTATUSINFO;

 この構造体は
MVGetStatus関数によって使用され、MusicVillageの内部の情報が格納されます。


typedef struct ChooseDeviceDlg{
	DWORD dwSize;
	DWORD dwFlags;
	HWND hWndParent;
	LONG nDevice;
	LPSTR lpszDeviceName;
	DLGPROC lpfnHookProc;
}CDDLG, * LPCDDLG;

 
MVChooseDeviceDialog関数を呼び出す際の設定情報を含んだ構造体です。




関数



void __DLLEXPORT MusicVillageInitialize()

引数
解説
MVillage.dll内部を初期化します。通常はDLLがロードされた時に自動で実行されますので、 あえて呼び出す必要はありません。また、複数回呼び出しても意味はありません。
参考



MVRESULT __DLLEXPORT MVOpenDevice(LONG nDev,HANDLE hEvent)

引数
LONG nDev    // The number of the 'Midi' out device which you want to use.
HANDLE hEvent   // The handle which notifies when the device openes.
解説
Midiアウト音源をオープンします。曲の再生には必ずこの関数でデバイスをオープンする必要があります。
nDevではオープンしたいデバイスナンバーを指定します。 デバイスに関する情報はMusicVillageからは全く提供されません。 必要であれば、プログラム側から取得する必要があります。
hEventにはイベントハンドルを指定します。この値にNULLを指定すると、 この関数は呼び出し側スレッドでデバイスをオープンし、結果を返します。 NULL以外の値を指定すると、この関数はすぐに制御を返します。この時、デバイスはオープンされているという保証はありません。 デバイスによっては、オープンに数秒時間が掛かるものがあるため、処理を停止したくない時に使用します。 デバイスオープンの通知が必要なら、コールバック関数を指定する必要があります。 コールバック関数を指定するには
MVSetCapsを使います。
参考
MVCloseDevice

MVRESULT __DLLEXPORT MVCloseDevice()

引数
解説
MVOpenDevice関数でオープンされたデバイスをクローズします。 使用したデバイスは必ずクローズしなければなりません。 また、MusicVillageでは内部で開けるデバイスは1つだけですので、 オープンとクローズを1:1にして行えば安全です。
参考
MVOpenDevice


MVRESULT __DLLEXPORT MVLoadMusic(LPSTR lpFileName)

引数
LPSTR lpFileName  // The address of specific filename's ASCII string which you want to play.
解説
lpFileNameで指定したMidiファイルを読みこみます。 前回の曲データはこの関数が自動で破棄するので、深く考える必要はありません。
参考
MVPlayMusic


MVRESULT __DLLEXPORT MVPlayMusic()

引数
解説
MVLoadMusic関数で最後に読みこまれた曲データを再生します。
参考
MVLoadMusic MVStopMusic


MVRESULT __DLLEXPORT MVStopMusic()

引数
解説
再生中の曲を停止します。再生されていた曲データは失われません。 ただし、再生位置などの情報は失われます。
MVStopMusic、および
MVWaitMusic関数はMusicVillageに設定されたタイムアウトを過ぎても返せないとき、 エラーコードMVERR_TIMEOUTを返します。詳しくはMusicVillageCapabilityを参照してください。
参考
MVPlayMusic


MVRESULT __DLLEXPORT MVWaitMusic()

引数
解説
再生中の曲を一時停止します。内部にはMVS_WAITが立ちます。
MVRestartMusic関数で続きを再生出来ます。
MVStopMusic、およびMVWaitMusic関数はMusicVillageに設定されたタイムアウトを過ぎても返せないとき、 エラーコードMVERR_TIMEOUTを返します。詳しくはMusicVillageCapabilityを参照してください。
参考
MVPlayMusic MVRestartMusic MVGetStatus


MVRESULT __DLLEXPORT MVRestartMusic()

引数
解説
曲を続きから再生します。内部フラグがMVS_WAIT以外だとこの関数は失敗します。 内部フラグの取得は
MVGetStatus関数を使用して下さい。
参考
MVWaitMusic MVGetStatus MVSeek


MVRESULT __DLLEXPORT MVGetStatus(LPMVSTATUSINFO lpsi)

引数
LPMVSTATUSINFO lpsi  // The address of specific MVSTATUSINFO structure.
解説
MusicVillageの内部情報を一気に取得します。 1つずつ取得するには
MVGetCaps関数も使えますが、MVGetCaps関数では取得できない値もあります。
lpsiにはMVSTATUSINFO構造体へのポインタを指定します。 この時、MVSTATUSINFO構造体のdwSizeメンバには有効なオフセット値を指定する値をsizeof(MVSTATUSINFO)によって指定しなければなりません。
参考
MVSTATUSINFO


MVRESULT __DLLEXPORT MVSendSysEx(LONG nLength, CHAR *lpData)

引数
LONG nLength  // The length in bytes of lpData
CHAR *lpData  // The address filled with exclusive data which you want to send to the device.
解説
プログラム側から意図したシステム・エクスクルーシブメッセージを送信します。 内容・処理結果はデバイスによって異なりますので、必ず意図した結果になるわけではありません。
nLengthにはlpDataのデータ長を入れます。この値は1以上でなければなりません。
lpDataには送信したいSysExデータを指すポインタを指定します。
nLengthに0以下の数値を入力した場合、MusicVillageで定義済みのメッセージを送信することになります。 この時、lpDataはNULLを指定することが出来ます。 詳しくは
その他の定数の項を参照して下さい。
参考
MV_SYSEX_*


MVRESULT __DLLEXPORT MVSeek(DWORD dwPos)

引数
DWORD dwPos  // The position to which you want to seek.
解説
曲データの再生位置を指定します。
dwPosにはシークさせたい位置を指定します。この値が最大曲長を超えてはいけません。 最大曲長を取得するには
MVGetStatus関数を使います。
この関数は内部フラグがMVS_NOMSG、MVS_STOP、MVS_WAITのいずれかでなければ失敗します。
関数が成功すると、内部フラグにはMVS_WAITが立ちます。シークを適応した状態で再生するには MVPlayMusic関数ではなくMVRestartMusicを使用して下さい。
参考
MVRestartMusic MVGetStatus


MVRESULT __DLLEXPORT MVOpenSound(HMVSOUND *pMVHandle,LONG nDev,LPSTR lpFileName)

引数
HMVSOUND *pMVHandle  // Specific handle of HMVSOUND.
LONG nDev       // The device number which you want to use.
LPSTR lpFileName    // The address of the filename.
解説
WAVEサウンド用ハンドルを生成します。
pMVHandleにはHMVSOUND型ハンドルのアドレスを指定します。関数が成功すると、このアドレスのハンドルに 新しいHMVSOUNDハンドルが格納されます。
nDevにはオープンしたいWAVEサウンドデバイスナンバーを指定します。 WAVEに関しては、
MVOpenDeviceの様に非同期オープン機能はありません。
lpFileNameには再生したいWAVEサウンドファイル名へのポインタを指定します。 WAVEはMidiと違って再生毎にファイルを指定することは出来ず、 このデバイスをオープンする時点でファイルを指定します。
lpFileNameのファイルは、このハンドルが閉じられるまで、MusicVillageによりロックされます。 したがって、ハンドルが有効なうちにこのファイルの削除やリネームをすることは出来ません。
参考
MVCloseSound


MVRESULT __DLLEXPORT MVCloseSound(HMVSOUND hMVSound)

引数
HMVSOUND hMVSound  // Specific handle of HMVSOUND.
解説
MVOpenSound関数でオープンされたデバイスをクローズし、 ハンドルをクローズします。 MVOpenSound関数で開かれたハンドルは必ずこの関数でクローズしなければなりません。 この関数を読んだ後のhMVSoundの値は無効となります。
参考
MVOpenSound


MVRESULT __DLLEXPORT MVPlaySound(HMVSOUND hMVSound,DWORD dwOption)

引数
HMVSOUND hMVSound  // Specific handle of HMVSOUND.
DWORD dwOption    // Options of playback types.
解説
hMVSoundに指定されているWAVEサウンドを再生します。
dwOptionには再生オプションを指定します。詳しくは
PlayBackOption定数を参照して下さい。
参考
MVStopSound PlayBackOption定数


MVRESULT __DLLEXPORT MVStopSound(HMVSOUND hMVSound)

引数
HMVSOUND hMVSound  // Specific handle of HMVSOUND.
解説
hMVSoundに指定されているWAVEサウンドを停止します。
参考
MVPlaySound


MVRESULT __DLLEXPORT MVWaitSound(HMVSOUND hMVSound)

引数
HMVSOUND hMVSound  // Specific handle of HMVSOUND.
解説
hMVSoundに指定されているWAVEサウンドを一時停止します。 続きを再生するには
MVRestartSound関数を使用します。
参考
MVRestartSound


MVRESULT __DLLEXPORT MVRestartSound(HMVSOUND hMVSound)

引数
HMVSOUND hMVSound  // Specific handle of HMVSOUND.
解説
一時停止状態になっているhMVSoundに指定されているWAVEサウンド再生を再開します。
参考
MVWaitSound


MVRESULT __DLLEXPORT MVSetCaps(MVCAPSTYPE MVCaps,DWORD dwParam)

引数
MVCAPSTYPE MVCaps  // The type of MVCAPSTYPE which you want to set a new value.
DWORD dwParam    // Specific new parameter.
解説
MusicVillage内の様々な設定を変更します。
MVCapsでは
MVCAPSTYPEの中で、変更したいパラメータを指定します。 詳しい解説はMVCAPSTYPEの項を参照して下さい。
dwParamには新しく設定する値を入れます。 尚、このdwParamにはポインタが入る場合もありますので、注意して下さい。
参考
MVGetCaps


MVRESULT __DLLEXPORT MVGetCaps(MVCAPSTYPE MVCaps,DWORD *lpParam)

引数
MVCAPSTYPE MVCaps  // The type of MVCAPSTYPE which you want to set a new value.
DWORD *lpParam    // The address of specific DWORD parameter.
解説
MusicVillageの様々な設定を取得します。
MVCapsでは
MVCAPSTYPEの中で、変更したいパラメータを指定します。 詳しい解説はMVCAPSTYPEの項を参照して下さい。
lpParamにはデータの入るDWORD値へのポインタを指定します。 ここに設定されているデータが入ります。
参考
MVSetCaps


MVRESULT __DLLEXPORT MVGetVersion(DWORD *lpVersion)

引数
DWORD *lpVersion  // The address of specific DWORD parameter.
解説
MusicVillage(MVillage.dll)のバージョンを返します。
lpVersionにはバージョン情報を受け取るDWORD値へのポインタを指定します。 上位16ビットにはメジャー・マイナーバージョン、下位16ビットにはビルドナンバーが入ります。
DLLVERSION_MAJORDLLVERSION_MINORDLLVERSION_BUILDマクロを使用すると バージョンのチェックが楽になります。これらのマクロは『MVillage.h』を参照してください。
参考



MVRESULT __DLLEXPORT MVGetIcon(HICON *lpIcon)

引数
HICON *lpIcon  // Specific address of HICON.
解説
MVillage.dll内に入っている『♪』アイコンを取得します。
lpIconにはアイコンを受け取るハンドルへのポインタを指定します。 このハンドルは使用しなくなったらDestroyIcon APIで破棄しなければいけません。
この関数は内部でLoadIcon APIを呼び出しているので、プログラム側からMVillage.dllの モジュールハンドルを使用してLoadIcon APIを呼び出したものと同じです。
参考



MVRESULT __DLLEXPORT MVGetErrorString(DWORD dwError,LPSTR lpReturnString,DWORD dwMaxLength)

引数
DWORD dwError     // Specific error number.
LPSTR lpReturnStrng  // The address which is returned the error message.
DWORD dwMaxLength   // Size of lpReturnString buffer.
解説
MusicVillageは関数を呼び出したその戻り値に、必ずエラーコードを返します。 この関数は、そのエラーコードからエラーの詳細に関するメッセージを取得します。 MusicVillageは関数が失敗してもWindows カーネルのラストエラーナンバーには全く手を加えません。
dwErrorにはMusicVillageにより返されたエラーナンバーを指定します。 このエラーナンバーに関する詳細が取得出来ます。また、MVERR_NOERRORを指定することも出来ます。
lpReturnStringにはエラーに関する詳細メッセージを格納する文字列へのポインタを指定します。
dwMaxLengthにはlpReturnStringの最大バッファ長を指定します。 通常はMV_MAX_STRING以上を指定してください。
この関数が失敗すると、lpReturnStringには失敗の文字列が入り、 関数はMVERR_LOAD_STRINGを返します。
参考
エラー定数




MVRESULT __DLLEXPORT MVChooseDeviceDialog(LPCDDLG lpcdd)

引数
LPCDDLG lpcdd  // Specific address of CDDLG which is filled with the information of dialog parameters.
解説
Midiアウトデバイスを選択するダイアログを表示します。おもにユーザーにどのデバイスを使用するか問い合わせる時に使用します。
lpcddにはダイアログに関する情報が入った
CDDLG構造体へのポインタが入ります。 詳しくはCDDLGの項を参照して下さい。
参考
CDDLG







エラー定数

 MusicVillageは関数が成功すると以下のエラーコードのいずれかを返します。 それぞれの意味は
MVGetErrorStringで取得して確かめてください。







その他の定数

その他の一般定数を定義します。


MV_SYSEX_GM
 GM音源初期化コマンドを送信します。
 
MVSendSysEx 関数に使うことができます。

MV_SYSEX_GS
 GS音源初期化コマンドを送信します。
 MVSendSysEx 関数に使うことができます。

MV_SYSEX_XG
 XG音源初期化コマンドを送信します。
 MVSendSysEx 関数に使うことができます。

MV_NO_SINGLE
 単一楽器演奏を行いません。

MV_MAX_STRING
 MVGetErrorString関数が返す文字列を十分に受け取ることの出来るサイズです。 必ずしも最大のエラー文字列長がこの値であるわけではありません。

MV_INVALID_DEVICE_ID
 デバイスナンバーが不正なことを表す定数です。

MV_MIN_TEMPO
 設定できる最小テンポ長です。

MV_MAX_TEMPO
 設定できる最大テンポ長です。

MV_MIN_INSTRUMENT
 単一楽器演奏で指定できる最小値です。

MV_MAX_INSTRUMENT
 単一楽器演奏で指定できる最大値です。

MV_MIN_FADE_TIME
 フェードイン・アウト時間で指定できる最小値です。

MV_MAX_FADE_TIME
 フェードイン・アウト時間で指定できる最大値です。

MV_MIN_TIMEOUT
 タイムアウトで設定できる最小の時間です。

MV_MAX_TIMEOUT
 タイムアウトで設定できる最大の時間です。

MV_DEFAULT_TIMEOUT
 デフォルトのタイムアウトです。

MV_MIN_VOLUME
 設定できる音量の最小値です。

MV_MAX_VOLUME
 設定できる音量の最大値です。






MusicVillage Capability


typedef enum MVCAPSTYPE{
	MVCAPS_ACTIONFLAG	= 0x00,
	MVCAPS_CALLBACKPTR	= 0x01,
	MVCAPS_USERPARAM	= 0x02,
	MVCAPS_TEMPO		= 0x03,
	MVCAPS_FADEOUT		= 0x04,
	MVCAPS_FADEIN		= 0x05,
	MVCAPS_SINGLE		= 0x06,
	MVCAPS_TIMEOUT		= 0x07,
	MVCAPS_SHORTMSG		= 0x08,
	MVCAPS_VOLUME		= 0x09,
}

 
MVSetCaps、及びMVGetCaps関数で使用される列挙型です。


MVCAPS_ACTIONFLAG
 MusicVillage内部での自動動作を指定するフラグです。 詳しくはMusicVillageActionFlagsを参照してください。
dwParamにはフラグを指定します。
lpParamにはフラグを受け取るDWORD型へのポインタを指定します。

MVCAPS_CALLBACKPTR
 動作通知を行うコールバック関数のアドレスを指定します。 関数の型についてはfnMVCallbackを参照してください。
dwParamにはLPFNMVCALLBACK型の関数のアドレスを指定します。
lpParamにはLPFNMVCALLBACK型の変数へのポインタを指定します。

MVCAPS_USERPARAM
 コールバック関数でdwUserの値に入るデータを指定します。 詳しくはfnMVCallbackを参照してください。
dwParamにはコールバックに入る32ビット値を指定します。
lpParamにはDWORD型の変数へのポインタを指定します。

MVCAPS_TEMPO
 曲のテンポを指定します。  デフォルトでは1.0fで、値を小さくするほど、演奏速度は速くなります。
dwParamにはテンポを示すFLOAT型の変数へのポインタを指定します。
lpParmaにはテンポを格納するFLOAT型の変数へのポインタを指定します。

MVCAPS_FADEOUT
 MVSetCaps関数ではフェードアウトを実行し、 MVGetCaps関数ではフェードアウト中かどうかを取得します。
dwParamにはフェードアウトを完了するまでの時間をミリ秒単位で指定します。
lpParamにはフェードアウト中かどうかを知るBOOL型への変数のポインタを指定します。

MVCAPS_FADEIN
 MVSetCaps関数ではフェードインを実行し、 MVGetCaps関数ではフェードイン中かどうかを取得します。
MVSetCaps関数でフェードインを指定するとき、内部フラグがMVS_PLAYINGでないと失敗します。 MVPlayMusic関数で演奏を開始したら、その直後にフェードインするようにして下さい。
dwParamにはフェードインを完了するまでの時間をミリ秒単位で指定します。
lpParamにはフェードイン中かどうかを知るBOOL型への変数のポインタを指定します。

MVCAPS_SINGLE
 単一楽器演奏を行います。MV_NO_SINGLEを指定すると、通常通り演奏されます。
dwParamには単一演奏させる楽器ナンバーを指定します。
lpParamには単一楽器ナンバーを取得するDWORD型の変数へのポインタをしています。

MVCAPS_TIMEOUT
 MVStopMusic及びMVWaitMusic関数での、タイムアウトを設定します。 MusicVillageは、このタイムアウトを過ぎてもクライアントに制御を返せなかった場合は、 エラーコードMVERR_TIMEOUTを返します。 ただし、ほとんどの場合、即座に制御を返すので、デフォルトのタイムアウトで十分だと思います。 参考で書いておくと、Windows 95時代より昔のプロセッサで、メッセージが込み合っている、 もしくは、他のタイマのキューが詰まっている場合などには、タイムアウトを過ぎるかもしれません。

dwParamには新しくセットするタイムアウト値をミリ秒単位でセットします。
lpParamには現在のタイムアウトを格納するDWORD値へのポインタをセットします。

MVCAPS_SHORTMSG
 プログラム側から、デバイスへ直接メッセージを送信します。 ただし、このメッセージは内部でフィルタリングされます。
フィルタリングとは、例えば『単一楽器演奏』が指定されている場合、 プログラムチェンジメッセージを送っても無視する設計です。

dwParamには送信したいメッセージをDWORD値をセットします。
lpParamには最後に送信されたメッセージを受け取るDWORD値へのポインタをセットします。

MVCAPS_VOLUME
 基本音量を変更します。 音量は絶対値ではなく、『相対値』です。 発音されるノートの音量は、次の式で表されます。

v = (ノートの音量) * (現在のフェード値/フェード値の最大値) * (音量/最大音量)

また、この他にも、システムエクスクルーシブで変更される音量や、 Windows ミキサーの音量にも依存します。

dwParamには新しく設定する音量の数値をセットします。
lpParamには現在の音量を取得するDWORD値へのポインタをセットします。






MusicVillage Callback message


メッセージ 意味 dwParamの値
MVMSG_DEVICE_OPENERROR デバイスのオープンに失敗しました。 (LONG)開かれようとしたデバイスナンバー
MVMSG_DEVICE_OPEN デバイスが開かれました。 (LONG)開かれたデバイスナンバー
MVMSG_DEVICE_CLOSE デバイスが閉じられました。 NULL
MVMSG_LOAD_FILE 新たな曲データが読みこまれました。 (LPCSTR)ファイル名へのポインタ
MVMSG_PLAY 曲が再生されました。 NULL
MVMSG_STOP 曲が停止しました。 NULL
MVMSG_WAIT 待機命令で曲が一時停止しました。 NULL
MVMSG_RESTART 曲が途中から再生しました。 (DWORD)再生もとの曲位置
MVMSG_LOOP 曲が終了し、ループしようとしています。 NULL
MVMSG_FADEOUT フェードアウトが正常に完了しました(注※1)。 NULL
MVMSG_FADEIN フェードインが正常に完了しました(注※1)。 NULL


注※1:
フェードイン・アウト中に、ユーザーによって曲がストップされたりした場合、フェードイン・アウトは終了しますが、このメッセージは送られません。 このメッセージはあくまでMusicVillage自身でフェード処理を完了した場合にのみ送られます。




MusicVillage States


 
MVStatusInfo構造体のnStateメンバには、以下のいずれかの状態が入ります。

状態 意味
MVS_EMPTY デバイスは開かれていません。
MVS_NOMSG デバイスは開かれていますが、何もメッセージがありません。
MVS_PLAYING 曲が演奏されている最中です。
MVS_WAIT 曲は待機命令で待機中です。
MVS_STOP 曲は停止しています。



MusicVillage Action Flags

アクションフラグを指定します。
MVAF_GMRESETMVAF_GSRESET、およびMVAF_XGRESETは同調できません。 2つ以上同時に指定するとエラーMVERR_INVALID_FLAGSが返ります。

MVAF_GMRESET 曲が再生される前に、デバイスをGM音源で初期化します。
MVAF_GSRESET 曲が再生される前に、デバイスをGS音源で初期化します。
MVAF_XGRESET 曲が再生される前に、デバイスをXG音源で初期化します。
MVAF_NOSENDSYSEX システムエクスクルーシブメッセージを送信しません。 曲によっては多数のエクスクルーシブメッセージを送信し、 後に再生させる曲の妨げになる場合があります。 このフラグを立てていると、そういった現象を回避出来ます。 また、このフラグで有効なのは、曲の再生中に、ファイル自身に 組みこまれているエクスクルーシブメッセージを送信しないだけで、 MVSendSysEx関数などでは通常通り送信出来ます。





MusicVillage CDDLG Flags


CDDLG構造体のdwFlagsメンバに使用されるフラグです。

CDDF_HWNDPARENT hWndParentメンバを有効にします。 このメンバにセットされたウィンドウハンドルがダイアログボックスの親となります。
CDDF_DEVICENAME lpszDeviceNameメンバを有効にします。 このメンバのアドレスにデバイスからのデバイス名が格納されます。 このメンバはかならずNULL以外の値をセットします。 バッファサイズはMAXPNAMELENよりも大きいほうが安全です。
CDDF_HOOKPROC lpfnHookProcメンバを有効にします。 デバイス選択のダイアログ関数は、このアドレスの関数を呼び出した後に、 デフォルトのデバイス選択ダイアログ関数をよび、最後にデフォルトの ダイアログ関数を呼びます。フックプロシージャでメッセージを処理したら、 必ずTRUEを返してください。また、基本的にデバイス選択ダイアログ関数より フックプロシージャのほうが先に呼ばれますが、WM_INITDIALOGメッセージを デバイス選択ダイアログより先に捕まえることが出来ません。
WM_CLOSEメッセージでTRUEを返した場合、ダイアログの終了を取り消すことが出来ます。
CDDF_RESERVED 予約済みです。使用しないで下さい。
CDDF_INITIALIZE_DEVICE ダイアログを表示する時、デフォルトで選択済みのデバイスとして、 nDeviceのデバイスナンバーを使用します。このフラグが立っていない時は、 MIDI_MAPPERがデフォルトとしてセットされた状態でダイアログが表示されます。 nDeviceが有効なデバイスナンバーで無い場合、同様にMIDI_MAPPERをセットします。
CDDF_HIDEMIDIMAPPER MIDI_MAPPERを表示せず、選択不可能にします。 デフォルトでセットされるのはデバイスナンバー0に繰り越されます。
CDDF_ACTIVEUPDATE デバイス選択ダイアログがアクティブになるたびに、 Midi アウト音源のデバイスを再スキャンします。 つまり、ユーザーは常に信頼できるデバイスを選択することが出来ます。




MusicVillage PlayBackOptions

WAVEサウンドを再生させるときのオプションです。

PBO_PLAYBACK MusicVillageが内部で処理する、再生フラグです。 クライアントアプリケーションでは使用しないで下さい。
PBO_USE_LOOP_BEGIN LPBnチャンクで指定されたループ開始位置を使用します。 このフラグが立っていない時は、ループ時に一番はじめからループします。
PBO_USE_LOOP_END LPEdチャンクで指定された再生終了位置を使用します。 このフラグが立っていない時は、ファイルの最後まで再生されます。
PBO_LOOP WAVEサウンドをループします。ループ位置については PBO_USE_LOOP_BEGIN及び、PBO_USE_LOOP_ENDに基づいて決定されます。 逆に、このフラグを立てないとループはせず、サウンドが最後まで再生されたらそこで終了します。





(C) 2004-05 DreamROM All rights reserved.