コールバック関数を使って、VBMP3のステータスを取得したいのですが、うまくいきません。
どのようにすればよいでしょうか。よろしくお願いします
// 実行には、VBMP3とhspcallbk.dllが必要です #uselib "VBMP3.DLL" #func global vbmp3_init "vbmp3_init" #func global vbmp3_free "vbmp3_free" #func global vbmp3_open "vbmp3_open" int,int #func global vbmp3_close "vbmp3_close" #func global vbmp3_getState "vbmp3_getState" int #func global vbmp3_play "vbmp3_play" #func global vbmp3_stop "vbmp3_stop" #func global vbmp3_callback "vbmp3_callback" int #define global TRUE 1 #define global FALSE 0 #define global ERROR -1 #module "VBMP3" // 初期化 #deffunc INIT_VB // 入力構造体 sdim InputInfo,272 vbmp3_init return stat // ロード #deffunc LOAD_VB str filename ,local filename_ vbmp3_close : filename_ = filename vbmp3_open varptr(filename_),varptr(InputInfo) return stat // 再生 #deffunc PLAY_VB vbmp3_play return stat // 開放 #deffunc CLOSE_VB vbmp3_close vbmp3_free return stat // 停止 #deffunc STOP_VB vbmp3_stop return stat // 再生時間 #defcfunc GET_TIME_VB int Playing , int strf_ , local time_ if Playing == FALSE { time_ = wpeek(InputInfo,268) } else { vbmp3_getState varptr(time_) } if strf_ == TRUE { time_.1 = time_ / 60 : time_ = time_ \ 60 : return ""+strf ( "%02d : %02d",time_.1,time_ ) } return time_ // 再生状態取得 #defcfunc GET_STATUS_VB local time_ ; status(ret) ; stat=0 : 停止中 (STOP) ; stat=1 : 再生中 (PLAY) ; stat=2 : 一時停止中 (PAUSE) vbmp3_getState varptr(time_) return stat #global #include "hscallbk.as" screen 0 , 320 , 120 , 2+1 #uselib "" #func VB_CALL "" int // コールバック登録 setcallbk Proc, VB_CALL, *VB_PROC vbmp3_callback varptr ( Proc ) // ここでTrueなら成功 *MAIN // 初期化 INIT_VB : onexit gosub*exit // セレクト dialog "mp3" , 16 : if stat == FALSE { goto*exit } // ロード LOAD_VB refstr : PLAY_VB pos 5 , 55 : button gosub "PLAY" , *PLAY_ pos 105 , 55 : button gosub "STOP" , *STOP_ gsel 0 , 1 repeat redraw 0 : color : boxf : color 255 , 255 , 255 pos 3 , 5 : mes "[再生時間 "+ GET_TIME_VB ( TRUE , TRUE ) +" / 総時間 "+ GET_TIME_VB ( FALSE , TRUE ) +"]" pos 3 , ginfo (23) : mes "[再生状態: "+ GET_STATUS_VB() +"]" redraw 1 await 16 loop stop *PLAY_ PLAY_VB return *STOP_ STOP_VB return *exit CLOSE_VB end *VB_PROC title "こーるばっく受信しました" return