MVV

|
Posted: Tue Apr 20, 2010 16:02 Post subject: |
|
|
HankHank wrote: | MVV wrote: | Видимо, ты плохо разобрался с форматом буфера для WM_COPYDATA, который ожидает ТК. Вот он:
Code: | <first_path>\r<second_path>\0<flags> |
Флаги: 'T' - в новой вкладке, 'S' - менять пути активной и неактивной панелей вместо левой и правой. |
Так ясно. По началу строчка wsprintf показалась заумной. И я решил, что хватит с меня и первого параметра с путём, куда надо переключить активную панель. А откуда эта инфо ? |
Ну, официально Гислер вроде это не документировал, в history.txt упоминается только про само сообщение без описания формата. Но вообще на TotalcmdWiki есть пример функции, отправляющей WM_COPYDATA.
HankHank wrote: | MVV wrote: | Таким образом, правильный буфер:
Code: | static char cdnet[]="\\\\\\net\r\0S"; |
|
Да, так работает. Буду ковать дальше. |
Это главное. Значит, я не ошибся, когда составлял эту строчку.
HankHank wrote: | Ещё заметил такую деталь. Может, интересно кому.
Вот здесь http://www.firststeps.ru/mfc/winapi/win/r.php?126 прочитал про WM_COPYDATA:
Quote: | Если принимающая программа обрабатывает это сообщение, она должна возвратить значение ИСТИНА (TRUE); в противном случае она должна возвратить - ЛОЖЬ (FALSE). |
У меня же передача параметров срабатывает, происходит переход куда требуется, но SendMessage возвращает при этом 0. |
Я обычно читаю MSDN. Но суть не в том. Не обращай внимание на то, что должно быть. Тем более, имея дело с VCL, на которой построены окошки в дельфийских программах - там черт ногу сломит. Кроме того, ничто не мешает ТК обработать сообщение, но вернуть 0. И в нашем случае цель отправки сообщения - не возвращаемое значение, а действие.  _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|