Функция SHAutoComplete (shlwapi.h)
Указывает элементам управления системным редактированием использовать автозавершение для заполнения URL-адресов или путей к файловой системе.
Синтаксис
LWSTDAPI SHAutoComplete(
[in] HWND hwndEdit,
DWORD dwFlags
);
Параметры
[in] hwndEdit
Тип: HWND
Дескриптор окна элемента управления изменением системы. Как правило, этот параметр является дескриптором элемента управления редактированием или элементом управления редактированием, внедренным в элемент управления ComboBoxEx .
dwFlags
Тип: DWORD
Флаги для управления операцией SHAutoComplete. Первые четыре флага используются для переопределения параметров реестра internet Обозреватель. Пользователь может изменить эти параметры вручную, запустив страницу свойств Свойства браузера из меню Сервис и выбрав вкладку Дополнительно .
SHACF_AUTOAPPEND_FORCE_OFF (0x80000000)
Игнорируйте значение по умолчанию в реестре и принудительно отключите функцию автоаппликация. Этот флаг должен использоваться в сочетании с одним или несколькими флагами SHACF_FILESYS* или SHACF_URL*.
SHACF_AUTOAPPEND_FORCE_ON (0x40000000)
Игнорируйте значение реестра и принудительно включите функцию автоматического приложения. Завершенная строка будет отображаться в поле редактирования с выделенными символами. Этот флаг должен использоваться в сочетании с одним или несколькими флагами SHACF_FILESYS* или SHACF_URL*.
SHACF_AUTOSUGGEST_FORCE_OFF (0x20000000)
Игнорируйте значение по умолчанию в реестре и принудительно отключите функцию автозаполнения. Этот флаг должен использоваться в сочетании с одним или несколькими флагами SHACF_FILESYS* или SHACF_URL*.
SHACF_AUTOSUGGEST_FORCE_ON (0x10000000)
Игнорируйте значение реестра и принудительно включите функцию автозаполнения. Ряд возможных завершенных строк будет отображаться в виде раскрывающегося списка под полем редактирования. Этот флаг должен использоваться в сочетании с одним или несколькими флагами SHACF_FILESYS* или SHACF_URL*.
SHACF_DEFAULT (0x00000000)
Значение по умолчанию, эквивалентно SHACF_FILESYSTEM | SHACF_URLALL. SHACF_DEFAULT нельзя сочетать с другими флагами.
SHACF_FILESYS_ONLY (0x00000010)
Включите только файловую систему.
SHACF_FILESYS_DIRS (0x00000020)
Включите файловую систему и каталоги, серверы UNC и общие папки UNC-сервера.
SHACF_FILESYSTEM (0x00000001)
Включите файловую систему и остальную часть оболочки (например, настольный компьютер, компьютер и панель управления).
SHACF_URLALL (SHACF_URLHISTORY | SHACF_URLMRU)
Включите URL-адреса в списки "Журнал пользователей" и "Недавно использованные ". Эквивалентно SHACF_URLMRU SHACF_URLHISTORY | .
SHACF_URLHISTORY (0x00000002)
Включите URL-адреса в список журнала пользователя.
SHACF_URLMRU (0x00000004)
Включите URL-адреса в список недавно использованных пользователей.
SHACF_USETAB (0x00000008)
Разрешите пользователю выбрать из списка автозаполнения, нажав клавишу TAB. Если этот флаг не установлен, нажатие клавиши TAB переместит фокус на следующий элемент управления и закроет список автозаполнения. Если SHACF_USETAB задано, нажатие клавиши TAB приведет к выбору первого элемента в списке. При повторном нажатии клавиши TAB будет выбран следующий элемент в списке и т. д. Когда пользователь достигнет конца списка, нажатие следующей клавиши TAB переключит фокус обратно на элемент управления редактированием. Этот флаг должен использоваться в сочетании с одним или несколькими флагами SHACF_FILESYS* или SHACF_URL*, перечисленными на этой странице.
SHACF_VIRTUAL_NAMESPACE (0x00000040)
Возвращаемое значение
Тип: HRESULT
Если эта функция выполняется успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Комментарии
SHAutoComplete работает с любым элементом управления редактированием системы, включая элемент управления редактированием и элементы управления, содержащие элементы управления редактированием, такие как элементы управления ComboBoxEx . Чтобы получить дескриптор для элемента управления редактированием, внедренного в элемент управления ComboBoxEx, отправьте элементу управления ComboBoxEx CBEM_GETEDITCONTROL сообщение.
Приложение должно вызвать CoInitialize или OleInitialize перед вызовом этой функции. CoUninitialize или OleUninitialize нельзя вызвать, пока поле редактирования не завершит обработку сообщения WM_DESTROY для hwndEdit.
Максимальное количество элементов, которые могут отображаться в раскрывающемся списке автозаполнения, составляет 1000.
В версиях Windows до Windows Vista и версиях сервера до Windows Server 2008 shAutoComplete не следует вызывать более одного раза с тем же HWND. Это приводит к утечке памяти. Он предотвращает освобождение исходных ресурсов, включая предыдущий экземпляр объекта автозаполнения, объекты перечислителя, на которые ссылался предыдущий объект автозаполнения, и ресурсы интерфейса графических устройств Windows (GDI). Вместо повторного вызова SHAutoComplete с другим набором флагов для изменения списка автозаполнения вызовите CoCreateInstance с CLSID_AutoComplete, чтобы получить объект автозаполнения. Затем передайте HWND объекту , чтобы инициализировать его и предоставить собственный пользовательский перечислитель. Вы можете использовать CLSID_ACLMulti, если требуется, чтобы автозавершение использовало несколько списков.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional, Windows XP [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | shlwapi.h |
Библиотека | Shlwapi.lib |
DLL | Shlwapi.dll (версия 5.0 или более поздняя) |