|
Программирование >> Управление учетными записями
1730 Часть VII. Приложения Для элементов, относящихся к промежутку между двумя датами, следует указывать11/25/06..11/27/07. □ Вы можете использовать некоторые свойства элементов, например, webpage: www.wrox.com, birthday:2/14/65, firstname:Christian. Вам не нужно вручную транслировать AQS в запрос SELECT, поскольку имеется COM-объект, который сделает это за вас. В каталоге Windows SDK Lib можно найти файл SearchAPI.tlb. Это библиотека типов, описывающая COM-объект, используемый для трансляции AQS. Применяя COM Interop, вы можете использовать COM-объ-екты из .NET. Создайте вызываемую оболочку .NET с помощью утилиты tblimp для импорта библиотеки SearchAPI.tlb: tlbimp c:\Program Files\Microsoft SDKs\Windows\v6.0\Lib\SearchAPI.tlb /out:Interop.SearchAPI.dll Технология COM Interop описана в главе 24. Обращение к сгенерированной сборке COM Interop из проекта Windows Forms, созданного ранее, позволяет использовать SearchAPI из приложения .NET. Поскольку это сгенерированная сборка, импортируйте пространство имен Interop.SearchAPI из приложения и добавьте метод GetSql() в класс Windows Forms. Классы CSearchManager, CsearchCatalogManager и CSearchQueryHelper сгенерированы утилитой tlbimp для вызова COM-объектов. Метод GetCatalog() определяет опрашиваемый каталог и возвращает catalogManager. С экземпляром catalogManager метод GetQueryHelper() возвращает вспомогательный объект. Передача строки AQS методу GenerateSQLFromUserQuery() возвращает запрос SELECT, который может быть использован с поставщиком OLE DB для выполнения запроса: private string GetSql(string aqs) CSearchManager searchManager = new CSearchManager(); CSearchCatalogManager catalogManager = searchManager.GetCatalog( SystemIndex ); CSearchQueryHelper queryHelper = catalogManager.GetQueryHelper(); return queryHelper.GenerateSQLFromUserQuery(aqs); Теперь вам нужно только изменить реализацию обработчика Click элемента управления Button для вызова метода GetSql() с целью преобразования AQS в запрос SELECT, используемый приложением. private void buttonSearch Click(object sender, EventArgs e) try { listViewResult.Clear(); string indexerConnectionString = provider=Search.CollatorDSO.1; + EXTENDED PROPERTIES=Application=Windows ; OleDbConnection connection = new OleDbConnection(indexerConnectionString); connection.Open(); OleDbCommand command = connection.CreateCommand(); command.CommandText = GetSql(textBoxQuery.Text); OleDbDataReader reader = command.ExecuteReader(); Теперь вы сможете запустить приложение и передать запрос AQS, как показано на рис. В.20. Приложение В. Windows Vista и Windows Server 2008 1731 Рис. В.20. Передача запроса AQS Резюме В этом приложении вы ознакомились с разнообразными средствами, доступными только в Windows Vista и Windows Server 2008, и представляющими ценность для разработки приложений. Microsoft давно разработала рекомендации о том, что неадминистративные приложения не должны требовать административных привилегий. Но поскольку многие приложения все-таки не соответствуют этому требованию, теперь операционная система стала строже в отношении UAC. Пользователь должен явно повышать уровень административных прав для приложений. Вы увидели, как это делается - посредством виртуализации папок и реестра - и как это затрагивает приложения. В настоящем приложении мы описали несколько новых диалогов, доступных только под Windows Vista и обеспечивающих лучшее взаимодействие с пользователем. К ним относятся диалоги открытия и сохранения файлов, новый диалог задач, заменивший традиционное окно сообщений, а также командная ссылка - расширение элемента управления Button. Также вы ознакомились с системой запросов Windows, использующей новый расширенный синтаксис запросов, а также расширяемой системой свойств, которые позволяют интегрировать систему поиска в разрабатываемые приложения. Некоторые другие средства, доступные только в Windows Vista и Windows Server 2008, рассматриваются в других главах: □ глава 18 посвящена новому средству протоколирования - Event Tracing for Windows (ETW); □ глава 20 содержит информацию о Cryptography Next Generation (CNG) - новом программном интерфейсе криптографии; □ в главе 22 рассказывается о файловых и реестровых транзакциях; □ в главе 42 показано применение Windows Activation Services (WAS) для размещения службы WCF.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |