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


Функция DdeGetLastError (ddeml.h)

Извлекает последний код ошибки, заданный в результате сбоя функции DDEML, и сбрасывает код ошибки до DMLERR_NO_ERROR.

Синтаксис

UINT DdeGetLastError(
  [in] DWORD idInst
);

Параметры

[in] idInst

Тип: DWORD

Идентификатор экземпляра приложения, полученный при предыдущем вызове функции DdeInitialize .

Возвращаемое значение

Тип: UINT

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

Возвращаемый код или значение Описание
DMLERR_ADVACKTIMEOUT
0x4000
Истекло время ожидания запроса для синхронной транзакции с рекомендацией.
DMLERR_BUSY
0x4001
Ответ на транзакцию вызвал присвоение флага DDE_FBUSY .
DMLERR_DATAACKTIMEOUT
0x4002
Истекло время ожидания запроса для синхронной транзакции данных.
DMLERR_DLL_NOT_INITIALIZED
0x4003
Функция DDEML была вызвана без предварительного вызова функции DdeInitialize или в функцию DDEML был передан недопустимый идентификатор экземпляра.
DMLERR_DLL_USAGE
0x4004
Приложение, инициализированное как APPCLASS_MONITOR , попыталось выполнить транзакцию DDE или приложение, инициализированное как APPCMD_CLIENTONLY , попыталось выполнить транзакции сервера.
DMLERR_EXECACKTIMEOUT
0x4005
Истекло время ожидания запроса для транзакции синхронного выполнения.
DMLERR_INVALIDPARAMETER
0x4006
Не удалось проверить параметр DDEML. Ниже приведены некоторые возможные причины.

Приложение использовало дескриптор данных, инициализированный дескриптором имени элемента, отличным от требуемого для транзакции.

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

Приложение использовало дескриптор диалога на стороне клиента с серверной функцией или наоборот.

Приложение использовало дескриптор данных или дескриптор строки.

Несколько экземпляров приложения использовали один и тот же объект.

DMLERR_LOW_MEMORY
0x4007
Приложение DDEML создало длительное состояние гонки (при котором серверное приложение перегружает клиент), что приводит к потреблению большого объема памяти.
DMLERR_MEMORY_ERROR
0x4008
Сбой выделения памяти.
DMLERR_NO_CONV_ESTABLISHED
0x400a
Попытка клиента установить беседу завершилась сбоем.
DMLERR_NOTPROCESSED
0x4009
Транзакция завершилась сбоем.
DMLERR_POKEACKTIMEOUT
0x400b
Истекло время ожидания запроса на синхронную транзакцию poke.
DMLERR_POSTMSG_FAILED
0x400c
Сбой внутреннего вызова функции PostMessage .
DMLERR_REENTRANCY
0x400d
Экземпляр приложения с уже запущенной синхронной транзакцией попытался инициировать другую синхронную транзакцию, или из функции обратного вызова DDEML была вызвана функция DdeEnableCallback .
DMLERR_SERVER_DIED
0x400e
Транзакция на стороне сервера была предпринята в беседе, завершенной клиентом, или сервер был прерван до завершения транзакции.
DMLERR_SYS_ERROR
0x400f
В DDEML произошла внутренняя ошибка.
DMLERR_UNADVACKTIMEOUT
0x4010
Истекло время ожидания запроса на завершение транзакции с рекомендацией.
DMLERR_UNFOUND_QUEUE_ID
0x4011
В функцию DDEML был передан недопустимый идентификатор транзакции. После возврата приложения из обратного вызова XTYP_XACT_COMPLETE идентификатор транзакции для этой функции обратного вызова становится недействительным.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header ddeml.h (включая Windows.h)
Библиотека User32.lib
DLL User32.dll

См. также раздел

Основные понятия

DdeEnableCallback

DdeInitialize

Библиотека управления динамического обмена данными

PostMessage

Справочные материалы