Поделиться через


Сведения о DDEML

Динамический обмен данными (DDE) отличается от механизма передачи данных через буфер обмена. Одно из различий заключается в том, что буфер обмена почти всегда используется в качестве однократного ответа на определенное действие пользователя, например щелкнув вставить из меню. Хотя DDE также может быть инициирован пользователем, обычно он продолжается без дальнейшего участия пользователя.

Библиотека управления динамическими данными (DDEML) предоставляет интерфейс, упрощающий задачу добавления возможности DDE в приложение. Вместо отправки, публикации и обработки сообщений DDE непосредственно приложение использует функции, предоставляемые DDEML для управления беседами DDE. Беседа DDE — это взаимодействие между клиентскими и серверным приложениями. DDEML также предоставляет средства для управления строками и данными, общими для приложений DDE. Вместо использования атомов и указателей на объекты общей памяти приложения DDE создают и обмениваются дескрипторами строк, которые определяют строки и дескрипторы данных, которые определяют объекты DDE. DDEML предоставляет функцию (DdeNameService), которая позволяет серверу приложению регистрировать поддерживаемые им имена служб. Затем имена служб передаются другим приложениям в системе, которые используют имена для подключения к серверу. DDEML также обеспечивает совместимость между приложениями DDE, требуя их реализации протокола DDE согласованно.

Существующие приложения, использующие протокол DDE на основе сообщений, полностью совместимы с теми, которые используют DDEML; То есть приложение, использующее DDE на основе сообщений, может устанавливать беседы и выполнять транзакции с приложениями с помощью DDEML. Вместо использования сообщений DDE в новом приложении воспользуйтесь DDEML и множеством улучшений, которые он предлагает.

Чтобы использовать DDEML, необходимо включить заголовочный файл DDEML.H в исходные файлы, создать ссылку на файл USER32.LIB и убедиться, что файл DDEML.DLL находится в системном пути.

При сбое функции DDEML приложение может вызвать функцию DdeGetLastError, чтобы определить причину сбоя. DdeGetLastError возвращает значение ошибки, указывающее причину последней ошибки.