Русский_Проект:Функции API

Справочник по функциям Windows API

В данном справочнике объясняется, как пользоваться различными функциями API при написании программ на Visual Basic. Если вы только приступили к программированию с помощью API, то прочитайте сначала Введение. Также ознакомьтесь с определениями терминов, если Вы не понимаете некоторые используемые термины

Выбирайте способ работы с функциями API:

  • Список функций по алфавиту
  • Список функций с обратным вызовом по алфавиту
  • Другая информация по функциям
  • Список функций по категориям
  • Список структур по алфавиту

Список функций по алфавиту

A B C D E F G H I J K L M N
O P Q R S T U V W X Y Z

    A
  1. ActivateKeyboardLayout
  2. AngleArc
  3. Arc
  4. ArcTo
    B
  5. Beep
  6. BitBlt
  7. BringWindowToTop
    C
  8. ChangeDisplaySettings
  9. CharLower
  10. CharToOem
  11. CharUpper
  12. ChooseColor
  13. Chord
  14. ClipCursor
  15. CloseHandle
  16. CommDlgExtendedError
  17. CompareFileTime
  18. CopyFile
  19. CopyRect
  20. CreateDirectory
  21. CreateDirectoryEx
  22. CreateEllipticRgn
  23. CreateEllipticRgnIndirect
  24. CreateFile
  25. CreateHatchBrush
  26. CreatePen
  27. CreatePenIndirect
  28. CreatePolygonRgn
  29. CreatePolyPolygonRgn
  30. CreateRectRgn
  31. CreateRectRgnIndirect
  32. CreateRoundRectRgn
  33. CreateSolidBrush
    D
  34. DeleteFile
  35. DeleteObject
  36. DestroyIcon
  37. DestroyWindow
  38. DrawIcon
    E
  39. Ellipse
  40. EnableWindow
  41. EnumDisplaySettings
  42. EnumWindows
  43. EqualRect
  44. EqualRgn
  45. ExitWindowsDialog
  46. ExitWindowsEx
  47. ExtFloodFill
  48. ExtractIcon
  49. ExtractIconEx
    F
  50. FileTimeToSystemTime
  51. FillRect
  52. FillRgn
  53. FindWindow
  54. FindWindowEx
  55. FlashWindow
  56. FrameRect
  57. FrameRgn
    G
  58. GetACP
  59. GetActiveWindow
  60. GetArcDirection
  61. GetClassName
  62. GetClipCursor
  63. GetComputerName
  64. GetCurrentDirectory
  65. GetCursor
  66. GetCursorPos
  67. GetDC
  68. GetDesktopWindow
  69. GetDiskFreeSpace
  70. GetDiskFreeSpaceEx
  71. GetDoubleClickTime
  72. GetDriveType
  73. GetFileAttributes
  74. GetFileSize
  75. GetFileTime
  76. GetForegroundWindow
  77. GetFullPathName
  78. GetKeyboardLayoutName
  79. GetKeyboardState
  80. GetKeyState
  81. GetLastError
  82. GetLocalTime
  83. GetLogicalDrives
  84. GetLogicalDriveStrings
  85. GetMenu
  86. GetMenuItemCount
  87. GetOEMCP
  88. GetOpenFileName
  89. GetParent
  90. GetPixel
  91. GetPrivateProfileString
  92. GetRgnBox
  93. GetSaveFileName
  94. GetShortPathName
  95. GetStockObject
  96. GetSysColor
  97. GetSystemDirectory
  98. GetSystemMenu
  99. GetSystemMetrics
  100. GetSystemTime
  101. GetTempPath
  102. GetTextColor
  103. GetTickCount
  104. GetTopWindow
  105. GetUserName
  106. GetVersion
  107. GetVersionEx
  108. GetVolumeInformation
  109. GetWindow
  110. GetWindowRect
  111. GetWindowsDirectory
  112. GetWindowText
  113. GetWindowTextLength
    H
    I
  114. InflateRect
  115. IntersectRect
  116. InvertRect
  117. InvertRgn
  118. IsCharAlpha
  119. IsCharAlphaNumeric
  120. IsCharLower
  121. IsCharUpper
  122. IsChild
  123. IsIconic
  124. IsRectEmpty
  125. IsWindow
  126. IsWindowEnabled
  127. IsZoomed
    J
    K
  128. keybd_event
    L
  129. LineTo
  130. LoadCursor
  131. LoadCursorFromFile
    M
  132. mciSendString
  133. MessageBeep
  134. MessageBox
  135. MoveFile
  136. MoveToEx
  137. MoveWindow
    N
    O
  138. OemToChar
  139. OffsetRect
    P
  140. PaintDesktop
  141. PlaySound
  142. Polygon
  143. Polyline
  144. PolylineTo
  145. PolyPolyline
  146. PtInRect
  147. PtInRegion
    Q
    R
  148. ReadFile
  149. Rectangle
  150. RectInRegion
  151. RegCloseKey
  152. RegCreateKeyEx
  153. RegDeleteKey
  154. RegDeleteValue
  155. RegEnumKeyEx
  156. RegEnumValue
  157. RegOpenKeyEx
  158. RegQueryValueEx
  159. RegSetValueEx
  160. ReleaseCapture
  161. ReleaseDC
  162. RemoveDirectory
  163. RestartDialog
  164. RoundRect
    S
  165. SelectObject
  166. SendMessage
  167. SetActiveWindow
  168. SetArcDirection
  169. SetComputerName
  170. SetCursor
  171. SetCursorPos
  172. SetDoubleClickTime
  173. SetFileAttributes
  174. SetFilePointer
  175. SetFileTime
  176. SetForegroundWindow
  177. SetKeyboardState
  178. SetParent
  179. SetPixel
  180. SetRect
  181. SetRectEmpty
  182. SetSysColors
  183. SetSystemTime
  184. SetTextColor
  185. SetVolumeLabel
  186. SetWindowPos
  187. SetWindowText
  188. SHAddToRecentDocs
  189. SHBrowseForFolder
  190. Shell_NotifyIcon
  191. ShellExecute
  192. SHEmptyRecycleBin
  193. SHFileOperation
  194. SHGetSpecialFolderLocation
  195. ShowCursor
  196. ShowWindow
  197. SHQueryRecycleBin
  198. Sleep
  199. sndPlaySound
  200. StretchBlt
  201. SubtractRect
  202. SwapMouseButton
  203. SystemParametersInfo
  204. SystemTimeToFileTime
    T
  205. TextOut
    U
  206. UnionRect
    V
    W
  207. WindowFromPoint
  208. WriteFile
  209. WritePrivateProfileString
    X
    Y
    Z

В начало

Список функций с обратным вызовом по алфавиту
  • BrowseCallbackProc
  • CCHookProc
  • CFHookProc
  • EnumChildProc
  • EnumFontFamExProc
  • EnumFontFamProc
  • EnumThreadWndProc
  • EnumWindowsProc
  • PropEnumProcEx
  • SoundSentryProc
  • WindowProc

Другая информация по функциям
  • CSIDL
  • Коды ошибок
  • Extended Window Styles
  • Manufacturer IDs
  • Product IDs
  • Коды виртуальных клавиш
  • Window Styles


Введение

Функции API:Введение

Добро пожаловать на страницы руководства по функциям API. Это руководство имеет дело с API для всех 32-разрядных версий Windows: Windows 95/98, Windows NT.

  • Введение в Windows API
  • Введение в руководство по функциям API

Введение в Windows API

Что такое "API"?

API сокращенно Application Programming Interface(интерфейс прикладного программирования). Проще говоря, API - набор функций, которые операционная система предоставляет программисту. API обеспечивает относительно простой путь для программистов для использования полных функциональных возможностей аппаратных средств или операционной системы .

Понятие о Windows API

Windows API могут вызываться из Visual Basic для выполнения задач,для которых недостаточно стандартного программного кода Visual Basic и позволяют использовать новые функциональные возможности, принципиально не реализуемых на уровне встроенных возможностей языка.Например,стандартные средства Visual Basic не позволяют перезагрузить компьютер.Однако перезагрузку можно выполнить через обращение к соответствующей функции Window API.Кроме того,существует возможность замены встроенных операторов языка на альтернативные варианты, которые на уровне Windows API зачастую выполняются быстрее

32-разрядные версии Windows, или 95/98 или NT, обычно используют один и тот же набор функций API, хотя имеются некоторые различия между платформами. 32-разрядный API содержит многочисленные расширения и поддержки к устаревшему 16-разрядному API, используемому в Windows 3.x. Старые функции поддерживаются по причинам совместимости. Однако, 32-разрядные приложения должны использовать исключительно 32-разрядные функции. Это не проблема, так как 16-разрядные функции обычно заменялись подобными функциями.

Как организованы функции Windows API ?

Почти все функции, которые составляют Windows API - внутри DLL (Dynamic Link Library) . Эти dll-файлы находятся в системной папке Windows.Существует свыше 1000 функций API,которые условно делятся на на четыре основные категории.

  • Работа с приложениями-запуск и закрытие приложений,обработка команд меню,перемещения и изменения размера окон.
  • Графика-создание изображений.
  • Системная информация-определение текущего диска,объем памяти,имя текущего пользователя и т.д.
  • Работа с реестром-манипуляции с реестром Windows

Наверх.
В начало.

Введение в руководство по функциям API

Руководство по функциям API -это коллекция некоторых функций. Я не претендую на полное описание всех функций(их слишком много),но коллекция будет постоянно пополнятся.

Как организовано данное руководство?

Основная страничка содержит список функций,входящих в руководство,в алфавитном порядке.Каждая функция имеет свою страничку с описанием параметров функции,ее использовании и примером.


Функции API:Определения терминов

Определения терминов

Declare
Оператор, используемый для вызова функции API. Declare сообщает Visual Basic имя, местоположение DLL, а также требуемые параметры
Классы окна
Определяет общие атрибуты к группе окон. Окна, которые созданы как члены некоторого класса окна, наследует много свойств того класса
Контекст устройства
В Windows поверхность, на которой вы рисуете, называется контекстом устройства. Доступ к нему обеспечивает дескриптор hDC. Получив дескриптор контекста устройства, можно вызывать API-функции для вывода графики(точки, линии, окружности, текст). Смотри также : Дескриптор, Указатель.
Логическое
Когда используется, чтобы описать графический объект (типа шрифта или кисти), это означает, что описанный объект является "идеальным" объектом. Информация относительно логического объекта используется системой, чтобы создать физический объект, который не может точно соответствовать логическому. Однако, фактически могут использоваться только физические объекты
Общий диалог
Одно из диалоговых окон, встроенных в Windows API, предназначенный для выбора пользователем различных операций. Общие диалоговые окна включают Открытие файла, Сохранение файла, Выбор цвета, Выбор шрифта, Печать, Установку печати, Найти текст и Найти и заменить текст
Дескриптор
Уникальное целое число, которое присваивается объекту под Windows. Дескрипторы могут идентифицировать большинство видов объекта, включая ключи системного реестра, файлы, блоки памяти, окна. Смотри также: Контекст устройства, Указатель
Перо
Объект, используемый для вывода линий и кривых. Перо определяет стиль, размер и форму линий и кривых. Доступ к перу обычно доступен через дескриптор
Слово(Word)
Безнаковое двухбайтовое целое. Часть памяти, обычно переменная, которая имеет длину двух байтов. Tермин word дается чему -нибудь, что имеет длину в два байта
Сообщение
Тип команды, посланной объекту. Физически, сообщение идентифицировано 32-разрядным целым числом. Большинство сообщений имеет два параметра, связанные с ними. Большинство объектов непрерывно ожидают новые сообщения и реагируют на них.Смотри также Функции Windows API:Сообщения
Указатель
Число, идентифицирующее определенный адрес в памяти. Указатели отличаются от дескрипторовPointers differ from handles to memory blocks because whereas the handle refers to a block of memory whose exact physical location may vary, the pointer identifies the specific physical location of where it starts. Visual Basic implicitly passes strings, data structures, and all ByRef variables by passing a pointer to the variable's memory address to the function. Смотри также: Контекст устройства, Дескриптор
Устройство
Объект, который исполняет операции ввода или вывода (или оба). Устройства используются, чтобы связаться с пользователем и включают такие объекты как клавиатура, мышь и принтеры. Большинство окон являются устройствами
Клиентская область
Область окна, определяющая ее основу. В эту область не входят заголовок, меню(если есть), панель управления, строка состояния, бордюр окна
Функция с обратным вызовом
Функция, код которых пишете вы, но вызывает их Windows. В Visual Basic, все функции с обратным вызовом должны быть Public и находится в стандартном модуле
hookfunction
Особый вид функции обратного вызова. Hook functions are used to process messages associated with an object such as a window or a dialog box. In general, hook functions are called to respond to some sort of message


Использование в Visual Basic

Использование функций API в Visual Basic

Функции API,вызываемые в Visual Basic должны быть предварительно объявлены. При объявлении указывается имя DLL и функции,а также информация о количестве и типе аргументов.

Объявление функций API и DLL

Процедуры DLL объявляются командой Declare в секции General Declarations модуля формы или стандартного модуля:
Declare Function имя Lib "библиотека" [Alias "псевдоним"] [([[ByVal ] _
переменная [As тип] [,ByVal,] переменная [As тип]]...])] As тип

Процедуры DLL,находящиеся в стандартных модулях,по умолчанию являются открытыми и могут вызываться из любой точки приложения.Процедуры,объявленные в модуле формы,являются закрытыми и перед их объявлением должно стоять ключевое слово Private.
Примечание.
Начиная с версии Visual Basic 5,в именах процедур учитывается регистр символов.

Библиотеки

Секция Lib сообщает,где следует искать файл DLL,содержащий функцию.При ссылке на основные библиотеки Windows(user32.dll,kernel32.dll,gdi.dll) расширение включать не обязательно.
Если путь к файлу не указан,то начинается просмотр каталогов в следующей последовательности

  1. Каталог,содержащий EXE-файл программы
  2. Текущий каталог
  3. Системный каталог Windows
  4. Каталог Windows
  5. Переменная окружения Path

Стандартные библиотеки DLL
Библиотека | Описание
advapi.dll | Защита NT,реестр и другие продвинутые сервисы.
comdlg.dll | Стандартные диалоговые окна.
gdi.dll | Интерфейс графических устройств.
kernel32.dll | Память,диски,процессы,ресурсы.
mpr.dll | Сети.
netapi32.dll | Библиотека сетевого API.
shell32.dll | Оболочка Windows,drag-and-drop,выборка значков.
user32.dll | Пользовательский интерфейс-окна,меню,строки,сообщения.
version.dll | Контроль версий.
winmm.dll | Мультимедиа,звук,джойстики,таймеры.
winspoll.dll | Диспетчер печати.

Псевдонимы

Атрибут Alias позволяет присвоить DLL-функции новое имя в Visual Basic. Например,в VB не разрешается начинать имена функций со знака подчеркивания(_lopen,_lread и другие). Во избежание этих проблем с именами функций,написанных на Си,используется псевдоним(например,lopen).

Передача аргументов

Большинство процедур DLL задокументировано с использованием нотации языка программирования C и C++.Для успешного преобразования функции API в команду Declare необходимо разбираться в механизме передачи аргументов.Обычно аргументы передаются по значению.Ниже перечислены типы аргументов C и их эквиваленты в Visual Basic

Типы данных в C и Visual Basic
Windows API | Visual Basic
char | ByVal Byte
handle | ByVal Long
INT | ByVal Long
UINT | ByVal Long
Bool | ByVal Long
WORD | ByVal Integer
DWORD | ByVal Long
WPARAM | ByVal Long
LPARAM,LRESULT | ByVal Long
COLORREF | ByVal Long
ATOM | ByVal Integer
Byte | ByVal Byte

Передача аргументов по значению

При передаче аргумента по значению передается не сама переменная,а ее временная копия.Если процедура изменяет ее значение,такие изменения будут относиться к копии,но не к самой переменной.При передаче по значению используется ключевое слово ByVal

Передача аргументов по ссылке

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


ActivateKeyboardLayout

Функция ActivateKeyboardLayout

Declare Function ActivateKeyboardLayout Lib "user32" (ByVal HKL As Long, ByVal flags As Long) As Long

Платформа

  • Windows 95/98/ME: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE:Не поддерживается

ActivateKeyboardLayout позволяет переключать раскладки клавиатуры, доступные на вашем компьютере

Возвращаемое значение

В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки). В успешном случае возвращается дескриптор предыдущей раскладки

Параметры
HKL
Дескриптор раскладки клавиатуры. Может принимать следующие значения:
HKL_NEXT=1 | Активирует следующую раскладку
HKL_PREV=0 | Активирует предыдущую раскладку
flags
Флаг, определяющий способы активации различных раскладок
Пример
' Переключаем раскладку
ActivateKeyboardLayout HKL_NEXT, 0
Схожие функции
GetKeyboardLayoutName
Категория
Клавиатура


AngleArc

Функция AngleArc

Declare Function AngleArc Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal dwRadius As Long, ByVal eStartAngle As Single, ByVal eSweepAngle As Single) As Long

Платформа

  • Windows 95/98: Не поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

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

