Out of Memory

ごめん、忘れてた。

目次

Blog 利用状況

ニュース

2008年7月1日
Microsoft MVP for Developer Tools - Visual C++ を再受賞しました。
2008年2月某日
MVPアワードがVisual C++に変更になりました。
2007年10月23日
blogタイトルを変更しました。
2007年7月1日
Microsoft MVP for Windows - SDKを受賞しました!
2007年6月20日
スキル「ニュース欄ハック」を覚えた!
2006年12月14日
記念すべき初エントリ
2006年12月3日
わんくま同盟に加盟しました。

カレンダー

中の人

aetos

顔写真

埼玉を馬鹿にする奴は俺が許さん。

基本的に知ったかぶり。興味を持った技術に手を出して、ちょっと齧りはするものの、それを応用して何か形にするまでは及ばずに飽きて放り出す人。

Microsoft MVP for Windows SDK July 2007 - February 2008, Microsoft MVP for Visual C++ February 2008 - June 2009
Microsoft MVP for Windows SDK
July 2007 - February 2008
Microsoft MVP for Visual C++
February 2008 - June 2009

アクセサリ

あわせて読みたい

e-Words

アフィリエイト

記事カテゴリ

書庫

日記カテゴリ

私はこれでVB6を捨てました

SHGetFileInfoとDestroyIcon

なんか涙ぐましいことしてるなぁ….NETのListViewにSendMessage か…。

いや、ちょっと昔を思い出して。

VB6でね。エクスプローラもどきをつくろうとしたんですよ。
デスクトップをルートとする仮想フォルダツリーもちゃんと表示したりして。

SHGetFileInfoで、システムイメージリストのハンドルを取得するわけですよ。
でも、VBのListViewに設定できるのは、あくまで「ImageListコントロール」だったんですね。
しかも、その中身はIPictureDispじゃないといけないと来たもんだから、システムイメージリストの中身をOleCreatePictureIndirectで変換して、それを1個ずつImageListに追加してたんですね。
既にあるものをわざわざ複製するなんて馬鹿らしいと思いながら。

Windows SDKなら、SendMessageで一発なのにと。変換なんかしなくても、既にあるものがそのまま使えるのにと。
VB6を捨ててC+Platform SDKの世界に飛び込んだきっかけはそれでした。

.NETになっても、ImageList.Handleプロパティはあるくせに、ImageList.FromHandleメソッドは無いんだね…

以下は完全に余談。

シャノンというハンドルは、恐れ多くも情報理論の開祖、Claude Elwood Shannon大先生にあやかってつけたものです。
当時、データ圧縮にハマってまして、その端緒を開いたのがシャノンのエントロピー符号であったことに始まります。
ちなみにあの頃は、「全てのアーカイバを集める」ということもやろうとしてました。後に、ほとんどのアーカイバは似たり寄ったりのアルゴリズムでできていること、アルゴリズムをちょこっと変えれば違うアーカイバができることを知って、止めてしまいましたけど。

で、最初はLhasaのようなダイアログベースアーカイバを作ろうとしたんですが、次第に、書庫ファイルをフォルダとして扱えるようなエクスプローラライクなものへと構想が変わっていって、上記のような事態になったという次第。

その後、エクスプローラライクなものを自作するより、エクスプローラそのものを利用した方がいいだろうということに気付き、シェル拡張を志し、その基礎たるCOMに手を染めるという流れで、脈々と今に続いていたりするのでした。

# その割に、具体的な成果物はまだ何一つないんだけどナー('~`;)

投稿日時 : 2007年6月28日 11:03

Feedback

# re: 私はこれでVB6を捨てました 2007/06/28 11:19 ちゃっぴ

こういうのとか?

http://www2.moug.net/bbs/exvba/20070527000004.htm

# re: 私はこれでVB6を捨てました 2007/06/28 11:43 シャノン

そんな面倒くせーもんじゃないですよw
当時のVB使いの間でバイブルと化していたドキュメントがこれ。
http://support.microsoft.com/kb/161299/ja

タイトル  
名前  
Url
コメント