应用程序必须通过发送ABM_NEW消息注册应用程序栏。注册appbar将其添加到系统的内部列表中,并为系统提供消息标识符,用于向应用程序发送通知消息。退出之前,应用程序必须通过发送ABM_REMOVE消息取消注册应用程序。取消注册会从系统的内部列表中删除应用程序栏,并阻止该栏接收应用程序栏通知消息。
以下示例中的函数根据布尔标志参数的值来注册或取消注册应用程序。
// RegisterAccessBar - 注册或取消注册应用程序。
//如果成功返回TRUE,否则返回FALSE。
// hwndAccessBar - appbar的句柄
// fRegister - 注册和注销标志
//
//全局变量
// g_uSide - screen edge(默认为ABE_TOP)
// g_fAppRegistered - 指示条是否已注册的标志
BOOL RegisterAccessBar(HWND hwndAccessBar, BOOL fRegister)
{
APPBARDATA abd;
//指定应用程序的结构大小和句柄。
abd.cbSize = sizeof(APPBARDATA);
abd.hWnd = hwndAccessBar;
如果(fRegister){la
//提供通知消息的标识符。
abd.uCallbackMessage = APPBAR_CALLBACK;
//注册appbar。
if(!SHAppBarMessage(ABM_NEW,& abd))
return FALSE;
g_uSide = ABE_TOP; //默认边
g_fAppRegistered = TRUE;
} else {
//取消注册应用程序。
SHAppBarMessage(ABM_REMOVE, &abd);
g_fAppRegistered = FALSE;
}
return TRUE;
}