ハングアップの日々

2008年 1月分

2008/01/31

PowerPoint, EPS

 PowerPoint で作成した図を EPS 形式に変換する方法を調査。Remora というツールで、選択した図形を EPS に出力できるようだ。
 Remora の emf2eps.exe を利用するには、PostScript プリンタが必要とのこと。Adobe の PostScript プリンタドライバ(デフォルトプリンタ名は Generic PostScript Printer)をインストールしてみたが、白黒しか対応していなかった。代わりに、適当なドライバは使えないかといくつか試してみた。Canon LBP-2260PS が使えそう。600dpi であれば十分か? Ghostscript にもプリンタドライバが付属しているが、試してみたところ、図の端が切れてしまった。-m オプションでマージンを適切に設定すれば切れなくなるのかもしれないが、そこまでは試していない。
 Remora の説明を見ると、emf2eps.ini を編集すればプリンタ名やマージンなどを変更できると書かれているが、どうも設定を認識しておらず、PowerPoint から直接出力ができない。emf2eps.exe を差し替えて、コマンドラインを確認してみたが、オプションが全く指定されていなかった。先ほどインストールしたプリンタ名を WMF2EPS Color PS L2 に変更したところ、ようやく PowerPoint から直接 EPS を出力できるようになった。

emf2eps

 EMF を EPS に変換するソフトはいくつかある。

2008/01/30

DirectShow Filter, Ogg Vorbis

 Haali Media Splitter + ffdshow で Ogg Vorbis が再生できるらしいということを知った。smmp で試してみたところ、自分の環境では問題なく動いた。
 illiminable Ogg Directshow Filters とは異なり、曲名表示や再生速度変更にも対応している。(ただし、日本語曲名は未確認) 今までは、OggDS 0.9.9.5 を使ってきたが、OggDS は更新が止まってしまっている。これからは、これを使うのもよいかもしれない。
 掲示板に、smmp では使用できなかったとの報告があるのが気になるが・・・。

Let's note

 KB943899 について、サポート情報が更新されていたことに気付いた。HDD が認識しないことに加え、ブルースクリーンが発生する場合があるらしい。KB938239 をインストールしておいた。

2008/01/23

電子辞書

2008/01/22

Let's note

 KB943899 について、サポート情報が公開されていた。(CF-R6M/CF-R6Aシリーズご使用のお客様へのご案内) BIOS をアップデートしてから、KB943899 を再度インストールしておいた。KB943899 はインストールすべきなのかがよく分からないが。

2008/01/21

VC6, c2.dll

 c2.dll は VC++ のバックエンドである。最適化などもここで行われる。VC6 Standard は最適化が使えないが、c2.dll の中身が違うのだろうと思い、バージョンを調べてみた。VS6 SP6 を当てた状態で確認したが、VC6 Professional では 12.0.9782.0、VC6 Standard では 11.99.9782.0 となっていた。ちなみに、VS6 SP6 を展開したディレクトリを確認すると、Professional 版の c2.dll は msvcep.dll という名前で置いてあり、Standard 版の c2.dll は msse.dll という名前で置いてある。もう一つ、intro.dll という名前で少し古いバージョンの c2.dll も置いてあるが、これの正体はよく分からない。(Learning 版か?)

2008/01/20

Vista、ファイルオープンダイアログ

 Vista では GetOpenFileName() で表示されるファイルオープンダイアログの外観が変更されている。しかしフラグとして、OFN_ENABLETEMPLATE や OFN_ENABLEHOOK が指定されると、Win2k/XP 形式(あるいは Win9x 形式)で表示されてしまう。ちなみに、Delphi で作ったアプリは、OFN_ENABLEHOOK が指定されているため、Win2k 形式になってしまうらしい。(TMS SoftwareのDelphiとWindows Vista関連の記事) Win2k 形式と Win9x 形式の切り替えは、構造体のサイズを適切にセットすることで切り替えが可能なのだが、Vista 形式には切り替えられないのがなぞである。OFN_ENABLETEMPLATE を指定した状態で、Vista 形式を使えるようにはできないものか?

2008/01/19

Let's note

 Let's note で HDD が突然死する場合があるようだ。KB943899 に問題があるらしい。幸い自分のマシンでは問題は発生していなかったが、念のため KB943899 はアンインストールした上で通知対象から外しておいた。

 上記の復旧用環境を Vista 上で作成しようとしたところ、ちょっとはまった。USB メモリに書き込みができず少し悩んだが、UAC が有効になっていたせいだった。書き込みプログラムを管理者権限で起動したところ、無事に書き込みができた。

2008/01/06

mpg123dsf

 mp3parse.ax を使って、ネットワーク越しのファイルを再生すると、音飛びが頻発するのだが、何が原因だろう?

smmp

 ANSI ビルドでも、曲名は Unicode で保持するように改造。曲名に ♥ などの Unicode 固有文字が含まれていても正しく表示できるようになった。Win98 では、プレイリストウィンドウでは Unicode 固有文字が表示できなかったが、まあ、仕方あるまい。プレイリストへの書き出しは、まだ Shift_JIS のままなので文字化けしてしまう。

