sora's DIGITAL SENIOR LIFE

(当サイトではアフィリエイトプログラムを利用して商品を紹介しています)

スターデジオの録音(5)Shell32.dllのエラー



参照元の情報は完璧になったが、チェックする曲名とアーティスト名のリストをどうしようか。以前のプログラムではDigioTxtの出力(スターデジオの曲リストPDFをテキストにしたもの)から抽出していたのだが、このファイルがくせものだ。XMLのようにプログラムで処理することを考えて作られていないのだから、適当に構造を想定するしかない。曲名を抽出するだけならまだしも、アーティスト名の抽出はお手上げだ。ということで、これから抽出するのはあきらめた。実は、この部分はReckyがやってくれているので、こちらはその結果をmp3のID3タグに反映した後で戴くことにした。
つまり、タグ付きのmp3ファイルが、iTunesライブラリに登録されている曲とダブるかどうかをチェックするプログラム、という仕様になった。
mp3のタグ情報を取得するには@ITの「.NET TIPS」で紹介されていたShell32.dllを使う方法が簡単そうだ。ところが、開発機のVistaPCでは完璧に動作するのだが、隣のXPノートにインストールして動かそうとすると、Shell32.dllでファイルのプロパティを参照するところでエラーが発生する。 このエラーを無視して続行すれば他は問題なく動くようなのだが、ファイルのプロパティを参照できないとこのプログラムの意味がない。
VB2005Expressでも作ってテストしたが同じ結果だった。Vistaで開発したプログラムはXPでは動かないってこと?
どうやらVista上のVBが生成するInterop.shell32.dllが、Vistaのshell32.dllしかサポートしていないインターフェースを使っているらしいのだが…
そしてこれを回避する方法にようやくたどりついた。