Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

GetWindowLong


jonni ©   (2004-11-07 01:21:00) 

Есть вот такой кусок кода.........

struct TWIconDataT
{
 DWORD imageIndex;
 NOTIFYICONDATAW dw;
};
typedef TWIconDataT* pTWIconDataT;

struct TWIconsInfoT {
  int Cnt;
  pTWIconDataT* iconData;
};

struct TWDataT {
  DWORD unknown[7];
  TWIconsInfoT* iconsInfo;
  HIMAGELIST    iconList;
};

TWDataT* twd=(TWDataT*)GetWindowLong(NotifyWnd,0);

NotifyWnd это NotifyTrayWnd (System Tray)

Help по функции GetWindowLong показал то что ни одна из постоянных типа GWL_****  не имеет нулегого значения....

Что же получается при выполнение GetWindowLong с "0"????

кстати как это можно переписать на Delphi???

cgfcb,j


GuAV   (2004-11-07 02:25:00) [1]

jonni   (07.11.04 1:21)
Что же получается при выполнение GetWindowLong с "0"????

Из MSDN:

LONG GetWindowLong(          HWND hWnd,
   int nIndex
);


nIndex
[in] Specifies the zero-based offset to the value to be retrieved. Valid values are in the range zero through the number of bytes of extra window memory, minus four; for example, if you specified 12 or more bytes of extra memory, a value of 8 would be an index to the third 32-bit integer. To retrieve any other value, specify one of the following values.
...

Remarks

Reserve extra window memory by specifying a nonzero value in the cbWndExtra member of the WNDCLASSEX structure used with the RegisterClassEx function.

Т.е. первый DWORD в "дополнительной памяти окна".


Наверх

Титульная страница Поиск, карта сайта Написать письмо