Win32 API. Справочник по стандартному диалоговому окну
Страница 6. Функция GetFileTitle


Функция GetFileTitle

(ПолучитьНазваниеФайла)

Функция GetFileTitle возвращает имя файла, идентифицированного при помощи параметра lpszFile.

Синтаксис

short GetFileTitle
(
LPCTSTR lpszFile,// указатель на полный путь и имя файла для файла
LPTSTR lpszTitle,// указатель на буфер, который принимает имя файла
WORD cbBuf // длина буфера
);

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

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

Замечания
Функция GetFileTitle возвращает значение ошибки, если буфер, указанный параметром lpszFile, содержит любой из ниже перечисленных элементов:

  1. Пустую строку
  2. Строку, содержащую подстановочный знак (*), открывающую скобку ([) или закрывающую скобку (])
  3. Строку, которая заканчивается двоеточием (:/) или обратным слэшем (\)
  4. Строку, длина которой превышает длину буфера
  5. Недопустимый символ (например, пробел или непечатаемый символ)

Чтобы получать для имени файла буфер необходимого размера, вызовите функцию с установленными параметрами lpszTitle в значение ПУСТО (NULL) и cbBuf - в нуль. Функция возвратит требуемый размер.
GetFileTitle возвращает строку, которую система использовала бы, чтобы показать имя файла пользователю. Показываемое имя включает в себя расширение только в том случае, если, это является выбором пользователя для отображающихся имен файлов. Это означает, что возвращенная строка не может точно идентифицировать файл, если он используется при обращении к функциям файловой системы.
Если буфер lpszTitle слишком маленький, GetFileTitle возвращает размер, требуемый, чтобы удержать отображаемое имя. Нет никакой гарантии согласованости между требуемым размером и символами, первоначально определяемыми в буфере lpszFile. При перенесении прикладных программ в Windows 95 и Windows NT, разработчики должны будут модифицировать любой код, который предполагает такое поведение в предыдущих версиях операционной системы. Наиболее общий случай - код, который преднамеренно вызывает GetFileTitle с установленным lpszTitle в значение ПУСТО (NULL) и cbBuf, установленный в нуль, а затем использует возвращаемое значение как индекс в строке lpszFile. Эта методика больше не поддерживается. Вы можете обычно достичь сходных результатов (и лучшей производительности) с библиотечными функциями этапа выполнения программы таких, как strrchr, wcsrchr, и _mbsrchr.

Смотри также
GetOpenFileName, GetSaveFileName

Размещение и совместимость GetFileTitle

Windows NTДа 
Win95Да
Win32sДа
Импортируемая библиотекаcomdlg32.lib
Заголовочный файлcommdlg.h
УникодWinNT
Замечания по платформеНе имеется

 
« Предыдущая статья   Следующая статья »