+private:
+ wxTaskBarIcon *m_icon;
+};
+
+
+// ----------------------------------------------------------------------------
+// NotifyIconData: wrapper around NOTIFYICONDATA
+// ----------------------------------------------------------------------------
+
+struct NotifyIconData : public NOTIFYICONDATA
+{
+ NotifyIconData(WXHWND hwnd)
+ {
+ memset(this, 0, sizeof(NOTIFYICONDATA));
+ cbSize = sizeof(NOTIFYICONDATA);
+ hWnd = (HWND) hwnd;
+ uCallbackMessage = gs_msgTaskbar;
+ uFlags = NIF_MESSAGE;
+
+ // we use the same id for all taskbar icons as we don't need it to
+ // distinguish between them
+ uID = 99;
+ }
+};
+
+// ----------------------------------------------------------------------------
+// wxTaskBarIcon
+// ----------------------------------------------------------------------------
+
+wxTaskBarIcon::wxTaskBarIcon()
+{
+ m_win = NULL;
+ m_iconAdded = false;
+ RegisterWindowMessages();
+}
+
+wxTaskBarIcon::~wxTaskBarIcon()
+{
+ if ( m_iconAdded )
+ RemoveIcon();
+
+ if ( m_win )