Статьи по Assembler

       

Windows.inc для mycall (ассемблер)


Это файл windows.inc, который содержит константы и прототипы функций API, используемые в приложении MyCall. Подробнее... Этот файл в текстовом формате вместе со всеми остальными файлами, необходимыми для компиляции приложения MyCall, содержится в zip-файле mycallab.zip (15913 байт). Имеется также Инструкция программиста.

Для получения комментариев щелкaйте по тексту или пользуйтесь групповым управлением:

if(dhtml){document.write("Все комментарии: [+][-]    Открывать: [несколько]");}

;КОНСТАНТЫ

FALSE=0

TRUE=1

NULL=0

SW_SHOW=5

ERROR_INVALID_HANDLE=6

WM_COMMAND=0111h

WM_MOVE=0003h

WM_DESTROY=0002h

WM_CLOSE=0010h



WM_SETTEXT=000ch

WM_USER=0400h

CB_ADDSTRING=0143h

CB_GETCURSEL=0147h

CB_SETCURSEL=014eh

CB_ERR=0ffffffffh

CB_RESETCONTENT=014bh

CBN_SELCHANGE=1

BN_CLICKED=0

SWP_NOSIZE=0001h

SWP_NOMOVE=0002h

SWP_NOZORDER=0004h

SM_CXSCREEN=0

SM_CYSCREEN=1

MB_OK=0

MB_ICONERROR=10h

IDC_ARROW=32512

COLOR_WINDOW=5

HWND_BROADCAST=0ffffh

GENERIC_READ=80000000h

GENERIC_WRITE=40000000h

OPEN_EXISTING=3

CREATE_ALWAYS=2

FILE_ATTRIBUTE_NORMAL=00000080h

INVALID_HANDLE_VALUE=0ffffffffh

GMEM_FIXED=0h

EWX_REBOOT=2

EWX_FORCE=4

DLGWINDOWEXTRA=30

;ПРОТОТИПЫ ФУНКЦИЙ API

GetModuleHandleA PROTO :DWORD

LoadIconA PROTO :DWORD,:DWORD

ExitProcess PROTO :DWORD

LoadCursorA PROTO :DWORD,:DWORD

RegisterClassExA PROTO :DWORD

MessageBoxA PROTO :DWORD,:DWORD,:DWORD,:DWORD

CreateDialogParamA PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD

GetLastError PROTO

GetCurrentProcess PROTO

ShowWindow PROTO :DWORD,:DWORD

TranslateMessage PROTO :DWORD

DispatchMessageA PROTO :DWORD

GetMessageA PROTO :DWORD,:DWORD,:DWORD,:DWORD

DefWindowProcA PROTO :DWORD,:DWORD,:DWORD,:DWORD

PostQuitMessage PROTO :DWORD

DestroyWindow PROTO :DWORD

RegisterWindowMessageA PROTO :DWORD

SendMessageA PROTO :DWORD,:DWORD,:DWORD,:DWORD

PostMessageA PROTO :DWORD,:DWORD,:DWORD,:DWORD

SetForegroundWindow PROTO :DWORD

CreateFileA PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD


CloseHandle PROTO :DWORD

ReadFile PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD

WriteFile PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD

GetSystemMetrics PROTO :DWORD

SetWindowPos PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD

GetWindowRect PROTO :DWORD,:DWORD

GetDlgItem PROTO :DWORD,:DWORD

GetFileSize PROTO :DWORD,:DWORD

GlobalAlloc PROTO :DWORD,:DWORD

GlobalFree PROTO :DWORD

RasHangUpA PROTO :DWORD

Sleep PROTO :DWORD

CreateThread PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD

EnableWindow PROTO :DWORD,:DWORD

lstrcpy PROTO :DWORD,:DWORD

lstrcat PROTO :DWORD,:DWORD

RasDialA PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD

RasGetConnectStatusA PROTO :DWORD,:DWORD

ExitWindowsEx PROTO :DWORD,:DWORD

;ЭКВИВАЛЕНТЫ ТИПОВ ДАННЫХ WINDOWS

; Удобны для сохранения синтаксиса вызова функций API, соответствующего

;документации программиста для Windows. Лидирующий символ @ требуется из-за того,

;что имена некоторых типов данных Windows совпадают с ключевыми словами ассемблера