hdc
Дескриптор контекста устройства для рисования дуги
x
Координата x центра круга
y
Координата y центра круга
dwRadius
Радиус круга
eStartAngle
Угол (в градусах) для идентификации отправной точки дуги
eSweepAngle
Угол (в градусах) для идентификации конечной точки дуги
Пример
' Рисуем дугу, сформированную верхней половиной круга (от 0 до 180
' градусов против часовой стрелки). Круг центрирован в (100, 150) и имеет радиус
' 50. Дуга оттянута, используя сплошное черное перо
Dim hpen As Long  ' дескриптор черного пера
Dim holdpen As Long   ' дескриптор предварительно выбранного пера Form1
Dim retval As Long   ' возвращаемое значение

' Получаем сплошное черное перо для использования в Form1
hpen = GetStockObject(BLACK_PEN)  ' дескриптор черного пера
holdpen = SelectObject(Form1.hDC, hpen)  ' выбираем перо

' Выбираем направление против часовой стрелки
' для вывода дуги
retval = SetArcDirection(Form1.hDC, AD_COUNTERCLOCKWISE)
' рисуем дугу
retval = AngleArc(Form1.hDC, 100, 150, 50, 0, 180)

' Выбираем прежнее перо Form1 для установки по умолчанию
retval = SelectObject(Form1.hDC, holdpen)  ' выбираем старое перо
Схожие функции
Arc, ArcTo, Ellipse, GetArcDirection, SetArcDirection
Категория
Линии и кривые


Arc

Функция Arc

Declare Function Arc Lib "gdi32" (ByVal hdc As Long, ByVal nLeftRect As Long, ByVal nTopRect As Long, ByVal nRightRect As Long, ByVal nBottomRect As Long, ByVal nXStartArc As Long, ByVal nYStartArc As Long, ByVal nXEndArc As Long, ByVal nYEndArc As Long) As Long

Платформа

  • Windows 95/98/ME: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE:Не поддерживается

Arc рисует часть дуги на устройстве используя текущее перо устройства. Windows 95/98: Дуга всегда рисуется против часовой стрелки от точки начала до точки конца. Windows NT/2000: Направление дуги зависит от текущей установки устройства

Возвращаемое значение

