Несмотря на очень высокое качество разделов MSDN, относящихся к Window API, ошибки иногда бывают и там. Со временем их исправляют. Поэтому, если вы столкнулись с ситуацией, когда есть подозрение, что какая-либо функция Windows API ведёт себя не так, как это описано в вашей offline-справке, есть смысл заглянуть в online-справку — возможно, там уже появились дополнительные сведения по данной функции.
Рис. 1.3. Окно справки Delphi 2007 (функция DeleteObject
)
Система Windows написана на C++, поэтому все описания функций Windows API, а также примеры их использования приведены на этом языке (это касается как MSDN, так и справки, поставляемой с Delphi). При этом, прежде всего, необходимо разобраться с типами данных. Большинство типов, имеющихся в Windows API. определены в Delphi. Соответствие между ними показано в табл. 1.1.
Тип Windows API | Тип Delphi |
---|---|
INT | INT |
UINT | LongWord |
WORD | Word |
SHORT | SmallInt |
USHORT | Word |
CHAR | Чаще всего соответствует типу Char , но может трактоваться также как ShortInt , т. к. в C++ нет разницы между символьным и целочисленным типами |
UCHAR | Чаще всего соответствует типу Byte , но может трактоваться также как Char |
DWORD | LongWord |
BYTE | Byte |
WCHAR | WideChar |
BOOL | LongBool |
int | Integer |
long | LongInt |
short | SmallInt |
unsigned int | Cardinal |
Название типов указателей имеет префикс LPDWORD
эквивалентен типу ^DWORD
, PUCHAR
— ^Byte
. Иногда после префикса
Типы PVOID
и LPVOID
соответствуют нетипизированным указателям (Pointer
).