Logo Host-telecom.com — профессиональный хостинг в Европе! Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
VDS хостинг Облачный сервер в Нидерландах и Украине

Аренда виртуального сервера от $7.91

Партнёрская программа
$20 за клиента

Wildcard сертификаты от $74,97 в год.

Дешевые ssl сертификаты для домена

Sectigo сертификаты от $7,67 в год.

хостинг Украина Виртуальный хостинг для сайта от $4,87

Регистрация домена от $2 в год

Партнерская программа – $20 за клиента

VPS с гибкой конфигурацией: за 1€

Мощные выделенные сервера: от 25€

Собственный Дата-Центр
Поддержка 24/7

2006 г.

WinApi
Лекция из курса «Основы офисного программирования и язык VBA»

Биллиг Владимир Арнольдович
Интернет-Университет Информационных Технологий, INTUIT.ru

Назад Оглавление Вперёд

Две кодировки ANSI и Unicode

Win32 API функции могут существовать в двух вариантах, ориентированных на две кодировки - ANSI, когда символы строк кодируются одним байтом, и Unicode, предполагающей двухбайтную кодировку. По этой причине в DLL возможны три варианта для имен функций:

  • Имя. В этом случае кодировка не играет значения.
  • ИмяA. Окончание A означает, что функция использует ANSI кодировку.
  • ИмяW. Окончание W (от Wide) свидетельствует об Unicode кодировке.

Чтобы выбрать функцию в нужной кодировке, нужно правильно задать Alias имя функции. Заметьте, что в VBA вызываются функции Win32 в ANSI кодировке, поэтому следует выбирать имена с окончанием A в тех случаях, когда при вызове функции используются строки и кодировка имеет значение.

API Viewer

Мы уже говорили об одной из основных проблем, возникающих при вызове Win32 API функций, - необходимо обеспечить корректное задание оператора Declare, описание типов данных и констант, для чего нужно уметь корректно транслировать описание этих объектов из языка C в язык VBA. Чтобы облегчить решение этой задачи, можно воспользоваться специальным инструментальным средством, называемым API Viewer. Это средство доступно в поставке Office 2000 Developer и в Microsoft Visual Basic. Этот обозреватель позволяет:

  • Загрузить прилагаемый текстовый файл Win32API.txt, содержащий информацию обо всех используемых при вызовах Win32 API константах, типах, функциях и операторах Declare.
  • Преобразовать этот файл в базу данных Access - Win32API.mdb файл, что позволяет ускорить работу, работать с формами и запросами к базе данных.
  • Получить корректную для VB и VBA форму записи операторов Declare.
  • Получить корректную для VB и VBA форму записи типов данных.
  • Получить корректную для VB и VBA форму записи констант.

Взгляните на начальный этап работы с обозревателем, где выбирается текстовый файл для просмотра. Обратите внимание, что обозреватель позволяет работать с текстовыми файлами, содержащими информацию о различных интерфейсах, в частности Win32 и Mapi интерфейсах:

Выбор файла Win32API для просмотра в API Viewer
Рис. 6.1.  Выбор файла Win32API для просмотра в API Viewer

На следующем рисунке можно увидеть результаты нашей дальнейшей работы с API Viewer. Вначале из верхнего выпадающего списка API Types мы выбрали элемент Declares, в окне Available Items из списка поочередно выбрали интересующие нас функции Win32 API, - соответствующая этим функциям корректная форма записи оператора Declare появилась в окне Selected Items. На следующем шаге из верхнего списка был выбран элемент Types, из списка типов был выбран тип, в нашем примере MenuItemInfo, и корректное для VBA его определение появилось в окне Selected Items. Аналогично, можно получить корректное определение констант. Обычная технология Copy - Paste позволяет перенести информацию непосредственно в программу VBA. Взгляните, как выглядят окна обозревателя на этом этапе работы:

Получение корректной формы записи оператора Declare в окне API Viewer
Рис. 6.2.  Получение корректной формы записи оператора Declare в окне API Viewer

Хотя, несомненно, обозреватель полезен, у него есть один недостаток. Было бы полезнее, если бы выбрав имя функции из списка, вся необходимая для вызова этой функции информация, - оператор Declare, типы и константы, - была бы собрана в одном месте. Это, однако, не делается и потому необходимо обращаться к документации по соответствующей функции. Это может быть "Справочник программиста Win32", если он доступен для Вас. Возможно, проще найти эту информацию на сервере Microsoft, созданном для разработчиков: http://msdn.microsoft.com/

Для того чтобы получить справку по функции Win32 API, следует воспользоваться режимом Search. В окне поиска следует набрать имя нужной функции, предварительно задав требуемую область поиска. При задании области поиска необходимо, по крайней мере, включить флажки Platform SDK Documentation и Others SDK Documentation. При расширении этой области можно получить не только описание функций, но и статьи с примерами их использования. Заметьте, на этом сервере Вы всегда найдете много полезной информации.

Назад Оглавление Вперёд

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

ATLEX Выделенные серверы: в Европе / в России.

Виртуальные серверы: в Европе / в России.

Партнерская программа

Ваш сайт в 8 раз быстрее конкурентов. Хостинг от $2.95

VPS: SSD, KVM, бесплатные бэкапы и администрирование

Все необходимое для вашего сайта и лучшая техподдержка 24/7

хостинг сайтов ГиперХост — хостинг сайтов который Вы искали.

Виртуальный хостинг, Аренда VPS серверов, рация доменных имен, SSL сертификаты

💰 Самые низкие цены на домены

🔒 Отличный хостинг на SSD c бесплатными SSL

💻 Огромнейший выбор dedicated выделенных серверов

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

Новости мира IT:

Архив новостей

Последние комментарии:

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...