Главная страница
    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.007 c
3-6900
Shkolnik
2002-05-13 14:17
2002.06.03
Объясните плиз самое простое самому начинающему


14-7183
BigBadMutuh
2002-04-25 15:04
2002.06.03
Как использовать шкурки?


14-7191
dimich
2002-04-26 11:18
2002.06.03
Как подгрузить autoexec в Win2000?


1-6979
ga3
2002-05-22 22:43
2002.06.03
Возведение в степень


7-7237
dobriy
2002-03-09 18:54
2002.06.03
Помогите с ListView





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский