Показать сообщение отдельно
Старый 01.10.2005, 15:47     # 1
VENOMOUS SNAKE
Guest
 
Сообщения: n/a

Что-то с _WIN32_IE

Установил 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 не самая лучшая система. Если кто знает, в чём проблема, помогите, пожалуйста.