たかせん様、HSABP様ご回答ありがとうございます。
HSABP様の助言から、以下のようなコードを書きました。
しかし、フォルダパスは取得出来るのですがファイル名が取得できませんでした。
※wsprintf関数はいまいち使い方が分かりませんので・・・・・・
%s%sって何なのでしょうか?^^;
[ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]コード:
Sub MainWnd_CommandButton4_Click()
Dim ofn As OPENFILENAME
Dim FilePath[2049] As Byte
'ファイル名を取得
ofn.lStructSize=Len(ofn)
ofn.hwndOwner=hMainWnd
ofn.lpstrFilter=Ex"音楽 ファイル(wav;mp3;mid;midi;wma; 他)\0*.wav;*.mp3;*.mid;*.midi;*.wma;*.avi;*.aif;*.aifc;*.aiff;*.asf;*.;*.asx;*.au;*.m1v;*.m3u;*.mp2;*.mp2v;*.mpa;*.mpe;*.mpeg;*.mpg;*.mpv2;*.snd;*.wax;*.wm;*.wmx;*.wvx;*.wpl\0\0"
ofn.nFilterIndex=0
ofn.lpstrFile=FilePath
ofn.nMaxFile=2049
ofn.lpstrTitle="Soundファイルを開く"
ofn.Flags=OFN_ALLOWMULTISELECT or OFN_HIDEREADONLY or OFN_LONGNAMES or OFN_EXPLORER
If GetOpenFileName(ofn)=0 Then
Exit Sub
End If
'パスの分解
Dim n As Long
Dim start As Long
Dim directory As String
Dim name As String
'フォルダーパス
start=ofn.nFileOffset
directory=Mid$(MakeStr(FilePath),1,start)
name=Right$(directory,1)
If name<>"\" Then
directory=directory+"\"
End If
start=start+1
'ファイル名を取得していく
Do
n=InStr(start,MakeStr(FilePath),Ex"\0")
If n=0 Then
Exit Do
End If
name=Mid$(MakeStr(FilePath),start,n)
SetSound(directory+name)
start=start+n+1
Loop
End Sub
SetSoundは、MCIコマンドへファイルパスを送るルーチンです。
すいませんが、修正の方お願いします。