Реферат: Протоколы и стандарты объектно-ориентированного программирования
!= NULL)
cConv++;
// Выделяем буфер для сохранения идентификаторов строк.
hconv = NULL;
aHsz = (HSZ *) LocalAlloc(LMEM_FIXED, cConv * sizeof(HSZ));
// Копируем идентификатор строки в буфер.
pHsz = aHsz;
ile((hconv = DdeQueryNextServer(hconvList,hconv)) != NULL)
{
DdeQueryConvInfo(hconv, QID_SYNC, (PCONVINFO) &ci);
DdeKeepStringHandle(idInst, ci.hszSvcPartner);
*pHsz++ = ci.hszSvcPartner;
}
.
. // Используем идентификатор: 'общаемся' с сервером.
.
// Освобождаем память и прекращаем диалог.
LocalFree((HANDLE) aHsz);
DdeDisconnectList(hconvList);
Приложение может оборвать индивидуальный диалог, находящий-
ся в списке диалогов путем вызова функции DdeDisconnect; приложе-
ние может оборвать все диалоги, находящиеся в списке путем вызо-
ва функции DdeDisconnectList.
Обе вышеуказанные функции указывают DDEML о необходимости
посылки транзакции вида XTYP_DISCONNECT во все функции партнеров
по диалогу данного приложения (в случае использования функции
DdeDisconnectList будет посылаться транзакция XTYP_DISCONNECT для
каждого элемента в списке диалогов).
Обмен данными между приложениями