Функция SHGetViewStatePropertyBag (shlwapi.h)
[SHGetViewStatePropertyBag доступен для использования в операционных системах, указанных в разделе Требования. Он может быть изменен или недоступен в последующих версиях.]
Извлекает контейнер свойств, в котором можно сохранить и впоследствии получить сведения о состоянии представления для папки. Параметры пользователя сохраняются при следующем посещении папки.
Синтаксис
LWSTDAPI SHGetViewStatePropertyBag(
[in, optional] PCIDLIST_ABSOLUTE pidl,
[in, optional] PCWSTR pszBagName,
DWORD dwFlags,
[in] REFIID riid,
[out] void **ppv
);
Параметры
[in, optional] pidl
Тип: PCIDLIST_ABSOLUTE
ЗНАЧЕНИЕ PIDL папки, свойства которой запрашиваются. Этот параметр должен иметь значение NULL , если передается флаг SHGVSPB_ALLFOLDERS.
[in, optional] pszBagName
Тип: PCWSTR
Указатель на строку, содержащую имя запрошенного контейнера свойств.
dwFlags
Тип: DWORD
Значение типа , указывающее сочетание следующих флагов.
Требуется одно значение из следующего набора флагов.
SHGVSPB_PERUSER
Возвращает свойства для каждого пользователя для указанного pidl.
SHGVSPB_ALLUSERS
Возвращает свойства All User для указанного pidl.
Требуется одно значение из следующего набора флагов.
SHGVSPB_PERFOLDER
Возвращает контейнер свойств для папки, указанной параметром pidl .
SHGVSPB_ALLFOLDERS
Возвращает контейнер свойств, который применяется ко всем папкам.
SHGVSPB_INHERIT
Возвращает контейнер свойств, используемый для предоставления значений по умолчанию для вложенных папок, у которых нет контейнера свойств.
Следующие флаги являются необязательными.
SHGVSPB_ROAM
Позволяет контейнеру свойств перемещаться. См. раздел Перемещаемые профили пользователей. Этот флаг нельзя сочетать с SHGVSPB_ALLFOLDERS.
SHGVSPB_NOAUTODEFAULTS
Подавляет поиск подходящего значения по умолчанию, если не удается найти контейнер свойств для указанной папки. По умолчанию, если SHGVSPB_INHERIT не указан и не удается найти контейнер свойств для указанной папки, система выполняет поиск идентичных именованных контейнеров свойств в других местах, которые могут предоставлять значения по умолчанию. Например, система выполняет поиск в предках папки, чтобы узнать, предоставляет ли какой-либо из них SHGVSPB_INHERIT контейнер свойств. В других местах системного поиска используются значения по умолчанию пользователя и глобальные значения по умолчанию.
Следующий набор флагов состоит из значений, которые объединяют некоторые флаги, перечисленные выше, и используются для краткости и удобства.
SHGVSPB_FOLDER
Объединяет SHGVSPB_PERUSER и SHGVSPB_PERFOLDER.
SHGVSPB_FOLDERNODEFAULTS
Объединяет SHGVSPB_PERUSER, SHGVSPB_PERFOLDER и SHGVSPB_NOAUTODEFAULTS.
SHGVSPB_USERDEFAULTS
Объединяет SHGVSPB_PERUSER и SHGVSPB_ALLFOLDERS.
SHGVSPB_GLOBALDEFAULTS
Объединяет SHGVSPB_ALLUSERS и SHGVSPB_ALLFOLDERS.
Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Этот флаг называется SHGVSPB_GLOBALDEAFAULTS.
[in] riid
Тип: REFIID
Ссылка на IID интерфейса, извлекаемого через ppv.
[out] ppv
Тип: void**
При успешном выполнении этого метода содержит указатель интерфейса, запрошенный в riid.
Возвращаемое значение
Тип: HRESULT
Если эта функция завершается успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Комментарии
Критически важные сведения не должны храниться в контейнере свойств состояния представления, так как система хранит только ограниченное количество состояний представления. Если папка не посещалась в течение длительного времени, ее состояние представления в конечном итоге удаляется.
Мы рекомендуем использовать макрос IID_PPV_ARGS , определенный в Objbase.h, для упаковки параметров riid и ppv . Этот макрос предоставляет правильный IID на основе интерфейса, на который указывает значение в ppv, что исключает возможность ошибки кода в riid , которая может привести к непредвиденным результатам.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | shlwapi.h |
Библиотека | Shlwapi.lib |
DLL | Shlwapi.dll (версия 5.0 или более поздняя) |