Страница 6 из 59
Функция GetFileTitle (ПолучитьНазваниеФайла) Функция GetFileTitle возвращает имя файла, идентифицированного при помощи параметра lpszFile. Синтаксис short GetFileTitle ( LPCTSTR lpszFile,// указатель на полный путь и имя файла для файла LPTSTR lpszTitle,// указатель на буфер, который принимает имя файла WORD cbBuf // длина буфера );
Параметры lpszFile Указатель на имя и расположение файла. lpszTitle Указатель на буфер, в который функция скопирует имя файла. cbBuf Определяет длину буфера, указанного параметром lpszTitle, в символах/ Возвращаемые значения Если функция завершается успешно, возвращаемое значение - ноль. Если имя файла недопустимое, возвращаемое значение - отрицательное число. Если буфер, на который указывает параметр lpszTitle слишком маленький, возвращаемое значение - положительное целое число, которое определяет требуемый размер буфера в байтах (для версии ANSI) или в символах (для версии Уникода). Требуемый размер буфера включает в себя символ нуль-терминатора. Замечания Функция GetFileTitle возвращает значение ошибки, если буфер, указанный параметром lpszFile, содержит любой из ниже перечисленных элементов: - Пустую строку
- Строку, содержащую подстановочный знак (*), открывающую скобку ([) или закрывающую скобку (])
- Строку, которая заканчивается двоеточием (:/) или обратным слэшем (\)
- Строку, длина которой превышает длину буфера
- Недопустимый символ (например, пробел или непечатаемый символ)
Чтобы получать для имени файла буфер необходимого размера, вызовите функцию с установленными параметрами 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 Замечания по платформеНе имеется
|