Попробовав что-нибудь написать на masm, каждый сталкивался с ОТСУТСТВИЕМ или НЕКОРРЕКТНОСТЬЮ структур WINDOWS.INC. Давайте дополним его вместе.
Например, просто осуществляя поиск файлов, сталкиваешься когда в ответ приходят символы "?". Отлично, будем искать в юникод-формате. А структура какая? Код (Text): ;windows.inc ;Дополнение ;После ;WIN32_FIND_DATA ;Вставить WIN32_FIND_DATAW STRUCT dwFileAttributes DWORD ? ftCreationTime FILETIME <> ftLastAccessTime FILETIME <> ftLastWriteTime FILETIME <> nFileSizeHigh DWORD ? nFileSizeLow DWORD ? dwReserved0 DWORD ? dwReserved1 DWORD ? cFileName WORD MAX_PATH dup(?) cAlternate WORD 14 dup(?) WIN32_FIND_DATAW ENDS ; exist variant:))) cFileName WORD UNICODE_STRING_MAX_CHARS dup(?) На практике достаточно увеличить буфер имени вдвое. Не видел я виндовс, использующей имена длиннее. Хотя этот вариант можно раскомментировать и вставить.
Код виртуальной клавиши. Код (Text): ;windows.inc ;Дополнение ;После ;VK_RETURN equ 0Dh VK_ENTER equ 0Dh ;никогда б не угадал, не путать с VK_EXECUTE
спасибо за ссылку http://www.masm32.com/board/index.php?board=14.0 англоязычное обсуждение. тут есть русские парни.
А у Iczelion есть такие константы: Код (Text): WM_SHELLNOTIFY equ WM_USER+5 IDI_TRAY equ 0 IDM_RESTORE equ 1000 IDM_EXIT equ 1010
В разных версиях различны целые блоки кусками. Хоцца навести порядок. Например алфавитный. Константы мы упорядочем. Со структурами интереснее. Тут полный фигвам, никакого алфавитного порядка. Нужно, чтобы входящие были перед теми куда они входят. Пример: Код (Text): RECT STRUCT left dd ? top dd ? right dd ? bottom dd ? RECT ENDS PAINTSTRUCT STRUCT hdc DWORD ? fErase DWORD ? rcPaint RECT <> ; Алфавит P, R, S, T. Делаешь так и тебя спросят: А чё это? fRestore DWORD ? fIncUpdate DWORD ? rgbReserved BYTE 32 dup(?) PAINTSTRUCT ENDS
Ещё есть проблемка. Помните windows работает в ring0, ring3. windows.inc в основном ring3 Есть инклуды ring0 (кто спросит откуда пусть "убъйоцца ап стену (символ MSDN" или юзает поиск сайта). Подключаешь. Нафига структуры ring0 в windows.inc. Например: Код (Text): CONTEXT struct ; в си определенная в Winnt.h
Ещё есть приколы в .inc файлах. Пример advapi32.UninstallApplication Попробуйте скомпилировать файл с этой функцией.