電子書籍の厳選無料作品が豊富!

初めて投稿します。現在、OSはXPでVisualC++6.0を用いて音楽情報(主に音量)をとってきてイコライザ風にしようと奮闘しております。音量の情報を受け取るために、mixerGetControlDetailsを用いたのですが、いつもMMSYSERR_INVALPARAMのエラーが出てしまいます。以下がソースです。

//9コントロール情報を取得
MixerLineControls.cbStruct=sizeof(MixerLineControls );//構造体サイズ
MixerLineControls.dwLineID = Mixerline.dwLineID;//ラインID
MixerLineControls.cControls = 1;//コントロール数(仮に1とする)
MixerLineControls.cbmxctrl = sizeof(MixerControl);
MixerLineControls.pamxctrl = &scontrol;//MIXERCONTROL構造体の配列を指定
mixerGetLineControls(phmx,&MixerLineControls,MIXER_GETLINECONTROLSF_ALL || MIXER_OBJECTF_HMIXER);//すべてのコントロールについて取得する
MixerControlDetails.paDetails = &MixCtrlDet_Uns_Vol;// 音量データを入れる構造体の配列を渡す。
MixerControlDetails.cbDetails = sizeof(MixCtrlDet_Uns_Vol);//MixCtrlDet_Uns_Volのサイズを入れる
if(MixerControl.fdwControl == MIXERCONTROL_CONTROLF_UNIFORM){
MixerControlDetails.cChannels = 1;
}
else{
MixerControlDetails.cChannels = Mixerline.cChannels;
}

MixerControlDetails.dwControlID = MixerControl.dwControlID;
MixerControlDetails.cbStruct = sizeof(MixerControlDetails);

Res = mixerGetControlDetails((HMIXEROBJ)phmx,&MixerControlDetails,MIXER_GETCONTROLDETAILSF_VALUE | MIXER_OBJECTF_HMIXER);
たすけてください。お願いします。

A 回答 (1件)

質問の中にあるソースは、そのままコピー&ペーストしてもコンパイルできませんよね(関数形式になっていないので当然ですが)。

質問時には行数の制限があるのでやむを得ないかと思います。

そのままコピー&ペーストすればコンパイルできてエラーが再現するようなソースを掲示すれば、回答者が楽をできるので、回答が得られやすいですよ。よろしければこの「回答」への補足としてご記入ください。(補足のほうは行数制限が緩いので書きやすいですよ。)
    • good
    • 0
この回答へのお礼

亀レスすぎてすいません。しばらくネットが使えない環境にいたもので...
この問題ですが、何とか解決できました。おそらくMIXERCONTROL構造体の配列がおかしかったような気がしております。最近仕事でVC++を使うようになったばかりで、このようなサイトに質問するのも初めてで、まだ右も左もわからぬまま孤軍奮闘しております。的確なご指摘ありがとうございました。今後はこのことを参考にしてもう少しわかりやすい質問が書けたらと思います。どうもありがとうございました。

お礼日時:2005/07/21 20:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!