В случае ошибки при при попытке рисовать дугу, функция возвращает 0 (Win NT/2000: используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает ненулевое значение

Параметры
hdc
Дескриптор контекста устройства, на котором рисуется дуга
nLeftRect
Координата x левой верхней точки прямоугольника, ограничивающего эллипс
nTopRect
Координата y левой верхней точки прямоугольника, ограничивающего эллипс
nRightRect
Координата x правой нижней точки прямоугольника, ограничивающего эллипс
nBottomRect
Координата y правой нижней точки прямоугольника, ограничивающего эллипс
nXStartArc
Координата x радиальной точки, которая определяет отправную точку дуги
nYStartArc
Координата y радиальной точки, которая определяет отправную точку дуги
nXEndArc
Координата x радиальной точки, который определяет точку окончания дуги
nYEndArc
Координата y радиальной точки, который определяет точку окончания дуги
Пример
' Рисуем дугу, которая формирует верхнюю половину эллипса. Эллипс
' находится в координатах (100, 100), имеет ширину 200, и имеет высоту 100. Дуга оттянута
' на окне Form1 с использованием черного твердого пера
' Вставьте код в Form_Paint
Dim hpen As Long  ' дескриптор для черного твердого пера
Dim holdpen As Long  ' дескриптор для пера, используемого Form1
Dim retval As Long
hpen = GetStockObject(BLACK_PEN)  ' получаем дескриптор для черного сплошного пера
holdpen = SelectObject(Form1.hDC, hpen) ' и устанавливаем его для Form1
' Эллипс ограничен прямоугольником  (0,50) - (200,150)
retval = Arc(Form1.hdc, 0, 50, 200, 150, 200, 100, 0, 100)
' Восстанавливаем прежнее перо для Form1
retval = SelectObject(Form1.hDC, holdpen)
Схожие функции
AngleArc, ArcTo, Ellipse, GetArcDirection, SetArcDirection
Категория
Линии и кривые


ArcTo

Функция ArcTo

Declare Function ArcTo Lib "gdi32" (ByVal hdc As Long, ByVal nLeftRect As Long, ByVal nTopRect As Long, ByVal nRightRect As Long, ByVal nBottomRect As Long, ByVal nXRadial1 As Long, ByVal nYRadial1 As Long, ByVal nXRadial2 As Long, ByVal nYRadial2 As Long) As Long

Платформа

  • Windows 95/98: Не поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

ArcTo рисует дугу на устройстве,используя текущее перо контекста. После вывода дуги, текущая точка контекста устанавливается в последнюю точку дуги. Эллипс, на котором рисуются дуги, находится в пределах координат ограничительного прямоугольника. Начальная и конечная точки определяются двумя величинами. Направление вывода дуги зависит от текущей установки устройства

hdc
Дескриптор контекста устройства для вывода дуги
nLeftRect
Координата x верхней левой точки прямоугольника, ограничивающего эллипс
nTopRect
Координата y верхней левой точки прямоугольника, ограничивающего эллипс
nRightRect
Координата x нижней правой точки прямоугольника, ограничивающего эллипс
nBottomRect
Координата y нижней правой точки прямоугольника, ограничивающего эллипс
nXRadial1
Координата x радиальной точки, определяющей начальную точку дуги
nYRadial1
Координата y радиальной точки, определяющей начальную точку дуги
nXRadial2
Координата x радиальной точки, определяющей конечную точку дуги
nYRadial2
Координата y радиальной точки, определяющей конечную точку дуги
Пример
' Рисуем дугу, которая формирует верхнюю половину эллипса. Эллипс
' отцентрирован в (100, 100), имеет ширину 200, и имеет высоту 100. Дуга оттянута
' на окне Form1, использующем черное сплошное перо
Dim hpen As Long  ' дескриптор черного сплошного пера
Dim holdpen As Long  ' дескриптор к старому перу,используемому Form1
Dim retval Avs Long  ' возвращаемое значение

' Получаем дескрипток к черному перу
' и устанавливаем его текущим пером Form1
hpen = GetStockObject(BLACK_PEN)  ' получаем дескриптор к перу формы
holdpen = SelectObject(Form1.hDC, hpen)
' Эллипс,определенным ограничивающим прямоугольником (0,50)-(200,150).
' The radial to (200, 100) is due right; the radial to (0, 100) is due left
retval = ArcTo(Form1.hDC, 0, 50, 200, 150, 200, 100, 0, 100)

' Восстанавливаем старое перо Form1
retval = SelectObject(Form1.hDC, holdpen)
Схожие функции
AngleArc, Arc, Ellipse, GetArcDirection, SetArcDirection
Категория
Линии и кривые


Beep

Функция Beep

Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

Платформа

  • Windows 95/98/ME: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

Beep воспроизводит звук. В зависимости от платформы воспроизводит звук по разному. Windows 95/98: Функция всегда воспроизводит системный (SystemDefault) звук. Windows NT/2000: Функция воспроизводит тоновый звук через внутренний динамик с различной частотой

dwFreq
Windows NT/2000: Частота в герцах (Hz). Windows 95/98: Игнорируется
dwDuration
Windows NT/2000: Продолжительность звука в миллисекундах.Windows 95/98: Игнорируется
Пример
' Воспроизводим сигнал частотой 800 Hz в течении 2 сек
' только для Windows NT/2000; пользователи Win 95/98
' услышает звук по умолчанию
Dim retval As Long  ' возвращаемое значение
retval = Beep(800, 2000)
Схожие функции
MessageBeep
Категория Ошибки


BitBlt

Функция BitBlt

Declare Function BitBlt Lib "gdi32" (ByVal hdcDest As Long, ByVal nXDest As Long, ByVal nYDest As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hdcSrc As Long, ByVal nXSrc As Long, ByVal nYSrc As Long, ByVal dwRop As Long) As Long

BitBlt используется для выполнения операции копирования отдельных битов из области источника изображения в область-получатель.Функция позволяет передавать прямоугольную область из контекста устройства в контекст другого устройства. Размеры переданного прямоугольника совершенно сохраняются

Возвращаемое значение

В случае ошибки функция возвращает 0 (Windows NT, 2000: используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает ненулевое значение

Параметры
hdcDest
Дескриптор контекста устройства устройства, которое получает переданный блок изображения
nXDest
Координата x точки верхнего левого угла блока изображения(получатель)
nYDest
Координата y точки верхнего левого угла блока изображения(получатель)
nWidth
Ширина в пикселах блока изображения
nHeight
Высота в пикселах блока изображения
hdcSrc
Дескриптор к контексту устройства устройства, которое содержит блок изображения для копирования
nXSrc
Координата x точки верхнего левого угла блока изображения(источник)
nYSrc
Координата y точки верхнего левого угла блока изображения(источник)
dwRop
Один из следующих флажков, идентифицирующих растровую операцию для передачи блока изображения. Каждая растровая операция использует RGB-значение цвета исходного исходного пиксела, чтобы определить новый цвет пиксела
BLACKNESS = &H42
Заполняет область-получатель черным цветом
CAPTUREBLT = &H40000000
Windows 98, 2000: Include any windows layered on top of the window being used in the resulting image
DSTINVERT = &H550009
Инвертирует область-получатель
MERGECOPY = &HC000CA
Изображение определяется результатом выполнения операции побитового AND над копируемым изображением или шаблоном
MERGEPAINT = &HBB0226
Изображение определяется результатом выполнения операции побитового OR над инвертируемым копируемым и областью-получателем
NOMIRRORBITMAP = &H80000000
Windows 98, 2000: Предотвращает точечный рисунок от зеркального отражения
NOTSRCCOPY = &H330008
Изображение определяется инвертируемым исходным изображением
NOTSRCERASE = &H1100A6
Комбинирование цвета и прямоугольников источника и получателя, использующих поразрядный оператор OR с последующим инвертированием результирующего цвета
PATCOPY = &HF00021
Шаблон копируется в область получатель
PATINVERT = &H5A0049
Комбинирование цвета указанного шаблона с цветами прямоугольника адресата, используя поразрядный оператор XOR
PATPAINT = &HFB0A09
Комбинирование цвета указанного образца с цветами перевернутого исходного прямоугольника, используя поразрядный оператор OR. Комбинируйте результат той операции с цветами прямоугольника адресата, используя поразрядный оператор OR
SRCAND = &H8800C6
Комбинирование цвета и прямоугольников источника иадресата, использующих поразрядный оператор AND
SRCCOPY = &HCC0020
Копирование исходного прямоугольника непосредственно в прямоугольник адресата без изменений
SRCERASE = &H440328
Комбинирование перевернутых цветов прямоугольника адресата с цветами источника , используя поразрядный оператор AND
SRCINVERT = &H660046
Комбинирование цвета и прямоугольников источника и адресата, использующих поразрядный оператор XOR
SRCPAINT = &HEE0086
Комбинирование цвета и прямоугольников источника и адресата, использующих поразрядный оператор OR
WHITENESS = &HFF0062
Заполняет область-получатель белым цветом
Пример
' Копируем изображение прямоугольника из формы Form1 в форму Form2
' используя SRCCOPY.  Прямоугольник имеет ширину 100 и высоту
' 50.  Верхний левый угол источника- (350, 250); копия расположится в координатах
'  (0,0) формы Form2
Dim retval As Long  ' возвращаемое значение
' Переместим изображение точно как описано выше
retval = BitBlt(Form2.hDC, 0, 0, 100, 50, Form1.hDC, 350, 250, SRCCOPY)
Схожие функции
StretchBlt
Категория
Графика


BringWindowToTop

Функция BringWindowToTop

Declare Function BringWindowToTop Lib "user32" (ByVal hwnd As Long) As Long

BringWindowToTop устанавливает указанное окно поверх других. Эта функция имеет тот же эффект, как и использование SetWindowPos для размещения окна поверх других

hwnd
Дескриптор окна
Пример
' Установим окно Form2 поверх окна Form1
Dim retval As Long  ' возвращаемое значение
' Очевидно, это будет работать,
' если другие окна уже поверх Form2
retval = BringWindowToTop(Form2.hWnd)
Схожие функции
SetWindowPos
Категория
Окна


ChangeDisplaySettings

Функция ChangeDisplaySettings

Declare Function ChangeDisplaySettings Lib "user32.dll" Alias "ChangeDisplaySettingsA" (lpDevMode As Any, ByVal dwFlags As Long) As Long

Платформа

  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.5 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

ChangeDisplaySettings изменяет текущие параметры настройки экрана. Эта функция может менять текущее разрешение экрана и разрядность цвета. Как правило, следует вызвать функцию EnumDisplaySettings, чтобы получить возможные параметры экрана

Возвращаемое значение

Функция возвращает следующие значения:
Значение | Описание
DISP_CHANGE_SUCCESSFUL=0 | Параметры настройки экрана были успешно изменены
DISP_CHANGE_RESTART=1 | Компьютер нужно перезагрузить, чтобы изменения вступили в силу
DISP_CHANGE_BADFLAGS=-4 | Определен недействительный набор флажков
DISP_CHANGE_BADPARAM=-5 | Определен недопустимый параметр
DISP_CHANGE_FAILED=-1 | Драйвер дисплея не поддерживает указанный графический режим
DISP_CHANGE_BADMODE=-2 | Указанный графический режим не поддерживается
DISP_CHANGE_NOTUPDATED=-3 | Windows NT/2000: Настройки не могут быть записаны в реестр

Параметры

lpDevMode
Структура DEVMODE,содержащая новые параметры настройки экрана. Используются только dmBitsPerPixel, dmPelsWidth, dmPelsHeight, dmDisplayFlags и dmDisplayFrequency. (Windows 98, NT/2000: Параметр dmPosition также можно использовать).Чтобы восстановить параметры настройки, сохраненные в системном реестре, обнулите этот параметр и dwFlags
dwFlags
Комбинация следующих флажков, определяющих, как изменять графический режим. Если никакие флажки не установлены (то есть, установлен нуль), графический режим изменен динамически
CDS_UPDATEREGISTRY= &H1
Сохранить новые параметры настройки в системном реестре, и также изменить параметры настройки динамически
CDS_TEST= &H2
Режим тестирования для проверки, поддерживаются ли новые параметры настройки аппаратными средствами, без фактического изменения параметров настройки. Возвращаемое значение функции укажет любые проблемы, которые, возможно, произошли
CDS_FULLSCREEN= &H4
Полноэкранный режим. Это установка не может быть сохранена
CDS_GLOBAL= &H8
Сохраните новые параметры настройки для всех пользователей. Флажок CDS_UPDATEREGISTRY должен также быть определен
CDS_SET_PRIMARY= &H10
Установка устройства первичным устройством отображения
CDS_RESET= &H40000000
Измените параметры настройки, даже если они совпадают стекущими параметрами настройки
CDS_NORESET= &H10000000
Сохраните параметры настройки в системном реестре, но новые параметры вступят в силу позже. Флажок CDS_UPDATEREGISTRY должен также быть определен
Пример
' Меняем текущее разрешение экрана
' на 640*480 и сохраняем установки в реестре.
' Тестируем,поддерживает ли видеоадаптер новое
' разрешение. Если необходима перезагрузка,
' то информируем пользователя. Установите на форме
' кнопку Command1

Private Sub Command1_Click()
 Dim dm As DEVMODE  ' настройки экрана
 Dim retval As Long ' возвращаемое значение

' Инициализируем структуру
 dm.dmSize = Len(dm)

' Получаем текущие настройки экрана
 retval = EnumDisplaySettings(vbNullString, ENUM_CURRENT_SETTINGS, dm)
' Меняем разрешение на 640*480
 dm.dmPelsWidth = 640
 dm.dmPelsHeight = 480
' Проверяем,возможно ли это
 retval = ChangeDisplaySettings(dm, CDS_TEST)
   If retval <> DISP_CHANGE_SUCCESSFUL Then
        Debug.Print "Нельзя устанавливать такое разрешение!"
    Else
' Меняем и сохраняем новые параметры
         retval = ChangeDisplaySettings(dm, CDS_UPDATEREGISTRY)
  Select Case retval
    Case DISP_CHANGE_SUCCESSFUL
      Debug.Print "Новое разрешение установлено!"
    Case DISP_CHANGE_RESTART
      Debug.Print "Необходима перезагрузка,чтобы изменения вступили в силу"
    Case Else
      Debug.Print "Не могу изменить настройки!"
    End Select

End If
End Sub
Смотри также
EnumDisplaySettings
Категория Устройства


CharLower

Фунция CharLower

Declare Function CharLower Lib "user32" Alias "CharLowerA" (ByVal lpsz As String) As String

CharLower конвертирует все символы из верхнего регистра в нижний

Возвращаемое значение
Функция возвращает строку со всеми буквами верхнего регистра, конвертируемые в нижний регистр

Параметры

lpsz
Строка для конвертации в нижний регистр
Пример
' Конвертируем строку "Доброе утро, Россия!"
' в нижний регистр
Dim target As String   ' нужная строчка
target = CharLower("Доброе утро, Россия!")
Debug.Print target
Схожие функции
CharUpper
Категория
Строки


CharToOem

Фунция CharToOem

Declare Function CharToOem Lib "user32" Alias "CharToOemA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long

Платформа

  • Windows 95/98/ME: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается

CharToOem конвертирует текст из win-кодировки в dos-кодировку

Возвращаемое значение

Функция всегда возвращает ненулевое значение

Параметры
lpszSrc
Строка для перекодировки
lpszDst
Перекодированая строка в буфере. Если функция CharToOem используется как функция ANSI, строка может быть переведена на месте, устанавливая параметр lpszDst в тот же адрес, что и параметр lpszSrc
Пример
' Конвертируем строку "Русский_Проект!"
'в dos-кодировку
Dim sourcestring As String   ' нужная строка
Dim deststring As String  ' получаемая строка
Dim code As Long
sourcestring = "Русский Проект"  'строка для перекодировки
deststring = Space$(Len(sourcestring))'получаем перекодированную строку
code = CharToOem(sourcestring, deststring)
Debug.Print deststring
Схожие функции
OemToChar
Категория
Строки


CharUpper

Функция CharUpper

Declare Function CharUpper Lib "user32" Alias "CharUpperA" (ByVal lpsz As String) As String

CharUpper конвертирует все символы из нижнего регистра в верхний

Возвращаемое значение

Функция возвращает строку со всеми буквами нижнего регистра, конвертируемые в верхний регистр

Параметры
lpsz
Строка для конвертации в верхний регистр
Пример
' Конвертируем строку "Доброе утро, страна!"
' в верхний регистр
Dim target As String     ' нужная строчка
target = CharUpper("Доброе утро, страна!")
MsgBox target
Схожие функции
CharLower
Категория
Строки


ChooseColor

Функция ChooseColor

Declare Function ChooseColor Lib "comdlg32" Alias "ChooseColorA" (pChoosecolor As CHOOSECOLOR) As Long

Платформа

  • Windows 95/98/ME: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Требуется Windows CE 2.0 или выше

ChooseColor открывает стандартное окно Общего диалога для выбора цвета. Вся необходимая информация для создания диалогового окна, хранится в структуре pChoosecolor

Возвращаемое значение

В случае возникновения ошибки или при нажатии пользователем кнопки Отмена, функция возвращает 0 (пользуйтесь CommDlgExtendedError для получения кода ошибки). В успешном случае функция возвращает ненулевое значение

Параметры
pChoosecolor
Вся необходимая информация для создания диалогового окна
Пример
' Показываем общее диалоговое окно
' для выбора цвета. Задний фон Form1
' будет установлен в соответствии с выбранным цветом
'код для General Declarations
Dim CustomColors() As Byte
' код для кнопки Command1
Dim cc As CHOOSECOLOR ' структура для передачи данных
Dim Custcolor(16) As Long  ' содержит список 16 цветов
Dim retval As Long ' возвращаемое значение
cc.lStructSize = Len(cc)
    cc.hwndOwner = frmMain.hWnd
    cc.hInstance = App.hInstance
    cc.lpCustColors = StrConv(CustomColors, vbUnicode)
    cc.flags = 0

    retval = CHOOSECOLOR(cc)
    If retval <> 0 Then
' Открываем диалоговое окно
' Если пользователь выбрал цвет, устанавливаем цвет фона формы
        frmMain.BackColor = Str$(cc.rgbResult)
        CustomColors = StrConv(cc.lpCustColors, vbFromUnicode)
    Else
        Exit Sub
    End If
Категория
Общее диалоговое окно


Chord

Функция Chord

Declare Function Chord Lib "gdi32" (ByVal hdc As Long, ByVal nLeftRect As Long, ByVal nTopRect As Long, ByVal nRightRect As Long, ByVal nBottomRect As Long, ByVal nXRadial1 As Long, ByVal nYRadial1 As Long, ByVal nXRadial2 As Long, ByVal nYRadial2 As Long) As Long

Платформа

  • Windows 95/98/ME: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

Chord рисует хорду на устройстве, используя текущее перо и заполняет его текущей кистью. Хорда состоит из сегмента линии, соединяющей две точки по эллипсу; область между хордой и краем эллипса заполнена (против часовой стрелки вокруг эллипса)

Возвращаемое значение

В случае ошибки функция возвращает 0 (Windows NT, 2000: используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает ненулевое значение

Параметры
hdc
Дескриптор к контексту устройства
nLeftRect
Координата x левого верхнего угла ограничительного прямоугольника эллипса
nTopRect
Координата y левого верхнего угла ограничительного прямоугольника эллипса
nRightRect
Координата x нижнего правого угла ограничительного прямоугольника эллипса
nBottomRect
Координата y нижнего правого угла ограничительного прямоугольника эллипса
nXRadial1
Координата x точки по радиальному определению отправной точки хорды
nYRadial1
Координата y точки по радиальному определению отправной точки хорды
nXRadial2
Координата x точки по радиальному определению конечной точки хорды
nYRadial2
Координата y точки по радиальному определению конечной точки хорды
Пример
' Рисуем хорду на окне Form1. Эллипс ограничен прямоугольником
' с координатами (10,20)-(210,120)
Dim retval As Long  ' возвращаемое значение
retval = Chord(Form1.hDC, 10, 20, 210, 120, 210, 70, 110, 20)
Схожие функции
Ellipse, Pie
Категория
Фигуры


ClipCursor

Функция ClipCursor

Declare Function ClipCursor Lib "user32" (lpRect As RECT) As Long

Платформа

  • Windows 95/98/ME: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

ClipCursor ограничивает область действия курсора мыши в прямоугольной области экрана. Если пользователь попробует переместить курсор за пределы этой области ограничения или вызвать функцию SetCursorPos, то курсор немедленно возвратится в область. Этот эффект ограничения будет действовать в любой программе, на которую Вы переключаетесь и останется, даже если программа, которая ограничила курсор, закрывается! Единственный способ "выпустить" курсор состоит в том, чтобы "ограничить" область полным экраном (см. пример). Это не очень хорошая идея ограничивать курсор, так как пользователь желает перемещать курсор куда-нибудь за пределы вашей программы

lpRect
Прямоугольник (в экранных координатах), определяющий прямоугольник ограничения
Пример
' Временно ограничим перемещения курсора областью формы Form1
Dim winrect As RECT  ' прямоугольник ограничения
Dim retval As Long  ' возвращаемое значение
retval = GetWindowRect(Form1.hWnd, winrect)  ' помещаем координаы окна в winrect
retval = ClipCursor(winrect)  ' ограничиваем перемещения курсора

' ** Разместите следующий код для "освобождения" курсора. **
Dim winrect As RECT, retval As Long
Dim deskhWnd As Long  ' дескриптор рабочего стола
deskhWnd = GetDesktopWindow()  ' получаемt дескриптор рабочего стола
retval = GetWindowRect(deskhWnd, winrect)  ' помещаем координаы окна в winrect
retval = ClipCursor(winrect)  ' "ограничиваем" курсор целым экраном
Схожие функции
GetClipCursor
Категория
Курсоры


CloseHandle

Функция CloseHandle

Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

CloseHandle закрывает дескриптор и объект, связанный с тем дескриптором. После закрытия, дескриптор, конечно, больше не имеет силу

hObject
Дескриптор объекта для закрытия
Пример
' Отобразим дату создания файла C:\autoexec.bat
Dim hFile As Long  ' дескриптор к открываемому файлу
Dim ctime As FILETIME  ' время создания файла
Dim atime As FILETIME  ' время последнего открытия файла
Dim mtime As FILETIME  ' время последнего изменения файла
Dim thetime As SYSTEMTIME ' используем для манипуляций со временем
Dim retval As Long  ' возвращаемое значение

' Сначала, откроем файл C:\autoexec.bat
hFile = CreateFile("C:\autoexec.bat", GENERIC_READ, FILE_SHARE_READ, ByVal CLng(0), OPEN_EXISTING, FILE_ATTRIBUTE_ARCHIVE, 0)
If hFile = -1 Then
  Debug.Print "Невозможно открыть файл"
  End  ' выходим из программы
End If

' Получаем время создания,последнего открытия и изменения файла
retval = GetFileTime(hFile, ctime, atime, mtime)
' Конвертируем время создания в локальное время
retval = FileTimeToLocalFileTime(ctime, ctime)
' Преобразуем формат FILETIME в формат SYSTEMTIME
retval = FileTimeToSystemTime(ctime, thetime)

' Показываем время создания файла
Debug.Print "Файл создан "; thetime.wMonth; "-"; thetime.wDay; "-"; thetime.wYear

' Закрываем файл для освобождения ресурсов
retval = CloseHandle(hFile)
Категория
Дескриптор


CommDlgExtendedError

Функция CommDlgExtendedError

Declare Function CommDlgExtendedError Lib "comdlg32" () As Long

Платформа

  • Windows 95/98/ME: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Требуется Windows CE 2.0 или выше

CommDlgExtendedError возвращает код ошибки от последней функции общего диалогового окна. Эта функция не возвращает коды ошибки для любой другой функции API; для этого существует GetLastError. Значение возвращения функции неопределено, если последний запрос функции общего диалога был успешен. В случае ошибки, значения возвращения - один из следующих флагов ошибки общего диалога:

CDERR_DIALOGFAILURE = &HFFFF
Функция не может открыть окно общего диалогового окна
CDERR_FINDRESFAILURE = &H6
Функция не сумела найти желательный ресурс
CDERR_GENERALCODES = &H0
Ошибка свойства общего диалогового окна
CDERR_INITIALIZATION = &H2
Функция потерпела неудачу в течение инициализации (вероятно недостато памяти)
CDERR_LOADRESFAILURE = &H7
Функция не сумела загрузить желательный ресурс
CDERR_LOADSTRFAILURE = &H5
Функция не сумела загрузить желательную строку
CDERR_LOCKRESFAILURE = &H8
Функция не сумела блокировать желательный ресурс
CDERR_MEMALLOCFAILURE = &H9
Функция не сумела распределить достаточную память
CDERR_MEMLOCKFAILURE = &HA
Функция не сумела блокировать память
CDERR_NOHINSTANCE = &H4
Функция не обеспечена описателем экземпляра (если требовалось)
CDERR_NOHOOK = &HB
Функция не обеспечена имеющим силу дескриптором функции обработчика прерываний (если требовалось)
CDERR_NOTEMPLATE = &H3
Функция не обеспечена шаблоном (если требовалось)
CDERR_REGISTERMSGFAIL = &HC
Функция не сумела успешно зарегистрировать сообщение окна
CDERR_STRUCTSIZE = &H1
Функция обеспечена неверным размером структуры
CFERR_CHOOSEFONTCODES = &H2000
Ошибка общего диалогового окна Выбор шрифта
CFERR_MAXLESSTHANMIN = &H2002
Функция обеспечена максимальным значением размера шрифта меньшим,чем возможный минимальный размер шрифта
CFERR_NOFONTS = &H2001
Функция не смогла найти никаких шрифтов
FNERR_BUFFERTOOSMALL = &H3003
Функция обеспечена слишком маленьким буфером имен файла
FNERR_FILENAMECODES = &H3000
Ошибка общего диалогового окна Открытие файла или Сохранение файла
FNERR_INVALIDFILENAME = &H3002
Функция обеспечена или получила неверное имя файла
FNERR_SUBCLASSFAILURE = &H3001
Функция имела недостаточную память, чтобы классифицировать список
FRERR_BUFFERLENGTHZERO = &H4001
Функция обеспечена недействительным буфером
FRERR_FINDREPLACECODES = &H4000
Ошибка общего диалогового окна Поиск или Замена
PDERR_CREATEICFAILURE = &H100A
Функция не сумела создать информационный контекст
PDERR_DEFAULTDIFFERENT = &H100C
Функция говорит, что параметры, обеспеченные описанием заданным по умолчанию принтером, и фактические параметры настройки заданного по умолчанию принтера различны
PDERR_DNDMMISMATCH = &H1009
Данные в этих двух структурах данных описывают различные принтеры (то есть,содержат) противоречивую информацию
PDERR_GETDEVMODEFAIL = &H1005
Драйвер принтера не сумел инициализировать DEVMODE структуру
PDERR_INITFAILURE = &H1006
Функция потерпела неудачу в течение инициализации
PDERR_LOADDRVFAILURE = &H1004
Функция не сумела загрузить желательный драйвер устройства
PDERR_NODEFAULTPRN = &H1008
Функция не смогла найти заданный по умолчанию принтер
PDERR_NODEVICES = &H1007
Функция не смогла найти никаких принтеров
PDERR_PARSEFAILURE = &H1002
Функция не сумела проанализировать связанные принтером строки в WIN.INI
PDERR_PRINTERCODES = &H1000
Ошибка общего диалогового окна Печать
PDERR_PRINTERNOTFOUND = &H100B
Функция не смогла найти информацию в WIN.INI относительно требуемого принтера
PDERR_RETDEFFAILURE = &H1003
Описатели к структурам данных, были отличные от нуля даже при том, что функцию спрашивали возвратить информацию относительно заданного по умолчанию принтера
PDERR_SETUPFAILURE = &H1001
Функция не сумела загрузить желательные ресурсы
Пример
' Открываем диалоговое окно Открытие файла
' и даем ему недостаточный размер буфера,
' затем показываем код ошибки
Dim filebox As OPENFILENAME  ' структура для создания общего диалогового окна
Dim fname As String  ' имя файла
Dim retval As Long  ' возвращаемое значение
Dim errcode As long  ' код ошибки

' настраиваем вид окна
filebox.lStructSize = Len(filebox)  ' размер структуры
filebox.hwndOwner = Form1.hWnd  ' дескриптор формы,вызываемой функцией.
filebox.lpstrTitle = "Пример с API"  ' текст заголовка в диалоговом окне
' определяем тип файлов
filebox.lpstrFilter = "Файлы txt" & vbNullChar & "*.txt" & vbNullChar & "Все файлы" & vbNullChar & "*.*" & vbNullChar & vbNullChar
filebox.lpstrFile = ""  ' ОШИБКА: пустой буфер!
filebox.nMaxFile = 0  ' длина файла и буфер для полного имени
filebox.lpstrFileTitle = Space(255)  ' Инициализируем буфер, который получает имя файла файла
filebox.nMaxFileTitle = 255  ' длина буфера для имени файла
' показываем только существующие,скрытые и только для чтения файлы
filebox.flags = OFN_PATHMUSTEXIST Or OFN_FILEMUSTEXIST Or OFN_HIDEREADONLY

' открываем общее диалоговое окно
retval = GetOpenFileName(filebox)
If retval = 0 Then  ' произошла ошибка или нажата кнопка Отмена
  errcode = CommDlgExtendedError()  ' получаем код ошибки для GetOpenFileName
  If errcode = FNERR_BUFFERTOOSMALL Then
    Debug.Print "Буфер слишком маленький, чтобы содержать имя файла"
  If errcode = FNERR_INVALIDFILENAME Then
    Debug.Print "Недействительное имя файла"
  End If
  End If
End If
Схожие функции: GetLastError
Категория
Общий диалог


CompareFileTime

Функция CompareFileTime

Declare Function CompareFileTime Lib "kernel32" (lpFileTime1 As FILETIME, lpFileTime2 As FILETIME) As Long

CompareFileTime сравнивает две даты, хранимые в FILETIME, определяя более раннюю дату в хронологическом порядке. Если первая дата более ранняя, чем вторая, то возвращается -1. Если даты совпадают, то функция возвращает 0. Если первая дата более поздняя по времени, чем вторая, то возвращается 1

Параметры
lpFileTime1
Первая дата для сравнения
lpFileTime2
Вторая дата для сравнения
Пример
' Сравниваем дату создания файла autoexec.bat
' с какой-нибудь датой
Dim hfile As Long  ' дескриптор файла
Dim ctime As FILETIME  ' время создания файла
Dim atime As FILETIME  ' время последнего открытия файла
Dim wtime As FILETIME  ' время последнего изменения файла
Dim anytime As SYSTEMTIME  ' установим какую-нибудь дату(8 марта 2001)
Dim anyfiletime As FILETIME  ' дата в привычном формате
Dim comptimes As Long  ' результат сравнения двух дат
Dim retval As Long  ' возвращаемое значение

' Получаем дескриптор файла
hfile = CreateFile("C:\autoexec.bat", GENERIC_READ, FILE_SHARE_READ, ByVal CLng(0), OPEN_EXISTING, FILE_ATTRIBUTE_ARCHIVE, 0)
If hfile = -1 Then
  Debug.Print "Не могу открыть указанный файл"
  End  ' выходим из программы
End If

' Получаем время создания,последнего открытия и изменения файла
retval = GetFileTime(hfile, ctime, atime, wtime)
' Установим дату 8 марта 2001 как anytime
anytime.wMonth = 3: anytime.wDay = 8: anytime.wYear = 2001
anytime.wHour = 0: anytime.wMinute = 0: anytime.wSecond = 0
' конвертируем anytime в формат FILETIME для сравнения с ctime
retval = SystemTimeToFileTime(anytime, anyfiletime)
' Сравниваем две даты
comptimes = CompareFileTime(ctime, anyfiletime)
If comptimes = -1 Then Debug.Print "Файл создан перед 8 марта 2001 года"
If comptimes = 0 Then Debug.Print "Файл создан в полночь 8 марта 2001 года"
If comptimes = 1 Then Debug.Print "Файл создан после 8 марта 2001 года"

' Закрываем файл
retval = CloseHandle(hfile)
Категория
Время


CopyFile

Функция CopyFile

Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long

CopyFile копирует файл из одного места в другой(операция подобная копированию файлов в Проводнике). В зависимости от значения bFailIfExists, функция либо перепишет файл, если он уже существует, либо возникнет ошибка

lpExistingFileName
Файл-источник; т.е. файл для копирования
lpNewFileName
Файл-назначение; т.е. новый файл, являющийся копией файла-источника
bFailIfExists
Если значение равно 0, функция перепишет файл lpNewFileName, если он существует. Если значение отлично от нуля, то произойдет ошибка
Пример
' Скопируем файл C:\Samples\temp.txt
' в C:\Russia\buffer.txt
' Не будем переписывать файл C:\Russia\buffer.txt,
' если он существует
Dim retval As Long  ' возвращаемое значение
' копируем файл
retval = CopyFile("C:\Samples\temp.txt", "C:\Russia\buffer.txt", 1)
If retval = 0 Then  ' если ошибка
  Debug.Print "Не могу скопировать файл - C:\Russia\buffer.txt уже существует
Else  ' если все нормально
  Debug.Print "Файл скопирован"
End If
Схожие функции
MoveFile
Категория
Файлы


CopyRect

Функция CopyRect

Declare Function CopyRect Lib "user32" (lpDestRect As RECT, lpSourceRect As RECT) As Long

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

Возвращаемое значение

В случае ошибки функция возвращает 0 (Win NT/2000: используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает ненулевое значение

Параметры
lpDestRect
Получаемый прямоугольник
lpSourceRect
Исходный прямоугольник
Пример
' Установим получаемый прямоугольник
' равным прямоугольнику окна
Dim source As RECT ' исходный прямоугольник
Dim target As RECT  ' итоговый прямоугольник
Dim retval As Long  ' возвращаемое значение
' Получаем прямоугольник окна Form1 как исходный
retval = GetWindowRect(Form1.hWnd, source)
' Копируем исходный прямоугольник в новый
retval = CopyRect(target, source)
Схожие функции
EqualRect
Категория
Прямоугольники


CreateDirectory

Функция CreateDirectory

Declare Function CreateDirectory Lib "kernel32" Alias "CreateDirectoryA" (ByVal lpPathName As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long

CreateDirectory создает новую папку на диске. Также вы можете установить аттрибуты безопасности для вновь созданной папки, если это позволяет операционная система

lpPathName
Имя для новой папки
lpSecurityAttributes
Windows NT, 2000: Аттрибуты безопасности для новой папки. Windows 95, 98, CE: Этот параметр игнорируется
Пример
' Создаем новую папку C:\RussianProject и
' устанавливаем аттрибуты по умолчанию
Dim Security As SECURITY_ATTRIBUTES  ' структура аттрибутов безопасности
Dim retval As Long  ' возвращаемое значение

' Создаем папку.
retval = CreateDirectory("C:\RussianProject", Security)
'Если CreateDirectory вернул 0, значит ошибка
 If retval = 0 Then
  MsgBox "Ошибка : Не могу создать папку !", vbCritical + vbOKOnly
 End If
Схожие функции
CreateDirectoryEx, RemoveDirectory
Категория
Файлы


CreateDirectoryEx

Функция CreateDirectoryEx

Declare Function CreateDirectoryEx Lib "kernel32" Alias "CreateDirectoryExA" (ByVal lpTemplateDirectory As String, ByVal lpNewDirectory As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long

Платформа

  • Windows 95/98/ME: Поддерживается
  • Windows NT: Требуется Windows NT 3.5 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

CreateDirectoryEx создает новую папку на диске. Также, вы можете установить аттрибуты безопасности для новой папки, если ваша операционная система поддерживает это свойство

lpTemplateDirectory
Имя папки, которая будет использоваться как шаблон для аттрибутов при создании новой папки.
lpNewDirectory
Имя для новой создаваемой папки
lpSecurityAttributes
Windows NT, 2000: Аттрибуты безопасности для новой папки Windows 95, 98, CE: Этот параметр игнорируется
Пример
' Создаем новую папку C:\RussianProject\Papka и
' устанавливаем аттрибуты безопасности по умолчанию
' Папка будет иметь аттрибуты папки
' C:\Recycled ( "Корзина") ,
' которая имеет аттрибуты Скрытый и Системный
Dim secattr As SECURITY_ATTRIBUTES  ' структура аттрибутов безопасности
Dim retval As Long  ' возвращаемое значение
' устанавливаем желаемы аттрибуты безопасности
secattr.nLength = Len(secattr)  ' размер структуры
secattr.lpSecurityDescriptor = 0  ' уровень безопасности по умолчанию
secattr.bInheritHandle = 1  ' стандартная установка
' Создаем папку, используя папку C:\Recycled как шаблон
retval = CreateDiectoryEx("C:\Recycled", "C:\RussianProject\Papka", secattr)
Схожие функции
CreateDirectory, RemoveDirectory
Категория
Файлы


CreateEllipticRgn

Функция CreateEllipticRgn

Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

Платформа

  • Windows 95/98/ME: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

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

Возвращаемое значение

Функция возвращает дескриптор созданной области в успешном случае или 0 в случае ошибки(Win NT/2000: используйте GetLastError для получения кода ошибки)

Параметры
X1
Координата x верхнего левого угла ограничительного прямоугольника
Y1
Координата y верхнего левого угла ограничительного прямоугольника
X2
Координата x нижнего правого угла ограничительного прямоугольника
Y2
Координата y нижнего правого угла ограничительного прямоугольника
Пример
' Инвертируем пикселы в пределах  области эллипса на окне Form1.
' Область имеет ограничительный прямоугольник (20,30) - (150,110)
Dim hrgn As Long  ' дескриптор области
Dim retval As Long  ' возвращаемое значение
' Создаем  область-эллипс, чтобы инвертировать и получить дескриптор
hrgn = CreateEllipticRgn(20,30,150,110)  ' ограничительный прямоугольник (20,30)-(150,110)
' инвертируем эту область в окне Form1
retval = InvertRgn(Form1.hDC, hrgn)
' удаляем область для освобождения ресурсов системы
retval = DeleteObject(hrgn)
Схожие функции
CreateEllipticRgnIndirect
Категория
Регионы


CreateEllipticRgnIndirect

Функция CreateEllipticRgnIndirect

Declare Function CreateEllipticRgnIndirect Lib "gdi32" (lpRect As RECT) As Long

Платформа

  • Windows 95/98/ME: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

CreateEllipticRgn создает область в виде эллипса. Эллипс определяется ограничительным прямоугольником. Ограничительный прямоугольник - самый маленький возможный прямоугольник, который может соответствовать эллипсу

Возвращаемое значение

Функция возвращает дескриптор созданной области в успешном случае или 0 в случае ошибки

Параметры
lpRect
Ограничительный прямоугольник для эллипса
Пример
' Инвертируем пикселы в пределах  области эллипса на окне Form1.
' Область имеет ограничительный прямоугольник (20,30) - (150,110)
Dim hrgn As Long   ' дескриптор области
Dim bounding As RECT ' ограничительный прямоугольник
Dim retval As Long    ' возвращаемое значение
' загрузим координаты ограничительного прямоугольника в структуру
retval = SetRect(bounding, 20, 30, 150, 110)
' создаем эллипс от этого ограничительного прямоугольника
hrgn = CreateEllipticRgnIndirect(bounding)
'  инвертируем эту область в окне Form1
retval = InvertRgn(Form1.hDC, hrgn)
' удаляем область для освобождения ресурсов системы
retval = DeleteObject(hrgn)
Схожие функции
CreateEllipticRgn
Категория
Регионы


CreateFile

Функция CreateFile

Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long

CreateFile создает или открывает объекты - консоль, папки(только открытие), дисковые устройства(толькоWindows NT\2000), файлы и др. Чаще всего функция используется для работы с файлами. Открытый файл может использоваться для чтения или записей данных. После завершения работы с файлом необходимо закрыть файл, используя его дескриптор, функцией CloseHandle

Примечание Используйте ссылку по значению ByVal при использовании параметра lpSecurityAttributes равным 0

Возвращаемое значение

В случае ошибки функция возвращает -1 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает дескриптор открытого или созданного файла или другого объекта

Параметры
lpFileName
Имя файла или другого объекта
dwDesiredAccess
Комбинация следующих флажков,определяющих права на запись или чтение данных:
GENERIC_READ= &H80000000
Разрешается чтение из файла(объекта)
GENERIC_WRITE = &H40000000
Разрешается запись в файл(объект)
dwShareMode
Комбинация следующих флажков, определяющих права по совместному доступу к файлу(объекту) другими программами:
FILE_SHARE_READ = &H1
Разрешено чтение записей файла другими программами
FILE_SHARE_WRITE = &H2
Разрешена запись в файл другими программами
lpSecurityAppributes
Windows NT, 2000: Структура SECURITY_ATTRIBUTES определяет уровень и тип защиты объекта. Windows 95\98\CE: Параметр равен 0
dwCreationDisposition
Комбинация следующих флажков, определяющих действия,необходимые когда файл существует и когда файл не существует:
CREATE_NEW=1
Создается новый файл(объект). Если указанный файл существует, функция завершается с ошибкой
CREATE_ALWAYS=2
Создается новый файл(объект). Если указанный файл существует, то он переписывается
OPEN_EXISTING=3
Открывается существующий файл. Если указанный файл существует, функция завершается с ошибкой
OPEN_ALWAYS=4
Если указанный файл существует, функция открывает его. Если указанный файл не существует, то он создается
TRUNCATE_EXISTING=5
Открывается существующий файл(объект) с уничтожением его содержимого. Если указанный файл не существует,то функция завершает работу с ошибкой
dwFlagsAndAttributes
Комбинация следующих флажков, определяющих атрибуты и флаги
FILE_ATTRIBUTE_ARCHIVE = &H20
Архивный файл
FILE_ATTRIBUTE_HIDDEN = &H2
Скрытый файл
FILE_ATTRIBUTE_NORMAL = &H80
У файла нет атрибутов(не может комбинироваться с другими атрибутами)
FILE_ATTRIBUTE_READONLY = &H1
Файл только для чтения
FILE_ATTRIBUTE_SYSTEM = &H4
Системный файл,используемый операционной системой
FILE_FLAG_DELETE_ON_CLOSE = &H4000000
Файл удаляется после закрытия.Используется для временных файлов
FILE_FLAG_NO_BUFFERING = &H20000000
Система не буферизирует файловый ввод-вывод
FILE_FLAG_OVERLAPPED = &H40000000
Устанавливается асихронный доступ к файлу(Windows 95, 98, CE: Не поддерживается применительно к файлу). Функция должна использовать структуру OVERLAPPED
FILE_FLAG_POSIX_SEMANTICS = &H1000000
Возможно использование файлов,имена которых различаются регистром букв
FILE_FLAG_RANDOM_ACCESS = &H10000000
Режим кэширования файла оптимизируется для произвольного доступа к файлу
FILE_FLAG_SEQUENTIAL_SCAN = &H8000000
Режим кэширования файла оптимизируется для последовательного доступа к файлу
FILE_FLAG_WRITE_THROUGH = &H80000000
Отключение промежуточного кэширования для снижения вероятности потери данных
hTemplateFile
Дескриптор открытого файла
Пример
' Отобразим дату создания файла C:\autoexec.bat
Dim hFile As Long  ' дескриптор к открываемому файлу
Dim ctime As FILETIME  ' время создания файла
Dim atime As FILETIME  ' время последнего открытия файла
Dim mtime As FILETIME  ' время последнего изменения файла
Dim thetime As SYSTEMTIME ' используем для манипуляций со временем
Dim retval As Long  ' возвращаемое значение

' Сначала, откроем файл C:\autoexec.bat
hFile = CreateFile("C:\autoexec.bat", GENERIC_READ, FILE_SHARE_READ, ByVal CLng(0), OPEN_EXISTING, FILE_ATTRIBUTE_ARCHIVE, 0)
If hFile = -1 Then
  Debug.Print "Невозможно открыть файл"
  End  ' выходим из программы
End If

' Получаем время создания,последнего открытия и изменения файла
retval = GetFileTime(hFile, ctime, atime, mtime)
' Конвертируем время создания в локальное время
retval = FileTimeToLocalFileTime(ctime, ctime)
' Преобразуем формат FILETIME в формат SYSTEMTIME
retval = FileTimeToSystemTime(ctime, thetime)

' Показываем время создания файла
Debug.Print "Файл создан "; thetime.wMonth; "-"; thetime.wDay; "-"; thetime.wYear

' Закрываем файл для освобождения ресурсов
retval = CloseHandle(hFile)
Категория
Файлы


CreateHatchBrush

Функция CreateHatchBrush

Declare Function CreateHatchBrush Lib "gdi32" (ByVal nIndex As Long, ByVal crColor As Long) As Long

Платформа

  • Windows 95/98/ME: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

CreateHatchBrush создает объект - заштрихованную кисть. При использовании для заполнения области или формы, эта кисть производит закраску определенныя образом в единственном(отдельном) цвете, используя 8x8 ячейку. После того, как программа заканчивает использование заштрихованной кисти, следует использовать DeleteObject, чтобы удалить кисть и свободные ресурсы системы

Возвращаемое значение

Функция возвращает дескриптор созданной заштрихованной кисти в успешном случае или 0 в случае ошибки(Win NT/2000: используйте GetLastError для получения кода ошибки)

Параметры
nIndex
Один из следующих флажков, определяющих образец штриховки для создания кисти
HS_BDIAGONAL = 3
Диагональные линии от левой нижней части до правой верхней
HS_CROSS = 4
Перекрестный образец горизонтальных и вертикальных линий
HS_DIAGCROSS = 5
Перекрестный образец перпендикулярных диагональных линий
HS_FDIAGONAL = 2
Диагональные линии от левой верхней к правой нижней части
HS_HORIZONTAL = 0
Горизонтальные линии
HS_VERTICAL = 1
Вертикальные линии
crColor
Значение цвета RGB, передаваемой кисти
Пример
' Рисуем прямоугольник с углами (10,20) и (175,100)
' на окне Form1. Используем желтую кисть с диагональным перекрестным образцом, чтобы заполнить прямоугольник
Dim hbrush As Long  ' дескриптор заштрихованной желтой кисти
Dim holdbrush As Long  ' дескриптор  заданной по умолчанию кисти  на Form1
Dim retval As Long  ' возвращаемое значение
hbrush = CreateHatchBrush(HS_DIAGCROSS, RGB(255, 255, 0))  ' создадим заштрихованную желтую кисть
' сохраним заданную по умолчанию кисть на Form1, чтобы могли восстановить ее после завершении программы
holdbrush = SelectObject(Form1.hDC, hbrush)  ' выбираем кисть
' Рисуем прямоугольник, заполняя его заштрихованной желтой кистью
retval = Rectangle(Form1.hDC, 10, 20, 175, 100)
' восстанавливаем кисть по умолчанию и удаляем созданную нами кисть
retval = SelectObject(Form1.hDC, holdbrush)  ' старая кисть
retval = DeleteObject(hbrush)  ' удаляем желтую кисть
Схожие функции
CreateSolidBrush
Категория
Кисти


CreatePen

Функция CreatePen

Declare Function CreatePen Lib "gdi32" (ByVal fnPenStyle As Long, ByVal nWidth As Long, ByVal crColor As Long) As Long

Платформа

  • Windows 95/98/ME: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Требуется Windows CE 2.0 или выше

CreatePen служит для создания объекта перо. Форма пера, созданного функцией, всегда имеет форму квадрата с размерами сторон, равными nWidth. После завершения программы с использованием пера, вы должны удалить его функцией DeleteObject

Возвращаемое значение

В случае ошибки функция возвращает 0(Windows NT, 2000: используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает дескриптор к созданному перу

Параметры
fnPenStyle
Флаги для определения стиля создаваемого пера
PS_SOLID = 0
Сплошное перо
PS_DASH = 1
Перо подчеркнуто штриховой линией. nWidth должен быть меньше или равняться одному
PS_DOT = 2
Перо пунктирно. nWidth должен быть меньше или равняться одному
PS_DASHDOT = 3
Перо имеет чередующиеся черточки и точки nWidth должен быть меньше или равняться одному
PS_DASHDOTDOT = 4
Перо имеет чередующиеся черточки, сопровождаемые двумя точками. nWidth должен быть меньше или равняться одному
PS_NULL = 5
Перо невидимо
PS_INSIDEFRAME = 6
Перо сплошное. Всякий раз, когда функция рисует фигуру внутри ограничительного прямоугольника, размеры фигуры сокращены так, чтобы рисунок, включая ширину пера, вписывался полностью в пределах ограничительного прямоугольника
nWidth
Ширина пера. Если равна 0, перо - всегда точно один пиксел
crColor
Значение RGB цвета
Пример
' Рисуем эллипс на окне Form1,
' используя квадратное зеленое штриховое перо в один пиксел
Dim hPen As Long  ' дескриптор для пера
Dim hOldPen As Long  ' дескриптор к предыдущему перу формы Form1
Dim retval As Long  ' возвращаемое значение
' создаем квадратное зеленое штриховое перо с шириной в ноль  (всегда один пиксел).
hPen = CreatePen(PS_DASH, 0, RGB(0, 255, 0))
' выбираем перо, используемое Form1
hOldPen = SelectObject(Form1.hDC, hPen)
' рисуем эллипс с ограничительным прямоугольником (100,150)-(350,300).
retval = Ellipse(Form1.hDC, 100, 150, 350, 300)
' выбираем старое перо, используемое Form1
retval = SelectObject(Form1.hDC, hOldPen)
' удаляем созданное нами перо для освобождения ресурсов
retval = DeleteObject(hPen)
Схожие функции
CreatePenIndirect
Категория
Перо


CreatePenIndirect

Функция CreatePenIndirect

Declare Function CreatePenIndirect Lib "gdi32" (lpLogPen As LOGPEN) As Long

CreatePenIndirect создает объект перо. Созданное перо, описанное как , логическое перо, через структуру передается функции. После того, как ваша программа завершила работу, используя перо, оно должно быть удалено через функцию DeleteObject

Возвращаемое значение

В случае ошибки функция возвращает 0 (Windows NT, 2000: используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает дескриптор созданного пера

Параметры
lpLogPen
Описание аттрибутов, передаваемых к создаваемому перу
Пример
' Рисуем эллипс на окне Form1, используя квадратное,
' заштрихованое линией, с одним пикселом
' по ширине зеленое перо
Dim hPen As Long  ' дескриптор к создаваемому перу
Dim hOldPen As Long  ' дескриптор к предыдущему перу Form1
Dim lpinfo As LOGPEN  ' описание пера
Dim retval As Long  ' возвращаемое значение
' Создаем квадратное, подчеркнутое штриховой линией зеленое перо с шириной 0 (всегда один пиксел)
lpinfo.lopnStyle = PS_DASH  ' штрихи
lpinfo.lopnWidth.x = 0  ' минимальная ширина
lpinfo.lopnWidth.y = 0  ' игнорируем
lpinfo.lopnColor = RGB(0, 255, 0)  ' зеленый
hPen = CreatePenIndirect(lpinfo)
' Выбираем перо,используемое Form1.
hOldPen = SelectObject(Form1.hDC, hPen)
' Рисуем эллипс
retval = Ellipse(Form1.hDC, 100, 150, 350, 300)
' Выбираем старое перо, используемое Form1.
retval = SelectObject(Form1.hDC, hOldPen)
' Удаляем перо для освобождения ресурсов
retval = DeleteObject(hPen)
Схожие функции
CreatePen
Категория
Перо


CreatePolygonRgn

Функция CreatePolygonRgn

Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long

Платформа

  • Windows 95/98/ME: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

CreatePolygonRgn создает многоугольник - регион, определяемый массивом точек

Возвращаемое значение

В успешном случае функция возвращает дескриптор к созданному региону или 0 в случае ошибки(Win NT/2000: используйте GetLastError для получения кода ошибки)

Параметры
lpPoint
Массив точек, определяющих вершины многоугольника
nCount
Число элементов в массиве lpPoint
nPolyFillMode
Один из следующих флагов, определяющих режим заполнения многоугольника
ALTERNATE = 1
Выбор между заполнением и незаполнением непрерывных секций, чьи границы определены краями многоугольника, пересекающегося через внутреннюю область многоугольника
WINDING = 2
Любая секция внутри многоугольника заполнена, независимо от любых внутренних многоугольных границ и граней
Пример:
' Инвертируем пикселы в пределах треугольной области на окне Form1. Треугольная
' область имеет вершины (150,150), (250, 200), и (100, 200). Обратите внимание, как точки загружены
' в массив вершин.
Dim vertex(0 To 2) As POINTAPI  ' массив вершин треугольника
Dim hrgn As Long  ' дескриптор к треугольной области
Dim retval As Long  ' возвращаемое значение

' загружаем вершины треугольной области в массив.
vertex(0).x = 150: vertex(0).y = 150  ' 1 точка: (150,150)
vertex(1).x = 250: vertex(1).y = 200  ' 2 точка: (250,200)
vertex(2).x = 100: vertex(2).y = 200  ' 3 точка: (100,200)

' создаем многоугольную область,используя массив вершин.
hrgn = CreatePolygonRgn(vertex(0), 3, ALTERNATE)
 ' инвертируем пикселы в пределах треугольной области на Form1.
retval = InvertRgn(Form1.hDC, hrgn)
' удаляем регион для высвобождения ресурсов.
retval = DeleteObject(hrgn)
Схожие функции
CreatePolyPolygonRgn
Категория
Регионы


CreatePolyPolygonRgn

Функция CreatePolyPolygonRgn

Declare Function CreatePolyPolygonRgn Lib "gdi32" (lpPoint As POINTAPI, lpPolyCounts As Long, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long

Платформа

  • Windows 95/98/ME: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

CreatePolyPolygonRgn создает область, состоящую из множества многоугольников. Вершины всех многоугольников передаются к функции в массиве lpPoint. Другой массив определяет, сколько точек в пределах того массива принадлежат каждому многоугольнику. Отдельные многоугольники никак не присоединяются, формируя область множественных несвязанных многоугольных областей. Обратите внимание, что заполняющийся режим для мультимногоугольной области(региона) должен быть определен явно

Возвращаемое значение

В успешном случае функция возвращает дескриптор к созданному региону или 0 в случае ошибки(Win NT/2000: используйте GetLastError для получения кода ошибки)

Параметры
lpPoint
Массив, содержащий вершину каждого многоугольника, составляющего новую область. Определите каждую точку для каждого многоугольника только однажды. См. пример для демонстрации того, как загрузить множественные многоугольники в этот массив
lpPolyCounts
Массив, определяющий, сколько вершин в массиве lpPoint,принадлежит каждому многоугольнику
nCount
Число элементов в массиве lpPolyCounts
nPolyFillMode
Точно один из следующих флажков, определяющих заполняющийся режим, используемый для каждого многоугольника в пределах области:
ALTERNATE = 1
Выбор между заполнением и не заполнением непрерывных секций, чьи границы определены краем (ями) многоугольника, пересекающегося через внутреннюю область многоугольника
WINDING = 2
Любая секция внутри многоугольника заполнена
Пример
' Инвертируем точки, находящиеся в пределах мультимногоугольной области на окне Form1
' Область составлена из треугольника и ромба
' Треугольник имеет вершину (25,25), (50,50),
' (25,50). Ромб имеет вершину (150,150), (200,200), (150,250) и (100,200)

Dim vertex(0 To 6) As POINTAPI ' содержит вершины каждого многоугольника
Dim numvertices(0 To 1) As Long  ' сколько вершин принадлежат каждому многоугольнику
Dim hrgn As Long  ' дескриптор к мультимногоугольной области
Dim retval As Long  ' возвращаемое значение

' Загрузим вершины треугольника в массив вершин
vertex(0).x = 25: vertex(0).y = 25
vertex(1).x = 50: vertex(1).y = 50
vertex(2).x = 25: vertex(2).y = 50
numvertices(0) = 3  ' три вершины для треугольника

' Загрузим вершины ромба в массив вершин
vertex(3).x = 150: vertex(3).y = 150
vertex(4).x = 200: vertex(4).y = 200
vertex(5).x = 150: vertex(5).y = 250
vertex(6).x = 100: vertex(6).y = 200
numvertices(1) = 4  ' четыре вершины для ромба

' Создаем мультимногоугольную область и получаем дескриптор
hrgn = CreatePolyPolygonRgn(vertex(0), numvertices(0), 2, ALTERNATE)
' Инвертируем пикселы в пределах этой области на Form1
retval = InvertRgn(Form1.hDC, hrgn)
' Удаляем регион для освобождения ресурсов
retval = DeleteObject(hrgn)
Схожие функции
CreatePolygonRgn
Категория
Регионы


CreateRectRgn

Функция CreateRectRgn

Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

Платформа

  • Windows 95/98/ME: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Требуется Windows CE 2.0 или выше

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

Возвращаемое значение

Функция возвращает дескриптор созданной области в успешном случае или 0 в случае ошибки(Win NT/2000: используйте GetLastError для получения кода ошибки)

Параметры
X1
Координата x левого верхнего угла прямоугольника
Y1
Координата y левого верхнего угла прямоугольника
X2
Координата x нижнего правого угла прямоугольника
Y2
Координата y нижнего правого угла прямоугольника
Пример
' Инвертируем пикселы в пределах прямоугольной области на окне Form1.
' Область имеет углы (20,30) - (150,110)
Dim hrgn As Long  ' дескриптор к прямоугольной области
Dim retval As Long  ' возвращаемое значение
' Создаем прямоугольную область и получаем дескриптор к нему
hrgn = CreateRectRgn(20, 30, 150, 110)  ' Имеет углы (20,30) - (150,110)
' Инвертируем пикселы на Form1 в пределах этой области
retval = InvertRgn(Form1.hDC, hrgn)
' Удалите область, чтобы освободить ресурсы
retval = DeleteObject(hrgn)
Схожие функции
CreateRectRgnIndirect, CreateRoundRectRgn
Категория
Регионы


CreateRectRgnIndirect

Функция CreateRectRgnIndirect

Declare Function CreateRectRgnIndirect Lib "gdi32" (lpRect As RECT) As Long

Платформа

  • Windows 95/98/ME: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Поддерживается

CreateRectRgnIndirect создает область прямоугольной формы и обеспечивает дескриптор к нему. Обратите внимание, что основание и правая сторона прямоугольника не являются частью области

Возвращаемое значение

Функция возвращает дескриптор созданной области в успешном случае или 0 в случае ошибки(Win NT/2000: используйте GetLastError для получения кода ошибки)

Параметры
lpRect
Прямоугольник, который определяет прямоугольную область
Пример
' Инвертируем пикселы в пределах прямоугольной области на окне Form1.
' Область имеет углы (20,30) - (150,110)
Dim therect As RECT ' прямоугольник, определяющий прямоугольную область
Dim hrgn As Long  ' дескриптор
Dim retval As Long  ' возвращаемое значение
' Создаем прямоугольник
retval = SetRect(therect, 20, 30, 150, 110)
' Создаем прямоугольную область, основанную на этом прямоугольнике
hrgn = CreateRectRgnIndirect(therect)
' Инвертируем пикселы в пределах этой области на Form1
retval = InvertRgn(Form1.hDC, hrgn)
' удаляем регион для высвобождения ресурсов
retval = DeleteObject(hrgn)
Схожие функции
CreateRectRgn, CreateRoundRectRgn
Категория
Регионы


CreateRoundRectRgn

Функция CreateRoundRectRgn

Declare Function CreateRoundRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long

Платформа

  • Windows 95/98/ME: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

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

Возвращаемое значение

Функция возвращает дескриптор недавно созданного региона в успешном случае или 0 в случае ошибки(Win NT/2000: используйте GetLastError для получения кода ошибки)

Параметры
X1
Координата x левого верхнего угла прямоугольника
Y1
Координата y левого верхнего угла прямоугольника
X2
Координата x нижнего правого угла прямоугольника
Y2
Координата y нижнего правого угла прямоугольника
X3
Ширина части каждого угла к кругу
Y3
Высота части каждого угла к кругу
Пример
' Инвертируем пикселы в пределах округленной прямоугольной области на окне Form1
' Эквивалент неокругленного прямоугольника имеет углы (20,30) - (150,110). Округленные углы имеют
' ширину 15 и высоту 10
Dim hrgn As Long  ' дескриптор к созданной округленной прямоугольной области
Dim retval As Long  ' возвращаемое значение
' Создаем округленную прямоугольную область, и получаем дескриптор
hrgn = CreateRoundRectRgn(20, 30, 150, 110, 15, 10)
' Инвертируем пикселы в Form1 в пределах этой области(региона).
retval = InvertRgn(Form1.hDC, hrgn)
' уничтожаем регион для высвобождения ресурсов
retval = DeleteObject(hrgn)
Схожие функции
CreateRectRgn, CreateRectRgnIndirect
Категория
Регионы


CreateSolidBrush

Функция CreateSolidBrush

Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long

Платформа

  • Windows 95/98/ME: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Поддерживается

CreateSolidBrush создает объект Кисть, используемый для заливки областей фигур. После окончания использования этим объектом воспользуйтесь функцией DeleteObject для удаления объекта Кисть и освобождения ресурсов компьютера

Возвращаемое значение

Функция возвращает дескриптор к новому объекту Кисть. В случае ошибки возвращается 0(Win NT/2000: используйте GetLastError для получения кода ошибки)

Параметр
crColor
Значение RGB цвета для кисти
Пример
' Рисуем прямоугольник с координатами (10,20) и (175,100)
' на форме Form1. Используем сплошную желтую кисть для заполнения фигуры
Dim hbrush As Long  ' дескриптор для новой желтой кисти
Dim holdbrush As Long  ' дескриптор к кисти формы Form1,установленной по умолчанию
Dim retval As Long  ' возвращаемое значение

hbrush = CreateSolidBrush(RGB(255, 255, 0))  ' создаем сплошную желтую кисть
' Сохраняем прежнюю кисть формы Form1 для восстановлении ее после завершении программы
holdbrush = SelectObject(Form1.hDC, hbrush)  ' выбираем кисть
' Русуем прямоугольник, залитый желтым цветом
retval = Rectangle(Form1.hDC, 10, 20, 175, 100)
' Восстанавливаем старую кисть
retval = SelectObject(Form1.hDC, holdbrush)
retval = DeleteObject(hbrush)  ' Уничтожаем желтую кисть
Схожие функции
CreateHatchBrush
Категория
Кисти


DeleteFile

Функция DeleteFile

Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long

Платформа

  • Windows 95/98/ME: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Поддерживается

DeleteFile удаляет файлы(не пересылая их в корзину). Пользуйтесь ею осторожно, так как при этом не появляется сообщение с потверждением удаления файла

lpFileName
Имя файла для удаления
Пример
' Удаляем файл C:\Samples\anyfile.txt
Dim retval As Long  ' возвращаемое значение
retval = DeleteFile("C:\Samples\anyfile.txt")
If retval = 1 Then Debug.Print "Файл успешно удален"
Категория
Файлы


DeleteObject

Функция DeleteObject

Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long

DeleteObject удаляет объект, после завершения использования этого объекта программой. Объекты включают в себя картинки, кисти, шрифты, палитру, перо и регионы. Удаляя объект, вы освобождаете системные ресуры компьютера

Возвращаемое значение

В успешном случае функция возвращает 1, в случае ошибки возвращается 0

Параметры
hObject
Дескриптор объекта
Пример
' Рисуем прямоугольник с координатами (10,20) и (175,100)
' на форме Form1. Используем сплошную желтую кисть для заполнения фигуры
Dim hbrush As Long  ' дескриптор для новой желтой кисти
Dim holdbrush As Long  ' дескриптор к кисти формы Form1, установленной по умолчанию
Dim retval As Long  ' возвращаемое значение

hbrush = CreateSolidBrush(RGB(255, 255, 0))  ' создаем сплошную желтую кисть
' Сохраняем прежнюю кисть формы Form1 для восстановлении ее после завершении программы
holdbrush = SelectObject(Form1.hDC, hbrush)  ' выбираем кисть
' Рисуем прямоугольник,залитый желтым цветом
retval = Rectangle(Form1.hDC, 10, 20, 175, 100)
' Восстанавливаем старую кисть
retval = SelectObject(Form1.hDC, holdbrush)
retval = DeleteObject(hbrush)  ' Уничтожаем желтую кисть
Категория
Устройства


DestroyIcon

Функция DestroyIcon

Declare Function DestroyIcon Lib "user32" (ByVal hIcon As Long) As Long

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

hIcon
Дескриптор значка
Пример
' Отобразим первый значок (индекс 0), хранимый в файле
' C:\Windows\notepad.exe на окне Form1. Значок должен быть уничтожен
' при завершении работы программы
Dim hIcon As Long  ' Дескриптор к функции, полученной от исполняемого файла
Dim retval As Long  ' возвращаемое значение

' Извлекаем первый значок из файла
hIcon = ExtractIcon(App.hInstance, "C:\Windows\notepad.exe", 0)

If hIcon = 0 Then
  Debug.Print "Неудача при извлечении значка - прерываем выполнение"
  End
Else
   ' Рисуем значок в координатах (100, 75) на Form1
  retval = DrawIcon(Form1.hDC, 100, 75, hIcon)
  ' Хотя изображение значка все еще видимо, сам значок не используется.
  ' Поэтому мы уничтожаем его, чтобы освободить ресурсы
  retval = DestroyIcon(hIcon)
End If
Категория
Значки


DestroyWindow

Функция DestroyWindow

Declare Function DestroyWindow Lib "user32.dll" (ByVal hWnd As Long) As Long

DestroyWindow уничтожает окно, освобождая отведенную память. Меню, таймеры и дочерние окна уничтожаются автоматически вместе с ним

hWnd
Дескриптор уничтожаемого окна
Пример
' Заменяем кнопку Пуск на свою
' при запуске проекта и уничтожаем
' новую кнопку при выходе
Dim tWnd As Long, bWnd As Long, ncWnd As Long
Private Sub Form_Load()
    Dim R As RECT
' получаем дескриптор панели задач
    tWnd = FindWindow("Shell_TrayWnd", vbNullString)
' получаем дескриптор кнопки Пуск
    bWnd = FindWindowEx(tWnd, ByVal 0&, "BUTTON", vbNullString)
' получаем координаты кнопки
    GetWindowRect bWnd, R
' создаем новую кнопку
    ncWnd = CreateWindowEx(ByVal 0&, "BUTTON", "Basic", WS_CHILD, 0, 0, R.Right - R.Left, R.Bottom - R.Top, tWnd, ByVal 0&, App.hInstance, ByVal 0&)
    ShowWindow ncWnd, SW_NORMAL
' прячем кнопку Пуск
    ShowWindow bWnd, SW_HIDE
End Sub
Private Sub Form_Unload(Cancel As Integer)
' показываем кнопку Пуск
    ShowWindow bWnd, SW_NORMAL
' уничтожаем нашу кнопку
    DestroyWindow ncWnd
End Sub
Схожие функции
CreateWindowEx
Категория
Окна


DrawIcon

Функция DrawIcon

Declare Function DrawIcon Lib "user32" (ByVal hDC As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long

DrawIcon показывает значок на устройстве. Местоположение значка определяется парой координат, передаваемой функцией и определяющей координаты верхнего левого угла значка

hDC
Дескриптор контекста устройства для показа значка
x
Координата x точки, чтобы позиционировать верхний левый угол значка
y
Координата y точки, чтобы позиционировать верхний левый угол значка
hIcon
Дескриптор значка
Пример
 ' Рисуем текущий курсор на форме
DrawIcon Me.hdc, 0, 0, GetCursor
Схожие функции
DrawIconEx
Категория
Значки


Ellipse

Функция Ellipse

Declare Function Ellipse Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

Платформа Win 95/98, Win NT

Ellipse рисует эллипс на устройстве. Две координатных пары передаваемых функции не являются непосредственно частью эллипса, но определяют его прямоугольник ограничения. Прямоугольник ограничения - самый маленький возможный прямоугольник, содержащий эллипс. Эллипс рисуется текущим цветом устройства. Функция возвращает 0 в случае ошибки или 1 в успешном случае

Параметры
hdc
Контекст устройства
X1
Координата x верхнего левого угла прямоугольника ограничения
Y1
Координата y верхнего левого угла прямоугольника ограничения
X2
Координата x нижнего правого угла прямоугольника ограничения
Y2
Координата y нижнего правого угла прямоугольника ограничения
Пример
' Рисуем красный эллипс
' с прямоугольником ограничения (25,30)-(100,75)
' на PictureBox1
Dim retval As Long  ' возвращаемое значение
' Устанавливаем красный цвет
PictureBox1.ForeColor = RGB(255, 0, 0)
retval = Ellipse(PictureBox1.hdc, 25, 30, 100, 75)
Схожие функции AngleArc, Arc, ArcTo, Chord, Pie
Категория Фигуры


EnableWindow

Функция EnableWindow

Declare Function EnableWindow Lib "user32" (ByVal hwnd As Long, ByVal fEnable As Long) As Long

Платформа: Win 95/98, Win NT

EnableWindow допускает или отключает окно. Если окно заблокировано, оно не может получить фокус и игнорирует любой предпринятый ввод. Некоторые окна, типа кнопок и других средств управления, будут недоступными, когда заблокированы. Функция возвращает 0, если окно доступно или ненулевое значение, если окно заблокировано

Параметры
hwnd
Дескриптор окна
fEnable
Если 0, окно будет заблокировано. Если ненулевое, окно будет доступно
Пример
' Изменим состояние окна Command1. Если окно
' заблокировано - делаем доступным; если недоступно - отключим
Dim wasenabled As Long  ' состояние окна Command1(доступно или нет)
Dim retval As Long  ' возвращаемое значение

' узнаем состояние окна Command1(доступно или нет)
wasenabled = IsWindowEnabled(Command1.hWnd)
If wasenabled = 0 Then  ' если не доступно, делаем доступным
  retval = EnableWindow(Command1.hWnd, 1)
Else  ' если доступно-блокируем
  retval = EnableWindow(Command1.hWnd, 0)
End If

Схожие функции IsWindowEnabled
Категория Окна


EnumDisplaySettings

Функция EnumDisplaySettings

Declare Function EnumDisplaySettings Lib "user32.dll" Alias "EnumDisplaySettingsA" (ByVal lpszDeviceName As String, ByVal iModeNum As Long, lpDevMode As DEVMODE) As Long

Платформа

  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.51 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

EnumDisplaySettings получает текущие параметры настройки экрана(Разрешение экрана, разрядность цвета, частоту развертки и т.д.)

Возвращаемое значение

В случае ошибки функция возвращает 0(Windows NT/2000:используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает ненулевое значение

Параметры
lpszDeviceName
Windows 95\98: Должна быть нулевая строка
Windows NT, 2000: Если установлена нулевая строка, используются текущие настройки экрана. В ином случае, имя устройства должно иметь вид "\\.\DisplayX", где X - 1, 2 или 3
iModeNum
Тип получаемой информации о графическом режиме. Также можно использовать следующие флаги
ENUM_CURRENT_SETTINGS=-1
Получает информацию о текущих настройках экрана
ENUM_REGISTRY_SETTINGS=-2
Получает информацию о настройках экрана, хранящихся в реестре
lpDevMode
Получает информацию о графическом режиме. Используются только dmBitsPerPixel, dmPelsWidth, dmPelsHeight, dmDisplayFlags, dmDisplayFrequency. Перед вызовом функции установите значение dmSize
Пример
' Получаем информацию о текущих настройках экрана.
' Установите на форме кнопку Command1
Private Sub Command1_Click()
Dim dm As DEVMODE
Dim retval As Long  ' возвращаемое значение
' Инициализируем структуру
  dm.dmSize = Len(dm)
' Получаем текущие настройки экрана
 retval = EnumDisplaySettings(vbNullString, ENUM_CURRENT_SETTINGS, dm)
' Выводим информацию на форму
Print "- Цветовая палитра: "; dm.dmBitsPerPixel
Print "- Ширина (в пикселах): "; dm.dmPelsWidth
Print "- Высота (в пикселах):"; dm.dmPelsHeight
End Sub
Схожие функции
ChangeDisplaySettings
Категория Устройства


EnumWindows

Функция EnumWindows

Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Boolean

EnumWindows перечисляет все окна верхнего уровня. Игнорирует дочерние окна (Обратите внимание, что перечисляются все окна, в том числе невидимые для пользователя)

lpEnumFunc
Указатель на функцию обратного вызова EnumWindowsProc
lParam
Дополнительное значение, определяемое приложением
Пример:
' Отображаем заголовки всех окон.
' Если окно не имеет заголовка, оно отображаться не будет

' Поместите этот код в модуль. Это функция с обратным вызовом
' Эта функция показывает заголовок окна, используя его описатель
Public Function EnumWindowsProc(ByVal hwnd As Long, ByVal lParam As Long) As Boolean
  Dim sSave As String ' текст в буфере
  Dim retval As Long  ' возвращаемое значение
retval = GetWindowTextLength(hwnd) ' определяем длину заголовка окна
sSave = Space(retval)
 GetWindowText hwnd, sSave, retval + 1
Form1.Print Str$(hwnd) + " " + sSave
' продолжаем перечисление окон
    EnumWindowsProc = True
 End Function

' Поместите код в любое место, где будете перечислять окна
    Me.AutoRedraw = True
    ' вызываем функцию Enumwindows
    EnumWindows AddressOf EnumWindowsProc, ByVal 0&

' Обратите внимание, что lParam
' установлен в 0, потому что мы не должны передавать любую дополнительную информацию к функции
Схожие функции
EnumChildWindows, EnumThreadWindows
Категория
Окна


EqualRect

Функция EqualRect

Declare Function EqualRect Lib "user32" (lpRect1 As RECT, lpRect2 As RECT) As Long EqualRect определяет, являются ли два прямоугольника равными. Прямоугольники считаются равными, если лево-верхние и нижне-правые углы (точки, определяющие прямоугольники) одного прямоугольника, равны таковым другого

Возвращаемое значение

Функция возвращает ненулевое значение, если оба прямоугольника равны и 0, если они неравны(Win NT/2000: используйте GetLastError для получения кода ошибки)

Параметры
lpRect1
Первый из двух прямоугольников для сравнения
lpRect2
Второй из двух прямоугольников для сравнения
Пример
' Демонстрация проверки двух прямоугольников
Dim r As RECT, s As RECT
Dim areequal As Long  ' Являются ли прямоугольники равными или нет
Dim retval As Long  ' возвращаемое значение

retval = SetRect(r, 15, 20, 100, 110)  ' r = (15,20)-(100,110)
retval = SetRect(s, 15, 20, 100, 110)  ' s = (15,20)-(100,110)
areequal = EqualRect(r, s)  ' сравниваем два прямоугольника
If areequal = 1 Then Debug.Print "Одинаковы" Else Debug.Print "Не одинаковы"
Схожие функции
CopyRect
Категория
Прямоугольники


EqualRgn

Функция EqualRgn

Declare Function EqualRgn Lib "gdi32" (ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long) As Long

Платформа: Win 95/98, Win NT

EqualRgn определяет, содержат ли две области(региона) точно такую же область. Хотя дескрипторы региона будут конечно различны, они могут обращаться) к регионам идентичного размера, формы и позиции. Функция возвращает ненулевое значение, если эти две области относятся к идентичным областям или 0, если они относятся к различным областям

Параметры
hSrcRgn1
Первый из двух регионов для сравнения
hSrcRgn2
Второй из двух регионов для сравнения
Пример
' Иллюстрируем равные и неравные регионы. Сравниваем
' три различных области, два из них одинаковы, а третья
' не равна им
Dim hRgn1 As Long, hRgn2 As Long, hRgn3 As Long  ' три области
Dim areequal As Long  ' индикатор равно-неравно
Dim retval As Long  ' возвращаемое значение

' три региона-эллипсы
hRgn1 = CreateEllipticRgn(20, 30, 120, 80)
hRgn2 = CreateEllipticRgn(20, 30, 120, 80)
hRgn3 = CreateEllipticRgn(50, 50, 200, 150)

' сравниваем первые два региона (должны быть одинаковыми)
areequal = EqualRgn(hRgn1, hRgn2)  ' индикатор должен иметь ненулевое значение
If areequal = 0 Then Debug.Print "Не равны" Else Debug.Print "Равны"
' сравниваем первый и третий эллипсы
areequal = EqualRgn(hRgn1, hRgn3)  ' индикатор должен быть нулевым
If areequal = 0 Then Debug.Print "Не равны"
 Else
  Debug.Print "Равны"
End If

' удаляем все регионы для высвобождения ресурсов
retval = DeleteObject(hRgn1)
retval = DeleteObject(hRgn2)
retval = DeleteObject(hRgn3)
Категория Регионы


ExitWindowsDialog

Процедура ExitWindowsDialog

Declare Sub ExitWindowsDialog Lib "shell32" Alias "#60" (ByVal hwndOwner As Long)

Платформа

  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается

Процедура ExitWindowsDialog официально не задокументирована. ExitWindowsDialog запрашивает пользователя с диалоговым окном "Завершение работы Windows". Это то же самое диалоговое окно, которое появляется при выборе пользователем "Завершение работы" в меню кнопки Пуск. К сожалению, не имеется никакого способа узнать, что пользователь выбрал в диалоговом окне

Возвращаемое значение

Процедура не возвращает никаких значений

Параметры
hwndOwner
Дескриптор окна, которое открывает диалоговое окно "Завершение работы Windows"
Пример
' Добавьте код в нужное место
ExitWindowsDialog Form1.hWnd 'Все!
Схожие функции
RestartDialog
Категория
Оболочка


ExitWindowsEx

Функция ExitWindowsEx

Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long

Платформа Win 95/98, Win NT

ExitWindowsEx выключает или перезагружает компьютер. Функция возвращает 0 в случае ошибки и 1 в успешном случае

Параметры
uFlags
Один или несколько флагов, определяющих способ выключения или перезагрузки компьютера
EWX_FORCE = 4
Закрывает все программы без приглашения сохранить файлы
EWX_LOGOFF = 0
Отключает от сети. Аналог - войти в систему под другим именем. (Завершение сеанса [name])
EWX_POWEROFF = 8
Завершает работу системы и, если есть возможность, выключает компьютер
EWX_REBOOT = 2
Перезагружает компьютер
EWX_SHUTDOWN = 1
Завершает работу и выключает питание, записывает все файловые буферы на диск, останавливает все работающие системные процессы
dwReserved
Зарезервированный параметр для будущих версий Windows. Всегда установлен в 0
Пример
' Перезагружаем компьютер,
' закрывая все открытые программы
Dim retval As Long  ' возвращаемое значение

retval = ExitWindowsEx(EWX_REBOOT Or EWX_FORCE, 0)
If retval = 0 Then
 Debug.Print "Не удается перезагрузить компьютер"
End If
Категория
Разное


ExtFloodFill

Функция ExtFloodFill

Declare Function ExtFloodFill Lib "gdi32" (ByVal hdc As Long, ByVal nXStart As Long, ByVal nYStart As Long, ByVal crColor As Long, ByVal fuFillType As Long) As Long

Платформа

  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

ExtFloodFill позволяет залить сплошную область устройства, начинающуюся в точке с координатами(x,y) цветом, определенном параметром crColor и используя выбранную кисть

В случае ошибки функция возвращает 0 (Windows NT, 2000: используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает ненулевое значение

Параметры
hdc
Дескриптор контекста устройства,на котором будет происходить заливка
nXStart
Координата x точки начала заливки
nYStart
Координата y точки начала заливки
crColor
Значение RGB, определяющее цвет заливки. Это свойство также зависит от флага fuFillType
fuFillType
Флаги, определяющие тип заливки
FLOODFILLBORDER = 0
Заливка области цветом crColor. Точка(x,y) должна находиться в пределах закрашиваемой области. Заливка охватит поверхность любого цвета в пределах области, которые не имеют цвета crColor
FLOODFILLSURFACE = 1
Заливка от начальной точки во всех направлениях до достижении со цветом crColor. Граница заливки составлена из любого цвета, который не идентичен crColor
Пример
' Рисуем сплошной зеленый эллипс на форме Form1 и заливаем
' область  диагонально заштрихованной синей кистью
Dim hPen As Long, hBrush As Long  ' дескрипторы пера и кисти
Dim hOldPen As Long, hOldBrush As Long  ' дескрипторы к ранее выбранным объектам
Dim retval As Long  ' возвращаемое значение

' создаем сплошное зеленое перо шириной в один пиксел
hPen = CreatePen(PS_SOLID, 0, RGB(0, 255, 0))
' Выбераем его для использования в Form1, отмечая предыдущее перо.
hOldPen = SelectObject(Form1.hDC, hPen)
' Создаем синюю  диагонально заштрихованную кисть.
hBrush = CreateHatchBrush(HS_DIAGCROSS, RGB(0, 0, 255))
' Выбераем ее для использования в Form1, отмечая предыдущую кисть.
hOldBrush = SelectObject(Form1.hDC, hBrush)

' Рисуем эллипс с ограничивающим прямоугольником (100,150)-(350, 350)
retval = Ellipse(Form1.hDC, 100, 150, 350, 350)
' Заливаем  эллипс (используем зеленую границу)
' начиная с точки (125,125) внутри эллипса
retval = ExtFloodFill(Form1.hDC, 125, 125, RGB(0, 255, 0), FLOODFILLBORDER)

' Восстанавливаем старые перо и кисть
retval = SelectObject(Form1.hDC, hOldPen)
retval = SelectObject(Form1.hDC, hOldBrush)
' Удаляем созданные кисть и перо для освобождения ресурсов
retval = DeleteObject(hPen)
retval = DeleteObject(hBrush)
Категория
Графика


ExtractIcon

Функция ExtractIcon

Declare Function ExtractIcon Lib "shell32" Alias "ExtractIconA" (ByVal hInst as Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long

Платформа

  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

ExtractIcon извлекает один значок из файлов *.exe, *.dll и *.ico. Также, функция может определить количество значков, хранимых в файле

Возвращаемое значение

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

Параметры
hInst
Дескриптор к приложению, вызывающюю функцию
lpszExeFileName
Имя файла с расширением .exe, .dll или .ico для извлечения значков
nIconIndex
Если равен -1, функция возвращает число значков, хранимых в файле. Если это положительное число, функция извлекает значок, используя значение индекса, начинающего с нуля (т.е. значение 0 идентифицирует первый значок). Windows 95\98, NT 4.0 или выше, 2000: Если это - отрицательное целое число и не равно -1, функция первым извлекает значок, чей идентификатор ресурса равняется абсолютному значению этого параметра. (Для извлечения значка,чей идентификатор ресурса равен 1 используйте функцию ExtractIconEx)
Пример
' Отобразим первый значок (значение индекса 0), хранимый в Блокноте
' C:\Windows\notepad.exe на окне Form1. Значок должен ' быть уничтожен  при завершении работы программы
Dim hIcon As Long  ' Дескриптор к функции, полученный от исполняемого файла
Dim retval As Long  ' возвращаемое значение

' Извлекаем первый значок, хранимый в вышеупомянутом исполняемом файле
hIcon = ExtractIcon(App.hInstance, "C:\Windows\notepad.exe", 0)
' Только попытаемся отобразить значок, если мы успешно извлекли его
If hIcon = 0 Then
  Debug.Print "Неудача при извлечении значка - выходим из программы"
  End
Else
  ' Отобразим значок в координатах (100, 75) на окне Form1
  retval = DrawIcon(Form1.hDC, 100, 75, hIcon)
  ' Хотя изображение значка все еще видимо, сам значок не используется
' Поэтому мы уничтожаем его, чтобы освободить ресурсы
retval = DestroyIcon(hIcon)
End If
Схожие функции
ExtractIconEx
Категория
Значки


ExtractIconEx

Функция ExtractIconEx

Declare Function ExtractIconEx Lib "shell32" Alias "ExtractIconExA" (ByVal lpszFile As String, ByVal nIconIndex As Long, phiconLarge As Long, phiconSmall As Long, ByVal nIcons As Long) As Long

Платформа

  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 4.0 или вышe
  • Windows 2000: Поддерживается
  • Windows CE: Требуется Windows CE 1.0 или выше

ExtractIconEx извлекает значки из файлов *.exe, *.dll и *.ico. Функция может извлекать значки разных размеров, чьи дескрипторы находятся в двух массивах. Также, функция может определить количество больших и маленьких значков, хранимых в файле

Возвращаемое значение

Если nIconIndex равен -1, phiconLarge равен 0 и phiconSmall равен 0, то функция возвращает количество значков, хранимых в выбранном файле. В остальных случаях функция возвращает число значков, успешно извлеченных из файла

Параметры
lpszFile
Имя файла с расширением .exe, .dll или .ico для извлечения значков
nIconIndex
Отсчитываемый от нуля индекс первого значка, извлекаемый из файла. Если это -1 и оба параметра phiconLarge и phiconSmall равны 0, функция возвращает число значков в файле. Windows 95\98, NT 4.0 или выше, 2000:Если это - отрицательное целое число и по крайней мере или phiconLarge или phiconSmall (или оба) не нуль, функция первым извлекает значок, чей идентификатор ресурса равняется абсолютному значению этого параметра
phiconLarge
Массив, который получает описатели больших значков, извлеченных из файла. Чтобы не извлекать больше одного значка, установите этот параметр в 0
phiconSmall
Массив, который получает описатели маленьких значков, извлеченных из файла. Чтобы не извлекать больше одного значка, установите этот параметр в 0
nIcons
Число значков, извлеченных из файла. Значки извлекаются последовательно, начиная со значка, идентифицированного nIconIndex
Пример
' Получаем число значков, хранимых в файле
' C:\Windows\System\shell32.dll

Dim lpszFile As String ' имя файла
Dim lIcons As Long ' число значков
lpszFile = "c:\windows\system\shell32.dll"

' Вычисляем число значков в файле shell32.dll
lIcons = ExtractIconEx(lpszFile, -1, 0, 0, 0)

  Debug.Print "Всего " & lIcons & "значков"
Схожие функции
ExtractIcon
Категория
Значки


Функции по категориям

Список функций по категориям

Диалоговые окна
Доступ к параметрам системы
Меню
Мультимедиа
Графика
Кисти
Общее диалоговое окно
Курсор
Устройства
Ошибки
Файлы
Фигуры
Шрифты и тексты
Дескрипторы
Помощь
Значки
Файлы INI
Джойстик
Клавиатура
Линии и кривые
Расчеты
Сообщения
Мышь
Поддержка национальных языков
Ole
Перо
Принтер
Прямоугольники
Регионы
Реестр
Оболочка
Строки
Системная информация
Время
Классы
Процедуры
Свойства окон
Окна
Разное

  • Диалоговые окна
    • MessageBox
    • MessageBoxEx
    • MessageBoxIndirect
  • Доступ к параметрам системы
    • GetACP
    • GetOEMCP
    • GetSystemMetrics
    • SystemParametersInfo
  • Меню
    • GetMenu
    • GetMenuItemCount
    • GetSystemMenu
  • Мультимедиа
    • auxGetDevCaps
    • auxGetNumDevs
    • auxGetVolume
    • auxSetVolume
    • mciSendString
    • PlaySound
    • sndPlaySound
    • waveOutGetDevCaps
    • waveOutGetNumDevs
    • waveOutGetVolume
    • waveOutSetVolume
  • Графика
    • BitBlt
    • ExtFloodFill
    • GetPixel
    • PaintDesktop
    • SetPixel
    • SetPixelV
    • StretchBlt
  • Кисти
    • CreateHatchBrush
    • CreateSolidBrush
    • GetBrushOrgEx
    • SetBrushOrgEx
  • Общее диалоговое окно
    • ChooseColor
    • ChooseFont
    • CommDlgExtendedError
    • GetOpenFileName
    • GetSaveFileName
    • PrintDlg
  • Курсор
    • ClipCursor
    • CreateCursor
    • DestroyCursor
    • GetClipCursor
    • GetCursor
    • GetCursorPos
    • LoadCursor
    • LoadCursorFromFile
    • SetCursor
    • SetCursorPos
    • SetSystemCursor
    • ShowCursor
  • Устройства
    • ChangeDisplaySettings
    • CreateDC
    • DeleteDC
    • DeleteObject
    • EnumDisplaySettings
    • GetDC
    • GetStockObject
    • ReleaseDC
    • SelectObject
  • Ошибки
    • Beep
    • GetLastError
    • MessageBeep
  • Файлы
    • CopyFile
    • CreateDirectory
    • CreateDirectoryEx
    • CreateFile
    • DeleteFile
    • FindClose
    • FindFirstFile
    • FindNextFile
    • GetDiskFreeSpace
    • GetDiskFreeSpaceEx
    • GetDriveType
    • GetFileAttributes
    • GetFileInformationByHandle
    • GetFileSize
    • GetFileTime
    • GetFullPathName
    • GetLogicalDrives
    • GetLogicalDriveStrings
    • GetShortPathName
    • GetTempFileName
    • MoveFile
    • ReadFile
    • RemoveDirectory
    • SetFileAttributes
    • SetFilePointer
    • SetFileTime
    • WriteFile
  • Фигуры
    • Chord
    • Ellipse
    • Pie
    • Polygon
    • PolyPolygon
  • Шрифты и тексты
    • CreateFont
    • CreateFontIndirect
    • EnumFontFamilies
    • EnumFontFamiliesEx
    • GetTextAlign
    • GetTextColor
    • SetTextAlign
    • SetTextColor
    • TextOut
  • Дескрипторы
    • CloseHandle
  • Помощь
    • WinHelp
  • Значки
    • DestroyIcon
    • DrawIcon
    • DrawIconEx
    • ExtractIcon
    • ExtractIconEx
  • Файлы INI
    • GetPrivateProfileInt
    • GetPrivateProfileString
    • GetProfileInt
    • GetProfileString
    • WritePrivateProfileString
    • WriteProfileString
  • Джойстик
    • joyGetDevCaps
    • joyGetNumDevs
    • joyGetPos
  • Клавиатура
    • ActivateKeyboardLayout
    • GetAsyncKeyState
    • GetKeyboardLayoutName
    • GetKeyboardState
    • GetKeyState
    • keybd_event
    • SendInput
    • SetKeyboardState
  • Линии и кривые
    • AngleArc
    • Arc
    • ArcTo
    • GetArcDirection
    • LineTo
    • MoveToEx
    • PolyBezier
    • PolyBezierTo
    • Polyline
    • PolylineTo
    • PolyPolyline
    • SetArcDirection
  • Расчеты
    • MulDiv
  • Память
    • CopyMemory
    • FillMemory
    • GlobalAlloc
    • GlobalFree
    • GlobalLock
    • GlobalUnlock
    • MoveMemory
    • ZeroMemory
  • Сообщения
    • SendMessage
  • Мышь
    • GetDoubleClickTime
    • mouse_event
    • ReleaseCapture
    • SetDoubleClickTime
    • SwapMouseButton
  • Поддержка национальных языков
    • GetDateFormat
    • GetThreadLocale
    • GetTimeFormat
    • SetThreadLocale
  • OLE
    • CoTaskMemFree
  • Перо
    • CreatePen
    • CreatePenIndirect
  • Принтер
    • ClosePrinter
    • EndDoc
    • EndPage
    • EnumJobs
    • EnumPrinters
    • OpenPrinter
    • StartDoc
    • StartPage
  • Прямоугольники
    • CopyRect
    • EqualRect
    • InflateRect
    • IntersectRect
    • InvertRect
    • IsRectEmpty
    • FillRect
    • FrameRect
    • OffsetRect
    • PtInRect
    • Rectangle
    • RoundRect
    • SetRect
    • SetRectEmpty
    • SubtractRect
    • UnionRect
  • Регионы
    • CombineRgn
    • CreateEllipticRgn
    • CreateEllipticRgnIndirect
    • CreatePolygonRgn
    • CreatePolyPolygonRgn
    • CreateRectRgn
    • CreateRectRgnIndirect
    • CreateRoundRectRgn
    • EqualRgn
    • FillRgn
    • FrameRgn
    • GetPolyFillMode
    • GetRgnBox
    • InvertRgn
    • OffsetRgn
    • PtInRegion
    • RectInRegion
    • SetPolyFillMode
  • Реестр
    • RegCloseKey
    • RegCreateKeyEx
    • RegDeleteKey
    • RegDeleteValue
    • RegEnumKeyEx
    • RegEnumValue
    • RegOpenKeyEx
    • RegQueryValueEx
    • RegSetValueEx
  • Оболочка
    • ExitWindowsDialog
    • RestartDialog
    • SHAddToRecentDocs
    • SHBrowseForFolder
    • ShellExecute
    • SHEmptyRecycleBin
    • SHFileOperation
    • SHGetFileInfo
    • SHGetFolderLocation
    • SHGetFolderPath
    • SHGetPathFromIDList
    • SHGetSpecialFolderLocation
    • SHGetSpecialFolderPath
    • SHQueryRecycleBin
    • SHUpdateRecycleBinIcon
  • Строки
    • CharLower
    • CharToOem
    • CharUpper
    • IsCharAlpha
    • IsCharAlphaNumeric
    • IsCharLower
    • IsCharUpper
    • lstrcpy
    • lstrcpyn
    • lstrlen
    • OemToChar
  • Системная информация
    • GetComputerName
    • GetCurrentDirectory
    • GetSysColor
    • GetSystemDirectory
    • GetTempPath
    • GetUserName
    • GetVersion
    • GetVersionEx
    • GetVolumeInformation
    • GetWindowsDirectory
    • SetSysColors
    • SetVolumeLabel
  • Время
    • CompareFileTime
    • FileTimeToLocalFileTime
    • FileTimeToSystemTime
    • GetLocalTime
    • GetSystemTime
    • GetSystemTimeAsFileTime
    • GetTimeZoneInformation
    • LocalFileTimeToFileTime
    • SetSystemTime
    • SystemTimeToFileTime
  • Классы
    • GetClassInfo
    • GetClassInfoEx
    • GetClassLong
    • GetClassName
    • GetWindowLong
    • RegisterClass
    • RegisterClassEx
    • SetClassLong
    • SetWindowLong
    • UnregisterClass
  • Процедуры
    • CallWindowProc
    • DefWindowProc
  • Свойства окон
    • EnumPropsEx
    • GetProp
    • RemoveProp
    • SetProp
  • Окна
    • BringWindowToTop
    • DestroyWindow
    • EnableWindow
    • EnumChildWindows
    • EnumThreadWindows
    • EnumWindows
    • FindWindow
    • FindWindowEx
    • FlashWindow
    • GetActiveWindow
    • GetDesktopWindow
    • GetForegroundWindow
    • GetParent
    • GetTopWindow
    • GetWindow
    • GetWindowRect
    • GetWindowText
    • GetWindowTextLength
    • GetWindowThreadProcessId
    • IsChild
    • IsIconic
    • IsWindow
    • IsWindowEnabled
    • IsZoomed
    • MoveWindow
    • SetActiveWindow
    • SetForegroundWindow
    • SetParent
    • SetWindowPos
    • SetWindowText
    • ShowWindow
    • WindowFromPoint
  • Разное
    • ExitWindowsEx
    • Sleep

Наверх.


Структуры

Список структур по алфавиту

A B C D E F G H I J K L M
N O P Q R S T U V W X Y Z
  • A
    • ACCESSTIMEOUT
    • ACL
    • ANIMATIONINFO
    • AUXCAPS
  • B
    • BROWSEINFO
    • BY_HANDLE_FILE_INFORMATION
  • C
    • CHOOSECOLOR
    • CHOOSEFONT_TYPE
  • D
    • DEVMODE
    • DEVNAMES
    • DOCINFO
  • E
    • ENUMLOGFONT
    • ENUMLOGFONTEX
  • F
    • FILETIME
    • FILTERKEYS
    • FONTSIGNATURE
  • G
  • H
    • HARDWAREINPUT
    • HELPWININFO
    • HIGHCONTRAST
  • I
    • ICONMETRICS
    • INPUT_TYPE
    • ITEMIDLIST
  • J
    • JOB_INFO_1
    • JOB_INFO_2
    • JOYCAPS
    • JOYINFO
  • K
    • KEYBDINPUT
  • L
    • LOGFONT
    • LOGPEN
  • M
    • MINIMIZEDMETRICS
    • MOUSEINPUT
    • MOUSEKEYS
    • MULTIKEYHELP
  • N
    • NEWTEXTMETRIC
    • NEWTEXTMETRICEX
    • NONCLIENTMETRICS
  • O
    • OPENFILENAME
    • OSVERSIONINFO
    • OVERLAPPED
  • P
    • POINTAPI
    • PRINTDLG_TYPE
    • PRINTER_DEFAULTS NEW
    • PRINTER_INFO_1
    • PRINTER_INFO_2
    • PRINTER_INFO_4
    • PRINTER_INFO_5
  • Q
  • R
    • RECT
  • S
    • SECURITY_ATTRIBUTES
    • SECURITY_DESCRIPTOR
    • SERIALKEYS
    • SHFILEINFO
    • SHFILEOPSTRUCT
    • SHITEMID
    • SHQUERYRBINFO
    • SOUNDSENTRY
    • STICKYKEYS
    • SYSTEMTIME
  • T
    • TEXTMETRIC
    • TIME_ZONE_INFORMATION
    • TOGGLEKEYS
  • U
    • ULARGE_INTEGER
  • V
  • W
    • WAVEOUTCAPS
    • WIN32_FIND_DATA
    • WNDCLASS
    • WNDCLASSEX
  • X
  • Y
  • Z


Структура ANIMATIONINFO

Type ANIMATIONINFO
  cbSize As Long
  iMinAnimate As Long
End Type

Поля структуры ANIMATIONINFO определяют настройки относительно эффектов анимации в Windows при развертывании, восстановлении и сворачивании окна

Состав структуры
cbSize
Размер структуры в байтах
iMinAnimate
Если 0, то не использовать эффект анимации при развертывании,восстановлении и сворачивании окна. В ином случае использовать анимацию
Используется в
SystemParametersInfo


Структура BROWSEINFO

Type BROWSEINFO
  hwndOwner As Long
  pidlRoot As Long
  pszDisplayName As String
  lpszTitle As String
  ulFlags As Long
  lpfn As Long
  lParam As Long
  iImage As Long
End Type

Структура BROWSEINFO содержит информацию, используемую при создании диалогового окна Обзор папок, а также получает некоторые значения после выбора папки пользователем

Visual Basic-Specific Issues

Because of a quirk in Visual Basic syntax, the AddressOf operator cannot be used directly to set the lpfn parameter to a pointer to a callback function. Since the AddressOf operator is only legal within a function call, a "dummy function" must be defined by the program which simply returns the value passed to it. See the example for SHBrowseForFolder to see how this can be done.

Состав структуры
hwndOwner
Дескриптор владельца диалогового окна
pidlRoot
Указатель к структуре ITEMIDLIST(PIDL) which identifies the root folder for the dialog box. The user's selection is limited to this folder and any subfolders under it.
pszDisplayName
Receives the null-terminated display name of the folder the user selects. This must be initialized to an empty string of at least 260 characters.
lpszTitle
Заголовок диалогового окна
ulFlags
Комбинация следующих флагов, определяющих дополнительные опции для диалогового окна
BIF_BROWSEFORCOMPUTER= &H1000
Только Обзор компьютеров
BIF_BROWSEFORPRINTER= &H2000
Только Обзор принтеров
BIF_BROWSEINCLUDEFILES= &H4000
Только с Internet Explorer 4.0 или выше Отображает файлы и папки
BIF_DONTGOBELOWDOMAIN= &H2
Do not display network folders below the current domain level in the folder tree.
BIF_EDITBOX= &H10
Для Explorer 4.0 или выше: Display an edit box above the folder tree allowing the user to directly enter the path of the folder to select.
BIF_RETURNFSANCESTORS= &H8
Only allow the user to select a file system ancestor.
BIF_RETURNONLYFSDIRS= &H1
Only allow the user to select a file system directory.
BIF_STATUSTEXT= &H4
Display an area for status text, which can be set by the callback function, above the folder tree.
BIF_USENEWUI= &H40
Windows 2000: Use the new user interface design of the dialog box. The new design includes a larger, resizable dialog box; drag and drop capability; reordering; context menus; and new folder creation, deletion, and other context menu commands.
BIF_VALIDATE= &H20
With Internet Explorer 4.0 or later installed: If the user types an invalid path into the edit box, send the BFFM_VALIDATEFAILED message to the callback function so it can alert the user.
lpfn
A pointer to the BrowseCallbackProc callback function used to process the dialog box's messages. To use the default behavior, set this to 0.
lParam
An application-defined value to pass to the callback function, if needed.
iImage
Receives the index of the system image associated with the user's selection.

Используется в: SHBrowseForFolder


Структура CHOOSECOLOR

Type CHOOSECOLOR
  lStructSize As Long
  hwndOwner As Long
  hInstance As Long
  rgbResult As Long
  lpCustColors As Long
  flags As Long
  lCustData As Long
  lpfnHook As Long
  lpTemplateName As String
End Type

Структура CHOOSECOLOR хранит информацию, передаваемую в или из общего диалогового окна Выбор цвета

Состав структуры
lStructSize
Размер структуры в байтах
hwndOwner
Дескриптор окна, открывающего диалоговое окно
hInstance
Дескриптор к шаблону диалогового окна, чтобы использовать на месте заданного по умолчанию поля. Если это не используется, то установлено к 0
rgbResult
Установка значения RGB -цвета по умолчанию для выбранного цвета перед запросом ChooseColor. Функция размещает значение RGB цвета, выбранный пользователем в этот компонент
lpCustColors
указатель к блоку памяти, содержащего список 16 выбранных цветов
Flags
Комбинация следующих флагов, определяющих вид общего диалогового окна
CC_ANYCOLOR = &H100
Пользователю разрешено выбирать любой цвет
CC_ENABLEHOOK = &H10
Использование функции обработчика прерываний, указанную lpfnHook для обработки сообщений выбора палитры цветов
CC_ENABLETEMPLATE = &H20
Используйте шаблон диалогового окна, идентифицированный hInstance и lpTemplateName
CC_ENABLETEMPLATEHANDLE = &H40
Используйте предыдущий шаблон диалогового окна, идентифицированный hInstance, игнорируя lpTemplateName
CC_FULLOPEN = &H2
Автоматически показ определенных выбранных цветов вполовину диалогового окна
CC_PREVENTFULLOPEN = &H4
Отключена кнопка, отображающая определенные выбраные цвета вполовину диалогового окна
CC_RGBINIT = &H1
Установка цвета, определенную rgbResult для первоначально выбранного цвета
CC_SHOWHELP = &H8
Показать кнопку помощи
CC_SOLIDCOLOR = &H80
Разрешение пользователю выбирать твердых цвета. Если пользователь пытается выбрать не-твердый цвет, преобразуйте это к самому близкому твердому цвету
lCustData
Определенное приложением значение, чтобы пройти к функции обработчика прерываний, указанной lpfnHook
lpfnHook
указатель CCHookProc hook functionдля обработки сообщений Выбора цвета
lpTemplateName
Название шаблона диалогового окна, чтобы использовать в модуле, идентифицированном hInstance. Если в этом нет необходимости, установите в 0
Используется в
ChooseColor


Структура DEVMODE

Type DEVMODE
  dmDeviceName As String * 32
  dmSpecVersion As Integer
  dmDriverVersion As Integer
  dmSize As Integer
  dmDriverExtra As Integer
  dmFields As Long
  dmOrientation As Integer
  dmPaperSize As Integer
  dmPaperLength As Integer
  dmPaperWidth As Integer
  dmScale As Integer
  dmCopies As Integer
  dmDefaultSource As Integer
  dmPrintQuality As Integer
  dmColor As Integer
  dmDuplex As Integer
  dmYResolution As Integer
  dmTTOption As Integer
  dmUnusedPadding As Integer
  dmCollate As Integer
  dmFormName As String * 32
  dmUnusedPadding As Integer
  dmBitsPerPixel As Integer
  dmPelsWidth As Long
  dmPelsHeight As Long
  dmDisplayFlags As Long
  dmDisplayFrequency As Long
  ' только для Windows 95, 98, 2000
  dmICMMethod As Long
  dmICMIntent As Long
  dmMediaType As Long
  dmDitherType As Long
  dmReserved1 As Long
  dmReserved2 As Long
  ' только для Windows 2000
  dmPanningWidth As Long
  dmPanningHeight As Long
End Type

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

Состав структуры
dmDeviceName
Имя устройства
dmSpecVersion
Номер версии of the device's initialization information specification.
dmDriverVersion
Номер версии драйвера устройства
dmSize
Размер структуры в байтах
dmDriverExtra
The number of bytes of information trailing the structure in memory.
dmFields
A combination of the following flags specifying which of the rest of the structure's members contain information about the device:
DM_ORIENTATION= &H1
dmOrientation contains information.
DM_PAPERSIZE= &H2
dmPaperSize contains information.
DM_PAPERLENGTH= &H4
dmPaperLength contains information.
DM_PAPERWIDTH= &H8
dmPaperWidth contains information.
DM_SCALE= &H10
dmScale contains information.
DM_COPIES= &H100
dmCopies contains information.
DM_DEFAULTSOURCE= &H200
dmDefaultSource contains information.
DM_PRINTQUALITY= &H400
dmPrintQuality contains information.
DM_COLOR= &H800
dmColor contains information.
DM_DUPLEX= &H1000
dmDuplex contains information.
DM_YRESOLUTION= &H2000
dmYResolution contains information.
DM_TTOPTION= &H4000
dmTTOption contains information.
DM_COLLATE= &H8000
dmCollate contains information.
DM_FORMNAME= &H10000
dmFormName contains information.
DM_LOGPIXELS= &H20000
dmLogPixels contains information.
DM_BITSPERPEL= &H40000
Глубина цвета(бит на пиксел)
DM_PELSWIDTH= &H80000
Размер по горизонтали в пикселах
DM_PELSHEIGHT= &H100000
Размер по вертикали в пикселах
DM_DISPLAYFLAGS= &H200000
dmDisplayFlags contains information.
DM_DISPLAYFREQUENCY= &H400000
dmDisplayFrequency contains information.
DM_ICMMETHOD= &H800000
Win 95/98 only: dmICMMethod contains information.
DM_ICMINTENT= &H1000000
Windows 95, 98, 2000: dmICMIntent contains information.
DM_MEDIATYPE= &H2000000
Windows 95, 98, 2000: dmMediaType contains information.
DM_DITHERTYPE= &H4000000
Windows 95, 98, 2000: dmDitherType contains information.
DM_PANNINGWIDTH= &H20000000
Windows 2000: dmPanningWidth contains information.
DM_PANNINGHEIGHT= &H40000000
Windows 2000: dmPanningHeight contains information.
dmOrientation
One of the following flags specifying the orientation of the printer paper:
DMORIENT_PORTRAIT= 1
Portrait (tall) mode.
DMORIENT_LANDSCAPE= 2
Landscape (wide) mode.
dmPaperSize
If nonzero, one of the following flags specifying the size of the printer paper (or some other value specifying a paper size). If zero, the paper size is determined by dmPaperLength and dmPaperWidth.
DMPAPER_LETTER= 1
Letter, 8.5 x 11 inches.
DMPAPER_LEGAL= 5
Legal, 8.5 x 14 inches.
DMPAPER_10X11= 45
10 x 11 inches.
DMPAPER_10X14= 16
10 x 14 inches.
DMPAPER_11X17= 17
11 x 17 inches.
DMPAPER_15X11= 46
15 x 11 inches.
DMPAPER_9X11= 44
9 x 11 inches.
DMPAPER_A_PLUS= 57
A plus sheet.
DMPAPER_A2= 66
A2 sheet.
DMPAPER_A3= 8
A3 sheet, 297 x 420 millimeters.
DMPAPER_A3_EXTRA= 63
A3 extra sheet.
DMPAPER_A3_EXTRA_TRANSVERSE= 68
A3 extra transverse sheet.
DMPAPER_A3_TRANSVERSE= 67
A3 transverse sheet.
DMPAPER_A4= 9
A4 sheet, 210 x 297 millimeters.
DMPAPER_A4_EXTRA= 53
A4 extra sheet.
DMPAPER_A4_PLUS= 60
A4 plus sheet.
DMPAPER_A4_TRANSVERSE= 55
A4 transverse sheet.
DMPAPER_A4SMALL= 10
A4 small sheet, 210 x 297 millimeters.
DMPAPER_A5= 11
A5 sheet, 148 x 210 millimeters.
DMPAPER_A5_EXTRA= 64
A5 extra sheet.
DMPAPER_A5_TRANSVERSE= 61
A5 transverse sheet.
DMPAPER_B_PLUS= 58
B plus sheet.
DMPAPER_B4= 12
B4 sheet, 250 x 354 millimeters.
DMPAPER_B5= 13
B5 sheet, 192 x 257 millimeters.
DMPAPER_B5_EXTRA= 65
B5 extra sheet.
DMPAPER_B5_TRANSVERSE= 62
B5 transverse sheet.
DMPAPER_CSHEET= 24
C sheet, 17 x 22 inches.
DMPAPER_DSHEET= 25
D sheet, 22 x 34 inches.
DMPAPER_ENV_10= 20
#10 envelope, 4.125 x 9.5 inches.
DMPAPER_ENV_11= 21
#11 envelope, 4.5 x 10.375 inches.
DMPAPER_ENV_12= 22
#12 envelope, 4.75 x 11 inches.
DMPAPER_ENV_14= 23
#14 envelope, 5 x 11.5 inches.
DMPAPER_ENV_9= 19
#9 envelope, 3.875 x 8.875 inches.
DMPAPER_ENV_B4= 33
B4 envelope, 250 x 353 millimeters.
DMPAPER_ENV_B5= 34
B5 envelope, 176 x 250 millimeters.
DMPAPER_ENV_B6= 35
B6 envelope, 176 x 125 millimeters.
DMPAPER_ENV_C3= 29
C3 envelope, 324 x 458 millimeters.
DMPAPER_ENV_C4= 30
C4 envelope, 229 x 324 millimeters.
DMPAPER_ENV_C5= 28
C5 envelope, 162 x 229 millimeters.
DMPAPER_ENV_C6= 31
C6 envelope, 114 x 162 millimeters.
DMPAPER_ENV_C65= 32
C65 envelope, 114 x 229 millimeters.
DMPAPER_ENV_DL= 27
DL envelope, 110 x 220 millimeters.
DMPAPER_ENV_INVITE= 47
Invitation envelope.
DMPAPER_ENV_ITALY= 36
Italy envelope, 110 x 230 millimeters.
DMPAPER_ENV_MONARCH= 37
Monarch envelope, 3.875 x 7.5 inches.
DMPAPER_ENV_PERSONAL= 38
Personal (6.75) envelope, 3.625 x 6.5 inches.
DMPAPER_ESHEET= 26
E sheet, 34 x 44 inches.
DMPAPER_EXECUTIVE= 7
Executive, 7.25 x 10.5 inches.
DMPAPER_FANFOLD_LGL_GERMAN= 41
German legal fanfold, 8.5 x 13 inches.
DMPAPER_FANFOLD_STD_GERMAN= 40
German standard fanfold, 8.5 x 12 inches.
DMPAPER_FANFOLD_US= 39
US standard fanfold, 14.875 x 11 inches.
DMPAPER_FIRST= 1
Same as DMPAPER_LETTER.
DMPAPER_FOLIO= 14
Folio, 8.5 x 13 inches.
DMPAPER_ISO_B4= 42
ISO B4 sheet.
DMPAPER_JAPANESE_POSTCARD= 43
Japanese postcard.
DMPAPER_LAST= 41
Same as DMPAPER_FANFOLD_LGL_GERMAN.
DMPAPER_LEDGER= 4
Ledger, 17 x 11 inches.
DMPAPER_LEGAL_EXTRA= 51
Legal extra.
DMPAPER_LETTER_EXTRA= 50
Letter extra.
DMPAPER_LETTER_EXTRA_TRANSVERSE= 56
Letter extra transverse.
DMPAPER_LETTER_PLUS= 59
Letter plus.
DMPAPER_LETTER_TRANSVERSE= 54
Letter transverse.
DMPAPER_LETTERSMALL= 2
Letter small, 8.5 x 11 inches.
DMPAPER_NOTE18
Note, 8.5 x 11 inches.
DMPAPER_QUARTO= 15
Quarto, 215 x 275 millimeters.
DMPAPER_STATEMENT= 6
Statement, 5.5 x 8.5 inches.
DMPAPER_TABLOID= 3
Tabloid, 11 x 17 inches.
DMPAPER_TABLOID_EXTRA= 52
Tabloid extra.
DMPAPER_USER= 256
User-defined size.
dmPaperLength
The length of the printer paper, measured in tenths of a millimeter.
dmPaperWidth
The width of the printer paper, measured in tenths of a millimeter.
dmScale
The scale percentage factor (e.g., 100 means 100%, or no, scaling; 200 means two times the size, etc.).
dmCopies
The number of document copies to print, if the device supports it.
dmDefaultSource
One of the following flags specifying the printer's source of paper:
DMBIN_ONLYONE= 1
There is only one paper source.
DMBIN_UPPER= 1
Upper bin.
DMBIN_LOWER= 2
Lower bin.
DMBIN_MIDDLE= 3
Middle bin.
DMBIN_MANUAL= 4
Manual loading.
DMBIN_ENVELOPE= 5
Envelope bin.
DMBIN_ENVMANUAL= 6
Manual-loading envelope.
DMBIN_AUTO= 7
Automatic loading.
DMBIN_TRACTOR= 8
Tractor loading.
DMBIN_SMALLFMT= 9
Small format loading.
DMBIN_LARGEFMT= 10
Large format loading.
DMBIN_LARGECAPACITY= 11
Large-capacity bin.
DMBIN_CASSETTE14
Cassette.
DMBIN_FORMSOURCE= 15
Form paper source.
dmPrintQuality
Either one of the following flags specifying the printer's print quality setting, or a positive value specifying the printer's dots per inch (DPI) rating.
DMRES_DRAFT= -1
Draft-quality output.
DMRES_LOW= -2
Low-quality output.
DMRES_MEDIUM= -3
Medium-quality output.
DMRES_HIGH= -4
High-quality output.
dmColor
One of the following flags specifying whether the device supports color:
DMCOLOR_MONOCHROME= 1
The device does not support color output.
DMCOLOR_COLOR= 2
The device supports color output.
dmDuplex
One of the following flags specifying the printer's double-sided (duplex) printing capability:
DMDUP_SIMPLEX= 1
Configured for single-sided printing.
DMDUP_VERTICAL= 2
Configured for double-sided printing with vertical page turning.
DMDUP_HORIZONTAL= 3
Configured for double-sided printing with horizontal page turning.
dmYResolution
The number of the vertical dots per inch of the printer. If this value contains useful data, the number of horizontal dots per inch is inside dmPrintQuality.
dmTTOption
One of the following flags specifying how the printer prints TrueType fonts:
DMTT_BITMAP= 1
The printer prints TrueType fonts as graphics (default for dot-matrix printers).
DMTT_DOWNLOAD= 2
The printer downloads TrueType fonts as soft fonts (default for Hewlett-Packerd printers using Printer Control Language).
DMTT_SUBDEV= 4
The printer substitutes device fonts for TrueType fonts (default for PostScript printers).
dmUnusedPadding
Reserved -- set to 0. This member merely takes up space to align other members in memory.
dmCollate
One of the following flags specifying whether the printer can collate copies:
DMCOLLATE_FALSE= 0
Does not collate pages when printing multiple copies.
DMCOLLATE_TRUE= 1
Does collate pages when printing multiple copies.
dmFormName
Windows NT, 2000: The name of the type of paper loaded in the printer.
dmBitsPerPel
The number of color bits used per pixel on the display device.
dmPelsWidth
The width of the display, measured in pixels.
dmPelsHeight
The height of the display, measured in pixels.
dmDisplayFlags
A combination of the following flags specifying the device's display mode:
DM_GRAYSCALE= 1
The display does not support color. (If this flag is omitted, assume color is supported.)
DM_INTERLACED= 2
The display is interlaced.
dmDisplayFrequency
The display frequency of the display, measured in Hz.
dmICMMethod
Windows 95, 98, 2000: Either one of the following flags specifying how image color matching (ICM) is supported, or a device-defined value greater than 256:
DMICMMETHOD_NONE= 1
ICM is disabled.
DMICMMETHOD_SYSTEM= 2
ICM is handled by Windows.
DMICMMETHOD_DRIVER= 3
ICM is handled by the device driver.
DMICMMETHOD_DEVICE= 4
ICM is handled by the device.
dmICMIntent
Windows 95, 98, 2000: Either one of the following flags specifying the image color matching (ICM) method used when ICM is not intrinsically supported, or a device-defined value greater than 256:
DMICM_SATURATE= 1
Color matching attempts to optimize color saturation.
DMICM_CONTRAST= 2
Color matching attempts to optimize color contrast.
DMICM_COLORMETRIC= 3
Color matching attempts to match the exact color requested.
dmMediaType
Windows 95, 98, 2000: Either one of the following flags specifying what type of medium the printer is printing on, or a device-defined value greater than 256:
DMMEDIA_STANDARD= 1
Plain paper.
DMMEDIA_GLOSSY= 2
Glossy paper.
DMMEDIA_TRANSPARECNY= 3
Transparent film.
dmDitherType
Windows 95, 98, 2000: Either one of the following flags specifying the dithering method used by the device, or a device-defined value greater than 256:
DMDITHER_NONE= 1
No dithering.
DMDITHER_COARSE= 2
Dithering with a coarse brush.
DMDITHER_FINE= 3
Dithering with a fine brush.
DMDITHER_LINEART= 4
Line art dithering, which makes well-defined borders between black, white, and gray.
DMDITHER_GRAYSCALE= 5
Grayscaling.
dmReserved1
Windows 95, 98, 2000: Reserved -- set to 0.
dmReserved2
Windows 95, 98, 2000: Reserved -- set to 0.
dmPanningWidth
Windows 2000: Reserved -- set to 0.
dmPanningHeight
Windows 2000: Reserved -- set to 0.
Используется в
CreateDC, EnumDisplaySettings, JOB_INFO_2, PRINTDLG_TYPE, PRINTER_DEFAULTS, PRINTER_INFO_2


Автор руководства

 Данное руководство написано А.Климовым

Примеры,коды,советы и многое другое вы можете найти на сайте Русский_Проект по адресу:http://rusproject.newmail.ru

E-mail: vbasic@rambler.ru

Часть материала написана В.Юнисовым