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


Функция CommDlgExtendedError (commdlg.h)

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

Синтаксис

DWORD CommDlgExtendedError();

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

Тип: DWORD

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

Функция CommDlgExtendedError может возвращать общие коды ошибок для любой из распространенных функций диалогового окна. Кроме того, существуют коды ошибок, которые возвращаются только для определенного общего диалогового окна. Все эти коды ошибок определены в Файле Cderr.h. Для любой из распространенных функций диалогового окна можно вернуть следующие общие коды ошибок.

Возвращаемый код/значение Описание
CDERR_DIALOGFAILURE
0xFFFF
Не удалось создать диалоговое окно. Не удалось вызвать функцию DialogBox в обычном диалоговом окне. Например, эта ошибка возникает, если общий вызов диалогового окна указывает недопустимый дескриптор окна.
CDERR_FINDRESFAILURE
0x0006
Общей функции диалогового окна не удалось найти указанный ресурс.
CDERR_INITIALIZATION
0x0002
Общая функция диалогового окна завершилась сбоем во время инициализации. Эта ошибка часто возникает, когда недостаточно памяти.
CDERR_LOADRESFAILURE
0x0007
Обычной функции диалогового окна не удалось загрузить указанный ресурс.
CDERR_LOADSTRFAILURE
0x0005
Общей функции диалогового окна не удалось загрузить указанную строку.
CDERR_LOCKRESFAILURE
0x0008
Обычной функции диалогового окна не удалось заблокировать указанный ресурс.
CDERR_MEMALLOCFAILURE
0x0009
Общей функции диалогового окна не удалось выделить память для внутренних структур.
CDERR_MEMLOCKFAILURE
0x000A
Общей функции диалогового окна не удалось заблокировать память, связанную с дескриптором.
CDERR_NOHINSTANCE
0x0004
Флаг ENABLETEMPLATE был установлен в элементе Flags структуры инициализации для соответствующего общего диалогового окна, но не удалось предоставить соответствующий дескриптор экземпляра.
CDERR_NOHOOK
0x000B
Флаг ENABLEHOOK был установлен в элементе Flags структуры инициализации для соответствующего общего диалогового окна, но не удалось указать указатель на соответствующую процедуру перехватчика.
CDERR_NOTEMPLATE
0x0003
Флаг ENABLETEMPLATE был установлен в элементе Flags структуры инициализации для соответствующего общего диалогового окна, но не удалось предоставить соответствующий шаблон.
CDERR_REGISTERMSGFAIL
0x000C
Функция RegisterWindowMessage вернула код ошибки при ее вызове общей функцией диалогового окна.
CDERR_STRUCTSIZE
0x0001
Недопустимый элемент lStructSize структуры инициализации для соответствующего общего диалогового окна.
 

Для функции PrintDlg можно вернуть следующие коды ошибок.

Возвращаемый код/значение Описание
PDERR_CREATEICFAILURE
0x100A
Сбой функции PrintDlg при попытке создать контекст информации.
PDERR_DEFAULTDIFFERENT
0x100C
Вы вызвали функцию PrintDlg с флагом DN_DEFAULTPRN , указанным в элементе wDefault структуры DEVNAMES , но принтер, описанный другими элементами структуры, не соответствовал текущему принтеру по умолчанию. Эта ошибка возникает, когда вы сохраняете структуру DEVNAMES и пользователь изменяет принтер по умолчанию с помощью панель управления.

Чтобы использовать принтер, описанный в структуре DEVNAMES , снимите флаг DN_DEFAULTPRN и вызовите PrintDlg еще раз.

Чтобы использовать принтер по умолчанию, замените структуру DEVNAMES (и структуру, если она существует) на NULL; и снова вызовите PrintDlg .

PDERR_DNDMMISMATCH
0x1009
Данные в структурах DEVMODE и DEVNAMES описывают два разных принтера.
PDERR_GETDEVMODEFAIL
0x1005
Драйверу принтера не удалось инициализировать структуру DEVMODE .
PDERR_INITFAILURE
0x1006
Функция PrintDlg завершилась сбоем во время инициализации, и более конкретный расширенный код ошибки для описания сбоя отсутствует. Это универсальный код ошибки по умолчанию для функции.
PDERR_LOADDRVFAILURE
0x1004
Функции PrintDlg не удалось загрузить драйвер устройства для указанного принтера.
PDERR_NODEFAULTPRN
0x1008
Принтер по умолчанию не существует.
PDERR_NODEVICES
0x1007
Драйверы принтера не найдены.
PDERR_PARSEFAILURE
0x1002
Функции PrintDlg не удалось проанализировать строки в разделе [devices] файла WIN.INI.
PDERR_PRINTERNOTFOUND
0x100B
Раздел [devices] файла WIN.INI не содержал запись для запрошенного принтера.
PDERR_RETDEFFAILURE
0x1003
Флаг PD_RETURNDEFAULT был указан в элементе Flags структуры PRINTDLG , но элемент hDevMode или hDevNames не имеет значения NULL.
PDERR_SETUPFAILURE
0x1001
Функции PrintDlg не удалось загрузить необходимые ресурсы.
 

Для функции ChooseFont можно вернуть следующие коды ошибок.

Возвращаемый код или значение Описание
CFERR_MAXLESSTHANMIN
0x2002
Размер, указанный в элементе nSizeMax структуры CHOOSEFONT , меньше размера, указанного в элементе nSizeMin .
CFERR_NOFONTS
0x2001
Шрифты не существуют.
 

Для функций GetOpenFileName и GetSaveFileName можно вернуть следующие коды ошибок.

Возвращаемый код или значение Описание
FNERR_BUFFERTOOSMALL
0x3003
Буфер, на который указывает элемент lpstrFile структуры OPENFILENAME , слишком мал для имени файла, указанного пользователем. Первые два байта буфера lpstrFile содержат целочисленное значение, указывающее размер, необходимый для получения полного имени в символах.
FNERR_INVALIDFILENAME
0x3002
Недопустимое имя файла.
FNERR_SUBCLASSFAILURE
0x3001
Попытка подкласса списка завершилась сбоем, так как недостаточно памяти не было доступно.
 

Для функций FindText и ReplaceText можно вернуть следующий код ошибки.

Возвращаемый код или значение Описание
FRERR_BUFFERLENGTHZERO
0x4001
Элемент структуры FINDREPLACE указывает на недопустимый буфер.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header commdlg.h (включая Windows.h)
Библиотека Comdlg32.lib
DLL Comdlg32.dll
Набор API ext-ms-win-shell-comdlg32-l1-1-0 (представлено в Windows 10 версии 10.0.10240)

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

CHOOSECOLOR

CHOOSEFONT

Выбор цвета

ВыберитеФонт

Общая библиотека диалоговых окон

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

DEVNAMES

Диалоговое окно

FINDREPLACE

FindText

GetOpenFileName

GetSaveFileName

OPENFILENAME

PAGESETUPDLG

PRINTDLG

PageSetupDlg

PrintDlg

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

RegisterWindowMessage

ReplaceText