GWL(-1)
От: kero Россия  
Дата: 11.04.14 21:57
Оценка:
Не подскажет ли кто ссылку на первоисточник инфы о (GetWindowLong(hwnd,-1)+delta) ?
Самому выгуглить не удалось, надежда на матерых зубров
Спасибо.
По всему, пашиным хозяевам позарез нужна война в Европе
(уверены — к ним не залетит, в предыдущих двух не залетало жеж)
Автор: kero
Дата: 21.07.14
Re: GWL(-1)
От: 98fpbc  
Дата: 12.04.14 12:21
Оценка:
Здравствуйте, kero, Вы писали:

K>Не подскажет ли кто ссылку на первоисточник инфы о (GetWindowLong(hwnd,-1)+delta) ?

K>Самому выгуглить не удалось, надежда на матерых зубров
K>Спасибо.

вообще то с каждым окном связана структура WND. находится она конечно в памяти ядра, но также отображается и в юзермоде (только для чтения конечно) для быстрого readonly доступа к некоторым параметрам окна, без перехода в ядро. при вызове GetWindowLongPtrW сначала вызывается

PWND ValidateHwnd(HWND hwnd);


функция которая переводит HWND в PWND (юзермодное отображение конечно) а затем (если PWND != 0) вызывается

LONG_PTR GetWindowData(PWND pWnd, int nIndex);


которая в зависимости от nIndex возвращает те или иные поля структуры WND. в случае же nIndex == -1, возвращается сам указатель на структуру, точнее на поле DWORD state; (первое поле после заголовка THRDESKHEAD).
так что в принципе если определить у себя в коде структуру WND то можно написать

PWND pWnd = CONTAINING_RECORD(GetWindowLongPtrW(hwnd, -1), WND, state);


и имееть (readonly) доступ к структуре WND.
Re: GWL(-1)
От: RonWilson Россия  
Дата: 12.04.14 12:44
Оценка:
Здравствуйте, kero, Вы писали:

K>Не подскажет ли кто ссылку на первоисточник инфы о (GetWindowLong(hwnd,-1)+delta) ?

K>Самому выгуглить не удалось, надежда на матерых зубров
K>Спасибо.

я видел объяснение от самого
Re[2]: GWL(-1)
От: kero Россия  
Дата: 13.04.14 09:10
Оценка:
Здравствуйте, RonWilson, Вы писали:

RW>я видел объяснение от самого


А где именно видел? Не перепутал чего? Чена-то не первый год "отслеживаю", и ни на oldnewthing, ни в "Practical Development Throughout the Evolution of Windows" этакого не попадалось
По всему, пашиным хозяевам позарез нужна война в Европе
(уверены — к ним не залетит, в предыдущих двух не залетало жеж)
Автор: kero
Дата: 21.07.14
Re[2]: GWL(-1)
От: kero Россия  
Дата: 13.04.14 09:16
Оценка:
Здравствуйте, 98fpbc, Вы писали:

9>вообще то с каждым окном связана структура WND.


Ага, в курсе, но интересует именно то, о чем сказал в исходном посте
По всему, пашиным хозяевам позарез нужна война в Европе
(уверены — к ним не залетит, в предыдущих двух не залетало жеж)
Автор: kero
Дата: 21.07.14
Re[3]: GWL(-1)
От: RonWilson Россия  
Дата: 13.04.14 13:01
Оценка:
Здравствуйте, kero, Вы писали:

K>Здравствуйте, RonWilson, Вы писали:


RW>>я видел объяснение от самого


K>А где именно видел? Не перепутал чего? Чена-то не первый год "отслеживаю", и ни на oldnewthing, ни в "Practical Development Throughout the Evolution of Windows" этакого не попадалось


100% видел, из нового, что в книгу не вошло — он там про SetWindowLong объяснял
Re[4]: GWL(-1)
От: kero Россия  
Дата: 14.04.14 00:26
Оценка:
Здравствуйте, RonWilson, Вы писали:

RW>100% видел, из нового, что в книгу не вошло — он там про SetWindowLong объяснял


Не поленился, заново прошелся по блогу. Не нашел.
К тому же, если "из нового" — то вроде заведомо не первоисточник: гуглятся сообщения и 10-летней давности.
По всему, пашиным хозяевам позарез нужна война в Европе
(уверены — к ним не залетит, в предыдущих двух не залетало жеж)
Автор: kero
Дата: 21.07.14
Re[5]: GWL(-1)
От: RonWilson Россия  
Дата: 14.04.14 06:39
Оценка:
Здравствуйте, kero, Вы писали:

K>Здравствуйте, RonWilson, Вы писали:


RW>>100% видел, из нового, что в книгу не вошло — он там про SetWindowLong объяснял


K>Не поленился, заново прошелся по блогу. Не нашел.

K>К тому же, если "из нового" — то вроде заведомо не первоисточник: гуглятся сообщения и 10-летней давности.

вот ей богу, помню что у него читал — но сам тоже найти не могу
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.