RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Ответить на сообщение
Имя:
e-mail:
FIDO:
Home page:
сохранить данные о вас
Тема:
> > /***************** > > Вот это и есть злополучный запрос, на который нет ответа. Я пытался передать имя Item как атом (это, вроде бы соответствует мелкомягкому механизму) - результат тот же! > > ******************/ > > case IDM_DATA : { > > > > DDESTRUCT *buf; > > > > DosAllocSharedMem(&buf, NULL, sizeof(DDESTRUCT) + 31, > > PAG_COMMIT | PAG_WRITE | OBJ_GIVEABLE | OBJ_TILE); > > DosGiveSharedMem(buf, Server[0].tid, > > PAG_WRITE | PAG_READ | PAG_COMMIT); > > buf->usFormat = DDEFMT_TEXT; > > buf->fsStatus = 0; > > buf->offszItemName = sizeof(DDESTRUCT); > > strcpy((char *)(buf + buf->offszItemName), "SysItems"); > > buf->cbData = 0; > > > > WinDdePostMsg(Server[0].hwnd, hwnd, WM_DDE_REQUEST, > > (MPARAM)buf, DDEPM_RETRY); > > break; > > } > > } > > break; > > } > > Насколько я смог разобраться в своём застарелом коде, память для передачи данных должен аллоцировать сервер, а вот высвобождать её должен клиент. А Item действительно передаётся как атом. Т.е. виндовый сервер ожидает получить сообщение wm_DDE_Request с lparam MakeLong(cf_Text, aItem)
__, _,_ _, __, ___,
|_) | | | |_ ` /
| \ | | | , | /
~ ~ `~' ~~~ ~~~ ~~~
Programmed by
Dmitri Maximovich
,
Dmitry I. Platonoff
,
Eugen Kuleshov
.
25.09.99 (c) 1999,
RU/2
. All rights reserved.
Rewritten by
Dmitry Ban
. All rights ignored.