Я пытаюсь реализовать функцию, которая позволяет пользователю сохранять заданный макет представления папки Проводника, а затем применять это же представление к другим папкам по желанию.
После того, как покопался и поэкспериментировал, кажется например, чтобы получить и сохранить представление папки, нужно вызвать SHGetViewStatePropertyBag
. Но насколько я могу судить, эта функция требует, чтобы вы знали GUID типа папки. Вызов должен выглядеть примерно так:
SHGetViewStatePropertyBag( pidlFolder,
L"Shell\\{5C4F28B5-F869-4E84-8E60-F11DB97C5CC7}",
SHGVSPB_FOLDERNODEFAULTS,
IID_PPV_ARGS(&pPropBag) );
На практике, этот GUID, вероятно, FOLDERTYPEID_Generic
, FOLDERTYPEID_Documents
, FOLDERTYPEID_Videos
, FOLDERTYPEID_Pictures
или FOLDERTYPEID_Music
, но это не кажется заданным.
Более того, я не уверен, что все папки имеют тип папки, указанный в клавише «Shell».
Так есть ли надежный или лучший способ получения пакета свойств состояния вида папки?