2003/03/26 20030326

今日も八代行き。 はるばる大阪から伯父夫婦が来た。 会うの数年ぶりだな。

スクリーンキーボードだけで入力するのはキツイので POBox for Windows を導入。 うちのSony製携帯、SO503iSにも使われているやつなので 使いやすいかと思ったんだが、デフォルトの辞書が悪いらしく 変な候補ばかり出て、あまり使えなかった。

2003/03/25 20030325

東京へ荷物を送りました。 パソコンなども送ってしまったので 残った古いほうのパソコンでこれを書いてます。 CD-ROMドライブもキーボードも無くて不便です。 Widows2000付属のスクリーンキーボードでポチポチやるのはきつい。 ディスプレイはかなりぼやけてるし。

八代行き。

2003/03/22 20030322

東京へ行く準備とかでなにかと忙しい今日この頃。 25日に荷物を出して、29日に向こうへ行く予定。 しばらくネットが使えなくなりそうです。

2003/03/14 20030314

卒業式。 どう考えても赤点の教科の再試がなかったりして、 本当に自分が卒業できているのか不安だったが 卒業証書がもらえて一安心。

2003/03/13 20030313

SeLhaMiniをWTLで書き直し中。

オプションダイアログをプロパティシートにする。 CPropertyPageImplとCWinDataExchangeから CPropertyPageMainとCPropertyPageShellを派生して CPropertySheetで表示。 [適用]はsheet.m_psh.dwFlags |= PSH_NOAPPLYNOW;とかやって削除。

フォルダの参照はCFolderDialogImplから CFolderBrowseを派生してOnInitialized()とOnSelChanged()を オーバーライドして使用。

2003/03/12 20030312

朝から晩まで部屋の整理。 部屋の整理といっても主に整理するのは押し入れの中だったり。 自分の部屋は家の中で一番広い押し入れがあるので、 邪魔なものはどんどん押し入れに入れていくわけです。 15年間で溜まったものを片づけるのは大変でした。

2003/03/11 20030311

SHGetSpecialFolderLocationでCSIDL_PROGRAM_FILESを指定すれば Program Filesの場所が取得できるんですねぇ。 手持ちのMSDNライブラリにはそんな値があるなんて書かれてないよ…。 今までレジストリから調べてた。 まぁ、 Shell32.dll Version 5.00 以降しか使えないみたいだけど。

2003/03/09 20030309

朝ー朝だよー。なぜか5時起き。寝たのが早かったせいか。

今後のSeLhaMiniの構想(妄想ともいう)でも書いてみる。高低は実現度。

  • 高:汚いソースの書き直し。現在WTLで書き直してます。 いままで、「改良したいと思う」→「汚いソースを見る」→「やる気無くす」だったからねぇ。
  • 高:Noahのb2eファイルのように、 外部ファイルからアーカイバのデータを読み込む(現在ソースに直書き)。 外部ファイルはXMLになる予定。 これができれば新しい統合アーカイバDLLがでてもソース書き直さずに済む(これが目的だったり)。
  • 高:関連付け機能の改良。
  • 低:exeファイルに対応。 これが実現するとアーカイバというより汎用ファイル変換ソフトって感じになりそう。 gif2pngに対応して SeLhaMiniでgifからpngに変換できるようになるとか。
  • 低:SPIAM32.DLLを廃止して、本体でSusie用アーカイブ展開プラグインに対応。 これは微妙。
  • 低:圧縮対応。しなくてもいいけど。
  • 低:設定をファイルに保存。 設定はファイルに保存されていた方が便利なので実現したいが、 iniファイルを操作するGetPrivateProfileStringなどのAPIは 「この関数は、16 ビット Windows ベースのアプリケーションとの 互換性を保つ目的でのみ提供されています。Win32 ベースの アプリケーションでは、初期化情報をレジストリに格納してください」 とか書いてあるのであまり使いたくない。 独自のファイル形式とか?

結論:わざわざ自分で作らなくてもNoah使えば解決。 でも作る楽しみがないな。

マルチバイト文字、Unicodeへの対応について調べる。 型は_TCHAR、文字列定数は_T()、関数は_tcs~を使えばいいらしい。

Donutの設定読み込み/保存関係のソースを見る。よくできてる。

Noahのソースを眺める。 exeファイルの実行はCreateProcessで普通に実行してるだけのようだ。

2003/03/08 20030308

諸事情により学校へ。ダラダラとした後、用事をこなす。

フォース。あいかわらず、うまい人相手にどう動けばいいのかわからん。

帰宅後。食べて飲んで寝た(飲むと眠くなる人)。

2003/03/07 20030307

SeLhaMini ver.0.14 released. ファイル名を長いパス名のままDLLに渡すように変更。 長いパス名のファイルが解凍できないバグを修正。 (解凍先フォルダのパス+作成するフォルダ名の文字数がMAX_PATHを超える可能性があったのを修正)

MAX_PATH=260、Windows2000でのパス名の長さは最大257文字(今日確認)。 3文字分余るのはロングファイル名の時につける二重引用符と文字列の終端を表すnullのためだろうか。 最大257文字という中途半端なのも気になる。

WTLの勉強。日本語の資料が少ないので英語読まないといけないのがめんどい。 ATL 3.0 ウィンドウ クラス: 入門を読む。 CWindow関係がそれなりに分かった。 これを見ながらグリグリとコードいじっている途中、CDialogResizeというクラスを発見。 検索したらThe Code Projectにサンプルがあったので登録。 Using WTL's Built-in Dialog Resizing Classから サンプルをダウンロードしてCDialogResizeの使い方を覚える。 自動でリサイズしてくれるのがありがたい。SeLhaMiniは自分で関数作って処理してるので。

2003/03/06 20030306

SeLhaMini ver.0.13 released. 特定のパスにあるファイルが、関連づけで開いたときにリストへ追加されないバグを修正。 (長いパス名を得る自前の関数がバグっていたのでAPIのGetLongPathNameを使用するように変更。 これによりWindows95/NT4非対応に。)

カルトにゅう61問正解。4級認定。まだまだか。