+ if (msg == gs_msgRestartTaskbar || msg == gs_msgTaskbar)
+ {
+ return m_icon->WindowProc(msg, wParam, lParam);
+ }
+ else
+ {
+ return wxFrame::MSWWindowProc(msg, wParam, lParam);
+ }
+ }
+
+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;