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