Программирование >>  Управление учетными записями 

1 ... 3 4 5 [ 6 ]


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.



1 ... 3 4 5 [ 6 ]

© 2006 - 2021 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика