Операционная система Microsoft Windows 3.1 для программиста. Дополнительные главы


Листинг 3.7. Файл ddeml/ddemlcf.cpp - часть 2


// Освобождаем идентификаторы строк DdeFreeStringHandle(idInst, hszService); DdeFreeStringHandle(idInst, hszTopic); DdeFreeStringHandle(idInst, hszItem );

// Удаляем переходник для функции обратного вызова FreeProcInstance(lpDdeProc); }

//----------------------------------------------------- // Функция DDESend // Передача серверу текстовой строки //----------------------------------------------------- BOOL DDESend(HCONV hConv, LPSTR szString) { if(hConv != NULL) { // Создаем идентификатор данных hData = DdeCreateDataHandle (idInst, szString, lstrlen(szString) + 1, 0L, hszItem, CF_TEXT, 0);

// Запускаем транзакцию записи данных if(hData != NULL) hData = DdeClientTransaction((LPBYTE)hData, -1, hConv, hszItem, CF_TEXT, XTYP_POKE, 1000, &dwResult); if(hData != NULL) return TRUE; else return FALSE; } else return FALSE; }

//----------------------------------------------------- // Функция DDEReceive // Получение от сервера текстовой строки //----------------------------------------------------- BOOL DDEReceive(HCONV hConv, LPSTR szBuf, int nBufSize) { // Запускаем транзакцию чтения данных if(hConv != NULL) { hData = DdeClientTransaction(NULL, 0, hConv, hszItem, CF_TEXT, XTYP_REQUEST, 1000, &dwResult);

// Получаем строку от сервера if(hData != NULL) { DdeGetData(hData, szBuf, nBufSize, 0L); return TRUE; } else return FALSE; } else return FALSE; }

//----------------------------------------------------- // Функция DDEClientCallback // Функция обратного вызова для клиента DDEML //----------------------------------------------------- #pragma argsused HDDEDATA EXPENTRY DDEClientCallback(WORD wType, WORD wFmt, HCONV hConvX, HSZ hsz1, HSZ hsz2, HDDEDATA hData, DWORD dwData1, DWORD dwData2) { switch(wType) { case XTYP_DISCONNECT: return((HDDEDATA) NULL);

case XTYP_ERROR: break;

case XTYP_XACT_COMPLETE: break; } return((HDDEDATA)NULL); }

Все символические константы определены в файле ddemlcf.hpp (листинг3.8).




Начало  Назад  Вперед



Книжный магазин