Access 2002 Comments are Disabled

Одна маленькая проблема

Однако остается одна маленькая проблема: модификатор AddressOf может использоваться только в вызове процедуры.

Подробнее
Access 2002 Comments are Disabled

Функции с обратным вызовом

Ну а как должны быть определены параметры функции с обратным вызовом?

Подробнее
Access 2002 Comments are Disabled

Набор флагов для настройки диалоговых окон

Вот что, к примеру, представляет собой набор флагов для настройки диалоговых окон открытия и сохранения файла (здесь важны имена констант, а не их значения):

Подробнее
Access 2002 Comments are Disabled

Установка опций

Кроме базовых свойств, о которых рассказывается в следующих разделах, у класса CommonDlg есть еще по одному специальному свойству для каждого типа окна.

Подробнее
Access 2002 Comments are Disabled

Объект commondlg

6.   Когда пользователь закроет окно, прочитайте информацию о результатах его действий из свойств объекта CommonDlg.

Подробнее
Access 2002 Comments are Disabled

Расположение диалогового окна

Такая функция может обеспечить расположение диалогового окна там, где вы хотите, изменить надписи его элементов управления (в случае диалогового окна открытия или сохранения файла) или отреагировать на действия пользователя в этом окне.

Подробнее
Access 2002 Comments are Disabled

Один недостаток

Каждая из этих функций рассматривается в отдельном разделе.

Подробнее
Access 2002 Comments are Disabled

Использование процедур

В отличие от большинства других глав книги в последующих разделах больше рассказывается не о том, как работает предлагаемый нами программный код, а о том, как его можно использовать.

Подробнее
Access 2002 Comments are Disabled

Файл MSAU7032.DLL

Судьба описанных в предыдущих изданиях этой книги функций является убедительным подтверждением тому, что при использовании недокументированных технологий вы ставите крест на возможности безболезненного переноса приложения в будущие версии Access.

Подробнее
Access 2002 Comments are Disabled

Программные модули

Программные модули, которые мы вам предлагаем, можно разделить на семь основных категорий.

Подробнее
Access 2002 Comments are Disabled

Access 97

В Access 97 они были перенесены прямо в исполняемый файл Access, MSACCESS.EXE, и для них были определены общедоступные точки входа, подобные вызовам Windows API.

Подробнее
Access 2002 Comments are Disabled

преобразование строк между Unicode и ANSI

В  14.2 приведены соответствия между наиболее широко используемыми функциями Winl6 и Win32.

Подробнее
Access 2002 Comments are Disabled

Вызовы, не поддерживаемые Win32

И конечно, нужно, как минимум, просмотреть все операторы Declare, заменить все 16-разрядные вызовы на 32-разрядные и заменить объявления функций, получающих строковые аргументы, на их ANSI-версии.

Подробнее
Access 2002 Comments are Disabled

Выравнивание структур по границе двойных слов

Когда VBA передает в DLL пользовательскую структуру данных, он увеличивает некоторые ее элементы таким образом, чтобы ни один из них не пересекал границу очередного двойного слова (DWORD, 4 байта).

Подробнее
Access 2002 Comments are Disabled

Функция с обратным вызовом

В модуле basCal 1 back вы найдете пример вызова функции Windows API EnumFontFami 1 iesEx, которой передается для обратного вызова адрес другой функции из этого же модуля — EnumFontFamExProc.

Подробнее
Access 2002 Comments are Disabled

Использование функций с обратным вызовом

Некоторым функциям Windows для выполнения требуется функция с обратным вызовом.

Подробнее
Access 2002 Comments are Disabled

Из формата BSTR в формат LPSTR

Во втором вызове функции VBA получает следующую информацию:

Подробнее
Access 2002 Comments are Disabled

Определение параметров функции

Как видите, такое определение параметров функции создает проблему: если третьим параметром вы передаете значение HELP CDNTEXT, то четвертым необходимо передать по значению длинное целое (Long), тогда как в случае HELP_PARTIALKEY четвертым параметром функции должна быть LPSTR-строка.

Подробнее
Access 2002 Comments are Disabled

Набор числовых кодов

Если данные представляют собой не текст, а набор числовых кодов, передавайте их в виде массива байтов (иначе функция получит совсем не те байты, которые вы передали).

Подробнее
Access 2002 Comments are Disabled

Unicode — ANSI — Unicode

VBA обрабатывает эту константу по-особому. Она представляет собой четыре байта, содержащие значение О, но когда вы передаете ее функции, принимающей строковый параметр, VBA не протестует.

Подробнее