Вниз
Скачать: CL | DM;

Функция TreeView_GetItem - не могу добиться результата...   Найти похожие ветки 

← →
Старик Бивис ©   (2002-03-29 16:29) [0]

Задача следующая: Дано чужое окно с TreeView. Есть HAndle (правильный - проверено) TreeView, найден HTREEITEM искомого Itema.
Далее: PTV.hItem :=ItemHandle;
PTV.pszText :=@LocBuf;
PTV.mask := TVIF_TEXT;,ь где PTV - это указатель на TV_ITEM
и TreeView_GetItem(TrHWND,PTV);, где TrHWND-Handle TreeView
Результат - FALSE.
Смотрел в юните comctrls.pas реализацию TTreeView. Там в TTreeNodes.GetNode используется эта же функция, но вот только в качестве первого параметра (Handle tree-view control) указан Handle TreeNodes. Может в этом дело? Как же тогда быть?


← →
Suntechnic ©   (2002-03-29 18:05) [1]

Что ты поразумеваешь под "чужим окном"? Это окно в другом процессе? Тогда ничего не получится у тебя. Потому как PTV - это указатель на структуру которая на самом деле находится другом адресном пространстве и ты к ней доступ ну никак получить не можешь.

>Как же тогда быть?
Надо внедряться в чужое адресное пространство например с помощью ловушек.


← →
Старик Бивис ©   (2002-04-01 08:23) [2]

Это вот именно тот момент, который я и не догнал. А я, почему то полагал, что структуру создаю я, а TreeView_GetItem мне ее заполняет. Выходит, TreeView_GetItem должен мне в PTV вернуть просто указатель на структуру, которая на самом деле находится в TreeView ?! Если так, тогда все понятно.
Был бы весьма признателен, уважаемый Suntechnic, если бы вы мне немножко объяснили про принцип внедрения в чужое адресное пространство с помощью ловушек.


← →
Suntechnic ©   (2002-04-01 19:49) [3]

>А я, почему то полагал, что структуру создаю я, а TreeView_GetItem мне ее заполняет.

Да всё именно так и происходит. Просто ты создал структуру и передал её адрес, ну скажем 0x33f4, только ведь это адрес в твоём адресном пространстве. А чужое окно, получив 0x33f4, попытатся обратиться по нему, но только в своём адресном пространстве. Вот тут и наступит oops.

>если бы вы мне немножко объяснили про принцип внедрения в чужое адресное пространство с помощью ловушек

Тема не очень простая(правда и не очень сложная), но "немножко" объяснить навряд ли получится. Лучше для этого почитать, например, Рихтера. Да и эта тема неоднократно подымалась в форумах. Поищи ссылки на SetWindowsHookEx.


← →
Старик Бивис ©   (2002-04-02 08:08) [4]

Спасибо



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.008 c
14-7165
PVOzerski
2002-04-24 14:07
2002.06.03
реален ли обмен SIMM ?


1-7081
NightCon
2002-05-22 09:08
2002.06.03
Определение дня недели по дате.


1-7104
android
2002-05-22 15:13
2002.06.03
Reboot под Win2k


1-6999
ga3
2002-05-23 01:56
2002.06.03
программный маус-клик


14-7198
XEL
2002-04-25 16:21
2002.06.03
ПРОГРАММА ПОД ДОС ДЛЯ УМЕНЬШЕНИЯ СКОРОСТИ CDROM




   Наверх