Как надежно получить пакет свойств состояния вида папки - PullRequest
0 голосов
/ 18 июня 2020

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

После того, как покопался и поэкспериментировал, кажется например, чтобы получить и сохранить представление папки, нужно вызвать 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».

Так есть ли надежный или лучший способ получения пакета свойств состояния вида папки?

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