在创建Tooltip的时候,总是失败,GetLastError,一下,发现是 1309,意思是:目前未模仿客户端的线程试图在模仿令牌上操作。
因为编译的是 Unicode 版本, 在SDK中有如下的定义:
#define _WIN32_IE 0x0600
#define WINVER 0x0502
#define _WIN32_WINNT 0x0502
然后问题就来了
typedef struct tagTOOLINFOW {
UINT cbSize;
UINT uFlags;
HWND hwnd;
UINT_PTR uId;
RECT rect;
HINSTANCE hinst;
LPWSTR lpszText;
#if (_WIN32_IE >= 0x0300)
LPARAM lParam;
#endif
#if (_WIN32_WINNT >= 0x0501)
void *lpReserved;
#endif
} TTTOOLINFOW, NEAR *PTOOLINFOW, *LPTTTOOLINFOW;
cbSize 赋 sizeof(TTTOOLINFOW) 是不行,要 sizeof(TTTOOLINFOW) - sizeof(void *)才行。