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


Функция 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 или более поздняя)

См. также раздел

Использование автозаполнения