blob: 6acb3710807c4d257c3ab78c9d319fd7c839937c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
#ifndef _MESSAGE_PUMP_INC
#define _MESSAGE_PUMP_INC
extern unsigned message_pump_thread_id;
void PostMPMessage(UINT msg, WPARAM, LPARAM);
#define MUM_CREATEPOPUP (WM_USER + 0x011)
#define MUM_DELETEPOPUP (WM_USER + 0x012)
#define MUM_NMUPDATE (WM_USER + 0x013)
#define MUM_NMREMOVE (WM_USER + 0x014)
#define MUM_NMAVATAR (WM_USER + 0x015)
struct PopupData
{
int cbSize;
int flags; // OR of PDF_* flags below
HANDLE hContact;
HICON hIcon;
union {
char *pszTitle;
TCHAR *ptzTitle;
wchar_t *pwzTitle;
};
union {
char *pszText;
TCHAR *ptzText;
wchar_t *pwzText;
};
COLORREF colorBack; // if colorBack and colorText are equal, defaults will be used
COLORREF colorText;
WNDPROC windowProc; // optional custom window procedure
int timeout; // -1 == infinite, 0 == default, otherwise timeout in seconds
void *opaque;
void SetIcon(HICON);
};
// given a popup data pointer, and a handle to an event, this function
// will post a message to the message queue which will set the hwnd value
// and then set the event...so create an event, call this function and then wait on the event
// when the event is signalled, the hwnd will be valid
void FindWindow(PopupData *pd, HANDLE hEvent, HWND *hwnd);
void InitMessagePump();
void DeinitMessagePump();
#endif
|