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


Функция 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 или более поздняя)