2005-06-01から1ヶ月間の記事一覧

タブの試験実装

ファイルリストをタブかMDIに乗せようかと思っていたけど、 整理しづらく使いにくい。 タブブラウザなどで使われているグループタブは ファイラとしては一覧性が低い。 分割タブとして2つのタブコントロールを使う手もあるけど、 2つと固定的なのもいまいち…

DnD

エクスプローラとDnDの挙動が違っていたので修正した。 同Window内のDnDの制限 右ドラッグ時のポップアップメニューの項目 スクロール速度 気づいている範囲は似せることができたと思う。 試行錯誤が多くて苦労した。 そういやまだIDropTargetHelperを使って…

マルチスレッド

アイコンの取得、サムネイルの取得にもワーカースレッドを使うようにした。 UIが固まることが無くなって満足。 まだスレッド関係でまずいところがあるけど、それはおいおい修正するつもり。

アイコン

アイコンの取得に時間がかかるかどうか判定する方法を見つけた。 IShellIcon::GetIconOfでIExtractIcon::GetIconLocationの パラメーターを使うというもの。 MSDNには記載されていないので邪道かもしれない。 int icon; IShellIcon* si; hr = sf->QueryInter…

実装中

今、テレビを見ながら実装中。 9時からも面白そうな番組があるので楽しみ。

ファイルリスト

今までファイルリストはListViewを使っていたけど問題点も多い。 自由度も低いし..。 そこで試しに独自コントロールを作ってみた。 この系統を書くのは久しぶりだったのでずいぶんと行き詰まった。 スクロールバーなんてもう忘れてたよ...。 そこそこ動…

IStream

実際はマーシャリングしなくても動くけど、忘れないうちにメモ。 // global IStream* ssf;// thread01 HRESULT hr; IShellFolder* sf; hr = ::CoMarshalInterThreadInterfaceInStream(IID_IShellFolder, sf, &ssf); sf->Release();// thread02 HRESULT hr; I…

アイコン

また、VPN環境でdesktop.iniでアイコンが設定してあると、 その設定してあるアイコンを取得できないことが多い。 他のファイラも試してみたけど同じ状況。 しかし、エクスプローラはできてるんだよな...。 さらに調査が必要。

マルチスレッド

今までのソースを捨てて、マルチスレッドで書き直し始めた。 列挙が遅いときにUIが固まってしまうのがイヤなので。 とりあえずファイルの列挙とアイコンの取得でワーカースレッドを使い、 ファイルリストで移動処理ができるところまで実装してみた。 今はア…

IEnumIDList::NextとFindFirstFileの速度

興味があったので計測してみた。 どこまで信頼できるか分からないけど、3回計測したものの平均。 ファイル数 IDL FFF IDL(i) FFD(i) IDL(FD) C:\ 10 0ms 0ms 0ms 16ms 0ms (d)10 0 0 0 15 0 100 0 0 0 16 0 3000 15 16 47 469 16 LAN 10 0 0 0 31 0 (d)10 16…

一段落

人様に使ってもらえるレベルにはぜんぜん達していないけど、 自分ではある程度使えるところまできた。 エクスプローラや他のファイラに実装してある主だった機能は 実装できたのではないかと思う。 中には個人的な嗜好による実装もあるけど。 これからはコー…

ツリーの実装

ツリーの実装をしてみた。 実装していて思ったけど、多くのファイラにおけるツリーの監視・更新処理は とてもアバウトなようだ。 実際のフォルダ構造とツリーが異なっていることがままある。 もちろん、速度などを考えるとそれが現実的なのかもしれないが、 …

履歴、戻る、進むの実装

履歴はコンテキストメニューで実装してみた。履歴の文字列には、 エクスプローラの詳細設定で”アドレス バーにファイルのパス名を表示する”を チェックした場合に、アドレス バーに表示される文字列を表示したかった。 例えばDドライブのルートは、”ボリュー…

アジア最終予選

仕事で観戦できなかった...。

ListViewの描画問題

ListViewでサムネイル表示をするために、LVS_ICONで カスタムドローを使っているけど、これには問題があることに気づいた。 例えばitemが3000個ある場合、スクロールさせて3000個目を表示したとする。 すると、再描画の度に、0-2999までのNM_CUSTOMDRAWが発…

MSBuild

beta1のとき、ConsoleLoggerのインデントが嫌いで、 自作Loggerを使っていたのだけど、beta2では使えない。 原因が分からないので、デバッグコードを挟んで再コンパイルしてみたら、 'Microsoft.Build.Framework.BuildEventArgs'に'Category'の定義がありま…

Visual Studio 2005 beta2

手に入ったのでインストールしてみた。 インストールにはとにかく時間がかかる。 あまりに時間がかかるので寝てしまった。 少し使ってみたけど、 beta1で気になっていたMSDNの表示速度が改善されている。 使い物にならないくらいの遅さだったので助かる。 こ…

新しい自作機

以前から自宅の機械が遅く感じていた。 Visual Studio2003が重すぎるし、コンパイルは結構待たされる。 それだけでなく、全体的にもっさり感がでてきた。 Visual Studio2005betaがとどめだったか? 欲しい時が買い時ってことで、新しいのを自作することにし…

バーレーン戦

仕事をほったらかして、観てしまったよ、やっぱり。 こういう特別な試合って、どうしても観たくなる。 今回勝てたことによって、W杯も観る楽しみが続きそう。 うちのテレビはダブルウィンドウなので、 横ではハリーポッターを見てる奴も居ましたが...。 …

再起動プログラム

SoftEther上でリモートデスクトップを使っているんだけど、 調子がおかしくなることがあまりに多い。 リモートデスクトップが繋がらなくなるなると、ホストの再起動が必要になる。 仕方なくpcAnywhereを入れて再起動しようとしたけど、 リモートデスクトップ…

縮小版(サムネイル)

表示の調整が面倒なので、適当だった縮小版の実装を進めた。 アップした画像はサムネイルサイズが48*48のもの。 ちゃんとアイコンも48*48のもを使っている。 もちろんサムネイルのサイズは調整可能。

ショートカット

フォルダのショートカットを実装していないことに気づき、 実装した。 簡単に実装できると思っていたけど、思っていたより手こずった。 調べるとIShellLinkとIPersistFileを使うらしいので、使ってみた。 しかし、フォルダのリンク切れに対して、エクスプロ…