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


Функция SHPathPrepareForWriteA (shlobj_core.h)

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

Синтаксис

SHSTDAPI SHPathPrepareForWriteA(
  [in, optional] HWND     hwnd,
  [in, optional] IUnknown *punkEnableModless,
  [in]           LPCSTR   pszPath,
                 DWORD    dwFlags
);

Параметры

[in, optional] hwnd

Тип: HWND

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

[in, optional] punkEnableModless

Тип: IUnknown*

Указатель на интерфейс IUnknown, указывающий объект IOleInPlaceActiveObject, реализующий метод EnableModties.

[in] pszPath

Тип: LPCTSTR

Указатель на строку, завершающуюся значением NULL, максимальную длину MAX_PATH, указывающую путь, который необходимо проверить как допустимый для записи. Это может быть UNC-путь или путь к файлу.

dwFlags

Тип: DWORD

Флаги, определяющие параметры поведения. Этот параметр может быть сочетанием следующих значений.

SHPPFW_NONE

Не создавайте новые каталоги.

SHPPFW_DEFAULT

По умолчанию. Не запрашивайте пользователя, если необходимо создать каталог. Это идентично SHPPFW_DIRCREATE. Не пропускайте SHPPFW_ASKDIRCREATE.

SHPPFW_DIRCREATE

Создайте каталоги без запроса пользователя. Не пропускайте SHPPFW_ASKDIRCREATE.

SHPPFW_ASKDIRCREATE

Предложите пользователю перед созданием каталогов. Не пропускайте SHPPFW_DIRCREATE.

SHPPFW_IGNOREFILENAME

Последний элемент в pszPath — это имя файла, поэтому игнорировать. Например, если pszPath="C:\MyDir\MyFile.doc", используйте только "C:\MyDir". Если pszPath="C:\MyFirDir\MySecDir", используйте только C:\MyFirDir.

SHPPFW_NOWRITECHECK

В настоящее время не реализовано.

SHPPFW_MEDIACHECKONLY

Windows XP или более поздней версии. Подавляет окно сообщения об ошибке "недоступен", которое отображается при сбое, отличном от отмены пользователя, и не NULL.

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

Тип: HRESULT

Возвращает S_OK, если путь доступен или код ошибки в противном случае. Обратите внимание, что возвращаемое значение S_OK не означает, что среда является записываемой; это просто означает, что путь доступен.

Замечания

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

Заметка

Заголовок shlobj_core.h определяет SHPathPrepareForWrite как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка shlobj_core.h (include Shlobj.h, Shlobj_core.h)
библиотеки Shell32.lib
DLL Shell32.dll (версия 5.0 или более поздняя версия)