サムネイル・ツールバーをようやく実装した。
クリックするとタイマーの停止・開始をトグルする。
サムネイル・ツールバーのAPIは3つで、そのうちの2つを使った(ITaskbarList3::ThumbBarAddButtons メソッドと ITaskbarList3::ThumbBarUpdateButtons メソッド)。この2つのAPIはウィンドウハンドルと、THUMBBUTTON構造体の配列を引数に取る。ThumbBarAddButtons はボタンの追加で、ThumbBarUpdateButtons はボタンの更新である。必要なボタン数に応じてTHUMBBUTTON配列を用意して、ThumbBarAddButtons を呼び出して追加し、ボタンのプロパティを変更するには配列の内容を変更してThumbBarUpdateButtons を呼び出すのである。
このTHUMBBUTTON構造体配列を1つ1つのツールバーボタンをオブジェクトみたく操作できるようラッパークラスを実装しようと考えた。.Net Frameworkの実装も参考にしたが、結局薄いラッパーに落ち着いた。見た目個々のツールバー・ボタンをいじれるような感じになっているが、最終的に変更を更新するためのメソッドを呼ばねばならない(taskbar::update_thumb_buttons)。
ソースコード taskbar.h,taskbar.cpp
実装は少々ヘンテコリンな感じである。thumb_button_managerにインデックスを引数に取る操作メソッドを実装するように変えようかな。。