Archive for 7月, 2015
大船鉾なう
金曜日, 7月 24th, 2015祇園祭なう
金曜日, 7月 24th, 2015WindowsExplorerでTjw/Jwwをサムネイル表示しよう。
火曜日, 7月 21st, 2015http://soft.anshu.biz/TouchJW_TNH.html
Tjw/Jww/JWCデータを表示!
TouchJWやJw_cadのデータを表示するのにアプリを開く必要はありません。
TouchJW Thumnail Handler for WindowsExplorer
修行なう
月曜日, 7月 20th, 2015大文字なう
今日のスタート画面
木曜日, 7月 16th, 2015Windows Shellex 独自サムネイルの実装(覚書)
木曜日, 7月 16th, 2015独自ファイル形式をエクスプローラーで見るためのプログラミングの覚書
Microsoftさんから、CppShellExtTuyuumbleHandlerのプロジェクト一式をいただいてきて、VS2013に読み込む、SDKがVS2010なので、VS2013に変換するかと聞かれるのでOKする。
CppShellExtTuyuumbleHandlerの中はほぼテンプレとして使える。
まず、dllmain.cppのCLSIDをオリジナルに変造する。メッセージの部分や拡張子の部分を変造する。オリジナルのdllmain.cppには”.recipe”が2か所あるがこれを、目的の拡張子に書き換える。
あとは、RecipeThumbnailProvider.cppをいじる。ファイル名を変えたほうがすっきりするが面倒くさいのでこのまま使う(^^;…
最初に確認するのがGetThumnailのメンバ、デフォルトでは、xmlドキュメントを読んで、その中のイメージを表示するようになっている。(コメントアウトしてある。)ポイントは cx が画像サイズをこれ以下に(縦横とも)、*phbmpにサムネイルの表示するHBITMAPを格納、*pbaAlphaには、ビットマップ形式のRGBかARGBかを指定
あとは、S_OKを関数として返す。(エラーならエラーコードを返す。)
表示するデータ本体は、Initializeでストアする。IStreamの引数*pStreamがやってくるので、メンバの*m_pStreamに保存、している、このm_pStreamがファイルデータの実態であるようだ。
RecipeThumbnailProvider.cppにはヘルパー関数の中に、WICCreate32bppHBITMAPというメンバ関数を用意してくれている。見るとストリームイメージの中にあるイメージブロックをまたストリームで読んできてWICで展開し、HBITMAPに変換している。この結果を*pbaAlphaとともに引数にポインタとして返せば、GetThumnailメンバ関数でコールすれば、サムネイルが表示されるという都合である。
dllmain.cppの部分とReg.cppは主にdllのコールバックとレジストリへの登録とクリーンナップを行っている。
これだけ理解できれば、CppShellExtTuyuumbleHandlerを変造することでエクスプローラー対応のサムネイルハンドラが作成できる。
よいよい山なう
水曜日, 7月 15th, 2015暑いです。
火曜日, 7月 14th, 2015修行なう
日曜日, 7月 12th, 2015あつー