SHAppBarMessage

機能
アプリケーションバーのメッセージをシステムに送る
Declare Function SHAppBarMessage Lib "shell32.dll" _
(ByVal dwMessage As Long, pData As APPBARDATA) As Long
Declare Function SHAppBarMessage Lib "shell32.dll" _
(ByVal dwMessage As Integer, pData As APPBARDATA) As Integer
引数
dwMessage
システムに送るメッセージのIDの定数
pData
データを格納するAPPBARDATA構造体
サンプル
ダウンロード(SHAppBarMessage.lzh 2.88KB)

dwMessageの定数

ABM_ACTIVATE = &H6                      アプリケーションバーがアクティブになった
                                         ユーザー定義のアプリケーションバーが
                                         WM_ACTIVEを受け取ったとき、システムに通知する
                                         APPBARDATA構造体のcbSizeとhWndメンバを
                                         設定しておかなければならない。
                                         ただし「自動的に隠す」に設定してる場合
                                         このメッセージは無効となる。
                                         戻り値は常に1である。

ABM_GETAUTOHIDEBAR = &H7                自動表示のアプリケーションバーのハンドルを取得する
                                         (取得したハンドルは戻り値として戻る)
                                         ユーザー定義のアプリケーションバーの場合
                                          cbSize,hWnd,uEdgeの各メンバを設定しておかなければいけない。
                                         タスクバーの場合は、uEdgeだけでよい。

ABM_GETSTATE = &H4                      自動的に隠す、常に手前に表示のどちらに設定されているか調べる
                                         ユーザー定義のアプリケーションバーの場合
                                         cbSize, hWndの各メンバを設定しておかなければいけない。
                                         ユーザーが設定を変更したとき
                                         WindowsはABN_STATECHANGE(=0)を発行する。
                                         戻り値は以下の定数の組み合わせ
                                         --------------------------------------------------
                                                             0 デフォルト(指定されていない)
                                         ABS_AUTOHIDE      &H1 自動的に隠す
                                         ABS_ALWAYSONTOP   &H2 常に手前に表示
                                         --------------------------------------------------

ABM_GETTASKBARPOS = &H5                 アプリケーションバーの位置とサイズを調べる
                                         ユーザー定義のアプリケーションバーの場合
                                         cbSize,hWnd,uEdgeの各メンバを設定しておかなければいけない。
                                         戻り値は正常終了のとき1、 エラーのとき 0
                                         APPBARDATA構造体のrcメンバに座標値が戻る

ABM_NEW = &H0                           ユーザー定義のアプリケーションバーを登録し
                                         システムがアプリケーションバーに送るメッセージIDを指定する。
                                          APPBARDATA構造体のcbSize,hWnd,uCallbackMessageの各メンバの
                                         設定をしておかなければいけない。
                                         戻り値は正常終了のとき1、 エラーのとき 0

ABM_QUERYPOS = &H2                      ABM_SETPOSを実行する前に、新しいアプリケーションバー
                                         のための位置とサイズの良否を問い合わせる。
                                         APPBARDATA構造体のcbSize,hWnd,uEdge,rcの各メンバを
                                         設定しておかなければいけない。
                                         戻り値は常に1で、rcメンバに指定可能な位置とサイズを返す。

ABM_REMOVE = &H1                        追加したアプリケーションバーの登録を抹消し
                                         システムが保持するリストから削除する。
                                         APPBARDATA構造体のcbSize,hWndの各メンバを設定しておかなければいけない。
                                         このメッセージを実行すると
                                         Windowsは全てのアプリケーションにABN_POSCHANGED(=1)を送る。

ABM_SETAUTOHIDEBAR = &H8                自動非表示アプリケーションバーを登録を抹消する。
                                         「自動的に隠す」に設定できるアプリケーションバーは
                                         各辺ごとに一つである。
                                         APPBARDATA構造体のcbSize,hWnd,uEdge,lParamの各メンバを
                                         設定しておかなければならない。
                                         lParamは「自動的に隠す」に設定するとき1
                                         設定を解除するときは0を指定する。
                                         なおこのメッセージはタスクバーに対しては無効である。

ABM_SETPOS = &H3                        アプリケーションバーの位置とサイズを設定する。
                                         APPBARDATA構造体のcbSize,hWnd,uEdge,rcの各メンバを
                                         設定しておかなければいけない。
                                         なおこのメッセージはタスクバーに対しては効果がない。

ABM_WINDOWPOSCHANGED = &H9              アプリケーションバーの位置を変更したことをシステムに通知する。
                                         ユーザー定義のアプリケーションバーがWM_WINDOWPOSCHANGED
                                         受け取ったとき、システムに通知する。
                                         そのときAPPBARDATA構造体のcbSizeとhWndメンバを設定しておかなければいけない。
                                         戻り値は常に1である。