>>234
無責任に気づいた点を並べてみる。
MCIのコマンドについては知らないので何も指摘できませんが。。

(1) cStateって配列を初期化で、文字列の最後のナル文字は不要だと思う。

(2) 各プロパティ・メソッドの中のmciRetStringは、mciSendStringをコールする前に
  mciRetString = String(255, vbNullChar)のようにナル文字で埋めておく必要があると思う。
  特に、MidiStateプロパティの中の処理はまずい気がする。
  ていうか、MSDNにあるように、使わないんだったらNULL渡しとけばいいのでは?