2008/01/04

mpg123dsf

 mp3parse.ax が、mpg123dsf.ax 以外の MP3 デコーダに接続できなかった原因が判明した。config.exe による設定で "Send Media Format with ReplayGain Info" がオンになっていると mpg123dsf.ax 以外は接続できないようだ。この設定がオンでも MP3 ファイルにリプレイゲイン情報がなければ、普通の MP3 デコーダと接続できるものだと勘違いしていた。オフにしたところ、ffdshow Audio Decoder と接続できた。しかし、Windows 標準の MPEG Audio Decoder とは接続できなかった。WAVEFORMATEX.wFormatTag に WAVE_FORMAT_MPEGLAYER3 (0x55) を設定しているところを、WAVE_FORMAT_MPEG (0x50) に変更し、MPEG1WAVEFORMAT に適切な値を設定すれば接続できるのだろうか?

 GraphEdit で mp3parse.ax のプロパティ画面を開いたところ、タグ情報が文字化けしていた。昨日の Unicode 化の作業で、プロパティ画面の部分の対応を忘れていた。一応修正したが、表示部分のコードは ANSI のままなので、Unicode 固有の文字を含むタグを表示すると文字化けしてしまう。テキストコントロールを後から動的に Unicode 版に変更できると便利なのだが。

 mpg123dsf 改造版を掲示板で公開した。同じものを mpg123dsf のサイトのアップローダにも上げておいた。本当は mpg123dsf の作者に直接連絡を取りたいところだがメールアドレスは公開されていないし、掲示板は spam で埋まっているので無理そう。
 後で確認したら、アップローダの方は正常にアップできていなかったので削除しておいた。結局、連絡手段無しか。

2008/01/03

mpg123dsf

 mpg123dsf のソースを見ていたところ、APE タグを読むところで、メモリリークしているようなので修正した。ID3v2.4 での録音日時の扱いも間違っていたので、暫定修正した。(参考:ID3v2.4.0ではTYERがTDRCに変わっている

 mpg123dsf のベースとなっている、WINAMP5用 Shibatch mpg123プラグイン 改悪バージョンを確認してみたところ、かなり変更が加わっているようである。現時点での最新版は Ver. 1.18y ot112.1 となっており、ID3v2.4 での録音日時の扱いも修正されていた。mpg123 ライブラリの部分で2ヶ所処理内容に変更があった。サイトに記載の「intensity-stereoの不具合を修正」に該当するのだろうか。本家の mpg123 を確認したところ、1.0.1 でも同じ処理になっていた。しかし、本家の方はそれ以外にも大量に変更されている。
 mpg123プラグイン 改悪バージョンのサイトの掲示板を見たところ、「in_!mpg123のmpglibは、0.59sから枝分かれたした独自バージョンです。」「もう本家の改良とはあまり関係なくなっています。」だそうだ。(No.2047 より)

 mpg123dsf を Unicode タグに対応させてみることにした。DirectShow の IAMMediaContent では、文字列は Unicode で扱うが、現状の mpg123dsf は、Unicode で書かれたタグは一度 Shift_JIS に変換して記憶し、IAMMediaContent が呼ばれたときに、Unicode に再度変換してから内容を返しており、無駄である。内部的にも Unicode で扱うようにすることで、Shift_JIS では使えない文字も使えるようになる。
 現在の mpg123プラグイン 改悪バージョンは、内部処理が Unicode になっているので、それを参考にして改造し、無事 Unicode タグに対応した。Win98SE でも動かしてみたが、問題なく動作した。

2008/01/02

mpg123dsf

 mpg123dsf が RIFF MP3 に対応していないのも気になったので、対応させてみた。

などを参考にした。

2008/01/01

mp3infp.dll

 mp3infp.dll を使うプログラムを作ってみた。GetProcAddress() を使うのが面倒だったので、暗黙的リンクを使おうとしたのだが、インポートライブラリが提供されていないために、逆に面倒なことになってしまった。mp3infp.def から lib コマンドでインポートライブラリを作成したところ、関数の修飾名が一致しないせいでリンクができない。アセンブリコードを割り込ませて何とかする方法も試してみたが、関数単位でのリンクができないため、必要ないコードまでリンクされる場合があるのでやめた。(VC++ では、COMDAT という形式を使って関数単位でのリンクを実現しているらしい。) 結局、mp3infp_ExportFunc.h を元にダミーの mp3infp.dll を作成し、そのときにできたインポートライブラリを使うことにした。

spam

 先月の spam メールの集計結果。着信拒否にならなかった spam が少なくとも 1335通。そのうち、@nifty の迷惑メールフォルダーでも Spam Mail Killer でも spam として認識できなかったものは 1通(0.07%)。先月は spam がいつもより少なめだった。

メール受信状況 2007/12


Copyright (C) 2008 K.Takata