by Mario2 » 2005年12月07日(水) 20:29
このコード [ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]コード: 全て選択
Sub fs()
mciSendString("play cdaudio from 8")'再生
MessageBox(hMainWnd,"OKで停止",Str$(Ret),0)
mciSendString("stop cdaudio")'停止
mciSendString("close cdaudio")'クローズ
End Sub
Declare Function mciSendString2 Lib "Winmm.dll" Alias "mciSendStringA" _
(ByVal lpMciComm As String, ByVal lpMciRetString As String, _
ByVal lpRetLength As Long, ByVal CallBackhWnd As Long) As Long
CDREAD()
Dim Ret As Long
Dim RetString As String '戻り値文字列
Dim RetLength As Long:RetLength=MAX_PATH '戻り文字列長
RetString=ZeroString(RetLength)
Sub CDREAD()
mciSendString("open cdaudio")'開く
mciSendString("status cdaudio number of tracks")'トラック数取得
If Ret=-1 Then msgbox hMainWnd,"失敗"
mciSendString("set cdaudio time format tmsf")'タイムフォーマット設定
End Sub
Function mciSendString(ByVal lpMciComm As String) As Long
mciSendString=mciSendString2(lpMciComm,RetString,RetLength,0)
Ret=mciSendString
End Function
で、CDの総トラック数を取得したいのですが、何故かRetに0が帰ってきます。RetStringをチェックしてみても何も帰ってきません。
何が悪いのでしょうか?Ret=-1の部分でもRetが0になっていて正常みたいなのですが・・・
(exe起動→CDREAD()→MainWnd_Create→CommandButton経由でsf()呼び出し。の順番でしています)
ドライブ依存なのでしょうか?
ちなみに、試しているCDは計17トラックで、CD-TEXTは書かれていません。
情報不足かどうかわかりませんが、よろしくお願いします。
[hide=このコード][code]Sub fs()
mciSendString("play cdaudio from 8")'再生
MessageBox(hMainWnd,"OKで停止",Str$(Ret),0)
mciSendString("stop cdaudio")'停止
mciSendString("close cdaudio")'クローズ
End Sub
Declare Function mciSendString2 Lib "Winmm.dll" Alias "mciSendStringA" _
(ByVal lpMciComm As String, ByVal lpMciRetString As String, _
ByVal lpRetLength As Long, ByVal CallBackhWnd As Long) As Long
CDREAD()
Dim Ret As Long
Dim RetString As String '戻り値文字列
Dim RetLength As Long:RetLength=MAX_PATH '戻り文字列長
RetString=ZeroString(RetLength)
Sub CDREAD()
mciSendString("open cdaudio")'開く
mciSendString("status cdaudio number of tracks")'トラック数取得
If Ret=-1 Then msgbox hMainWnd,"失敗"
mciSendString("set cdaudio time format tmsf")'タイムフォーマット設定
End Sub
Function mciSendString(ByVal lpMciComm As String) As Long
mciSendString=mciSendString2(lpMciComm,RetString,RetLength,0)
Ret=mciSendString
End Function[/code][/hide]で、CDの総トラック数を取得したいのですが、何故かRetに0が帰ってきます。RetStringをチェックしてみても何も帰ってきません。
何が悪いのでしょうか?Ret=-1の部分でもRetが0になっていて正常みたいなのですが・・・
(exe起動→CDREAD()→MainWnd_Create→CommandButton経由でsf()呼び出し。の順番でしています)
ドライブ依存なのでしょうか?
ちなみに、試しているCDは計17トラックで、CD-TEXTは書かれていません。
情報不足かどうかわかりませんが、よろしくお願いします。