Функция DdeInitializeA (ddeml.h)
Регистрирует приложение с помощью библиотеки управления динамическими данными Exchange (DDEML). Приложение должно вызывать эту функцию перед вызовом любой другой функции библиотеки управления Динамическими данными (DDEML).
Синтаксис
UINT DdeInitializeA(
[in, out] LPDWORD pidInst,
[in] PFNCALLBACK pfnCallback,
[in] DWORD afCmd,
DWORD ulRes
);
Параметры
[in, out] pidInst
Тип: LPDWORD
Идентификатор экземпляра приложения. При инициализации этот параметр должен указывать на 0. Если функция завершается успешно, этот параметр указывает на идентификатор экземпляра для приложения. Это значение должно быть передано в качестве параметра idInst во всех остальных функциях DDEML, требующих его. Если приложение использует несколько экземпляров библиотеки динамической компоновки DDEML (DLL), приложение должно предоставить другую функцию обратного вызова для каждого экземпляра.
Если pidInst указывает на ненулевое значение, подразумевается повторная инициализация DDEML. В этом случае pidInst должны указывать на допустимый идентификатор экземпляра приложения.
[in] pfnCallback
Тип: PFNCALLBACK
Указатель на функцию обратного вызова DDE, определяемую приложением. Эта функция обрабатывает транзакции DDE, отправленные системой. Дополнительные сведения см. в функции обратного вызова DdeCallback.
[in] afCmd
Тип: DWORD
Набор флагов APPCMD_, CBF_и MF_. Флаги APPCMD_ предоставляют специальные инструкции для DdeInitialize. Флаги CBF_ указывают фильтры, которые препятствуют достижению функции обратного вызова определенных типов транзакций. Флаги MF_ указывают типы действий DDE, отслеживаемых приложением мониторинга DDE. Использование этих флагов повышает производительность приложения DDE, устраняя ненужные вызовы функции обратного вызова.
Этот параметр может быть одним или несколькими из следующих значений.
Ценность | Значение |
---|---|
|
Позволяет приложению отслеживать действия DDE в системе. Этот флаг предназначен для использования приложениями мониторинга DDE. Приложение задает типы действий DDE для отслеживания путем объединения одного или нескольких флагов монитора с флагом APPCLASS_MONITOR. Дополнительные сведения см. в следующем разделе "Примечания". |
|
Регистрирует приложение как стандартное (немониторингное) приложение DDEML. |
|
Запрещает приложению стать сервером в беседе DDE. Приложение может быть только клиентом. Этот флаг снижает потребление ресурсов DDEML. Он включает функции флага CBF_FAIL_ALLSVRXACTIONS. |
|
Запрещает DDEML отправлять XTYP_CONNECT и XTYP_WILDCONNECT транзакции в приложение, пока приложение не создаст его строковые дескрипторы и зарегистрировало его имена служб или отключило фильтрацию путем последующего вызова DdeNameService или функции DdeInitialize. Этот флаг всегда действует, когда приложение вызывает DdeInitialize в первый раз независимо от того, указывает ли приложение флаг. При последующих вызовах DdeInitialize, не указывая этот флаг, отключает фильтры имени службы приложения, но указывая, что он включает фильтры имени службы приложения. |
|
Запрещает функцию обратного вызова получать транзакции сервера. Система возвращает DDE_FNOTPROCESSED каждому клиенту, который отправляет транзакцию в это приложение. Этот флаг эквивалентен сочетанию всех флагов CBF_FAIL_. |
|
Запрещает функцию обратного вызова получать XTYP_ADVSTART и XTYP_ADVSTOP транзакции. Система возвращает DDE_FNOTPROCESSED каждому клиенту, который отправляет XTYP_ADVSTART или XTYP_ADVSTOP транзакцию на сервер. |
|
Запрещает функцию обратного вызова получать XTYP_CONNECT и XTYP_WILDCONNECT транзакции. |
|
Запрещает функцию обратного вызова получать транзакции XTYP_EXECUTE. Система возвращает DDE_FNOTPROCESSED клиенту, который отправляет XTYP_EXECUTE транзакцию на сервер. |
|
Запрещает функцию обратного вызова получать XTYP_POKE транзакции. Система возвращает DDE_FNOTPROCESSED клиенту, который отправляет XTYP_POKE транзакцию на сервер. |
|
Запрещает функцию обратного вызова получать XTYP_REQUEST транзакции. Система возвращает DDE_FNOTPROCESSED клиенту, который отправляет XTYP_REQUEST транзакцию на сервер. |
|
Запрещает функцию обратного вызова получать XTYP_CONNECT транзакции из собственного экземпляра приложения. Этот флаг запрещает приложению устанавливать беседу DDE с собственным экземпляром. Приложение должно использовать этот флаг, если он должен взаимодействовать с другими экземплярами себя, но не с самим собой. |
|
Запрещает функцию обратного вызова получать уведомления. Этот флаг эквивалентен сочетанию всех CBF_SKIP_ флагов. |
|
Запрещает функцию обратного вызова получать уведомления XTYP_CONNECT_CONFIRM. |
|
Запрещает функцию обратного вызова получать уведомления XTYP_DISCONNECT. |
|
Запрещает функцию обратного вызова получать уведомления XTYP_REGISTER. |
|
Запрещает функцию обратного вызова получать уведомления XTYP_UNREGISTER. |
|
Уведомляет функцию обратного вызова всякий раз, когда транзакция отправляется в любую функцию обратного вызова DDE в системе. |
|
Уведомляет функцию обратного вызова всякий раз, когда беседа устанавливается или завершается. |
|
Уведомляет функцию обратного вызова при возникновении ошибки DDE. |
|
Уведомляет функцию обратного вызова всякий раз, когда приложение DDE создает, освобождает или увеличивает количество использования строкового дескриптора или когда дескриптор строки освобождается в результате вызова функции DdeUninitialize. |
|
Уведомляет функцию обратного вызова всякий раз, когда запускается или заканчивается цикл советов. |
|
Уведомляет функцию обратного вызова всякий раз, когда система или приложение публикует сообщение DDE. |
|
Уведомляет функцию обратного вызова всякий раз, когда система или приложение отправляет DDE-сообщение. |
ulRes
Тип: DWORD
Скрытный; должно быть равно нулю.
Возвращаемое значение
Тип: UINT
Если функция выполнена успешно, возвращаемое значение DMLERR_NO_ERROR.
Если функция завершается ошибкой, возвращаемое значение является одним из следующих значений:
Замечания
Приложение, использующее несколько экземпляров DDEML, не должно передавать объекты DDEML между экземплярами.
Приложение мониторинга DDE не должно пытаться выполнять операции DDE (устанавливать беседы, выдачи транзакций и т. д.) в контексте одного экземпляра приложения.
Синхронная транзакция завершается ошибкой DMLERR_REENTRANCY, если любой экземпляр той же задачи уже выполняет синхронную транзакцию.
Флаг CBF_FAIL_ALLSVRXACTIONS приводит к фильтрации всех транзакций сервера DDEML и может быть изменен последующим вызовом DdeInitialize. Флаг APPCMD_CLIENTONLY запрещает DDEML создавать ключевые ресурсы сервера и не может быть изменен последующим вызовом DdeInitialize.
Существует версия ANSI и версия Юникода DdeInitialize. Вызываемая версия определяет тип процедур окна, используемых для управления беседами DDE (ANSI или Юникод), а значение по умолчанию для элемента iCodePage структуры CONVCON TEXT (CP_WINANSI или CP_WINUNICODE).
Заметка
Заголовок ddeml.h определяет DdeInitialize как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 2000 Профессиональный [только классические приложения] |
минимальный поддерживаемый сервер | Windows 2000 Server [только классические приложения] |
целевая платформа | Виндоус |
заголовка | ddeml.h (include Windows.h) |
библиотеки |
User32.lib |
DLL | User32.dll |