Привязка строковых ключей контекста
Набор строковых ключей, используемых с методом IBindCtx::RegisterObjectParam для указания контекста привязки.
Константа | Описание |
---|---|
|
Представлено в Windows XP с пакетом обновления 2 (SP2). Укажите этот контекст привязки, чтобы позволить клиентам источника данных переопределить политику скрытых букв диска и разрешить доступ к объектам представления для источников данных на заблокированных дисках. Используется с IShellFolder::BindToObject или IShellItem::BindToHandler. Система поддерживает управляемые администратором политики, которые скрывают указанные буквы диска, чтобы запретить пользователям доступ к этим дискам через Windows Обозреватель. Если эта политика активна, в результате объекты представления и другие обработчики, созданные с помощью метода IShellFolder::CreateViewObject , завершатся сбоем при вызове на дисках, заблокированных политикой. |
|
Представлено в Windows Vista. Укажите этот контекст привязки, чтобы метод IShellFolder::BindToObject использовал объект, заданный параметром pbc , для создания целевого объекта; в этом случае объект, заданный параметром punk в вызове IBindCtx::RegisterObjectParam , должен реализовывать интерфейс ICreateObject . Используется с IShellFolder::BindToObject или IShellItem::BindToHandler. |
|
Представлено в Windows 7. Передается в IShellFolder::P arseDisplayName со значением FOLDER_ENUM_MODE для управления режимом перечисления проанализированного элемента. Значение FOLDER_ENUM_MODE передается в контексте привязки через объект, реализующий IObjectWithFolderEnumMode. Элементы с разными режимами перечисления сравниваются канонически (SHCIDS_CANONICALONLY) по-разному, так как они перечисляют разные наборы элементов. Если элемент не поддерживает режим перечисления (поскольку он не является папкой или не предоставляет режим перечисления), он создается в режиме перечисления по умолчанию. |
|
Представлено в Windows 7. Передается в IShellFolder::P arseDisplayName вместе с STR_FILE_SYS_BIND_DATA. При этом выполняется простой синтаксический анализ, а также выполняется поиск Desktop.ini файлов по пути, из которого требуется получить локализованную строку имени. Это позволяет избежать поиска папок по пути, что в случае папки, представляющей сервер или общую папку, может занять много времени и ресурсов. Desktop.ini файлы кэшируются в некоторых местах, поэтому это будет по крайней мере так же эффективно, как проверка атрибутов папок, а затем проверка для Desktop.ini, если эта папка должна стать доступной только для чтения. |
|
Представлено в Windows XP с пакетом обновления 2 (SP2). Укажите этот контекст привязки, чтобы принудить ярлык папки разрешить ссылку, указывающую на целевой объект. Ярлык папки — это элемент папки, указывающий на другой элемент папки в том же пространстве имен, использующий ссылку (ярлык) для хранения idList целевого объекта. Ссылка разрешается для отслеживания целевого объекта в случае его перемещения или переименования. Например, папки Windows XP My Network Places и Windows Vista Computer могут содержать ярлыки папок, созданные с помощью мастера добавления сетевых расположений . Для повышения производительности метод IShellFolder::BindToObject по умолчанию не разрешает ссылки на сетевую папку. Используется с IShellFolder::BindToObject или IShellItem::BindToHandler. |
|
Представлено в Windows XP. Укажите этот контекст привязки, чтобы предотвратить вызов метода IShellFolder::P arseDisplayName в папке Desktop от обработки относительных путей относительно рабочего стола; В таком случае синтаксический анализ завершается ошибкой, если указан этот контекст привязки. |
|
Представлено в Windows Vista. Укажите этот контекст привязки, чтобы iShellItem не разрешал целевой объект связи, полученный при использовании guid BHID_LinkTargetItem в IShellItem::BindToHandler. |
|
Представлено в Windows XP. Укажите этот контекст привязки, чтобы предоставить метаданные файла методу IShellFolder::P arseDisplayName , который используется вместо попытки получить фактические метаданные файла. Связанный объект должен реализовывать IFileSystemBindData и при необходимости может также реализовать IFileSystemBindData2. По умолчанию метод IShellFolder::P arseDisplayName проверяет, существует ли файл, и использует фактические метаданные файла для заполнения списка идентификаторов. |
|
Представлено в Windows 8.1. Укажите этот контекст привязки, чтобы указать, что данные, предоставленные в контексте привязки STR_FILE_SYS_BIND_DATA , должны использоваться для создания списка ItemID в формате Windows 7. |
|
Представлено в Windows 7. Укажите этот контекст привязки, когда обработчик извлекается в том же потоке, что и пользовательский интерфейс. Следует избегать любых операций, требующих большого объема памяти, например действий, связанных с доступом к диску или сети. |
|
Представлено в Windows Vista. Укажите этот контекст привязки при запросе обработчика IPropertySetStorage или IPropertyStore . Это значение используется с IShellFolder::BindToObject. Дополнительные сведения см. в разделе флаг GPS_BESTEFFORT . |
|
Представлено в Windows Vista. Укажите этот контекст привязки при запросе обработчика IPropertySetStorage или IPropertyStore . Это значение используется с IShellFolder::BindToObject. Дополнительные сведения см. в разделе флаг GPS_DELAYCREATION . |
|
Представлено в Windows Vista. Укажите этот контекст привязки при запросе обработчика IPropertySetStorage или IPropertyStore . Это значение используется с IShellFolder::BindToObject. Дополнительные сведения см. в разделе флаг GPS_FASTPROPERTIESONLY . |
|
Представлено в Windows Vista. Укажите этот контекст привязки при запросе обработчика IPropertySetStorage или IPropertyStore . Это значение используется с IShellFolder::BindToObject. Дополнительные сведения см. в разделе флаг GPS_HANDLERPROPERTIESONLY . |
|
Представлено в Windows 7. Укажите этот контекст привязки при запросе обработчика IPropertySetStorage или IPropertyStore . Это значение используется с IShellFolder::BindToObject. Дополнительные сведения см. в разделе флаг GPS_NO_OPLOCK . |
|
Представлено в Windows Vista. Укажите этот контекст привязки при запросе обработчика IPropertySetStorage или IPropertyStore . Это значение используется с IShellFolder::BindToObject. Дополнительные сведения см. в разделе флаг GPS_OPENSLOWITEM . |
|
Только Windows Vista. Укажите этот контекст привязки, чтобы вызвать вызов метода IShellFolder::BindToObject , который запрашивает интерфейс IFilter для объекта файловой системы для возврата текстового фильтра, если другой фильтр недоступен. Это значение не определено в Windows 7. |
|
Только Windows Vista. Укажите этот контекст привязки, чтобы вызов метода IShellFolder::BindToObject , запрашивающий интерфейс IFilter для объекта файловой системы, не возвращал резервный фильтр, если зарегистрированный фильтр не найден. |
|
Представлено в Windows Vista. Укажите этот контекст привязки, чтобы включить загрузку журнала из потока для внутренней навигации при вызове метода IPersistHistory::LoadHistory . Внутренняя навигация — это навигация в одном представлении. |
|
Представлено в Windows 7. Укажите этот контекст привязки с помощью STR_PARSE_PREFER_FOLDER_BROWSING, когда клиент хочет, чтобы обработчики папок оболочки Internet Shell создавали idList для любого допустимого URL-адреса, если для этого URL-адреса невозможно создать папку типа DAV. URL-адрес не проверяется на существование; Проверяется только его синтаксис и наличие зарегистрированного обработчика протокола. |
|
Представлено в Windows 7. Укажите этот контекст привязки, чтобы указать реализации IShellFolder::P arseDisplayName и IPersistFolder3::InitializeEx кэшировать ресурсоемкие вспомогательные объекты, которые могут существовать в экземплярах элементов оболочки, а не воссоздавать эти объекты при каждом создании элемента оболочки. Связанный объект является другим объектом контекста привязки, изначально пустым. Это должно привести к созданию отдельного объекта контекста привязки, доступ к которому осуществляется через IBindCtx::GetObjectParam или IBindCtx::Register.ObjectParam. Вызывающий объект должен согласиться на такое поведение, указав этот параметр контекста привязки при вызове SHCreateItemFromParsingName. Таким образом вы оптимизируете поведение привязки к нескольким именам синтаксического анализа последовательно. Время существования объекта контекста привязки должно охватывать несколько экземпляров элементов оболочки и их отдельные контексты привязки. |
|
Представлено в Windows Vista. Укажите этот контекст привязки, чтобы в именах файлов отображались недопустимые символы имени файла. По умолчанию вызов метода IShellFolder::P arseDisplayName отклоняет недопустимые символы в именах файлов. Этот контекст привязки имеет смысл только в сочетании с контекстом привязки STR_FILE_SYS_BIND_DATA. |
|
Представлено в Windows Vista. Укажите этот контекст привязки, чтобы включить вызов метода IShellFolder::P arseDisplayName в папке Desktop для анализа URL-адресов. Если указан этот контекст привязки, он переопределяет STR_PARSE_PREFER_WEB_BROWSING. |
|
Представлено в 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. |
|
Только Windows Vista. Укажите, что при синтаксическом анализе URL-адреса этот контекст привязки не должен требовать существования URL-адреса перед созданием idList для него. Укажите этот контекст привязки вместе с STR_PARSE_PREFER_FOLDER_BROWSING , когда клиент хочет, чтобы обработчики папок оболочки Internet Shell создали idList для URL-адреса, если папка DAV не может быть создана для заданного URL-адреса. |
|
Представлено в Windows Vista. Укажите этот контекст привязки для передачи исходного элемента, который повторно анализируется при хранении этого элемента в виде объекта IShellItem , который также реализует интерфейс IParentAndItem . До Windows 7 это значение не было определено в файле заголовка. Его может определить вызывающий объект или передать в качестве строкового значения L"ParseOriginalItem". В Windows 7 значение определяется в файле Shlobj.h. Обратите внимание, что этот заголовок отличается от других констант STR. |
|
Представлено в Windows XP. Укажите этот контекст привязки, чтобы включить вызов метода IShellFolder::P arseDisplayName в папке Desktop для анализа URL-адресов, как если бы они были папками. Используйте этот контекст привязки для привязки к серверу WebDAV. |
|
Представлено в Windows Vista. Укажите этот контекст привязки, чтобы предотвратить вызов метода IShellFolder::P arseDisplayName в форме анализа URL-адресов папки рабочего стола . Этот контекст привязки можно переопределить с помощью STR_PARSE_ALLOW_INTERNET_SHELL_FOLDERS. |
|
Представлено в Windows Vista. Укажите этот контекст привязки, чтобы переопределить хранилище свойств по умолчанию, используемое методом IShellFolder::P arseDisplayName , и используйте хранилище свойств, указанное в качестве параметра bind. Применяется к папкам делегирования. |
|
Представлено в Windows XP с пакетом обновления 2 (SP2). Укажите этот контекст привязки, чтобы включить вызов метода IShellFolder::P arseDisplayName в папке Desktop , чтобы использовать префикс "shell:" для доступа к файлам. |
|
Представлено в Windows Vista. Укажите этот контекст привязки, чтобы вызвать метод IShellFolder::P arseDisplayName для отображения диалогового окна сетевого диагностика в случае сбоя синтаксического анализа сетевого пути. |
|
Представлено в Windows Vista. Укажите этот контекст привязки, чтобы вызвать метод IShellFolder::P arseDisplayName , чтобы пропустить проверку кэша общих сетевых ресурсов и связаться с сетевым сервером напрямую. Сведения о сетевых ресурсах кэшируются для повышения производительности, а IShellFolder::P arseDisplayName проверяет этот кэш по умолчанию. |
|
Представлено в Windows XP. Укажите этот контекст привязки, чтобы передать проанализированные свойства в метод IShellFolder::P arseDisplayName для пространства имен делегата. Пространство имен может использовать переданные свойства вместо того, чтобы пытаться проанализировать само имя. |
|
Только 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. |
|
Представлено в 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. |
|
Не используется. |
Комментарии
Контексты привязки используются для передачи необязательных параметров в функции с параметром 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 [только классические приложения] |
Заголовок |
|
IDL |
|