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


Привязка строковых ключей контекста

Набор строковых ключей, используемых с методом IBindCtx::RegisterObjectParam для указания контекста привязки.

Константа Описание
STR_AVOID_DRIVE_RESTRICTION_POLICY
Представлено в Windows XP с пакетом обновления 2 (SP2). Укажите этот контекст привязки, чтобы позволить клиентам источника данных переопределить политику скрытых букв диска и разрешить доступ к объектам представления для источников данных на заблокированных дисках.
Используется с IShellFolder::BindToObject или IShellItem::BindToHandler.
Система поддерживает управляемые администратором политики, которые скрывают указанные буквы диска, чтобы запретить пользователям доступ к этим дискам через Windows Обозреватель. Если эта политика активна, в результате объекты представления и другие обработчики, созданные с помощью метода IShellFolder::CreateViewObject , завершатся сбоем при вызове на дисках, заблокированных политикой.
STR_BIND_DELEGATE_CREATE_OBJECT
Представлено в Windows Vista. Укажите этот контекст привязки, чтобы метод IShellFolder::BindToObject использовал объект, заданный параметром pbc , для создания целевого объекта; в этом случае объект, заданный параметром punk в вызове IBindCtx::RegisterObjectParam , должен реализовывать интерфейс ICreateObject .
Используется с IShellFolder::BindToObject или IShellItem::BindToHandler.
STR_BIND_FOLDER_ENUM_MODE
Представлено в Windows 7. Передается в IShellFolder::P arseDisplayName со значением FOLDER_ENUM_MODE для управления режимом перечисления проанализированного элемента. Значение FOLDER_ENUM_MODE передается в контексте привязки через объект, реализующий IObjectWithFolderEnumMode.
Элементы с разными режимами перечисления сравниваются канонически (SHCIDS_CANONICALONLY) по-разному, так как они перечисляют разные наборы элементов.
Если элемент не поддерживает режим перечисления (поскольку он не является папкой или не предоставляет режим перечисления), он создается в режиме перечисления по умолчанию.
STR_BIND_FOLDERS_READ_ONLY
Представлено в Windows 7. Передается в IShellFolder::P arseDisplayName вместе с STR_FILE_SYS_BIND_DATA. При этом выполняется простой синтаксический анализ, а также выполняется поиск Desktop.ini файлов по пути, из которого требуется получить локализованную строку имени. Это позволяет избежать поиска папок по пути, что в случае папки, представляющей сервер или общую папку, может занять много времени и ресурсов. Desktop.ini файлы кэшируются в некоторых местах, поэтому это будет по крайней мере так же эффективно, как проверка атрибутов папок, а затем проверка для Desktop.ini, если эта папка должна стать доступной только для чтения.
STR_BIND_FORCE_FOLDER_SHORTCUT_RESOLVE
Представлено в Windows XP с пакетом обновления 2 (SP2). Укажите этот контекст привязки, чтобы принудить ярлык папки разрешить ссылку, указывающую на целевой объект.
Ярлык папки — это элемент папки, указывающий на другой элемент папки в том же пространстве имен, использующий ссылку (ярлык) для хранения idList целевого объекта. Ссылка разрешается для отслеживания целевого объекта в случае его перемещения или переименования. Например, папки Windows XP My Network Places и Windows Vista Computer могут содержать ярлыки папок, созданные с помощью мастера добавления сетевых расположений . Для повышения производительности метод IShellFolder::BindToObject по умолчанию не разрешает ссылки на сетевую папку.
Используется с IShellFolder::BindToObject или IShellItem::BindToHandler.
STR_DONT_PARSE_RELATIVE
Представлено в Windows XP. Укажите этот контекст привязки, чтобы предотвратить вызов метода IShellFolder::P arseDisplayName в папке Desktop от обработки относительных путей относительно рабочего стола; В таком случае синтаксический анализ завершается ошибкой, если указан этот контекст привязки.
STR_DONT_RESOLVE_LINK
Представлено в Windows Vista. Укажите этот контекст привязки, чтобы iShellItem не разрешал целевой объект связи, полученный при использовании guid BHID_LinkTargetItem в IShellItem::BindToHandler.
STR_FILE_SYS_BIND_DATA
Представлено в Windows XP. Укажите этот контекст привязки, чтобы предоставить метаданные файла методу IShellFolder::P arseDisplayName , который используется вместо попытки получить фактические метаданные файла. Связанный объект должен реализовывать IFileSystemBindData и при необходимости может также реализовать IFileSystemBindData2. По умолчанию метод IShellFolder::P arseDisplayName проверяет, существует ли файл, и использует фактические метаданные файла для заполнения списка идентификаторов.
STR_FILE_SYS_BIND_DATA_WIN7_FORMAT
Представлено в Windows 8.1. Укажите этот контекст привязки, чтобы указать, что данные, предоставленные в контексте привязки STR_FILE_SYS_BIND_DATA , должны использоваться для создания списка ItemID в формате Windows 7.
STR_GET_ASYNC_HANDLER
Представлено в Windows 7. Укажите этот контекст привязки, когда обработчик извлекается в том же потоке, что и пользовательский интерфейс. Следует избегать любых операций, требующих большого объема памяти, например действий, связанных с доступом к диску или сети.
STR_GPS_BESTEFFORT
Представлено в Windows Vista. Укажите этот контекст привязки при запросе обработчика IPropertySetStorage или IPropertyStore . Это значение используется с IShellFolder::BindToObject. Дополнительные сведения см. в разделе флаг GPS_BESTEFFORT .
STR_GPS_DELAYCREATION
Представлено в Windows Vista. Укажите этот контекст привязки при запросе обработчика IPropertySetStorage или IPropertyStore . Это значение используется с IShellFolder::BindToObject. Дополнительные сведения см. в разделе флаг GPS_DELAYCREATION .
STR_GPS_FASTPROPERTIESONLY
Представлено в Windows Vista. Укажите этот контекст привязки при запросе обработчика IPropertySetStorage или IPropertyStore . Это значение используется с IShellFolder::BindToObject. Дополнительные сведения см. в разделе флаг GPS_FASTPROPERTIESONLY .
STR_GPS_HANDLERPROPERTIESONLY
Представлено в Windows Vista. Укажите этот контекст привязки при запросе обработчика IPropertySetStorage или IPropertyStore . Это значение используется с IShellFolder::BindToObject. Дополнительные сведения см. в разделе флаг GPS_HANDLERPROPERTIESONLY .
STR_GPS_NO_OPLOCK
Представлено в Windows 7. Укажите этот контекст привязки при запросе обработчика IPropertySetStorage или IPropertyStore . Это значение используется с IShellFolder::BindToObject. Дополнительные сведения см. в разделе флаг GPS_NO_OPLOCK .
STR_GPS_OPENSLOWITEM
Представлено в Windows Vista. Укажите этот контекст привязки при запросе обработчика IPropertySetStorage или IPropertyStore . Это значение используется с IShellFolder::BindToObject. Дополнительные сведения см. в разделе флаг GPS_OPENSLOWITEM .
STR_IFILTER_FORCE_TEXT_FILTER_FALLBACK
Только Windows Vista. Укажите этот контекст привязки, чтобы вызвать вызов метода IShellFolder::BindToObject , который запрашивает интерфейс IFilter для объекта файловой системы для возврата текстового фильтра, если другой фильтр недоступен. Это значение не определено в Windows 7.
STR_IFILTER_LOAD_DEFINED_FILTER
Только Windows Vista. Укажите этот контекст привязки, чтобы вызов метода IShellFolder::BindToObject , запрашивающий интерфейс IFilter для объекта файловой системы, не возвращал резервный фильтр, если зарегистрированный фильтр не найден.
STR_INTERNAL_NAVIGATE
Представлено в Windows Vista. Укажите этот контекст привязки, чтобы включить загрузку журнала из потока для внутренней навигации при вызове метода IPersistHistory::LoadHistory . Внутренняя навигация — это навигация в одном представлении.
STR_INTERNETFOLDER_PARSE_ONLY_URLMON_BINDABLE
Представлено в Windows 7. Укажите этот контекст привязки с помощью STR_PARSE_PREFER_FOLDER_BROWSING, когда клиент хочет, чтобы обработчики папок оболочки Internet Shell создавали idList для любого допустимого URL-адреса, если для этого URL-адреса невозможно создать папку типа DAV. URL-адрес не проверяется на существование; Проверяется только его синтаксис и наличие зарегистрированного обработчика протокола.
STR_ITEM_CACHE_CONTEXT
Представлено в Windows 7. Укажите этот контекст привязки, чтобы указать реализации IShellFolder::P arseDisplayName и IPersistFolder3::InitializeEx кэшировать ресурсоемкие вспомогательные объекты, которые могут существовать в экземплярах элементов оболочки, а не воссоздавать эти объекты при каждом создании элемента оболочки. Связанный объект является другим объектом контекста привязки, изначально пустым. Это должно привести к созданию отдельного объекта контекста привязки, доступ к которому осуществляется через IBindCtx::GetObjectParam или IBindCtx::Register.ObjectParam.
Вызывающий объект должен согласиться на такое поведение, указав этот параметр контекста привязки при вызове SHCreateItemFromParsingName. Таким образом вы оптимизируете поведение привязки к нескольким именам синтаксического анализа последовательно. Время существования объекта контекста привязки должно охватывать несколько экземпляров элементов оболочки и их отдельные контексты привязки.
STR_NO_VALIDATE_FILENAME_CHARS
Представлено в Windows Vista. Укажите этот контекст привязки, чтобы в именах файлов отображались недопустимые символы имени файла. По умолчанию вызов метода IShellFolder::P arseDisplayName отклоняет недопустимые символы в именах файлов. Этот контекст привязки имеет смысл только в сочетании с контекстом привязки STR_FILE_SYS_BIND_DATA.
STR_PARSE_ALLOW_INTERNET_SHELL_FOLDERS
Представлено в Windows Vista. Укажите этот контекст привязки, чтобы включить вызов метода IShellFolder::P arseDisplayName в папке Desktop для анализа URL-адресов. Если указан этот контекст привязки, он переопределяет STR_PARSE_PREFER_WEB_BROWSING.
STR_PARSE_AND_CREATE_ITEM
Представлено в Windows 7. Укажите этот контекст привязки, чтобы указать реализацию источника данных IShellFolder::P arseDisplayName для оптимизации поведения SHCreateItemFromParsingName.
Как правило, SHCreateItemFromParsingName выполняет две операции привязки для анализируемого имени: одну через iShellFolder::P arseDisplayName и одну для создания элемента оболочки. Если контекст привязки STR_PARSE_AND_CREATE_ITEM поддерживается, вторая привязка избегается путем создания элемента оболочки во время привязки IShellFolder::P arseDisplayName и сохранения элемента оболочки через IParseAndCreateItem::SetItem. Затем SHCreateItemFromParsingName использует сохраненный элемент оболочки, а не создает его.
Этот параметр применяется к последнему элементу имени, который анализируется. Например, в имени "C:\Folder1\File.txt" данные применяются к File.txt.
STR_PARSE_DONT_REQUIRE_VALIDATED_URLS
Только Windows Vista. Укажите, что при синтаксическом анализе URL-адреса этот контекст привязки не должен требовать существования URL-адреса перед созданием idList для него. Укажите этот контекст привязки вместе с STR_PARSE_PREFER_FOLDER_BROWSING , когда клиент хочет, чтобы обработчики папок оболочки Internet Shell создали idList для URL-адреса, если папка DAV не может быть создана для заданного URL-адреса.
STR_PARSE_PARTIAL_IDLIST
Представлено в Windows Vista. Укажите этот контекст привязки для передачи исходного элемента, который повторно анализируется при хранении этого элемента в виде объекта IShellItem , который также реализует интерфейс IParentAndItem . До Windows 7 это значение не было определено в файле заголовка. Его может определить вызывающий объект или передать в качестве строкового значения L"ParseOriginalItem". В Windows 7 значение определяется в файле Shlobj.h. Обратите внимание, что этот заголовок отличается от других констант STR.
STR_PARSE_PREFER_FOLDER_BROWSING
Представлено в Windows XP. Укажите этот контекст привязки, чтобы включить вызов метода IShellFolder::P arseDisplayName в папке Desktop для анализа URL-адресов, как если бы они были папками. Используйте этот контекст привязки для привязки к серверу WebDAV.
STR_PARSE_PREFER_WEB_BROWSING
Представлено в Windows Vista. Укажите этот контекст привязки, чтобы предотвратить вызов метода IShellFolder::P arseDisplayName в форме анализа URL-адресов папки рабочего стола . Этот контекст привязки можно переопределить с помощью STR_PARSE_ALLOW_INTERNET_SHELL_FOLDERS.
STR_PARSE_PROPERTYSTORE
Представлено в Windows Vista. Укажите этот контекст привязки, чтобы переопределить хранилище свойств по умолчанию, используемое методом IShellFolder::P arseDisplayName , и используйте хранилище свойств, указанное в качестве параметра bind. Применяется к папкам делегирования.
STR_PARSE_SHELL_PROTOCOL_TO_FILE_OBJECTS
Представлено в Windows XP с пакетом обновления 2 (SP2). Укажите этот контекст привязки, чтобы включить вызов метода IShellFolder::P arseDisplayName в папке Desktop , чтобы использовать префикс "shell:" для доступа к файлам.
STR_PARSE_SHOW_NET_DIAGNOSTICS_UI
Представлено в Windows Vista. Укажите этот контекст привязки, чтобы вызвать метод IShellFolder::P arseDisplayName для отображения диалогового окна сетевого диагностика в случае сбоя синтаксического анализа сетевого пути.
STR_PARSE_SKIP_NET_CACHE
Представлено в Windows Vista. Укажите этот контекст привязки, чтобы вызвать метод IShellFolder::P arseDisplayName , чтобы пропустить проверку кэша общих сетевых ресурсов и связаться с сетевым сервером напрямую. Сведения о сетевых ресурсах кэшируются для повышения производительности, а IShellFolder::P arseDisplayName проверяет этот кэш по умолчанию.
STR_PARSE_TRANSLATE_ALIASES
Представлено в Windows XP. Укажите этот контекст привязки, чтобы передать проанализированные свойства в метод IShellFolder::P arseDisplayName для пространства имен делегата. Пространство имен может использовать переданные свойства вместо того, чтобы пытаться проанализировать само имя.
STR_PARSE_WITH_PROPERTIES
Только Windows Vista. Контекст привязки синтаксического анализа, используемый для передачи набора свойств и имени элемента при вызове IShellFolder::P arseDisplayName. Объект в контексте привязки реализует IPropertyStore и извлекается путем вызова IBindCtx::GetObjectParam.
DBFolder — это источник данных оболочки, представляющий элементы в результатах поиска и представлениях на основе запросов. DBFolder извлекает эти элементы, запрашивая систему Windows Search. Элементы в результатах поиска определяются по схеме протокола, например file:" или "mapi:". DBFolder обеспечивает поведение этих элементов, делегируя источникам данных оболочки, созданным для этих протоколов. Дополнительные сведения см. в разделе Разработка надстроек обработчиков протоколов .
Когда DBFolder делегирует свою операцию синтаксического анализа источникам данных оболочки, которые поддерживают протоколы Поиска Windows, этот контекст привязки предоставляет доступ к значениям, возвращенным в результатах запроса для этого элемента. Это включает следующие действия.

