2008-03-31

Vistaのサムネイル機能が面白い

http://msdn2.microsoft.com/en-us/library/aa969541(VS.85).aspx

VistaのDWMを使ったサムネイル機能がとても面白い。試しに使ってみたが、DirectXで描画しているゲームのウインドウに対して使っても、ゲームも自分のウインドウも、一切フレーム落ちしない。しかも、ゲームのウインドウがバックグラウンドになっていても問題は無い。いい時代になったものだ。
気になる制限としては、ウインドウは、どちらもトップレベルでなければならないというものだ。ソースがトップレベルでなければならないというのは分かるが、サムネイルを描画される側も、トップレベルのウインドウでなければならないというのは、すこし貧弱だ。予想するに、DWMのサムネイルの実装は、ウインドウごとのサーフェイスに直接描画しているのかもしれない。
また、Flip3Dのようなことはできない。サムネイルはウインドウのある領域に、直接描画されるからだ。

使い方も、特にサンプルコードを示すまでもないほど簡単だ。まずDwmRegisterThumbnail関数で、ソースとなるウインドウとサムネイルを描画するウインドウを関連付ける。これがすんだならば、DwmUpdateThumbnailProperties関数を呼び出せばよい。この関数は、一回呼び出すだけでよい。次にもう一度呼び出すまで、サムネイルは描画され続ける。サムネイルが必要なくなったら、DwmUnregisterThumbnail関数を呼び出す。

3 comments:

  1. DWM 環境での拡大鏡 API も面白いですよ.
    http://d.hatena.ne.jp/NyaRuRu/20061226/p1

    ご参考までに.

    ReplyDelete
  2. そんなものも。
    ああ、はやく九割方がDWM動かしている時代が来ないかな。

    ReplyDelete
  3. Just want to say your article is as amazing. The clarity for your publish is just nice and that i could assume you're a professional in this subject. Well together with your permission allow me to take hold of your feed to stay updated with drawing close post. Thanks a million and please keep up the gratifying work.

    ReplyDelete

You can use some HTML elements, such as <b>, <i>, <a>, also, some characters need to be entity referenced such as <, > and & Your comment may need to be confirmed by blog author. Your comment will be published under GFDL 1.3 or later license with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.