source: trunk/src/3rdparty/os2/xsystray/xsystray.h@ 272

Last change on this file since 272 was 272, checked in by Dmitry A. Kuminov, 16 years ago

3rdparty: os2/xsystray: Use shared memory pool instead of TLS for structures sent to the system tray server by the client-side API. The memory pool is big enough to hold ~64 simultaneous requests to the server (e.g. 64 parallel threads). This also fixes a potential bug when not all threads could re-give their per-thread memory blocks to the server process after it is stopped and restarted.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Date Revision Author Id
File size: 1.8 KB
Line 
1/*
2 * Extended system tray widget for XCenter/eCenter
3 *
4 * Internal declarations
5 *
6 * Made by netlabs.org
7 *
8 * Author: Dmitry A. Kuminov
9 *
10 * This software is public domain.
11 *
12 * WITHOUT ANY WARRANTY..., AT YOUR OWN RISC... ETC.
13 *
14 */
15
16#ifndef XSYSTRAY_HEADER_INCLUDED
17#define XSYSTRAY_HEADER_INCLUDED
18
19#define XSYSTRAY_VERSION_MAJOR 0
20#define XSYSTRAY_VERSION_MINOR 1
21#define XSYSTRAY_VERSION_REVISION 0
22
23#define WNDCLASS_WIDGET_XSYSTRAY_SERVER "XWPCenterExtendedSysTrayServer"
24
25#define WNDCLASS_WIDGET_XSYSTRAY "XWPCenterExtendedSysTray"
26#define INTCLASS_WIDGET_XSYSTRAY "ExtendedSysTray"
27#define HUMANSTR_WIDGET_XSYSTRAY "Extended system tray"
28
29#define WM_XST_CONTROL (WM_USER + 0)
30
31typedef enum
32{
33 SYSTRAYCMD_GETVERSION,
34 SYSTRAYCMD_ADDICON,
35 SYSTRAYCMD_REMOVEICON,
36 SYSTRAYCMD_SETTOOLTIP,
37 SYSTRAYCMD_SHOWBALLOON,
38 SYSTRAYCMD_HIDEBALLOON,
39} SYSTRAYCMD;
40
41typedef struct
42{
43 SYSTRAYCMD ulCommand;
44 // command to execute, must always be set
45 HWND hwndSender;
46 // sender window, a must for SYSTRAYCMD_ADDICON, REMOVEICON,
47 // SETTOOLTIP, SHOWBALLOON, HIDEBALLOON
48 union
49 {
50 struct
51 {
52 ULONG ulMajor;
53 ULONG ulMinor;
54 ULONG ulRevision;
55 } version;
56 // used by SYSTRAYCMD_GETVERSION
57
58 struct
59 {
60 ULONG ulId;
61 HPOINTER hIcon;
62 ULONG ulMsgId;
63 } icon;
64 // used by SYSTRAYCMD_ADDICON, SYSTRAYCMD_REMOVEICON
65
66 struct
67 {
68 ULONG ulId;
69 CHAR szText[512];
70 } tooltip;
71
72 } u;
73
74 BOOL bAcknowledged : 1;
75 // set to true by the recipient if it processes the message
76
77} SYSTRAYCTLDATA, *PSYSTRAYCTLDATA;
78
79#endif // XSYSTRAY_HEADER_INCLUDED
80
81
Note: See TracBrowser for help on using the repository browser.