Этот контекст привязки также можно использовать для синтаксического анализа элемента DBFolder, если у клиента есть набор свойств, определяющих этот элемент. В этом случае в IShellFolder::P arseDisplayName следует передать пустое имя.
До Windows 7 это значение не было определено в файле заголовка. Он может быть определен вызывающим или передан в качестве строкового значения: L"ParseWithProperties". В Windows 7 значение определяется в файле Shlobj.h. Обратите внимание, что этот заголовок отличается от заголовка, в котором определены другие константы STR.
STR_PROPERTYBAG_PARAM
Представлено в Windows 8. Укажите этот контекст привязки, чтобы указать, что параметр контекста привязки является контейнером свойств (IPropertyBag), используемым для передачи значений VARIANT в контексте привязки. Дополнительные сведения см. в разделе Примечания.
STR_SKIP_BINDING_CLSID
Представлено в Windows XP. Укажите этот контекст привязки, чтобы вызвать вызовы методов IShellFolder::P arseDisplayName или IShellFolder::BindToObject , чтобы игнорировать определенное расширение пространства имен оболочки при синтаксическом анализе или привязке. CLSID пространства имен, который необходимо игнорировать, предоставляется методом IPersist::GetClassID параметра bind.
Примечание: Появилось в Windows 2000 с пакетом обновления 3 (SP3), это значение было определено в Shlobj.h до Windows XP, когда оно было перемещено в Shobjidl.h.
STR_TRACK_CLSID
Не используется.

