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


Метод IPersistFile::GetCurFile (objidl.h)

Извлекает текущее имя файла, связанного с объектом . Если текущий рабочий файл отсутствует, этот метод получает запрос на сохранение объекта по умолчанию.

Синтаксис

HRESULT GetCurFile(
  [out] LPOLESTR *ppszFileName
);

Параметры

[out] ppszFileName

Путь к текущему файлу или запрос имени файла по умолчанию (например, *.txt). При возникновении ошибки параметру ppszFileName присваивается значение NULL.

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

Этот метод может возвращать следующие значения.

Код возврата Описание
S_OK
Был успешно возвращен допустимый абсолютный путь.
S_FALSE
Возвращен запрос на сохранение по умолчанию.
E_OUTOFMEMORY
Операция завершилась сбоем из-за нехватки памяти.
E_FAIL
Операция завершилась сбоем по какой-либо причине, кроме нехватки памяти.

Комментарии

Этот метод выделяет память для строки, возвращаемой в параметре ppszFileName с помощью метода IMalloc::Alloc . Вызывающий объект отвечает за вызов метода IMalloc::Free для освобождения строки. И вызывающий, и этот метод используют распределитель задач OLE, предоставляемый вызовом CoGetMalloc.

Имя файла, возвращаемое в ppszFileName , — это имя, указанное в вызове IPersistFile::Load при загрузке документа; или в IPersistFile::SaveCompleted, если документ был сохранен в другом файле.

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

"*.txt".

Примечания к вызывающим абонентам

OLE не вызывает метод GetCurFile . Приложения не будут вызывать этот метод, если они также не вызывают методы сохранения этого интерфейса.

При сохранении объекта можно вызвать этот метод перед вызовом IPersistFile::Save , чтобы определить, имеет ли объект связанный файл. Если этот метод возвращает S_OK, можно вызвать метод IPersistFile::Save с именем файла NULL и значением TRUE для параметра fRemember , чтобы сообщить объекту о необходимости сохранения в текущем файле. Если этот метод возвращает S_FALSE, можно использовать запрос на сохранение, возвращенный в параметре ppszFileName , чтобы попросить пользователя ввести имя файла. Затем можно вызвать метод IPersistFile::Save с именем файла, введенным пользователем для выполнения операции "Сохранить как ".

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header objidl.h

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

IPersistFile