Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.06.03;
Скачать: [xml.tar.bz2];

Вниз

Функция 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.06.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.006 c
1-7069
Fly`
2002-05-20 18:23
2002.06.03
ComboTreeview1


1-6986
Крутой ниндзя
2002-05-21 14:09
2002.06.03
Как определить, какие *.bpl взять с собой?


4-7272
Eugene "Jek" Efimochkin
2002-03-26 23:34
2002.06.03
Иконки в SysTray


14-7179
Pat
2002-04-24 20:50
2002.06.03
Ошибка при открытии проекта


4-7260
Eugene "Jek" Efimochkin
2002-03-29 23:51
2002.06.03
Нужно следить за состоянием фалов и папок...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский