Функция DdeInitializeA (ddeml.h)
Регистрирует приложение с помощью библиотеки 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 структуры CONVCONTEXT (CP_WINANSI или CP_WINUNICODE).
Примечание
Заголовок ddeml.h определяет DdeInitialize как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | ddeml.h (включая Windows.h) |
Библиотека | User32.lib |
DLL | User32.dll |
См. также раздел
Общие сведения о библиотеке управления динамического обмена данными