;(например, DWORD).

@LONG equ dd

@UINT equ dd

@WNDPROC equ dd

@int equ dd

@HINSTANCE equ dd

@HICON equ dd

@HCURSOR equ dd

@HBRUSH equ dd

@LPCSTR equ dd

@HWND equ dd

@WPARAM equ dd

@LPARAM equ dd

@DWORD equ dd

;СТУКТУРЫ WINDOWS

WNDCLASSEX STRUCT 8

cbSize @UINT ?

style @UINT ?

lpfnWndProc @WNDPROC ?

cbClsExtra @int ?

cbWndExtra @int ?

hInstance @HINSTANCE ?

hIcon @HICON ?

hCursor @HCURSOR ?

hbrBackground @HBRUSH ?

lpszMenuName @LPCSTR ?

lpszClassName @LPCSTR ?

hIconSm @HICON ?

WNDCLASSEX ENDS

POINT STRUCT 8

x @LONG ?

y @LONG ?

POINT ENDS

MSG STRUCT 8

hwnd @HWND ?

message @UINT ?

wParam @WPARAM ?

lParam @LPARAM ?

time @DWORD ?

pt POINT {}

MSG ENDS

RECT STRUCT 8

left @LONG ?

top @LONG ?

right @LONG ?

bottom @LONG ?

RECT ENDS

;ДАННЫЕ REMOTE ACCESS SERVICE

RAS_MaxEntryName=256

RAS_MaxPhoneNumber=128

RAS_MaxCallbackNumber equ RAS_MaxPhoneNumber

UNLEN=256

PWLEN=256

CNLEN=15

DNLEN=CNLEN

RASDIALPARAMS STRUCT 4

dwSize @DWORD ?

szEntryName db (RAS_MaxEntryName+1)dup(?)



szPhoneNumber db (RAS_MaxPhoneNumber+1)dup(?)

szCallbackNumber db (RAS_MaxCallbackNumber+1)dup(?)

szUserName db (UNLEN+1)dup(?)

szPassword db (PWLEN+1)dup(?)

szDomain db (DNLEN+1)dup(?)

RASDIALPARAMS ENDS

RASCS_PAUSED=1000h

RASCS_DONE=2000h

RASCS_OpenPort=0

RASCS_PortOpened=1

RASCS_ConnectDevice=2

RASCS_DeviceConnected=3

RASCS_AllDevicesConnected=4

RASCS_Authenticate=5

RASCS_AuthNotify=6

RASCS_AuthRetry=7

RASCS_AuthCallback=8

RASCS_AuthChangePassword=9

RASCS_AuthProject=10

RASCS_AuthLinkSpeed=11

RASCS_AuthAck=12

RASCS_ReAuthenticate=13

RASCS_Authenticated=14

RASCS_PrepareForCallback=15

RASCS_WaitForModemReset=16

RASCS_WaitForCallback=17

RASCS_Projected=18

RASCS_StartAuthentication=19

RASCS_CallbackComplete=20

RASCS_LogonNetwork=21

RASCS_SubEntryConnected=22

RASCS_SubEntryDisconnected=23

RASCS_Interactive=RASCS_PAUSED

RASCS_RetryAuthentication=RASCS_PAUSED+1

RASCS_CallbackSetByCaller=RASCS_PAUSED+2

RASCS_PasswordExpired=RASCS_PAUSED+3

RASCS_Connected=RASCS_DONE

RASCS_Disconnected=RASCS_DONE+1

RAS_MaxDeviceType=16

RAS_MaxDeviceName=128

RAS_MaxPhoneNumber=128

RAS_MaxEntryName=256

RASCONNSTATUS STRUCT 4

dwSize @DWORD ?

rasconnstate @DWORD ?

dwError @DWORD ?

szDeviceType db (RAS_MaxDeviceType+1)dup(?)

szDeviceName db (RAS_MaxDeviceName+1)dup(?)

RASCONNSTATUS ENDS

RASCONN STRUCT 4

dwSize @DWORD ?

hrasconn @DWORD ?

szEntryName db (RAS_MaxEntryName+1)dup(?)

szDeviceType db (RAS_MaxDeviceType+1)dup(?)

szDeviceName db (RAS_MaxDeviceName+1)dup(?)

RASCONN ENDS


Содержание раздела