Установил Microsoft Visual Studio .NET. Круто. ОС у меня WinXP. Тоже круто. Начал писать прогу, в ней активно используется System Tray. Так вот есть такая структура NOTIFYICONDATA называется. Начиная с пятой версии Internet Explorer она немного видоизменяется, предоставляя новые возможности. Вот кусок кода из SHELLAPI.H
Код:
typedef struct _NOTIFYICONDATAA {
DWORD cbSize;
HWND hWnd;
UINT uID;
UINT uFlags;
UINT uCallbackMessage;
HICON hIcon;
#if (_WIN32_IE < 0x0500)
CHAR szTip[64];
#else
CHAR szTip[128];
#endif
#if (_WIN32_IE >= 0x0500)
DWORD dwState;
DWORD dwStateMask;
CHAR szInfo[256];
union {
UINT uTimeout;
UINT uVersion;
} DUMMYUNIONNAME;
CHAR szInfoTitle[64];
DWORD dwInfoFlags;
#endif
#if (_WIN32_IE >= 0x600)
GUID guidItem;
#endif
} NOTIFYICONDATAA, *PNOTIFYICONDATAA;
typedef struct _NOTIFYICONDATAW {
DWORD cbSize;
HWND hWnd;
UINT uID;
UINT uFlags;
UINT uCallbackMessage;
HICON hIcon;
#if (_WIN32_IE < 0x0500)
WCHAR szTip[64];
#else
WCHAR szTip[128];
#endif
#if (_WIN32_IE >= 0x0500)
DWORD dwState;
DWORD dwStateMask;
WCHAR szInfo[256];
union {
UINT uTimeout;
UINT uVersion;
} DUMMYUNIONNAME;
WCHAR szInfoTitle[64];
DWORD dwInfoFlags;
#endif
#if (_WIN32_IE >= 0x600)
GUID guidItem;
#endif
} NOTIFYICONDATAW, *PNOTIFYICONDATAW;
#ifdef UNICODE
typedef NOTIFYICONDATAW NOTIFYICONDATA;
typedef PNOTIFYICONDATAW PNOTIFYICONDATA;
#else
typedef NOTIFYICONDATAA NOTIFYICONDATA;
typedef PNOTIFYICONDATAA PNOTIFYICONDATA;
#endif // UNICODE
Как видно новые поля в структуру добавляются по условию (_WIN32_IE >= 0x500). Загвоздка в том, что у меня этого не происходит, несмотря на то, что стоит WinXP и IE6.
Я вставил в начало своего кода следующий текст:
Код:
#if _WIN32_IE < 0x500
#error WINDOWS MUST DIE
#endif
Теперь компилятор често признаётся, что WINDOWS не самая лучшая система. Если кто знает, в чём проблема, помогите, пожалуйста.