Комментарии

Контексты привязки используются для передачи необязательных параметров в функции с параметром IBindCtx*. Эти параметры выражаются как COM-объекты и могут реализовывать интерфейсы, используемые для моделирования данных параметров. Некоторые контексты привязки представляют логическое значение, где ЗНАЧЕНИЕ TRUE указывает на объект, реализующий только IUnknown , а FALSE указывает, что объект отсутствует.

IShellFolder::P arseDisplayName, IShellFolder::BindToObject и IShellItem::BindToHandler принимают контекст привязки, и вы можете передать их параметры через этот контекст привязки.

Некоторые контексты привязки относятся к определенным реализациям источника данных или типам обработчиков.

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

При запросе хранилища свойств через IShellFolder можно указать эквивалент GPS_DEFAULT , передав параметр IBindCtx null. Можно также указать эквивалент GPS_READWRITE, передав режим STGM_READWRITE | STGM_EXCLUSIVE в контексте привязки.

Контейнер свойств, заданный объектом контекста STR_PROPERTYBAG_PARAM bind, содержит дополнительные значения, к которым можно получить доступ с помощью методов IPropertyBag::Read и IPropertyBag::Write .

Имя свойства Тип Описание
STR_ENUM_ITEMS_FLAGS VT_UI4 Представлено в Windows 8. Указывает значение SHCONTF , которое передается в IShellFolder::EnumObjects при вызове IShellItem::BindToHandler с BHID_EnumItems.
STR_PARSE_EXPLICIT_ASSOCIATION_SUCCESSFUL VT_BOOL. Представлено в Windows 7. Метод IShellFolder::P arseDisplayName задает это свойство, чтобы сообщить вызывающей объекту, что возвращенный IDList был привязан к Идентификатору ProgID , указанному с помощью STR_PARSE_WITH_EXPLICIT_PROGID , или приложению, указанному STR_PARSE_WITH_EXPLICIT_ASSOCAPP. Если STR_PARSE_EXPLICIT_ASSOCIATION_SUCCESSFUL отсутствует, ProgID или приложение не привязаны к IDList.
STR_PARSE_WITH_EXPLICIT_ASSOCAPP VT_BSTR Представлено в Windows 7. Укажите это свойство, чтобы вызов метода IShellFolder::P arseDisplayName возвращал IDList, привязанный к обработчику сопоставления типов файлов для приложения.
STR_PARSE_WITH_EXPLICIT_PROGID VT_BSTR Представлено в Windows 7. Укажите это свойство, чтобы вызов метода IShellFolder::P arseDisplayName возвращал IDList, привязанный к обработчику сопоставления файлов предоставленного ProgID.

 

Пример использования значений контекста привязки см. в разделе Пример анализа с помощью параметров .

Требования

Требование Значение
Минимальная версия клиента
Windows XP [только классические приложения]
Минимальная версия сервера
Windows Server 2008 R2 [только классические приложения]
Заголовок
Shobjidl.h
IDL
Shobjidl.idl