Средства разработки приложений


Описание протокола DDE - часть 4


При  этом если фактическая длина строки (в символах) меньше указанной в параметре cchMax, то функция скопирует cchMax символов и вернет это значение. Если cchMax больше фактической длины строки, то функция скопирует всю строку и вернет количество скопированных символов. Если передать через параметр   psz нулевое значение, то функция проигнорирует значение параметра cchMax и вернет фактическую длину строки в символах. Размер буфера в байтах для строки зависит от размера символа и определяется параметром iCodePage.

Для получения данных из глобальной области памяти по их идентификатору нужно воспользоваться функцией DdeGetData:

DWORD WINAPI DdeGetData(

HDDEDATA hData,

void FAR* pDst,

DWORD cbMax,

DWORD cbOff

);

Функция должна получить на вход следующие параметры:

  • hData -  идентификатор порции данных в глобальной области памяти;
  • pDst – указатель на буфер, куда будут скопированы данные из глобальной области.
  • cbMax – размер буфера в байтах. Если фактический размер данных больше размера области в буфере, которая выделяется под эти данные(см. ниже параметр cbOff), то будут скопированы только первые (cbMaxcbOff) байт. Иначе функция скопирует все данные в буфер.
  • cbOff – смещение в буфере относительно начала, с которого функция поместит в буфер данные из глобальной области.

Функция возвратит количество фактически скопированных байт данных. Если вместо ссылки на буфер через параметр pDst передать нулевое значение, то функция вернет фактический размер порции данных в глобальной области памяти, при этом значение параметров cbMax и cbOff будут проигнорированы.

Канал связи DDE создается с помощью функции DdeConnect:

HCONV WINAPI DdeConnect(

DWORD idInst,

HSZ hszService,

HSZ hszTopic,

CONVCONTEXT FAR* pCC);

В качестве параметров функция должна получить следующее:

  • idInst - программный идентификатор приложения, полученный при регистрации в библиотеке DDEML;
  • hszService – идентификатор строки названия сервиса, который необходимо предварительно получить вызовом функции DdeCreateStringHandle
  • hszTopic – идентификатор строки названия раздела, который также заранее запрашивается у библиотеки DDEML вызовом функции DdeCreateStringHandle;
  • pCC – указатель на специальную структуру типа CONVCONTEXT, в которой указывается информация о национальном языке и кодовой странице.


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



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