Initall commit
This commit is contained in:
46
fasmw172/EXAMPLES/BEER/BEER.ASM
Normal file
46
fasmw172/EXAMPLES/BEER/BEER.ASM
Normal file
@@ -0,0 +1,46 @@
|
||||
|
||||
; Beer - example of tiny (one section) Win32 program
|
||||
|
||||
format PE GUI 4.0
|
||||
|
||||
include 'win32a.inc'
|
||||
|
||||
; no section defined - fasm will automatically create .flat section for both
|
||||
; code and data, and set entry point at the beginning of this section
|
||||
|
||||
invoke MessageBoxA,0,_message,_caption,MB_ICONQUESTION+MB_YESNO
|
||||
cmp eax,IDYES
|
||||
jne exit
|
||||
|
||||
invoke mciSendString,_cmd_open,0,0,0
|
||||
invoke mciSendString,_cmd_eject,0,0,0
|
||||
invoke mciSendString,_cmd_close,0,0,0
|
||||
|
||||
exit:
|
||||
invoke ExitProcess,0
|
||||
|
||||
_message db 'Do you need additional place for the beer?',0
|
||||
_caption db 'Desktop configuration',0
|
||||
|
||||
_cmd_open db 'open cdaudio',0
|
||||
_cmd_eject db 'set cdaudio door open',0
|
||||
_cmd_close db 'close cdaudio',0
|
||||
|
||||
; import data in the same section
|
||||
|
||||
data import
|
||||
|
||||
library kernel32,'KERNEL32.DLL',\
|
||||
user32,'USER32.DLL',\
|
||||
winmm,'WINMM.DLL'
|
||||
|
||||
import kernel32,\
|
||||
ExitProcess,'ExitProcess'
|
||||
|
||||
import user32,\
|
||||
MessageBoxA,'MessageBoxA'
|
||||
|
||||
import winmm,\
|
||||
mciSendString,'mciSendStringA'
|
||||
|
||||
end data
|
||||
299
fasmw172/EXAMPLES/DDRAW/DDRAW.ASM
Normal file
299
fasmw172/EXAMPLES/DDRAW/DDRAW.ASM
Normal file
@@ -0,0 +1,299 @@
|
||||
|
||||
; DirectDraw programming example
|
||||
|
||||
format PE GUI 4.0
|
||||
entry start
|
||||
|
||||
include 'win32a.inc'
|
||||
|
||||
include 'ddraw.inc'
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
start:
|
||||
|
||||
invoke GetModuleHandleA,NULL
|
||||
mov [hinstance],eax
|
||||
|
||||
invoke LoadIconA,NULL,IDI_APPLICATION
|
||||
mov [wc.hIcon],eax
|
||||
|
||||
invoke LoadCursorA,NULL,IDC_ARROW
|
||||
mov [wc.hCursor],eax
|
||||
|
||||
mov [wc.style],0
|
||||
mov [wc.lpfnWndProc],WindowProc
|
||||
mov [wc.cbClsExtra],0
|
||||
mov [wc.cbWndExtra],0
|
||||
mov eax,[hinstance]
|
||||
mov [wc.hInstance],eax
|
||||
mov [wc.hbrBackground],0
|
||||
mov dword [wc.lpszMenuName],NULL
|
||||
mov dword [wc.lpszClassName],_class
|
||||
invoke RegisterClassA,wc
|
||||
test eax,eax
|
||||
jz startup_error
|
||||
|
||||
invoke CreateWindowExA,\
|
||||
0,_class,_title,WS_POPUP+WS_VISIBLE,0,0,0,0,NULL,NULL,[hinstance],NULL
|
||||
test eax,eax
|
||||
jz startup_error
|
||||
mov [hwnd],eax
|
||||
|
||||
invoke DirectDrawCreate,NULL,DDraw,NULL
|
||||
or eax,eax
|
||||
jnz ddraw_error
|
||||
|
||||
cominvk DDraw,SetCooperativeLevel,\
|
||||
[hwnd],DDSCL_EXCLUSIVE+DDSCL_FULLSCREEN
|
||||
or eax,eax
|
||||
jnz ddraw_error
|
||||
|
||||
cominvk DDraw,SetDisplayMode,\
|
||||
640,480,8
|
||||
or eax,eax
|
||||
jnz ddraw_error
|
||||
|
||||
mov [ddsd.dwSize],sizeof.DDSURFACEDESC
|
||||
mov [ddsd.dwFlags],DDSD_CAPS+DDSD_BACKBUFFERCOUNT
|
||||
mov [ddsd.ddsCaps.dwCaps],DDSCAPS_PRIMARYSURFACE+DDSCAPS_FLIP+DDSCAPS_COMPLEX
|
||||
mov [ddsd.dwBackBufferCount],1
|
||||
cominvk DDraw,CreateSurface,\
|
||||
ddsd,DDSPrimary,NULL
|
||||
or eax,eax
|
||||
jnz ddraw_error
|
||||
|
||||
mov [ddscaps.dwCaps],DDSCAPS_BACKBUFFER
|
||||
cominvk DDSPrimary,GetAttachedSurface,\
|
||||
ddscaps,DDSBack
|
||||
or eax,eax
|
||||
jnz ddraw_error
|
||||
|
||||
mov esi,picture
|
||||
call load_picture
|
||||
jc open_error
|
||||
|
||||
mov esi,picture
|
||||
call load_palette
|
||||
jc open_error
|
||||
|
||||
invoke GetTickCount
|
||||
mov [last_tick],eax
|
||||
|
||||
jmp paint
|
||||
|
||||
main_loop:
|
||||
|
||||
invoke PeekMessageA,msg,NULL,0,0,PM_NOREMOVE
|
||||
or eax,eax
|
||||
jz no_message
|
||||
invoke GetMessageA,msg,NULL,0,0
|
||||
or eax,eax
|
||||
jz end_loop
|
||||
invoke TranslateMessage,msg
|
||||
invoke DispatchMessageA,msg
|
||||
|
||||
jmp main_loop
|
||||
|
||||
no_message:
|
||||
cmp [active],0
|
||||
je sleep
|
||||
|
||||
cominvk DDSPrimary,IsLost
|
||||
or eax,eax
|
||||
jz paint
|
||||
cmp eax,DDERR_SURFACELOST
|
||||
jne end_loop
|
||||
|
||||
cominvk DDSPrimary,Restore
|
||||
|
||||
paint:
|
||||
|
||||
mov [rect.top],0
|
||||
mov [rect.bottom],480
|
||||
mov [rect.left],0
|
||||
mov [rect.right],640
|
||||
|
||||
cominvk DDSBack,BltFast,\
|
||||
0,0,[DDSPicture],rect,DDBLTFAST_SRCCOLORKEY
|
||||
or eax,eax
|
||||
jnz paint_done
|
||||
|
||||
movzx eax,[frame]
|
||||
xor edx,edx
|
||||
mov ebx,10
|
||||
div ebx
|
||||
|
||||
sal eax,6
|
||||
add eax,480
|
||||
mov [rect.top],eax
|
||||
add eax,64
|
||||
mov [rect.bottom],eax
|
||||
sal edx,6
|
||||
mov [rect.left],edx
|
||||
add edx,64
|
||||
mov [rect.right],edx
|
||||
|
||||
cominvk DDSBack,BltFast,\
|
||||
[x],[y],[DDSPicture],rect,DDBLTFAST_SRCCOLORKEY
|
||||
|
||||
cominvk DDSPrimary,SetPalette,[DDPalette]
|
||||
|
||||
cominvk DDSPrimary,Flip,0,0
|
||||
|
||||
paint_done:
|
||||
|
||||
invoke GetTickCount
|
||||
mov ebx,eax
|
||||
sub ebx,[last_tick]
|
||||
cmp ebx,20
|
||||
jb main_loop
|
||||
add [last_tick],20
|
||||
|
||||
inc [frame]
|
||||
cmp [frame],60
|
||||
jb main_loop
|
||||
mov [frame],0
|
||||
jmp main_loop
|
||||
|
||||
sleep:
|
||||
invoke WaitMessage
|
||||
jmp main_loop
|
||||
|
||||
ddraw_error:
|
||||
mov eax,_ddraw_error
|
||||
jmp error
|
||||
open_error:
|
||||
mov eax,_open_error
|
||||
error:
|
||||
invoke MessageBoxA,[hwnd],eax,_error,MB_OK+MB_ICONERROR
|
||||
invoke DestroyWindow,[hwnd]
|
||||
invoke PostQuitMessage,1
|
||||
jmp main_loop
|
||||
startup_error:
|
||||
invoke MessageBoxA,[hwnd],_startup_error,_error,MB_OK+MB_ICONERROR
|
||||
end_loop:
|
||||
invoke ExitProcess,[msg.wParam]
|
||||
|
||||
include 'gif87a.inc'
|
||||
|
||||
proc WindowProc hwnd,wmsg,wparam,lparam
|
||||
push ebx esi edi
|
||||
mov eax,[wmsg]
|
||||
cmp eax,WM_CREATE
|
||||
je .wmcreate
|
||||
cmp eax,WM_DESTROY
|
||||
je .wmdestroy
|
||||
cmp eax,WM_ACTIVATE
|
||||
je .wmactivate
|
||||
cmp eax,WM_SETCURSOR
|
||||
je .wmsetcursor
|
||||
cmp eax,WM_MOUSEMOVE
|
||||
je .wmmousemove
|
||||
cmp eax,WM_KEYDOWN
|
||||
je .wmkeydown
|
||||
.defwindowproc:
|
||||
invoke DefWindowProcA,[hwnd],[wmsg],[wparam],[lparam]
|
||||
jmp .finish
|
||||
.wmcreate:
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.wmkeydown:
|
||||
cmp [wparam],VK_ESCAPE
|
||||
jne .finish
|
||||
.wmdestroy:
|
||||
cominvk DDraw,RestoreDisplayMode
|
||||
cominvk DDraw,Release
|
||||
invoke PostQuitMessage,0
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.wmactivate:
|
||||
mov eax,[wparam]
|
||||
mov [active],al
|
||||
jmp .finish
|
||||
.wmsetcursor:
|
||||
invoke SetCursor,0
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.wmmousemove:
|
||||
movsx eax,word [lparam]
|
||||
mov [x],eax
|
||||
movsx eax,word [lparam+2]
|
||||
mov [y],eax
|
||||
.finish:
|
||||
pop edi esi ebx
|
||||
ret
|
||||
endp
|
||||
|
||||
section '.data' data readable writeable
|
||||
|
||||
_title db 'flat assembler DirectDraw application',0
|
||||
_class db 'FDDRAW32',0
|
||||
|
||||
_error db 'Error',0
|
||||
_startup_error db 'Startup failed.',0
|
||||
_ddraw_error db 'Direct Draw initialization failed.',0
|
||||
_open_error db 'Failed opening data file.',0
|
||||
|
||||
picture db 'DDRAW.GIF',0
|
||||
|
||||
section '.bss' readable writeable
|
||||
|
||||
hinstance dd ?
|
||||
hwnd dd ?
|
||||
wc WNDCLASS
|
||||
msg MSG
|
||||
|
||||
ddsd DDSURFACEDESC
|
||||
ddscaps DDSCAPS
|
||||
|
||||
DDraw DirectDraw
|
||||
DDSPrimary DirectDrawSurface
|
||||
DDSBack DirectDrawSurface
|
||||
|
||||
DDSPicture DirectDrawSurface
|
||||
DDPalette DirectDrawPalette
|
||||
|
||||
bytes_count dd ?
|
||||
last_tick dd ?
|
||||
frame db ?
|
||||
active db ?
|
||||
LZW_bits db ?
|
||||
LZW_table rd (0F00h-2)*2
|
||||
buffer rb 40000h
|
||||
rect RECT
|
||||
x dd ?
|
||||
y dd ?
|
||||
|
||||
section '.idata' import data readable
|
||||
|
||||
library kernel,'KERNEL32.DLL',\
|
||||
user,'USER32.DLL',\
|
||||
ddraw,'DDRAW.DLL'
|
||||
|
||||
import kernel,\
|
||||
GetModuleHandleA,'GetModuleHandleA',\
|
||||
CreateFileA,'CreateFileA',\
|
||||
ReadFile,'ReadFile',\
|
||||
CloseHandle,'CloseHandle',\
|
||||
GetTickCount,'GetTickCount',\
|
||||
ExitProcess,'ExitProcess'
|
||||
|
||||
import user,\
|
||||
RegisterClassA,'RegisterClassA',\
|
||||
CreateWindowExA,'CreateWindowExA',\
|
||||
DestroyWindow,'DestroyWindow',\
|
||||
DefWindowProcA,'DefWindowProcA',\
|
||||
GetMessageA,'GetMessageA',\
|
||||
PeekMessageA,'PeekMessageA',\
|
||||
TranslateMessage,'TranslateMessage',\
|
||||
DispatchMessageA,'DispatchMessageA',\
|
||||
LoadCursorA,'LoadCursorA',\
|
||||
LoadIconA,'LoadIconA',\
|
||||
SetCursor,'SetCursor',\
|
||||
MessageBoxA,'MessageBoxA',\
|
||||
PostQuitMessage,'PostQuitMessage',\
|
||||
WaitMessage,'WaitMessage'
|
||||
|
||||
import ddraw,\
|
||||
DirectDrawCreate,'DirectDrawCreate'
|
||||
BIN
fasmw172/EXAMPLES/DDRAW/DDRAW.GIF
Normal file
BIN
fasmw172/EXAMPLES/DDRAW/DDRAW.GIF
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 57 KiB |
424
fasmw172/EXAMPLES/DDRAW/DDRAW.INC
Normal file
424
fasmw172/EXAMPLES/DDRAW/DDRAW.INC
Normal file
@@ -0,0 +1,424 @@
|
||||
|
||||
; DirectDraw interface
|
||||
|
||||
interface DirectDraw,\
|
||||
QueryInterface,\
|
||||
AddRef,\
|
||||
Release,\
|
||||
Compact,\
|
||||
CreateClipper,\
|
||||
CreatePalette,\
|
||||
CreateSurface,\
|
||||
DuplicateSurface,\
|
||||
EnumDisplayModes,\
|
||||
EnumSurfaces,\
|
||||
FlipToGDISurface,\
|
||||
GetCaps,\
|
||||
GetDisplayMode,\
|
||||
GetFourCCCodes,\
|
||||
GetGDISurface,\
|
||||
GetMonitorFrequency,\
|
||||
GetScanLine,\
|
||||
GetVerticalBlankStatus,\
|
||||
Initialize,\
|
||||
RestoreDisplayMode,\
|
||||
SetCooperativeLevel,\
|
||||
SetDisplayMode,\
|
||||
WaitForVerticalBlank,\
|
||||
GetAvailableVidMem,\
|
||||
GetSurfaceFromDC,\
|
||||
RestoreAllSurfaces,\
|
||||
TestCooperativeLevel,\
|
||||
GetDeviceIdentifier,\
|
||||
StartModeTest,\
|
||||
EvaluateMode
|
||||
|
||||
interface DirectDrawSurface,\
|
||||
QueryInterface,\
|
||||
AddRef,\
|
||||
Release,\
|
||||
AddAttachedSurface,\
|
||||
AddOverlayDirtyRect,\
|
||||
Blt,\
|
||||
BltBatch,\
|
||||
BltFast,\
|
||||
DeleteAttachedSurface,\
|
||||
EnumAttachedSurfaces,\
|
||||
EnumOverlayZOrders,\
|
||||
Flip,\
|
||||
GetAttachedSurface,\
|
||||
GetBltStatus,\
|
||||
GetCaps,\
|
||||
GetClipper,\
|
||||
GetColorKey,\
|
||||
GetDC,\
|
||||
GetFlipStatus,\
|
||||
GetOverlayPosition,\
|
||||
GetPalette,\
|
||||
GetPixelFormat,\
|
||||
GetSurfaceDesc,\
|
||||
Initialize,\
|
||||
IsLost,\
|
||||
Lock,\
|
||||
ReleaseDC,\
|
||||
Restore,\
|
||||
SetClipper,\
|
||||
SetColorKey,\
|
||||
SetOverlayPosition,\
|
||||
SetPalette,\
|
||||
Unlock,\
|
||||
UpdateOverlay,\
|
||||
UpdateOverlayDisplay,\
|
||||
UpdateOverlayZOrder,\
|
||||
GetDDInterface,\
|
||||
PageLock,\
|
||||
PageUnlock,\
|
||||
SetSurfaceDesc,\
|
||||
SetPrivateData,\
|
||||
GetPrivateData,\
|
||||
FreePrivateData,\
|
||||
GetUniquenessValue,\
|
||||
ChangeUniquenessValue,\
|
||||
SetPriority,\
|
||||
GetPriority,\
|
||||
SetLOD,\
|
||||
GetLOD
|
||||
|
||||
interface DirectDrawPalette,\
|
||||
QueryInterface,\
|
||||
AddRef,\
|
||||
Release,\
|
||||
GetCaps,\
|
||||
GetEntries,\
|
||||
Initialize,\
|
||||
SetEntries
|
||||
|
||||
interface DirectDrawClipper,\
|
||||
QueryInterface,\
|
||||
AddRef,\
|
||||
Release,\
|
||||
GetClipList,\
|
||||
GetHWnd,\
|
||||
Initialize,\
|
||||
IsClipListChanged,\
|
||||
SetClipList,\
|
||||
SetHWnd
|
||||
|
||||
interface DirectDrawColorControl,\
|
||||
QueryInterface,\
|
||||
AddRef,\
|
||||
Release,\
|
||||
GetColorControls,\
|
||||
SetColorControls
|
||||
|
||||
interface DirectDrawGammaControl,\
|
||||
QueryInterface,\
|
||||
AddRef,\
|
||||
Release,\
|
||||
GetGammaRamp,\
|
||||
SetGammaRamp
|
||||
|
||||
struct DDCOLORKEY
|
||||
dwColorSpaceLowValue dd ?
|
||||
dwColorSpaceHighValue dd ?
|
||||
ends
|
||||
|
||||
struct DDPIXELFORMAT
|
||||
dwSize dd ?
|
||||
dwFlags dd ?
|
||||
dwFourCC dd ?
|
||||
union
|
||||
dwRGBBitCount dd ?
|
||||
dwYUVBitCount dd ?
|
||||
dwZBufferBitDepth dd ?
|
||||
dwAlphaBitDepth dd ?
|
||||
dwLuminanceBitCount dd ?
|
||||
dwBumpBitCount dd ?
|
||||
ends
|
||||
union
|
||||
dwRBitMask dd ?
|
||||
dwYBitMask dd ?
|
||||
dwStencilBitDepth dd ?
|
||||
dwLuminanceBitMask dd ?
|
||||
dwBumpDuBitMask dd ?
|
||||
ends
|
||||
union
|
||||
dwGBitMask dd ?
|
||||
dwUBitMask dd ?
|
||||
dwZBitMask dd ?
|
||||
dwBumpDvBitMask dd ?
|
||||
ends
|
||||
union
|
||||
dwBBitMask dd ?
|
||||
dwVBitMask dd ?
|
||||
dwStencilBitMask dd ?
|
||||
dwBumpLuminanceBitMask dd ?
|
||||
ends
|
||||
union
|
||||
dwRGBAlphaBitMask dd ?
|
||||
dwYUVAlphaBitMask dd ?
|
||||
dwLuminanceAlphaBitMask dd ?
|
||||
dwRGBZBitMask dd ?
|
||||
dwYUVZBitMask dd ?
|
||||
ends
|
||||
ends
|
||||
|
||||
struct DDSCAPS
|
||||
dwCaps dd ?
|
||||
ends
|
||||
|
||||
struct DDSURFACEDESC
|
||||
dwSize dd ?
|
||||
dwFlags dd ?
|
||||
dwHeight dd ?
|
||||
dwWidth dd ?
|
||||
union
|
||||
lPitch dd ?
|
||||
dwLinearSize dd ?
|
||||
ends
|
||||
dwBackBufferCount dd ?
|
||||
union
|
||||
dwMipMapCount dd ?
|
||||
dwZBufferBitDepth dd ?
|
||||
dwRefreshRate dd ?
|
||||
ends
|
||||
dwAlphaBitDepth dd ?
|
||||
dwReserved dd ?
|
||||
lpSurface dd ?
|
||||
ddckCKDestOverlay DDCOLORKEY
|
||||
ddckCKDestBlt DDCOLORKEY
|
||||
ddckCKSrcOverlay DDCOLORKEY
|
||||
ddckCKSrcBlt DDCOLORKEY
|
||||
ddpfPixelFormat DDPIXELFORMAT
|
||||
ddsCaps DDSCAPS
|
||||
ends
|
||||
|
||||
; SetCooperativeLevel flags
|
||||
|
||||
DDSCL_FULLSCREEN = 000000001h
|
||||
DDSCL_ALLOWREBOOT = 000000002h
|
||||
DDSCL_NOWINDOWCHANGES = 000000004h
|
||||
DDSCL_NORMAL = 000000008h
|
||||
DDSCL_EXCLUSIVE = 000000010h
|
||||
DDSCL_ALLOWMODEX = 000000040h
|
||||
|
||||
; Blt flags
|
||||
|
||||
DDBLT_ALPHADEST = 000000001h
|
||||
DDBLT_ALPHADESTCONSTOVERRIDE = 000000002h
|
||||
DDBLT_ALPHADESTNEG = 000000004h
|
||||
DDBLT_ALPHADESTSURFACEOVERRIDE = 000000008h
|
||||
DDBLT_ALPHAEDGEBLEND = 000000010h
|
||||
DDBLT_ALPHASRC = 000000020h
|
||||
DDBLT_ALPHASRCCONSTOVERRIDE = 000000040h
|
||||
DDBLT_ALPHASRCNEG = 000000080h
|
||||
DDBLT_ALPHASRCSURFACEOVERRIDE = 000000100h
|
||||
DDBLT_ASYNC = 000000200h
|
||||
DDBLT_COLORFILL = 000000400h
|
||||
DDBLT_DDFX = 000000800h
|
||||
DDBLT_DDROPS = 000001000h
|
||||
DDBLT_KEYDEST = 000002000h
|
||||
DDBLT_KEYDESTOVERRIDE = 000004000h
|
||||
DDBLT_KEYSRC = 000008000h
|
||||
DDBLT_KEYSRCOVERRIDE = 000010000h
|
||||
DDBLT_ROP = 000020000h
|
||||
DDBLT_ROTATIONANGLE = 000040000h
|
||||
DDBLT_ZBUFFER = 000080000h
|
||||
DDBLT_ZBUFFERDESTCONSTOVERRIDE = 000100000h
|
||||
DDBLT_ZBUFFERDESTOVERRIDE = 000200000h
|
||||
DDBLT_ZBUFFERSRCCONSTOVERRIDE = 000400000h
|
||||
DDBLT_ZBUFFERSRCOVERRIDE = 000800000h
|
||||
DDBLT_WAIT = 001000000h
|
||||
DDBLT_DEPTHFILL = 002000000h
|
||||
|
||||
; BltFast flags
|
||||
|
||||
DDBLTFAST_NOCOLORKEY = 000000000h
|
||||
DDBLTFAST_SRCCOLORKEY = 000000001h
|
||||
DDBLTFAST_DESTCOLORKEY = 000000002h
|
||||
DDBLTFAST_WAIT = 000000010h
|
||||
|
||||
; Flip flags
|
||||
|
||||
DDFLIP_WAIT = 000000001h
|
||||
DDFLIP_EVEN = 000000002h
|
||||
DDFLIP_ODD = 000000004h
|
||||
|
||||
; DDSURFACEDESC field flags
|
||||
|
||||
DDSD_CAPS = 000000001h
|
||||
DDSD_HEIGHT = 000000002h
|
||||
DDSD_WIDTH = 000000004h
|
||||
DDSD_PITCH = 000000008h
|
||||
DDSD_BACKBUFFERCOUNT = 000000020h
|
||||
DDSD_ZBUFFERBITDEPTH = 000000040h
|
||||
DDSD_ALPHABITDEPTH = 000000080h
|
||||
DDSD_LPSURFACE = 000000800h
|
||||
DDSD_PIXELFORMAT = 000001000h
|
||||
DDSD_CKDESTOVERLAY = 000002000h
|
||||
DDSD_CKDESTBLT = 000004000h
|
||||
DDSD_CKSRCOVERLAY = 000008000h
|
||||
DDSD_CKSRCBLT = 000010000h
|
||||
DDSD_MIPMAPCOUNT = 000020000h
|
||||
DDSD_REFRESHRATE = 000040000h
|
||||
DDSD_LINEARSIZE = 000080000h
|
||||
DDSD_ALL = 0000FF9EEh
|
||||
|
||||
; DirectDrawSurface capability flags
|
||||
|
||||
DDSCAPS_RESERVED1 = 000000001h
|
||||
DDSCAPS_ALPHA = 000000002h
|
||||
DDSCAPS_BACKBUFFER = 000000004h
|
||||
DDSCAPS_COMPLEX = 000000008h
|
||||
DDSCAPS_FLIP = 000000010h
|
||||
DDSCAPS_FRONTBUFFER = 000000020h
|
||||
DDSCAPS_OFFSCREENPLAIN = 000000040h
|
||||
DDSCAPS_OVERLAY = 000000080h
|
||||
DDSCAPS_PALETTE = 000000100h
|
||||
DDSCAPS_PRIMARYSURFACE = 000000200h
|
||||
DDSCAPS_PRIMARYSURFACELEFT = 000000400h
|
||||
DDSCAPS_SYSTEMMEMORY = 000000800h
|
||||
DDSCAPS_TEXTURE = 000001000h
|
||||
DDSCAPS_3DDEVICE = 000002000h
|
||||
DDSCAPS_VIDEOMEMORY = 000004000h
|
||||
DDSCAPS_VISIBLE = 000008000h
|
||||
DDSCAPS_WRITEONLY = 000010000h
|
||||
DDSCAPS_ZBUFFER = 000020000h
|
||||
DDSCAPS_OWNDC = 000040000h
|
||||
DDSCAPS_LIVEVIDEO = 000080000h
|
||||
DDSCAPS_HWCODEC = 000100000h
|
||||
DDSCAPS_MODEX = 000200000h
|
||||
DDSCAPS_MIPMAP = 000400000h
|
||||
DDSCAPS_RESERVED2 = 000800000h
|
||||
DDSCAPS_ALLOCONLOAD = 004000000h
|
||||
DDSCAPS_VIDEOPORT = 008000000h
|
||||
DDSCAPS_LOCALVIDMEM = 010000000h
|
||||
DDSCAPS_NONLOCALVIDMEM = 020000000h
|
||||
DDSCAPS_STANDARDVGAMODE = 040000000h
|
||||
DDSCAPS_OPTIMIZED = 080000000h
|
||||
|
||||
; DirectDrawSurface lock flags
|
||||
|
||||
DDLOCK_SURFACEMEMORYPTR = 000000000h
|
||||
DDLOCK_WAIT = 000000001h
|
||||
DDLOCK_EVENT = 000000002h
|
||||
DDLOCK_READONLY = 000000010h
|
||||
DDLOCK_WRITEONLY = 000000020h
|
||||
DDLOCK_NOSYSLOCK = 000000800h
|
||||
|
||||
; DirectDrawPalette capabilities
|
||||
|
||||
DDPCAPS_4BIT = 000000001h
|
||||
DDPCAPS_8BITENTRIES = 000000002h
|
||||
DDPCAPS_8BIT = 000000004h
|
||||
DDPCAPS_INITIALIZE = 000000008h
|
||||
DDPCAPS_PRIMARYSURFACE = 000000010h
|
||||
DDPCAPS_PRIMARYSURFACELEFT = 000000020h
|
||||
DDPCAPS_ALLOW256 = 000000040h
|
||||
DDPCAPS_VSYNC = 000000080h
|
||||
DDPCAPS_1BIT = 000000100h
|
||||
DDPCAPS_2BIT = 000000200h
|
||||
|
||||
; DirectDraw errors
|
||||
|
||||
DDERR_ALREADYINITIALIZED = 088760000h+5
|
||||
DDERR_CANNOTATTACHSURFACE = 088760000h+10
|
||||
DDERR_CANNOTDETACHSURFACE = 088760000h+20
|
||||
DDERR_CURRENTLYNOTAVAIL = 088760000h+40
|
||||
DDERR_EXCEPTION = 088760000h+55
|
||||
DDERR_HEIGHTALIGN = 088760000h+90
|
||||
DDERR_INCOMPATIBLEPRIMARY = 088760000h+95
|
||||
DDERR_INVALIDCAPS = 088760000h+100
|
||||
DDERR_INVALIDCLIPLIST = 088760000h+110
|
||||
DDERR_INVALIDMODE = 088760000h+120
|
||||
DDERR_INVALIDOBJECT = 088760000h+130
|
||||
DDERR_INVALIDPIXELFORMAT = 088760000h+145
|
||||
DDERR_INVALIDRECT = 088760000h+150
|
||||
DDERR_LOCKEDSURFACES = 088760000h+160
|
||||
DDERR_NO3D = 088760000h+170
|
||||
DDERR_NOALPHAHW = 088760000h+180
|
||||
DDERR_NOCLIPLIST = 088760000h+205
|
||||
DDERR_NOCOLORCONVHW = 088760000h+210
|
||||
DDERR_NOCOOPERATIVELEVELSET = 088760000h+212
|
||||
DDERR_NOCOLORKEY = 088760000h+215
|
||||
DDERR_NOCOLORKEYHW = 088760000h+220
|
||||
DDERR_NODIRECTDRAWSUPPORT = 088760000h+222
|
||||
DDERR_NOEXCLUSIVEMODE = 088760000h+225
|
||||
DDERR_NOFLIPHW = 088760000h+230
|
||||
DDERR_NOGDI = 088760000h+240
|
||||
DDERR_NOMIRRORHW = 088760000h+250
|
||||
DDERR_NOTFOUND = 088760000h+255
|
||||
DDERR_NOOVERLAYHW = 088760000h+260
|
||||
DDERR_NORASTEROPHW = 088760000h+280
|
||||
DDERR_NOROTATIONHW = 088760000h+290
|
||||
DDERR_NOSTRETCHHW = 088760000h+310
|
||||
DDERR_NOT4BITCOLOR = 088760000h+316
|
||||
DDERR_NOT4BITCOLORINDEX = 088760000h+317
|
||||
DDERR_NOT8BITCOLOR = 088760000h+320
|
||||
DDERR_NOTEXTUREHW = 088760000h+330
|
||||
DDERR_NOVSYNCHW = 088760000h+335
|
||||
DDERR_NOZBUFFERHW = 088760000h+340
|
||||
DDERR_NOZOVERLAYHW = 088760000h+350
|
||||
DDERR_OUTOFCAPS = 088760000h+360
|
||||
DDERR_OUTOFVIDEOMEMORY = 088760000h+380
|
||||
DDERR_OVERLAYCANTCLIP = 088760000h+382
|
||||
DDERR_OVERLAYCOLORKEYONLYONEACTI = 088760000h+384
|
||||
DDERR_PALETTEBUSY = 088760000h+387
|
||||
DDERR_COLORKEYNOTSET = 088760000h+400
|
||||
DDERR_SURFACEALREADYATTACHED = 088760000h+410
|
||||
DDERR_SURFACEALREADYDEPENDENT = 088760000h+420
|
||||
DDERR_SURFACEBUSY = 088760000h+430
|
||||
DDERR_CANTLOCKSURFACE = 088760000h+435
|
||||
DDERR_SURFACEISOBSCURED = 088760000h+440
|
||||
DDERR_SURFACELOST = 088760000h+450
|
||||
DDERR_SURFACENOTATTACHED = 088760000h+460
|
||||
DDERR_TOOBIGHEIGHT = 088760000h+470
|
||||
DDERR_TOOBIGSIZE = 088760000h+480
|
||||
DDERR_TOOBIGWIDTH = 088760000h+490
|
||||
DDERR_UNSUPPORTEDFORMAT = 088760000h+510
|
||||
DDERR_UNSUPPORTEDMASK = 088760000h+520
|
||||
DDERR_VERTICALBLANKINPROGRESS = 088760000h+537
|
||||
DDERR_WASSTILLDRAWING = 088760000h+540
|
||||
DDERR_XALIGN = 088760000h+560
|
||||
DDERR_INVALIDDIRECTDRAWGUID = 088760000h+561
|
||||
DDERR_DIRECTDRAWALREADYCREATED = 088760000h+562
|
||||
DDERR_NODIRECTDRAWHW = 088760000h+563
|
||||
DDERR_PRIMARYSURFACEALREADYEXIST = 088760000h+564
|
||||
DDERR_NOEMULATION = 088760000h+565
|
||||
DDERR_REGIONTOOSMALL = 088760000h+566
|
||||
DDERR_CLIPPERISUSINGHWND = 088760000h+567
|
||||
DDERR_NOCLIPPERATTACHED = 088760000h+568
|
||||
DDERR_NOHWND = 088760000h+569
|
||||
DDERR_HWNDSUBCLASSED = 088760000h+570
|
||||
DDERR_HWNDALREADYSET = 088760000h+571
|
||||
DDERR_NOPALETTEATTACHED = 088760000h+572
|
||||
DDERR_NOPALETTEHW = 088760000h+573
|
||||
DDERR_BLTFASTCANTCLIP = 088760000h+574
|
||||
DDERR_NOBLTHW = 088760000h+575
|
||||
DDERR_NODDROPSHW = 088760000h+576
|
||||
DDERR_OVERLAYNOTVISIBLE = 088760000h+577
|
||||
DDERR_NOOVERLAYDEST = 088760000h+578
|
||||
DDERR_INVALIDPOSITION = 088760000h+579
|
||||
DDERR_NOTAOVERLAYSURFACE = 088760000h+580
|
||||
DDERR_EXCLUSIVEMODEALREADYSET = 088760000h+581
|
||||
DDERR_NOTFLIPPABLE = 088760000h+582
|
||||
DDERR_CANTDUPLICATE = 088760000h+583
|
||||
DDERR_NOTLOCKED = 088760000h+584
|
||||
DDERR_CANTCREATEDC = 088760000h+585
|
||||
DDERR_NODC = 088760000h+586
|
||||
DDERR_WRONGMODE = 088760000h+587
|
||||
DDERR_IMPLICITLYCREATED = 088760000h+588
|
||||
DDERR_NOTPALETTIZED = 088760000h+589
|
||||
DDERR_UNSUPPORTEDMODE = 088760000h+590
|
||||
DDERR_NOMIPMAPHW = 088760000h+591
|
||||
DDERR_INVALIDSURFACETYPE = 088760000h+592
|
||||
DDERR_NOOPTIMIZEHW = 088760000h+600
|
||||
DDERR_NOTLOADED = 088760000h+601
|
||||
DDERR_DCALREADYCREATED = 088760000h+620
|
||||
DDERR_NONONLOCALVIDMEM = 088760000h+630
|
||||
DDERR_CANTPAGELOCK = 088760000h+640
|
||||
DDERR_CANTPAGEUNLOCK = 088760000h+660
|
||||
DDERR_NOTPAGELOCKED = 088760000h+680
|
||||
DDERR_MOREDATA = 088760000h+690
|
||||
DDERR_VIDEONOTACTIVE = 088760000h+695
|
||||
DDERR_DEVICEDOESNTOWNSURFACE = 088760000h+699
|
||||
194
fasmw172/EXAMPLES/DDRAW/GIF87A.INC
Normal file
194
fasmw172/EXAMPLES/DDRAW/GIF87A.INC
Normal file
@@ -0,0 +1,194 @@
|
||||
|
||||
virtual at buffer
|
||||
GIFHEADER:
|
||||
.ID dd ?
|
||||
.ver dw ?
|
||||
.width dw ?
|
||||
.height dw ?
|
||||
.bits db ?
|
||||
.background db ?
|
||||
.reserved db ?
|
||||
.length = $ - GIFHEADER
|
||||
end virtual
|
||||
|
||||
load_picture:
|
||||
|
||||
invoke CreateFileA,esi,GENERIC_READ,0,0,OPEN_EXISTING,0,0
|
||||
mov edi,eax
|
||||
invoke ReadFile,edi,GIFHEADER,40000h,bytes_count,0
|
||||
invoke CloseHandle,edi
|
||||
|
||||
cmp [GIFHEADER.ID],'GIF8'
|
||||
jne picture_error
|
||||
cmp [GIFHEADER.ver],'7a'
|
||||
jne picture_error
|
||||
|
||||
mov al,[GIFHEADER.bits]
|
||||
and al,10000111b
|
||||
cmp al,10000111b
|
||||
jne picture_error
|
||||
|
||||
add [bytes_count],buffer
|
||||
|
||||
mov esi,buffer+GIFHEADER.length+256*3
|
||||
mov edi,esi
|
||||
|
||||
xor eax,eax
|
||||
find_image:
|
||||
cmp esi,[bytes_count]
|
||||
jae picture_error
|
||||
lodsb
|
||||
cmp al,','
|
||||
je image_found
|
||||
cmp al,'!'
|
||||
jne picture_error
|
||||
inc esi
|
||||
skip_application_data:
|
||||
lodsb
|
||||
add esi,eax
|
||||
or al,al
|
||||
jnz skip_application_data
|
||||
jmp find_image
|
||||
image_found:
|
||||
add esi,4
|
||||
xor eax,eax
|
||||
lodsw
|
||||
mov ebx,eax
|
||||
lodsw
|
||||
inc esi
|
||||
cmp byte [esi],8
|
||||
jne picture_error
|
||||
inc esi
|
||||
|
||||
mov [ddsd.dwSize],sizeof.DDSURFACEDESC
|
||||
mov [ddsd.dwFlags],DDSD_CAPS+DDSD_WIDTH+DDSD_HEIGHT+DDSD_CKSRCBLT
|
||||
mov [ddsd.ddsCaps.dwCaps],DDSCAPS_OFFSCREENPLAIN+DDSCAPS_SYSTEMMEMORY
|
||||
mov [ddsd.dwWidth],ebx
|
||||
mov [ddsd.dwHeight],eax
|
||||
movzx eax,[GIFHEADER.background]
|
||||
mov [ddsd.ddckCKSrcBlt.dwColorSpaceLowValue],eax
|
||||
mov [ddsd.ddckCKSrcBlt.dwColorSpaceHighValue],eax
|
||||
cominvk DDraw,CreateSurface,\
|
||||
ddsd,DDSPicture,0
|
||||
or eax,eax
|
||||
jnz picture_error
|
||||
cominvk DDSPicture,Lock,\
|
||||
0,ddsd,DDLOCK_WAIT,0
|
||||
|
||||
mov edi,esi
|
||||
mov edx,esi
|
||||
mov ebx,buffer
|
||||
add ebx,[bytes_count]
|
||||
link_streams:
|
||||
cmp esi,[bytes_count]
|
||||
jae picture_error
|
||||
lodsb
|
||||
movzx ecx,al
|
||||
rep movsb
|
||||
or al,al
|
||||
jnz link_streams
|
||||
|
||||
mov edi,[ddsd.lpSurface]
|
||||
mov ebx,edx
|
||||
mov [LZW_bits],0
|
||||
LZW_clear:
|
||||
xor edx,edx
|
||||
LZW_decompress_loop:
|
||||
mov ch,9
|
||||
cmp edx,(100h-2)*8
|
||||
jbe LZW_read_bits
|
||||
mov ch,10
|
||||
cmp edx,(300h-2)*8
|
||||
jbe LZW_read_bits
|
||||
mov ch,11
|
||||
cmp edx,(700h-2)*8
|
||||
jbe LZW_read_bits
|
||||
mov ch,12
|
||||
LZW_read_bits:
|
||||
mov cl,[LZW_bits]
|
||||
mov eax,[ebx]
|
||||
shr eax,cl
|
||||
xchg cl,ch
|
||||
mov esi,1
|
||||
shl esi,cl
|
||||
dec esi
|
||||
and eax,esi
|
||||
add cl,ch
|
||||
LZW_read_bits_count:
|
||||
cmp cl,8
|
||||
jbe LZW_read_bits_ok
|
||||
sub cl,8
|
||||
inc ebx
|
||||
jmp LZW_read_bits_count
|
||||
LZW_read_bits_ok:
|
||||
mov [LZW_bits],cl
|
||||
cmp eax,100h
|
||||
jb LZW_single_byte
|
||||
je LZW_clear
|
||||
sub eax,102h
|
||||
jc LZW_end
|
||||
shl eax,3
|
||||
cmp eax,edx
|
||||
ja picture_error
|
||||
mov ecx,[LZW_table+eax]
|
||||
mov esi,[LZW_table+eax+4]
|
||||
mov [LZW_table+edx+4],edi
|
||||
rep movsb
|
||||
mov eax,[LZW_table+eax]
|
||||
inc eax
|
||||
mov [LZW_table+edx],eax
|
||||
jmp LZW_decompress_next
|
||||
LZW_single_byte:
|
||||
mov [LZW_table+edx],2
|
||||
mov [LZW_table+edx+4],edi
|
||||
stosb
|
||||
LZW_decompress_next:
|
||||
add edx,8
|
||||
jmp LZW_decompress_loop
|
||||
LZW_end:
|
||||
|
||||
cominvk DDSPicture,Unlock,0
|
||||
|
||||
mov eax,[DDSPicture]
|
||||
clc
|
||||
ret
|
||||
|
||||
picture_error:
|
||||
stc
|
||||
ret
|
||||
|
||||
load_palette:
|
||||
|
||||
invoke CreateFileA,esi,GENERIC_READ,0,0,OPEN_EXISTING,0,0
|
||||
mov edi,eax
|
||||
invoke ReadFile,edi,buffer,GIFHEADER.length+256*3,bytes_count,0
|
||||
cmp [bytes_count],GIFHEADER.length+256*3
|
||||
jne picture_error
|
||||
invoke CloseHandle,edi
|
||||
|
||||
cmp [GIFHEADER.ID],'GIF8'
|
||||
jne picture_error
|
||||
cmp [GIFHEADER.ver],'7a'
|
||||
jne picture_error
|
||||
mov al,[GIFHEADER.bits]
|
||||
and al,111b
|
||||
cmp al,111b
|
||||
jne picture_error
|
||||
|
||||
mov esi,buffer+GIFHEADER.length
|
||||
mov edi,buffer+400h
|
||||
mov ecx,256
|
||||
convert_palette:
|
||||
movsw
|
||||
movsb
|
||||
xor al,al
|
||||
stosb
|
||||
loop convert_palette
|
||||
|
||||
cominvk DDraw,CreatePalette,\
|
||||
DDPCAPS_8BIT+DDPCAPS_ALLOW256,buffer+400h,DDPalette,0
|
||||
or eax,eax
|
||||
jnz picture_error
|
||||
|
||||
clc
|
||||
ret
|
||||
130
fasmw172/EXAMPLES/DIALOG/DIALOG.ASM
Normal file
130
fasmw172/EXAMPLES/DIALOG/DIALOG.ASM
Normal file
@@ -0,0 +1,130 @@
|
||||
|
||||
; DialogBox example
|
||||
|
||||
format PE GUI 4.0
|
||||
entry start
|
||||
|
||||
include 'win32a.inc'
|
||||
|
||||
ID_CAPTION = 101
|
||||
ID_MESSAGE = 102
|
||||
ID_ICONERROR = 201
|
||||
ID_ICONINFORMATION = 202
|
||||
ID_ICONQUESTION = 203
|
||||
ID_ICONWARNING = 204
|
||||
ID_TOPMOST = 301
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
start:
|
||||
|
||||
invoke GetModuleHandle,0
|
||||
invoke DialogBoxParam,eax,37,HWND_DESKTOP,DialogProc,0
|
||||
or eax,eax
|
||||
jz exit
|
||||
invoke MessageBox,HWND_DESKTOP,message,caption,[flags]
|
||||
exit:
|
||||
invoke ExitProcess,0
|
||||
|
||||
proc DialogProc hwnddlg,msg,wparam,lparam
|
||||
push ebx esi edi
|
||||
cmp [msg],WM_INITDIALOG
|
||||
je .wminitdialog
|
||||
cmp [msg],WM_COMMAND
|
||||
je .wmcommand
|
||||
cmp [msg],WM_CLOSE
|
||||
je .wmclose
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.wminitdialog:
|
||||
invoke CheckRadioButton,[hwnddlg],ID_ICONERROR,ID_ICONWARNING,ID_ICONINFORMATION
|
||||
jmp .processed
|
||||
.wmcommand:
|
||||
cmp [wparam],BN_CLICKED shl 16 + IDCANCEL
|
||||
je .wmclose
|
||||
cmp [wparam],BN_CLICKED shl 16 + IDOK
|
||||
jne .processed
|
||||
invoke GetDlgItemText,[hwnddlg],ID_CAPTION,caption,40h
|
||||
invoke GetDlgItemText,[hwnddlg],ID_MESSAGE,message,100h
|
||||
mov [flags],MB_OK
|
||||
invoke IsDlgButtonChecked,[hwnddlg],ID_ICONERROR
|
||||
cmp eax,BST_CHECKED
|
||||
jne .iconerror_ok
|
||||
or [flags],MB_ICONERROR
|
||||
.iconerror_ok:
|
||||
invoke IsDlgButtonChecked,[hwnddlg],ID_ICONINFORMATION
|
||||
cmp eax,BST_CHECKED
|
||||
jne .iconinformation_ok
|
||||
or [flags],MB_ICONINFORMATION
|
||||
.iconinformation_ok:
|
||||
invoke IsDlgButtonChecked,[hwnddlg],ID_ICONQUESTION
|
||||
cmp eax,BST_CHECKED
|
||||
jne .iconquestion_ok
|
||||
or [flags],MB_ICONQUESTION
|
||||
.iconquestion_ok:
|
||||
invoke IsDlgButtonChecked,[hwnddlg],ID_ICONWARNING
|
||||
cmp eax,BST_CHECKED
|
||||
jne .iconwarning_ok
|
||||
or [flags],MB_ICONWARNING
|
||||
.iconwarning_ok:
|
||||
invoke IsDlgButtonChecked,[hwnddlg],ID_TOPMOST
|
||||
cmp eax,BST_CHECKED
|
||||
jne .topmost_ok
|
||||
or [flags],MB_TOPMOST
|
||||
.topmost_ok:
|
||||
invoke EndDialog,[hwnddlg],1
|
||||
jmp .processed
|
||||
.wmclose:
|
||||
invoke EndDialog,[hwnddlg],0
|
||||
.processed:
|
||||
mov eax,1
|
||||
.finish:
|
||||
pop edi esi ebx
|
||||
ret
|
||||
endp
|
||||
|
||||
section '.bss' readable writeable
|
||||
|
||||
flags dd ?
|
||||
caption rb 40h
|
||||
message rb 100h
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel,'KERNEL32.DLL',\
|
||||
user,'USER32.DLL'
|
||||
|
||||
import kernel,\
|
||||
GetModuleHandle,'GetModuleHandleA',\
|
||||
ExitProcess,'ExitProcess'
|
||||
|
||||
import user,\
|
||||
DialogBoxParam,'DialogBoxParamA',\
|
||||
CheckRadioButton,'CheckRadioButton',\
|
||||
GetDlgItemText,'GetDlgItemTextA',\
|
||||
IsDlgButtonChecked,'IsDlgButtonChecked',\
|
||||
MessageBox,'MessageBoxA',\
|
||||
EndDialog,'EndDialog'
|
||||
|
||||
section '.rsrc' resource data readable
|
||||
|
||||
directory RT_DIALOG,dialogs
|
||||
|
||||
resource dialogs,\
|
||||
37,LANG_ENGLISH+SUBLANG_DEFAULT,demonstration
|
||||
|
||||
dialog demonstration,'Create message box',70,70,190,175,WS_CAPTION+WS_POPUP+WS_SYSMENU+DS_MODALFRAME
|
||||
dialogitem 'STATIC','&Caption:',-1,10,10,70,8,WS_VISIBLE
|
||||
dialogitem 'EDIT','',ID_CAPTION,10,20,170,13,WS_VISIBLE+WS_BORDER+WS_TABSTOP
|
||||
dialogitem 'STATIC','&Message:',-1,10,40,70,8,WS_VISIBLE
|
||||
dialogitem 'EDIT','',ID_MESSAGE,10,50,170,13,WS_VISIBLE+WS_BORDER+WS_TABSTOP+ES_AUTOHSCROLL
|
||||
dialogitem 'BUTTON','&Icon',-1,10,70,80,70,WS_VISIBLE+BS_GROUPBOX
|
||||
dialogitem 'BUTTON','&Error',ID_ICONERROR,20,82,60,13,WS_VISIBLE+BS_AUTORADIOBUTTON+WS_TABSTOP+WS_GROUP
|
||||
dialogitem 'BUTTON','I&nformation',ID_ICONINFORMATION,20,95,60,13,WS_VISIBLE+BS_AUTORADIOBUTTON
|
||||
dialogitem 'BUTTON','&Question',ID_ICONQUESTION,20,108,60,13,WS_VISIBLE+BS_AUTORADIOBUTTON
|
||||
dialogitem 'BUTTON','&Warning',ID_ICONWARNING,20,121,60,13,WS_VISIBLE+BS_AUTORADIOBUTTON
|
||||
dialogitem 'BUTTON','&Style',-1,100,70,80,70,WS_VISIBLE+BS_GROUPBOX
|
||||
dialogitem 'BUTTON','&Top most',ID_TOPMOST,110,82,60,13,WS_VISIBLE+WS_TABSTOP+BS_AUTOCHECKBOX
|
||||
dialogitem 'BUTTON','OK',IDOK,85,150,45,15,WS_VISIBLE+WS_TABSTOP+BS_DEFPUSHBUTTON
|
||||
dialogitem 'BUTTON','C&ancel',IDCANCEL,135,150,45,15,WS_VISIBLE+WS_TABSTOP+BS_PUSHBUTTON
|
||||
enddialog
|
||||
55
fasmw172/EXAMPLES/DLL/ERRORMSG.ASM
Normal file
55
fasmw172/EXAMPLES/DLL/ERRORMSG.ASM
Normal file
@@ -0,0 +1,55 @@
|
||||
|
||||
; DLL creation example
|
||||
|
||||
format PE GUI 4.0 DLL
|
||||
entry DllEntryPoint
|
||||
|
||||
include 'win32a.inc'
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
proc DllEntryPoint hinstDLL,fdwReason,lpvReserved
|
||||
mov eax,TRUE
|
||||
ret
|
||||
endp
|
||||
|
||||
; VOID ShowErrorMessage(HWND hWnd,DWORD dwError);
|
||||
|
||||
proc ShowErrorMessage hWnd,dwError
|
||||
local lpBuffer:DWORD
|
||||
lea eax,[lpBuffer]
|
||||
invoke FormatMessage,FORMAT_MESSAGE_ALLOCATE_BUFFER+FORMAT_MESSAGE_FROM_SYSTEM,0,[dwError],LANG_NEUTRAL,eax,0,0
|
||||
invoke MessageBox,[hWnd],[lpBuffer],NULL,MB_ICONERROR+MB_OK
|
||||
invoke LocalFree,[lpBuffer]
|
||||
ret
|
||||
endp
|
||||
|
||||
; VOID ShowLastError(HWND hWnd);
|
||||
|
||||
proc ShowLastError hWnd
|
||||
invoke GetLastError
|
||||
stdcall ShowErrorMessage,[hWnd],eax
|
||||
ret
|
||||
endp
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel,'KERNEL32.DLL',\
|
||||
user,'USER32.DLL'
|
||||
|
||||
import kernel,\
|
||||
GetLastError,'GetLastError',\
|
||||
SetLastError,'SetLastError',\
|
||||
FormatMessage,'FormatMessageA',\
|
||||
LocalFree,'LocalFree'
|
||||
|
||||
import user,\
|
||||
MessageBox,'MessageBoxA'
|
||||
|
||||
section '.edata' export data readable
|
||||
|
||||
export 'ERRORMSG.DLL',\
|
||||
ShowErrorMessage,'ShowErrorMessage',\
|
||||
ShowLastError,'ShowLastError'
|
||||
|
||||
section '.reloc' fixups data readable discardable
|
||||
24
fasmw172/EXAMPLES/DLL/LASTERR.ASM
Normal file
24
fasmw172/EXAMPLES/DLL/LASTERR.ASM
Normal file
@@ -0,0 +1,24 @@
|
||||
|
||||
format PE GUI 4.0
|
||||
entry start
|
||||
|
||||
include 'win32a.inc'
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
start:
|
||||
invoke SetLastError,0
|
||||
invoke ShowLastError,HWND_DESKTOP
|
||||
invoke ExitProcess,0
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel,'KERNEL32.DLL',\
|
||||
errormsg,'ERRORMSG.DLL'
|
||||
|
||||
import kernel,\
|
||||
SetLastError,'SetLastError',\
|
||||
ExitProcess,'ExitProcess'
|
||||
|
||||
import errormsg,\
|
||||
ShowLastError,'ShowLastError'
|
||||
12
fasmw172/EXAMPLES/HELLO/HELLO.ASM
Normal file
12
fasmw172/EXAMPLES/HELLO/HELLO.ASM
Normal file
@@ -0,0 +1,12 @@
|
||||
|
||||
; example of simplified Windows programming using complex macro features
|
||||
|
||||
include 'win32ax.inc' ; you can simply switch between win32ax, win32wx, win64ax and win64wx here
|
||||
|
||||
.code
|
||||
|
||||
start:
|
||||
invoke MessageBox,HWND_DESKTOP,"Hi! I'm the example program!",invoke GetCommandLine,MB_OK
|
||||
invoke ExitProcess,0
|
||||
|
||||
.end start
|
||||
206
fasmw172/EXAMPLES/MINIPAD/MINIPAD.ASM
Normal file
206
fasmw172/EXAMPLES/MINIPAD/MINIPAD.ASM
Normal file
@@ -0,0 +1,206 @@
|
||||
|
||||
; Simple text editor - fasm example program
|
||||
|
||||
format PE GUI 4.0
|
||||
entry start
|
||||
|
||||
include 'win32a.inc'
|
||||
|
||||
IDR_ICON = 17
|
||||
IDR_MENU = 37
|
||||
|
||||
IDM_NEW = 101
|
||||
IDM_EXIT = 102
|
||||
IDM_ABOUT = 901
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
start:
|
||||
|
||||
invoke GetModuleHandle,0
|
||||
mov [wc.hInstance],eax
|
||||
|
||||
invoke LoadIcon,eax,IDR_ICON
|
||||
mov [wc.hIcon],eax
|
||||
invoke LoadCursor,0,IDC_ARROW
|
||||
mov [wc.hCursor],eax
|
||||
invoke RegisterClass,wc
|
||||
test eax,eax
|
||||
jz error
|
||||
|
||||
invoke LoadMenu,[wc.hInstance],IDR_MENU
|
||||
invoke CreateWindowEx,0,_class,_title,WS_VISIBLE+WS_OVERLAPPEDWINDOW,144,128,256,256,NULL,eax,[wc.hInstance],NULL
|
||||
test eax,eax
|
||||
jz error
|
||||
|
||||
msg_loop:
|
||||
invoke GetMessage,msg,NULL,0,0
|
||||
cmp eax,1
|
||||
jb end_loop
|
||||
jne msg_loop
|
||||
invoke TranslateMessage,msg
|
||||
invoke DispatchMessage,msg
|
||||
jmp msg_loop
|
||||
|
||||
error:
|
||||
invoke MessageBox,NULL,_error,NULL,MB_ICONERROR+MB_OK
|
||||
|
||||
end_loop:
|
||||
invoke ExitProcess,[msg.wParam]
|
||||
|
||||
proc WindowProc hwnd,wmsg,wparam,lparam
|
||||
push ebx esi edi
|
||||
mov eax,[wmsg]
|
||||
cmp eax,WM_CREATE
|
||||
je .wmcreate
|
||||
cmp eax,WM_SIZE
|
||||
je .wmsize
|
||||
cmp eax,WM_SETFOCUS
|
||||
je .wmsetfocus
|
||||
cmp eax,WM_COMMAND
|
||||
je .wmcommand
|
||||
cmp eax,WM_DESTROY
|
||||
je .wmdestroy
|
||||
.defwndproc:
|
||||
invoke DefWindowProc,[hwnd],[wmsg],[wparam],[lparam]
|
||||
jmp .finish
|
||||
.wmcreate:
|
||||
invoke GetClientRect,[hwnd],client
|
||||
invoke CreateWindowEx,WS_EX_CLIENTEDGE,_edit,0,WS_VISIBLE+WS_CHILD+WS_HSCROLL+WS_VSCROLL+ES_AUTOHSCROLL+ES_AUTOVSCROLL+ES_MULTILINE,[client.left],[client.top],[client.right],[client.bottom],[hwnd],0,[wc.hInstance],NULL
|
||||
or eax,eax
|
||||
jz .failed
|
||||
mov [edithwnd],eax
|
||||
invoke CreateFont,16,0,0,0,0,FALSE,FALSE,FALSE,ANSI_CHARSET,OUT_RASTER_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FIXED_PITCH+FF_DONTCARE,NULL
|
||||
or eax,eax
|
||||
jz .failed
|
||||
mov [editfont],eax
|
||||
invoke SendMessage,[edithwnd],WM_SETFONT,eax,FALSE
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.failed:
|
||||
or eax,-1
|
||||
jmp .finish
|
||||
.wmsize:
|
||||
invoke GetClientRect,[hwnd],client
|
||||
invoke MoveWindow,[edithwnd],[client.left],[client.top],[client.right],[client.bottom],TRUE
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.wmsetfocus:
|
||||
invoke SetFocus,[edithwnd]
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.wmcommand:
|
||||
mov eax,[wparam]
|
||||
and eax,0FFFFh
|
||||
cmp eax,IDM_NEW
|
||||
je .new
|
||||
cmp eax,IDM_ABOUT
|
||||
je .about
|
||||
cmp eax,IDM_EXIT
|
||||
je .wmdestroy
|
||||
jmp .defwndproc
|
||||
.new:
|
||||
invoke SendMessage,[edithwnd],WM_SETTEXT,0,0
|
||||
jmp .finish
|
||||
.about:
|
||||
invoke MessageBox,[hwnd],_about_text,_about_title,MB_OK
|
||||
jmp .finish
|
||||
.wmdestroy:
|
||||
invoke DeleteObject,[editfont]
|
||||
invoke PostQuitMessage,0
|
||||
xor eax,eax
|
||||
.finish:
|
||||
pop edi esi ebx
|
||||
ret
|
||||
endp
|
||||
|
||||
section '.data' data readable writeable
|
||||
|
||||
_title TCHAR 'MiniPad',0
|
||||
_about_title TCHAR 'About MiniPad',0
|
||||
_about_text TCHAR 'This is Win32 example program created with flat assembler.',0
|
||||
_error TCHAR 'Startup failed.',0
|
||||
|
||||
_class TCHAR 'MINIPAD32',0
|
||||
_edit TCHAR 'EDIT',0
|
||||
|
||||
wc WNDCLASS 0,WindowProc,0,0,NULL,NULL,NULL,COLOR_BTNFACE+1,NULL,_class
|
||||
|
||||
edithwnd dd ?
|
||||
editfont dd ?
|
||||
|
||||
msg MSG
|
||||
client RECT
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel,'KERNEL32.DLL',\
|
||||
user,'USER32.DLL',\
|
||||
gdi,'GDI32.DLL'
|
||||
|
||||
import kernel,\
|
||||
GetModuleHandle,'GetModuleHandleA',\
|
||||
ExitProcess,'ExitProcess'
|
||||
|
||||
import user,\
|
||||
RegisterClass,'RegisterClassA',\
|
||||
CreateWindowEx,'CreateWindowExA',\
|
||||
DefWindowProc,'DefWindowProcA',\
|
||||
SetWindowLong,'SetWindowLongA',\
|
||||
RedrawWindow,'RedrawWindow',\
|
||||
GetMessage,'GetMessageA',\
|
||||
TranslateMessage,'TranslateMessage',\
|
||||
DispatchMessage,'DispatchMessageA',\
|
||||
SendMessage,'SendMessageA',\
|
||||
LoadCursor,'LoadCursorA',\
|
||||
LoadIcon,'LoadIconA',\
|
||||
LoadMenu,'LoadMenuA',\
|
||||
GetClientRect,'GetClientRect',\
|
||||
MoveWindow,'MoveWindow',\
|
||||
SetFocus,'SetFocus',\
|
||||
MessageBox,'MessageBoxA',\
|
||||
PostQuitMessage,'PostQuitMessage'
|
||||
|
||||
import gdi,\
|
||||
CreateFont,'CreateFontA',\
|
||||
DeleteObject,'DeleteObject'
|
||||
|
||||
section '.rsrc' resource data readable
|
||||
|
||||
; resource directory
|
||||
|
||||
directory RT_MENU,menus,\
|
||||
RT_ICON,icons,\
|
||||
RT_GROUP_ICON,group_icons,\
|
||||
RT_VERSION,versions
|
||||
|
||||
; resource subdirectories
|
||||
|
||||
resource menus,\
|
||||
IDR_MENU,LANG_ENGLISH+SUBLANG_DEFAULT,main_menu
|
||||
|
||||
resource icons,\
|
||||
1,LANG_NEUTRAL,icon_data
|
||||
|
||||
resource group_icons,\
|
||||
IDR_ICON,LANG_NEUTRAL,main_icon
|
||||
|
||||
resource versions,\
|
||||
1,LANG_NEUTRAL,version
|
||||
|
||||
menu main_menu
|
||||
menuitem '&File',0,MFR_POPUP
|
||||
menuitem '&New',IDM_NEW
|
||||
menuseparator
|
||||
menuitem 'E&xit',IDM_EXIT,MFR_END
|
||||
menuitem '&Help',0,MFR_POPUP + MFR_END
|
||||
menuitem '&About...',IDM_ABOUT,MFR_END
|
||||
|
||||
icon main_icon,icon_data,'minipad.ico'
|
||||
|
||||
versioninfo version,VOS__WINDOWS32,VFT_APP,VFT2_UNKNOWN,LANG_ENGLISH+SUBLANG_DEFAULT,0,\
|
||||
'FileDescription','MiniPad - example program',\
|
||||
'LegalCopyright','No rights reserved.',\
|
||||
'FileVersion','1.0',\
|
||||
'ProductVersion','1.0',\
|
||||
'OriginalFilename','MINIPAD.EXE'
|
||||
BIN
fasmw172/EXAMPLES/MINIPAD/MINIPAD.ICO
Normal file
BIN
fasmw172/EXAMPLES/MINIPAD/MINIPAD.ICO
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 766 B |
23
fasmw172/EXAMPLES/MSCOFF/MSCOFF.ASM
Normal file
23
fasmw172/EXAMPLES/MSCOFF/MSCOFF.ASM
Normal file
@@ -0,0 +1,23 @@
|
||||
|
||||
; example of making Win32 COFF object file
|
||||
|
||||
format MS COFF
|
||||
|
||||
extrn '__imp__MessageBoxA@16' as MessageBox:dword
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
public _demo
|
||||
|
||||
_demo:
|
||||
push 0
|
||||
push _caption
|
||||
push _message
|
||||
push 0
|
||||
call [MessageBox]
|
||||
ret
|
||||
|
||||
section '.data' data readable writeable
|
||||
|
||||
_caption db 'Win32 assembly',0
|
||||
_message db 'Coffee time!',0
|
||||
BIN
fasmw172/EXAMPLES/MSCOFF/MSCOFF.OBJ
Normal file
BIN
fasmw172/EXAMPLES/MSCOFF/MSCOFF.OBJ
Normal file
Binary file not shown.
614
fasmw172/EXAMPLES/OPENGL/OPENGL.ASM
Normal file
614
fasmw172/EXAMPLES/OPENGL/OPENGL.ASM
Normal file
@@ -0,0 +1,614 @@
|
||||
|
||||
; OpenGL programming example
|
||||
|
||||
format PE GUI 4.0
|
||||
entry start
|
||||
|
||||
include 'win32a.inc'
|
||||
|
||||
include 'opengl.inc'
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
start:
|
||||
|
||||
invoke GetModuleHandle,0
|
||||
mov [wc.hInstance],eax
|
||||
invoke LoadIcon,0,IDI_APPLICATION
|
||||
mov [wc.hIcon],eax
|
||||
invoke LoadCursor,0,IDC_ARROW
|
||||
mov [wc.hCursor],eax
|
||||
invoke RegisterClass,wc
|
||||
invoke CreateWindowEx,0,_class,_title,WS_VISIBLE+WS_OVERLAPPEDWINDOW+WS_CLIPCHILDREN+WS_CLIPSIBLINGS,16,16,432,432,NULL,NULL,[wc.hInstance],NULL
|
||||
mov [hwnd],eax
|
||||
|
||||
msg_loop:
|
||||
invoke GetMessage,msg,NULL,0,0
|
||||
or eax,eax
|
||||
jz end_loop
|
||||
invoke TranslateMessage,msg
|
||||
invoke DispatchMessage,msg
|
||||
jmp msg_loop
|
||||
|
||||
end_loop:
|
||||
invoke ExitProcess,[msg.wParam]
|
||||
|
||||
proc WindowProc hwnd,wmsg,wparam,lparam
|
||||
push ebx esi edi
|
||||
cmp [wmsg],WM_CREATE
|
||||
je .wmcreate
|
||||
cmp [wmsg],WM_SIZE
|
||||
je .wmsize
|
||||
cmp [wmsg],WM_PAINT
|
||||
je .wmpaint
|
||||
cmp [wmsg],WM_KEYDOWN
|
||||
je .wmkeydown
|
||||
cmp [wmsg],WM_DESTROY
|
||||
je .wmdestroy
|
||||
.defwndproc:
|
||||
invoke DefWindowProc,[hwnd],[wmsg],[wparam],[lparam]
|
||||
jmp .finish
|
||||
.wmcreate:
|
||||
invoke GetDC,[hwnd]
|
||||
mov [hdc],eax
|
||||
mov edi,pfd
|
||||
mov ecx,sizeof.PIXELFORMATDESCRIPTOR shr 2
|
||||
xor eax,eax
|
||||
rep stosd
|
||||
mov [pfd.nSize],sizeof.PIXELFORMATDESCRIPTOR
|
||||
mov [pfd.nVersion],1
|
||||
mov [pfd.dwFlags],PFD_SUPPORT_OPENGL+PFD_DOUBLEBUFFER+PFD_DRAW_TO_WINDOW
|
||||
mov [pfd.iLayerType],PFD_MAIN_PLANE
|
||||
mov [pfd.iPixelType],PFD_TYPE_RGBA
|
||||
mov [pfd.cColorBits],16
|
||||
mov [pfd.cDepthBits],16
|
||||
mov [pfd.cAccumBits],0
|
||||
mov [pfd.cStencilBits],0
|
||||
invoke ChoosePixelFormat,[hdc],pfd
|
||||
invoke SetPixelFormat,[hdc],eax,pfd
|
||||
invoke wglCreateContext,[hdc]
|
||||
mov [hrc],eax
|
||||
invoke wglMakeCurrent,[hdc],[hrc]
|
||||
invoke GetClientRect,[hwnd],rc
|
||||
invoke glViewport,0,0,[rc.right],[rc.bottom]
|
||||
invoke GetTickCount
|
||||
mov [clock],eax
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.wmsize:
|
||||
invoke GetClientRect,[hwnd],rc
|
||||
invoke glViewport,0,0,[rc.right],[rc.bottom]
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.wmpaint:
|
||||
invoke GetTickCount
|
||||
sub eax,[clock]
|
||||
cmp eax,10
|
||||
jb .animation_ok
|
||||
add [clock],eax
|
||||
invoke glRotatef,[theta],0.0,0.0,1.0
|
||||
.animation_ok:
|
||||
invoke glClear,GL_COLOR_BUFFER_BIT
|
||||
invoke glBegin,GL_QUADS
|
||||
invoke glColor3f,1.0,0.1,0.1
|
||||
invoke glVertex3f,-0.6,-0.6,0.0
|
||||
invoke glColor3f,0.1,0.1,0.1
|
||||
invoke glVertex3f,0.6,-0.6,0.0
|
||||
invoke glColor3f,0.1,0.1,1.0
|
||||
invoke glVertex3f,0.6,0.6,0.0
|
||||
invoke glColor3f,1.0,0.1,1.0
|
||||
invoke glVertex3f,-0.6,0.6,0.0
|
||||
invoke glEnd
|
||||
invoke SwapBuffers,[hdc]
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.wmkeydown:
|
||||
cmp [wparam],VK_ESCAPE
|
||||
jne .defwndproc
|
||||
.wmdestroy:
|
||||
invoke wglMakeCurrent,0,0
|
||||
invoke wglDeleteContext,[hrc]
|
||||
invoke ReleaseDC,[hwnd],[hdc]
|
||||
invoke PostQuitMessage,0
|
||||
xor eax,eax
|
||||
.finish:
|
||||
pop edi esi ebx
|
||||
ret
|
||||
endp
|
||||
|
||||
section '.data' data readable writeable
|
||||
|
||||
_title db 'OpenGL example',0
|
||||
_class db 'FASMOPENGL32',0
|
||||
|
||||
theta GLfloat 0.6
|
||||
|
||||
wc WNDCLASS 0,WindowProc,0,0,NULL,NULL,NULL,NULL,NULL,_class
|
||||
|
||||
hwnd dd ?
|
||||
hdc dd ?
|
||||
hrc dd ?
|
||||
|
||||
msg MSG
|
||||
rc RECT
|
||||
pfd PIXELFORMATDESCRIPTOR
|
||||
|
||||
clock dd ?
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel,'KERNEL32.DLL',\
|
||||
user,'USER32.DLL',\
|
||||
gdi,'GDI32.DLL',\
|
||||
opengl,'OPENGL32.DLL',\
|
||||
glu,'GLU32.DLL'
|
||||
|
||||
import kernel,\
|
||||
GetModuleHandle,'GetModuleHandleA',\
|
||||
GetTickCount,'GetTickCount',\
|
||||
ExitProcess,'ExitProcess'
|
||||
|
||||
import user,\
|
||||
RegisterClass,'RegisterClassA',\
|
||||
CreateWindowEx,'CreateWindowExA',\
|
||||
DefWindowProc,'DefWindowProcA',\
|
||||
GetMessage,'GetMessageA',\
|
||||
TranslateMessage,'TranslateMessage',\
|
||||
DispatchMessage,'DispatchMessageA',\
|
||||
LoadCursor,'LoadCursorA',\
|
||||
LoadIcon,'LoadIconA',\
|
||||
GetClientRect,'GetClientRect',\
|
||||
GetDC,'GetDC',\
|
||||
ReleaseDC,'ReleaseDC',\
|
||||
PostQuitMessage,'PostQuitMessage'
|
||||
|
||||
import gdi,\
|
||||
ChoosePixelFormat,'ChoosePixelFormat',\
|
||||
SetPixelFormat,'SetPixelFormat',\
|
||||
SwapBuffers,'SwapBuffers'
|
||||
|
||||
import opengl,\
|
||||
glAccum,'glAccum',\
|
||||
glAlphaFunc,'glAlphaFunc',\
|
||||
glAreTexturesResident,'glAreTexturesResident',\
|
||||
glArrayElement,'glArrayElement',\
|
||||
glBegin,'glBegin',\
|
||||
glBindTexture,'glBindTexture',\
|
||||
glBitmap,'glBitmap',\
|
||||
glBlendFunc,'glBlendFunc',\
|
||||
glCallList,'glCallList',\
|
||||
glCallLists,'glCallLists',\
|
||||
glClear,'glClear',\
|
||||
glClearAccum,'glClearAccum',\
|
||||
glClearColor,'glClearColor',\
|
||||
glClearDepth,'glClearDepth',\
|
||||
glClearIndex,'glClearIndex',\
|
||||
glClearStencil,'glClearStencil',\
|
||||
glClipPlane,'glClipPlane',\
|
||||
glColor3b,'glColor3b',\
|
||||
glColor3bv,'glColor3bv',\
|
||||
glColor3d,'glColor3d',\
|
||||
glColor3dv,'glColor3dv',\
|
||||
glColor3f,'glColor3f',\
|
||||
glColor3fv,'glColor3fv',\
|
||||
glColor3i,'glColor3i',\
|
||||
glColor3iv,'glColor3iv',\
|
||||
glColor3s,'glColor3s',\
|
||||
glColor3sv,'glColor3sv',\
|
||||
glColor3ub,'glColor3ub',\
|
||||
glColor3ubv,'glColor3ubv',\
|
||||
glColor3ui,'glColor3ui',\
|
||||
glColor3uiv,'glColor3uiv',\
|
||||
glColor3us,'glColor3us',\
|
||||
glColor3usv,'glColor3usv',\
|
||||
glColor4b,'glColor4b',\
|
||||
glColor4bv,'glColor4bv',\
|
||||
glColor4d,'glColor4d',\
|
||||
glColor4dv,'glColor4dv',\
|
||||
glColor4f,'glColor4f',\
|
||||
glColor4fv,'glColor4fv',\
|
||||
glColor4i,'glColor4i',\
|
||||
glColor4iv,'glColor4iv',\
|
||||
glColor4s,'glColor4s',\
|
||||
glColor4sv,'glColor4sv',\
|
||||
glColor4ub,'glColor4ub',\
|
||||
glColor4ubv,'glColor4ubv',\
|
||||
glColor4ui,'glColor4ui',\
|
||||
glColor4uiv,'glColor4uiv',\
|
||||
glColor4us,'glColor4us',\
|
||||
glColor4usv,'glColor4usv',\
|
||||
glColorMask,'glColorMask',\
|
||||
glColorMaterial,'glColorMaterial',\
|
||||
glColorPointer,'glColorPointer',\
|
||||
glCopyPixels,'glCopyPixels',\
|
||||
glCopyTexImage1D,'glCopyTexImage1D',\
|
||||
glCopyTexImage2D,'glCopyTexImage2D',\
|
||||
glCopyTexSubImage1D,'glCopyTexSubImage1D',\
|
||||
glCopyTexSubImage2D,'glCopyTexSubImage2D',\
|
||||
glCullFace,'glCullFace',\
|
||||
glDeleteLists,'glDeleteLists',\
|
||||
glDeleteTextures,'glDeleteTextures',\
|
||||
glDepthFunc,'glDepthFunc',\
|
||||
glDepthMask,'glDepthMask',\
|
||||
glDepthRange,'glDepthRange',\
|
||||
glDisable,'glDisable',\
|
||||
glDisableClientState,'glDisableClientState',\
|
||||
glDrawArrays,'glDrawArrays',\
|
||||
glDrawBuffer,'glDrawBuffer',\
|
||||
glDrawElements,'glDrawElements',\
|
||||
glDrawPixels,'glDrawPixels',\
|
||||
glEdgeFlag,'glEdgeFlag',\
|
||||
glEdgeFlagPointer,'glEdgeFlagPointer',\
|
||||
glEdgeFlagv,'glEdgeFlagv',\
|
||||
glEnable,'glEnable',\
|
||||
glEnableClientState,'glEnableClientState',\
|
||||
glEnd,'glEnd',\
|
||||
glEndList,'glEndList',\
|
||||
glEvalCoord1d,'glEvalCoord1d',\
|
||||
glEvalCoord1dv,'glEvalCoord1dv',\
|
||||
glEvalCoord1f,'glEvalCoord1f',\
|
||||
glEvalCoord1fv,'glEvalCoord1fv',\
|
||||
glEvalCoord2d,'glEvalCoord2d',\
|
||||
glEvalCoord2dv,'glEvalCoord2dv',\
|
||||
glEvalCoord2f,'glEvalCoord2f',\
|
||||
glEvalCoord2fv,'glEvalCoord2fv',\
|
||||
glEvalMesh1,'glEvalMesh1',\
|
||||
glEvalMesh2,'glEvalMesh2',\
|
||||
glEvalPoint1,'glEvalPoint1',\
|
||||
glEvalPoint2,'glEvalPoint2',\
|
||||
glFeedbackBuffer,'glFeedbackBuffer',\
|
||||
glFinish,'glFinish',\
|
||||
glFlush,'glFlush',\
|
||||
glFogf,'glFogf',\
|
||||
glFogfv,'glFogfv',\
|
||||
glFogi,'glFogi',\
|
||||
glFogiv,'glFogiv',\
|
||||
glFrontFace,'glFrontFace',\
|
||||
glFrustum,'glFrustum',\
|
||||
glGenLists,'glGenLists',\
|
||||
glGenTextures,'glGenTextures',\
|
||||
glGetBooleanv,'glGetBooleanv',\
|
||||
glGetClipPlane,'glGetClipPlane',\
|
||||
glGetDoublev,'glGetDoublev',\
|
||||
glGetError,'glGetError',\
|
||||
glGetFloatv,'glGetFloatv',\
|
||||
glGetIntegerv,'glGetIntegerv',\
|
||||
glGetLightfv,'glGetLightfv',\
|
||||
glGetLightiv,'glGetLightiv',\
|
||||
glGetMapdv,'glGetMapdv',\
|
||||
glGetMapfv,'glGetMapfv',\
|
||||
glGetMapiv,'glGetMapiv',\
|
||||
glGetMaterialfv,'glGetMaterialfv',\
|
||||
glGetMaterialiv,'glGetMaterialiv',\
|
||||
glGetPixelMapfv,'glGetPixelMapfv',\
|
||||
glGetPixelMapuiv,'glGetPixelMapuiv',\
|
||||
glGetPixelMapusv,'glGetPixelMapusv',\
|
||||
glGetPointerv,'glGetPointerv',\
|
||||
glGetPolygonStipple,'glGetPolygonStipple',\
|
||||
glGetString,'glGetString',\
|
||||
glGetTexEnvfv,'glGetTexEnvfv',\
|
||||
glGetTexEnviv,'glGetTexEnviv',\
|
||||
glGetTexGendv,'glGetTexGendv',\
|
||||
glGetTexGenfv,'glGetTexGenfv',\
|
||||
glGetTexGeniv,'glGetTexGeniv',\
|
||||
glGetTexImage,'glGetTexImage',\
|
||||
glGetTexLevelParameterfv,'glGetTexLevelParameterfv',\
|
||||
glGetTexLevelParameteriv,'glGetTexLevelParameteriv',\
|
||||
glGetTexParameterfv,'glGetTexParameterfv',\
|
||||
glGetTexParameteriv,'glGetTexParameteriv',\
|
||||
glHint,'glHint',\
|
||||
glIndexMask,'glIndexMask',\
|
||||
glIndexPointer,'glIndexPointer',\
|
||||
glIndexd,'glIndexd',\
|
||||
glIndexdv,'glIndexdv',\
|
||||
glIndexf,'glIndexf',\
|
||||
glIndexfv,'glIndexfv',\
|
||||
glIndexi,'glIndexi',\
|
||||
glIndexiv,'glIndexiv',\
|
||||
glIndexs,'glIndexs',\
|
||||
glIndexsv,'glIndexsv',\
|
||||
glIndexub,'glIndexub',\
|
||||
glIndexubv,'glIndexubv',\
|
||||
glInitNames,'glInitNames',\
|
||||
glInterleavedArrays,'glInterleavedArrays',\
|
||||
glIsEnabled,'glIsEnabled',\
|
||||
glIsList,'glIsList',\
|
||||
glIsTexture,'glIsTexture',\
|
||||
glLightModelf,'glLightModelf',\
|
||||
glLightModelfv,'glLightModelfv',\
|
||||
glLightModeli,'glLightModeli',\
|
||||
glLightModeliv,'glLightModeliv',\
|
||||
glLightf,'glLightf',\
|
||||
glLightfv,'glLightfv',\
|
||||
glLighti,'glLighti',\
|
||||
glLightiv,'glLightiv',\
|
||||
glLineStipple,'glLineStipple',\
|
||||
glLineWidth,'glLineWidth',\
|
||||
glListBase,'glListBase',\
|
||||
glLoadIdentity,'glLoadIdentity',\
|
||||
glLoadMatrixd,'glLoadMatrixd',\
|
||||
glLoadMatrixf,'glLoadMatrixf',\
|
||||
glLoadName,'glLoadName',\
|
||||
glLogicOp,'glLogicOp',\
|
||||
glMap1d,'glMap1d',\
|
||||
glMap1f,'glMap1f',\
|
||||
glMap2d,'glMap2d',\
|
||||
glMap2f,'glMap2f',\
|
||||
glMapGrid1d,'glMapGrid1d',\
|
||||
glMapGrid1f,'glMapGrid1f',\
|
||||
glMapGrid2d,'glMapGrid2d',\
|
||||
glMapGrid2f,'glMapGrid2f',\
|
||||
glMaterialf,'glMaterialf',\
|
||||
glMaterialfv,'glMaterialfv',\
|
||||
glMateriali,'glMateriali',\
|
||||
glMaterialiv,'glMaterialiv',\
|
||||
glMatrixMode,'glMatrixMode',\
|
||||
glMultMatrixd,'glMultMatrixd',\
|
||||
glMultMatrixf,'glMultMatrixf',\
|
||||
glNewList,'glNewList',\
|
||||
glNormal3b,'glNormal3b',\
|
||||
glNormal3bv,'glNormal3bv',\
|
||||
glNormal3d,'glNormal3d',\
|
||||
glNormal3dv,'glNormal3dv',\
|
||||
glNormal3f,'glNormal3f',\
|
||||
glNormal3fv,'glNormal3fv',\
|
||||
glNormal3i,'glNormal3i',\
|
||||
glNormal3iv,'glNormal3iv',\
|
||||
glNormal3s,'glNormal3s',\
|
||||
glNormal3sv,'glNormal3sv',\
|
||||
glNormalPointer,'glNormalPointer',\
|
||||
glOrtho,'glOrtho',\
|
||||
glPassThrough,'glPassThrough',\
|
||||
glPixelMapfv,'glPixelMapfv',\
|
||||
glPixelMapuiv,'glPixelMapuiv',\
|
||||
glPixelMapusv,'glPixelMapusv',\
|
||||
glPixelStoref,'glPixelStoref',\
|
||||
glPixelStorei,'glPixelStorei',\
|
||||
glPixelTransferf,'glPixelTransferf',\
|
||||
glPixelTransferi,'glPixelTransferi',\
|
||||
glPixelZoom,'glPixelZoom',\
|
||||
glPointSize,'glPointSize',\
|
||||
glPolygonMode,'glPolygonMode',\
|
||||
glPolygonOffset,'glPolygonOffset',\
|
||||
glPolygonStipple,'glPolygonStipple',\
|
||||
glPopAttrib,'glPopAttrib',\
|
||||
glPopClientAttrib,'glPopClientAttrib',\
|
||||
glPopMatrix,'glPopMatrix',\
|
||||
glPopName,'glPopName',\
|
||||
glPrioritizeTextures,'glPrioritizeTextures',\
|
||||
glPushAttrib,'glPushAttrib',\
|
||||
glPushClientAttrib,'glPushClientAttrib',\
|
||||
glPushMatrix,'glPushMatrix',\
|
||||
glPushName,'glPushName',\
|
||||
glRasterPos2d,'glRasterPos2d',\
|
||||
glRasterPos2dv,'glRasterPos2dv',\
|
||||
glRasterPos2f,'glRasterPos2f',\
|
||||
glRasterPos2fv,'glRasterPos2fv',\
|
||||
glRasterPos2i,'glRasterPos2i',\
|
||||
glRasterPos2iv,'glRasterPos2iv',\
|
||||
glRasterPos2s,'glRasterPos2s',\
|
||||
glRasterPos2sv,'glRasterPos2sv',\
|
||||
glRasterPos3d,'glRasterPos3d',\
|
||||
glRasterPos3dv,'glRasterPos3dv',\
|
||||
glRasterPos3f,'glRasterPos3f',\
|
||||
glRasterPos3fv,'glRasterPos3fv',\
|
||||
glRasterPos3i,'glRasterPos3i',\
|
||||
glRasterPos3iv,'glRasterPos3iv',\
|
||||
glRasterPos3s,'glRasterPos3s',\
|
||||
glRasterPos3sv,'glRasterPos3sv',\
|
||||
glRasterPos4d,'glRasterPos4d',\
|
||||
glRasterPos4dv,'glRasterPos4dv',\
|
||||
glRasterPos4f,'glRasterPos4f',\
|
||||
glRasterPos4fv,'glRasterPos4fv',\
|
||||
glRasterPos4i,'glRasterPos4i',\
|
||||
glRasterPos4iv,'glRasterPos4iv',\
|
||||
glRasterPos4s,'glRasterPos4s',\
|
||||
glRasterPos4sv,'glRasterPos4sv',\
|
||||
glReadBuffer,'glReadBuffer',\
|
||||
glReadPixels,'glReadPixels',\
|
||||
glRectd,'glRectd',\
|
||||
glRectdv,'glRectdv',\
|
||||
glRectf,'glRectf',\
|
||||
glRectfv,'glRectfv',\
|
||||
glRecti,'glRecti',\
|
||||
glRectiv,'glRectiv',\
|
||||
glRects,'glRects',\
|
||||
glRectsv,'glRectsv',\
|
||||
glRenderMode,'glRenderMode',\
|
||||
glRotated,'glRotated',\
|
||||
glRotatef,'glRotatef',\
|
||||
glScaled,'glScaled',\
|
||||
glScalef,'glScalef',\
|
||||
glScissor,'glScissor',\
|
||||
glSelectBuffer,'glSelectBuffer',\
|
||||
glShadeModel,'glShadeModel',\
|
||||
glStencilFunc,'glStencilFunc',\
|
||||
glStencilMask,'glStencilMask',\
|
||||
glStencilOp,'glStencilOp',\
|
||||
glTexCoord1d,'glTexCoord1d',\
|
||||
glTexCoord1dv,'glTexCoord1dv',\
|
||||
glTexCoord1f,'glTexCoord1f',\
|
||||
glTexCoord1fv,'glTexCoord1fv',\
|
||||
glTexCoord1i,'glTexCoord1i',\
|
||||
glTexCoord1iv,'glTexCoord1iv',\
|
||||
glTexCoord1s,'glTexCoord1s',\
|
||||
glTexCoord1sv,'glTexCoord1sv',\
|
||||
glTexCoord2d,'glTexCoord2d',\
|
||||
glTexCoord2dv,'glTexCoord2dv',\
|
||||
glTexCoord2f,'glTexCoord2f',\
|
||||
glTexCoord2fv,'glTexCoord2fv',\
|
||||
glTexCoord2i,'glTexCoord2i',\
|
||||
glTexCoord2iv,'glTexCoord2iv',\
|
||||
glTexCoord2s,'glTexCoord2s',\
|
||||
glTexCoord2sv,'glTexCoord2sv',\
|
||||
glTexCoord3d,'glTexCoord3d',\
|
||||
glTexCoord3dv,'glTexCoord3dv',\
|
||||
glTexCoord3f,'glTexCoord3f',\
|
||||
glTexCoord3fv,'glTexCoord3fv',\
|
||||
glTexCoord3i,'glTexCoord3i',\
|
||||
glTexCoord3iv,'glTexCoord3iv',\
|
||||
glTexCoord3s,'glTexCoord3s',\
|
||||
glTexCoord3sv,'glTexCoord3sv',\
|
||||
glTexCoord4d,'glTexCoord4d',\
|
||||
glTexCoord4dv,'glTexCoord4dv',\
|
||||
glTexCoord4f,'glTexCoord4f',\
|
||||
glTexCoord4fv,'glTexCoord4fv',\
|
||||
glTexCoord4i,'glTexCoord4i',\
|
||||
glTexCoord4iv,'glTexCoord4iv',\
|
||||
glTexCoord4s,'glTexCoord4s',\
|
||||
glTexCoord4sv,'glTexCoord4sv',\
|
||||
glTexCoordPointer,'glTexCoordPointer',\
|
||||
glTexEnvf,'glTexEnvf',\
|
||||
glTexEnvfv,'glTexEnvfv',\
|
||||
glTexEnvi,'glTexEnvi',\
|
||||
glTexEnviv,'glTexEnviv',\
|
||||
glTexGend,'glTexGend',\
|
||||
glTexGendv,'glTexGendv',\
|
||||
glTexGenf,'glTexGenf',\
|
||||
glTexGenfv,'glTexGenfv',\
|
||||
glTexGeni,'glTexGeni',\
|
||||
glTexGeniv,'glTexGeniv',\
|
||||
glTexImage1D,'glTexImage1D',\
|
||||
glTexImage2D,'glTexImage2D',\
|
||||
glTexParameterf,'glTexParameterf',\
|
||||
glTexParameterfv,'glTexParameterfv',\
|
||||
glTexParameteri,'glTexParameteri',\
|
||||
glTexParameteriv,'glTexParameteriv',\
|
||||
glTexSubImage1D,'glTexSubImage1D',\
|
||||
glTexSubImage2D,'glTexSubImage2D',\
|
||||
glTranslated,'glTranslated',\
|
||||
glTranslatef,'glTranslatef',\
|
||||
glVertex2d,'glVertex2d',\
|
||||
glVertex2dv,'glVertex2dv',\
|
||||
glVertex2f,'glVertex2f',\
|
||||
glVertex2fv,'glVertex2fv',\
|
||||
glVertex2i,'glVertex2i',\
|
||||
glVertex2iv,'glVertex2iv',\
|
||||
glVertex2s,'glVertex2s',\
|
||||
glVertex2sv,'glVertex2sv',\
|
||||
glVertex3d,'glVertex3d',\
|
||||
glVertex3dv,'glVertex3dv',\
|
||||
glVertex3f,'glVertex3f',\
|
||||
glVertex3fv,'glVertex3fv',\
|
||||
glVertex3i,'glVertex3i',\
|
||||
glVertex3iv,'glVertex3iv',\
|
||||
glVertex3s,'glVertex3s',\
|
||||
glVertex3sv,'glVertex3sv',\
|
||||
glVertex4d,'glVertex4d',\
|
||||
glVertex4dv,'glVertex4dv',\
|
||||
glVertex4f,'glVertex4f',\
|
||||
glVertex4fv,'glVertex4fv',\
|
||||
glVertex4i,'glVertex4i',\
|
||||
glVertex4iv,'glVertex4iv',\
|
||||
glVertex4s,'glVertex4s',\
|
||||
glVertex4sv,'glVertex4sv',\
|
||||
glVertexPointer,'glVertexPointer',\
|
||||
glViewport,'glViewport',\
|
||||
wglGetProcAddress,'wglGetProcAddress',\
|
||||
wglCopyContext,'wglCopyContext',\
|
||||
wglCreateContext,'wglCreateContext',\
|
||||
wglCreateLayerContext,'wglCreateLayerContext',\
|
||||
wglDeleteContext,'wglDeleteContext',\
|
||||
wglDescribeLayerPlane,'wglDescribeLayerPlane',\
|
||||
wglGetCurrentContext,'wglGetCurrentContext',\
|
||||
wglGetCurrentDC,'wglGetCurrentDC',\
|
||||
wglGetLayerPaletteEntries,'wglGetLayerPaletteEntries',\
|
||||
wglMakeCurrent,'wglMakeCurrent',\
|
||||
wglRealizeLayerPalette,'wglRealizeLayerPalette',\
|
||||
wglSetLayerPaletteEntries,'wglSetLayerPaletteEntries',\
|
||||
wglShareLists,'wglShareLists',\
|
||||
wglSwapLayerBuffers,'wglSwapLayerBuffers',\
|
||||
wglSwapMultipleBuffers,'wglSwapMultipleBuffers',\
|
||||
wglUseFontBitmapsA,'wglUseFontBitmapsA',\
|
||||
wglUseFontOutlinesA,'wglUseFontOutlinesA',\
|
||||
wglUseFontBitmapsW,'wglUseFontBitmapsW',\
|
||||
wglUseFontOutlinesW,'wglUseFontOutlinesW',\
|
||||
glDrawRangeElements,'glDrawRangeElements',\
|
||||
glTexImage3D,'glTexImage3D',\
|
||||
glBlendColor,'glBlendColor',\
|
||||
glBlendEquation,'glBlendEquation',\
|
||||
glColorSubTable,'glColorSubTable',\
|
||||
glCopyColorSubTable,'glCopyColorSubTable',\
|
||||
glColorTable,'glColorTable',\
|
||||
glCopyColorTable,'glCopyColorTable',\
|
||||
glColorTableParameteriv,'glColorTableParameteriv',\
|
||||
glColorTableParameterfv,'glColorTableParameterfv',\
|
||||
glGetColorTable,'glGetColorTable',\
|
||||
glGetColorTableParameteriv,'glGetColorTableParameteriv',\
|
||||
glGetColorTableParameterfv,'glGetColorTableParameterfv',\
|
||||
glConvolutionFilter1D,'glConvolutionFilter1D',\
|
||||
glConvolutionFilter2D,'glConvolutionFilter2D',\
|
||||
glCopyConvolutionFilter1D,'glCopyConvolutionFilter1D',\
|
||||
glCopyConvolutionFilter2D,'glCopyConvolutionFilter2D',\
|
||||
glGetConvolutionFilter,'glGetConvolutionFilter',\
|
||||
glSeparableFilter2D,'glSeparableFilter2D',\
|
||||
glGetSeparableFilter,'glGetSeparableFilter',\
|
||||
glConvolutionParameteri,'glConvolutionParameteri',\
|
||||
glConvolutionParameteriv,'glConvolutionParameteriv',\
|
||||
glConvolutionParameterf,'glConvolutionParameterf',\
|
||||
glConvolutionParameterfv,'glConvolutionParameterfv',\
|
||||
glGetConvolutionParameteriv,'glGetConvolutionParameteriv',\
|
||||
glGetConvolutionParameterfv,'glGetConvolutionParameterfv',\
|
||||
glHistogram,'glHistogram',\
|
||||
glResetHistogram,'glResetHistogram',\
|
||||
glGetHistogram,'glGetHistogram',\
|
||||
glGetHistogramParameteriv,'glGetHistogramParameteriv',\
|
||||
glGetHistogramParameterfv,'glGetHistogramParameterfv',\
|
||||
glMinmax,'glMinmax',\
|
||||
glResetMinmax,'glResetMinmax',\
|
||||
glGetMinmax,'glGetMinmax',\
|
||||
glGetMinmaxParameteriv,'glGetMinmaxParameteriv',\
|
||||
glGetMinmaxParameterfv,'glGetMinmaxParameterfv'
|
||||
|
||||
import glu,\
|
||||
gluBeginCurve,'gluBeginCurve',\
|
||||
gluBeginPolygon,'gluBeginPolygon',\
|
||||
gluBeginSurface,'gluBeginSurface',\
|
||||
gluBeginTrim,'gluBeginTrim',\
|
||||
gluBuild1DMipmaps,'gluBuild1DMipmaps',\
|
||||
gluBuild2DMipmaps,'gluBuild2DMipmaps',\
|
||||
gluCylinder,'gluCylinder',\
|
||||
gluDeleteNurbsRenderer,'gluDeleteNurbsRenderer',\
|
||||
gluDeleteQuadric,'gluDeleteQuadric',\
|
||||
gluDeleteTess,'gluDeleteTess',\
|
||||
gluDisk,'gluDisk',\
|
||||
gluEndCurve,'gluEndCurve',\
|
||||
gluEndPolygon,'gluEndPolygon',\
|
||||
gluEndSurface,'gluEndSurface',\
|
||||
gluEndTrim,'gluEndTrim',\
|
||||
gluErrorString,'gluErrorString',\
|
||||
gluGetNurbsProperty,'gluGetNurbsProperty',\
|
||||
gluGetString,'gluGetString',\
|
||||
gluGetTessProperty,'gluGetTessProperty',\
|
||||
gluLoadSamplingMatrices,'gluLoadSamplingMatrices',\
|
||||
gluLookAt,'gluLookAt',\
|
||||
gluNewNurbsRenderer,'gluNewNurbsRenderer',\
|
||||
gluNewQuadric,'gluNewQuadric',\
|
||||
gluNewTess,'gluNewTess',\
|
||||
gluNextContour,'gluNextContour',\
|
||||
gluNurbsCallback,'gluNurbsCallback',\
|
||||
gluNurbsCurve,'gluNurbsCurve',\
|
||||
gluNurbsProperty,'gluNurbsProperty',\
|
||||
gluNurbsSurface,'gluNurbsSurface',\
|
||||
gluOrtho2D,'gluOrtho2D',\
|
||||
gluPartialDisk,'gluPartialDisk',\
|
||||
gluPerspective,'gluPerspective',\
|
||||
gluPickMatrix,'gluPickMatrix',\
|
||||
gluProject,'gluProject',\
|
||||
gluPwlCurve,'gluPwlCurve',\
|
||||
gluQuadricCallback,'gluQuadricCallback',\
|
||||
gluQuadricDrawStyle,'gluQuadricDrawStyle',\
|
||||
gluQuadricNormals,'gluQuadricNormals',\
|
||||
gluQuadricOrientation,'gluQuadricOrientation',\
|
||||
gluQuadricTexture,'gluQuadricTexture',\
|
||||
gluScaleImage,'gluScaleImage',\
|
||||
gluSphere,'gluSphere',\
|
||||
gluTessBeginContour,'gluTessBeginContour',\
|
||||
gluTessBeginPolygon,'gluTessBeginPolygon',\
|
||||
gluTessCallback,'gluTessCallback',\
|
||||
gluTessEndContour,'gluTessEndContour',\
|
||||
gluTessEndPolygon,'gluTessEndPolygon',\
|
||||
gluTessNormal,'gluTessNormal',\
|
||||
gluTessProperty,'gluTessProperty',\
|
||||
gluTessVertex,'gluTessVertex',\
|
||||
gluUnProject,'gluUnProject'
|
||||
2337
fasmw172/EXAMPLES/OPENGL/OPENGL.INC
Normal file
2337
fasmw172/EXAMPLES/OPENGL/OPENGL.INC
Normal file
File diff suppressed because it is too large
Load Diff
46
fasmw172/EXAMPLES/PEDEMO/PEDEMO.ASM
Normal file
46
fasmw172/EXAMPLES/PEDEMO/PEDEMO.ASM
Normal file
@@ -0,0 +1,46 @@
|
||||
|
||||
; Example of making 32-bit PE program as raw code and data
|
||||
|
||||
format PE GUI
|
||||
entry start
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
start:
|
||||
|
||||
push 0
|
||||
push _caption
|
||||
push _message
|
||||
push 0
|
||||
call [MessageBoxA]
|
||||
|
||||
push 0
|
||||
call [ExitProcess]
|
||||
|
||||
section '.data' data readable writeable
|
||||
|
||||
_caption db 'Win32 assembly program',0
|
||||
_message db 'Hello World!',0
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
dd 0,0,0,RVA kernel_name,RVA kernel_table
|
||||
dd 0,0,0,RVA user_name,RVA user_table
|
||||
dd 0,0,0,0,0
|
||||
|
||||
kernel_table:
|
||||
ExitProcess dd RVA _ExitProcess
|
||||
dd 0
|
||||
user_table:
|
||||
MessageBoxA dd RVA _MessageBoxA
|
||||
dd 0
|
||||
|
||||
kernel_name db 'KERNEL32.DLL',0
|
||||
user_name db 'USER32.DLL',0
|
||||
|
||||
_ExitProcess dw 0
|
||||
db 'ExitProcess',0
|
||||
_MessageBoxA dw 0
|
||||
db 'MessageBoxA',0
|
||||
|
||||
section '.reloc' fixups data readable discardable ; needed for Win32s
|
||||
71
fasmw172/EXAMPLES/TEMPLATE/TEMPLATE.ASM
Normal file
71
fasmw172/EXAMPLES/TEMPLATE/TEMPLATE.ASM
Normal file
@@ -0,0 +1,71 @@
|
||||
|
||||
; Template for program using standard Win32 headers
|
||||
|
||||
format PE GUI 4.0
|
||||
entry start
|
||||
|
||||
include 'win32w.inc'
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
start:
|
||||
|
||||
invoke GetModuleHandle,0
|
||||
mov [wc.hInstance],eax
|
||||
invoke LoadIcon,0,IDI_APPLICATION
|
||||
mov [wc.hIcon],eax
|
||||
invoke LoadCursor,0,IDC_ARROW
|
||||
mov [wc.hCursor],eax
|
||||
invoke RegisterClass,wc
|
||||
test eax,eax
|
||||
jz error
|
||||
|
||||
invoke CreateWindowEx,0,_class,_title,WS_VISIBLE+WS_DLGFRAME+WS_SYSMENU,128,128,256,192,NULL,NULL,[wc.hInstance],NULL
|
||||
test eax,eax
|
||||
jz error
|
||||
|
||||
msg_loop:
|
||||
invoke GetMessage,msg,NULL,0,0
|
||||
cmp eax,1
|
||||
jb end_loop
|
||||
jne msg_loop
|
||||
invoke TranslateMessage,msg
|
||||
invoke DispatchMessage,msg
|
||||
jmp msg_loop
|
||||
|
||||
error:
|
||||
invoke MessageBox,NULL,_error,NULL,MB_ICONERROR+MB_OK
|
||||
|
||||
end_loop:
|
||||
invoke ExitProcess,[msg.wParam]
|
||||
|
||||
proc WindowProc uses ebx esi edi, hwnd,wmsg,wparam,lparam
|
||||
cmp [wmsg],WM_DESTROY
|
||||
je .wmdestroy
|
||||
.defwndproc:
|
||||
invoke DefWindowProc,[hwnd],[wmsg],[wparam],[lparam]
|
||||
jmp .finish
|
||||
.wmdestroy:
|
||||
invoke PostQuitMessage,0
|
||||
xor eax,eax
|
||||
.finish:
|
||||
ret
|
||||
endp
|
||||
|
||||
section '.data' data readable writeable
|
||||
|
||||
_class TCHAR 'FASMWIN32',0
|
||||
_title TCHAR 'Win32 program template',0
|
||||
_error TCHAR 'Startup failed.',0
|
||||
|
||||
wc WNDCLASS 0,WindowProc,0,0,NULL,NULL,NULL,COLOR_BTNFACE+1,NULL,_class
|
||||
|
||||
msg MSG
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel32,'KERNEL32.DLL',\
|
||||
user32,'USER32.DLL'
|
||||
|
||||
include 'api\kernel32.inc'
|
||||
include 'api\user32.inc'
|
||||
142
fasmw172/EXAMPLES/USECOM/USECOM.ASM
Normal file
142
fasmw172/EXAMPLES/USECOM/USECOM.ASM
Normal file
@@ -0,0 +1,142 @@
|
||||
|
||||
; Component Object Model usage demonstration
|
||||
|
||||
format PE GUI 4.0
|
||||
entry start
|
||||
|
||||
include 'win32a.inc'
|
||||
|
||||
struc GUID def
|
||||
{
|
||||
match d1-d2-d3-d4-d5, def
|
||||
\{
|
||||
.Data1 dd 0x\#d1
|
||||
.Data2 dw 0x\#d2
|
||||
.Data3 dw 0x\#d3
|
||||
.Data4 db 0x\#d4 shr 8,0x\#d4 and 0FFh
|
||||
.Data5 db 0x\#d5 shr 40,0x\#d5 shr 32 and 0FFh,0x\#d5 shr 24 and 0FFh,0x\#d5 shr 16 and 0FFh,0x\#d5 shr 8 and 0FFh,0x\#d5 and 0FFh
|
||||
\}
|
||||
}
|
||||
|
||||
interface ITaskBarList,\
|
||||
QueryInterface,\
|
||||
AddRef,\
|
||||
Release,\
|
||||
HrInit,\
|
||||
AddTab,\
|
||||
DeleteTab,\
|
||||
ActivateTab,\
|
||||
SetActiveAlt
|
||||
|
||||
CLSCTX_INPROC_SERVER = 0x1
|
||||
CLSCTX_INPROC_HANDLER = 0x2
|
||||
CLSCTX_LOCAL_SERVER = 0x4
|
||||
CLSCTX_INPROC_SERVER16 = 0x8
|
||||
CLSCTX_REMOTE_SERVER = 0x10
|
||||
CLSCTX_INPROC_HANDLER16 = 0x20
|
||||
CLSCTX_INPROC_SERVERX86 = 0x40
|
||||
CLSCTX_INPROC_HANDLERX86 = 0x80
|
||||
CLSCTX_ESERVER_HANDLER = 0x100
|
||||
CLSCTX_NO_CODE_DOWNLOAD = 0x400
|
||||
CLSCTX_NO_CUSTOM_MARSHAL = 0x1000
|
||||
CLSCTX_ENABLE_CODE_DOWNLOAD = 0x2000
|
||||
CLSCTX_NO_FAILURE_LOG = 0x4000
|
||||
CLSCTX_DISABLE_AAA = 0x8000
|
||||
CLSCTX_ENABLE_AAA = 0x10000
|
||||
CLSCTX_FROM_DEFAULT_CONTEXT = 0x20000
|
||||
|
||||
ID_EXIT = IDCANCEL
|
||||
ID_SHOW = 100
|
||||
ID_HIDE = 101
|
||||
|
||||
IDD_COMDEMO = 1
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
start:
|
||||
|
||||
invoke CoInitialize,NULL
|
||||
invoke CoCreateInstance,CLSID_TaskbarList,NULL,CLSCTX_INPROC_SERVER,IID_ITaskbarList,ShellTaskBar
|
||||
|
||||
invoke GetModuleHandle,0
|
||||
invoke DialogBoxParam,eax,IDD_COMDEMO,HWND_DESKTOP,COMDemo,0
|
||||
|
||||
cominvk ShellTaskBar,Release
|
||||
|
||||
invoke ExitProcess,0
|
||||
|
||||
proc COMDemo hwnd,msg,wparam,lparam
|
||||
push ebx esi edi
|
||||
cmp [msg],WM_INITDIALOG
|
||||
je .wminitdialog
|
||||
cmp [msg],WM_COMMAND
|
||||
je .wmcommand
|
||||
cmp [msg],WM_CLOSE
|
||||
je .wmclose
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.wminitdialog:
|
||||
jmp .processed
|
||||
.wmcommand:
|
||||
cmp [wparam],BN_CLICKED shl 16 + ID_EXIT
|
||||
je .wmclose
|
||||
cmp [wparam],BN_CLICKED shl 16 + ID_SHOW
|
||||
je .show
|
||||
cmp [wparam],BN_CLICKED shl 16 + ID_HIDE
|
||||
jne .processed
|
||||
.hide:
|
||||
cominvk ShellTaskBar,HrInit
|
||||
cominvk ShellTaskBar,DeleteTab,[hwnd]
|
||||
jmp .processed
|
||||
.show:
|
||||
mov ebx,[ShellTaskBar]
|
||||
comcall ebx,ITaskBarList,HrInit
|
||||
comcall ebx,ITaskBarList,AddTab,[hwnd]
|
||||
comcall ebx,ITaskBarList,ActivateTab,[hwnd]
|
||||
jmp .processed
|
||||
.wmclose:
|
||||
invoke EndDialog,[hwnd],0
|
||||
.processed:
|
||||
mov eax,1
|
||||
.finish:
|
||||
pop edi esi ebx
|
||||
ret
|
||||
endp
|
||||
|
||||
section '.data' data readable writeable
|
||||
|
||||
CLSID_TaskbarList GUID 56FDF344-FD6D-11D0-958A-006097C9A090
|
||||
IID_ITaskbarList GUID 56FDF342-FD6D-11D0-958A-006097C9A090
|
||||
|
||||
ShellTaskBar ITaskBarList
|
||||
|
||||
section '.idata' import data readable
|
||||
|
||||
library kernel,'KERNEL32.DLL',\
|
||||
user,'USER32.DLL',\
|
||||
ole,'OLE32.DLL'
|
||||
|
||||
import kernel,\
|
||||
GetModuleHandle,'GetModuleHandleA',\
|
||||
ExitProcess,'ExitProcess'
|
||||
|
||||
import user,\
|
||||
DialogBoxParam,'DialogBoxParamA',\
|
||||
EndDialog,'EndDialog'
|
||||
|
||||
import ole,\
|
||||
CoInitialize,'CoInitialize',\
|
||||
CoCreateInstance,'CoCreateInstance'
|
||||
|
||||
section '.rsrc' resource data readable
|
||||
|
||||
directory RT_DIALOG,dialogs
|
||||
|
||||
resource dialogs,\
|
||||
IDD_COMDEMO,LANG_ENGLISH+SUBLANG_DEFAULT,comdemo
|
||||
|
||||
dialog comdemo,'Taskbar item control',70,70,170,24,WS_CAPTION+WS_POPUP+WS_SYSMENU+DS_MODALFRAME
|
||||
dialogitem 'BUTTON','Show',ID_SHOW,4,4,45,15,WS_VISIBLE+WS_TABSTOP
|
||||
dialogitem 'BUTTON','Hide',ID_HIDE,54,4,45,15,WS_VISIBLE+WS_TABSTOP
|
||||
dialogitem 'BUTTON','Exit',ID_EXIT,120,4,45,15,WS_VISIBLE+WS_TABSTOP
|
||||
enddialog
|
||||
27
fasmw172/EXAMPLES/WIN64/DLL/MSGDEMO.ASM
Normal file
27
fasmw172/EXAMPLES/WIN64/DLL/MSGDEMO.ASM
Normal file
@@ -0,0 +1,27 @@
|
||||
format PE64 console
|
||||
entry start
|
||||
|
||||
include 'win64a.inc'
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
start:
|
||||
sub rsp,8
|
||||
|
||||
invoke WriteMessage,message
|
||||
|
||||
invoke ExitProcess,0
|
||||
|
||||
section '.data' data readable
|
||||
|
||||
message db "Hi! I'm the example program!",0
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel32,'KERNEL32.DLL',\
|
||||
writemsg,'WRITEMSG.DLL'
|
||||
|
||||
include 'api/kernel32.inc'
|
||||
|
||||
import writemsg,\
|
||||
WriteMessage,'WriteMessage'
|
||||
47
fasmw172/EXAMPLES/WIN64/DLL/WRITEMSG.ASM
Normal file
47
fasmw172/EXAMPLES/WIN64/DLL/WRITEMSG.ASM
Normal file
@@ -0,0 +1,47 @@
|
||||
format PE64 console DLL
|
||||
entry DllEntryPoint
|
||||
|
||||
include 'win64a.inc'
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
proc DllEntryPoint hinstDLL,fdwReason,lpvReserved
|
||||
mov eax,TRUE
|
||||
ret
|
||||
endp
|
||||
|
||||
proc WriteMessage uses rbx rsi rdi, message
|
||||
mov rdi,rcx ; first parameter passed in RCX
|
||||
invoke GetStdHandle,STD_OUTPUT_HANDLE
|
||||
mov rbx,rax
|
||||
xor al,al
|
||||
or rcx,-1
|
||||
repne scasb
|
||||
dec rdi
|
||||
mov r8,-2
|
||||
sub r8,rcx
|
||||
sub rdi,r8
|
||||
invoke WriteFile,rbx,rdi,r8,bytes_count,0
|
||||
ret
|
||||
endp
|
||||
|
||||
section '.bss' data readable writeable
|
||||
|
||||
bytes_count dd ?
|
||||
|
||||
section '.edata' export data readable
|
||||
|
||||
export 'WRITEMSG.DLL',\
|
||||
WriteMessage,'WriteMessage'
|
||||
|
||||
section '.reloc' fixups data readable discardable
|
||||
|
||||
if $=$$
|
||||
dd 0,8 ; if there are no fixups, generate dummy entry
|
||||
end if
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel32,'KERNEL32.DLL'
|
||||
|
||||
include 'api/kernel32.inc'
|
||||
425
fasmw172/EXAMPLES/WIN64/MANDEL/DDRAW64.INC
Normal file
425
fasmw172/EXAMPLES/WIN64/MANDEL/DDRAW64.INC
Normal file
@@ -0,0 +1,425 @@
|
||||
|
||||
; DirectDraw interface
|
||||
|
||||
interface DirectDraw,\
|
||||
QueryInterface,\
|
||||
AddRef,\
|
||||
Release,\
|
||||
Compact,\
|
||||
CreateClipper,\
|
||||
CreatePalette,\
|
||||
CreateSurface,\
|
||||
DuplicateSurface,\
|
||||
EnumDisplayModes,\
|
||||
EnumSurfaces,\
|
||||
FlipToGDISurface,\
|
||||
GetCaps,\
|
||||
GetDisplayMode,\
|
||||
GetFourCCCodes,\
|
||||
GetGDISurface,\
|
||||
GetMonitorFrequency,\
|
||||
GetScanLine,\
|
||||
GetVerticalBlankStatus,\
|
||||
Initialize,\
|
||||
RestoreDisplayMode,\
|
||||
SetCooperativeLevel,\
|
||||
SetDisplayMode,\
|
||||
WaitForVerticalBlank,\
|
||||
GetAvailableVidMem,\
|
||||
GetSurfaceFromDC,\
|
||||
RestoreAllSurfaces,\
|
||||
TestCooperativeLevel,\
|
||||
GetDeviceIdentifier,\
|
||||
StartModeTest,\
|
||||
EvaluateMode
|
||||
|
||||
interface DirectDrawSurface,\
|
||||
QueryInterface,\
|
||||
AddRef,\
|
||||
Release,\
|
||||
AddAttachedSurface,\
|
||||
AddOverlayDirtyRect,\
|
||||
Blt,\
|
||||
BltBatch,\
|
||||
BltFast,\
|
||||
DeleteAttachedSurface,\
|
||||
EnumAttachedSurfaces,\
|
||||
EnumOverlayZOrders,\
|
||||
Flip,\
|
||||
GetAttachedSurface,\
|
||||
GetBltStatus,\
|
||||
GetCaps,\
|
||||
GetClipper,\
|
||||
GetColorKey,\
|
||||
GetDC,\
|
||||
GetFlipStatus,\
|
||||
GetOverlayPosition,\
|
||||
GetPalette,\
|
||||
GetPixelFormat,\
|
||||
GetSurfaceDesc,\
|
||||
Initialize,\
|
||||
IsLost,\
|
||||
Lock,\
|
||||
ReleaseDC,\
|
||||
Restore,\
|
||||
SetClipper,\
|
||||
SetColorKey,\
|
||||
SetOverlayPosition,\
|
||||
SetPalette,\
|
||||
Unlock,\
|
||||
UpdateOverlay,\
|
||||
UpdateOverlayDisplay,\
|
||||
UpdateOverlayZOrder,\
|
||||
GetDDInterface,\
|
||||
PageLock,\
|
||||
PageUnlock,\
|
||||
SetSurfaceDesc,\
|
||||
SetPrivateData,\
|
||||
GetPrivateData,\
|
||||
FreePrivateData,\
|
||||
GetUniquenessValue,\
|
||||
ChangeUniquenessValue,\
|
||||
SetPriority,\
|
||||
GetPriority,\
|
||||
SetLOD,\
|
||||
GetLOD
|
||||
|
||||
interface DirectDrawPalette,\
|
||||
QueryInterface,\
|
||||
AddRef,\
|
||||
Release,\
|
||||
GetCaps,\
|
||||
GetEntries,\
|
||||
Initialize,\
|
||||
SetEntries
|
||||
|
||||
interface DirectDrawClipper,\
|
||||
QueryInterface,\
|
||||
AddRef,\
|
||||
Release,\
|
||||
GetClipList,\
|
||||
GetHWnd,\
|
||||
Initialize,\
|
||||
IsClipListChanged,\
|
||||
SetClipList,\
|
||||
SetHWnd
|
||||
|
||||
interface DirectDrawColorControl,\
|
||||
QueryInterface,\
|
||||
AddRef,\
|
||||
Release,\
|
||||
GetColorControls,\
|
||||
SetColorControls
|
||||
|
||||
interface DirectDrawGammaControl,\
|
||||
QueryInterface,\
|
||||
AddRef,\
|
||||
Release,\
|
||||
GetGammaRamp,\
|
||||
SetGammaRamp
|
||||
|
||||
struct DDCOLORKEY
|
||||
dwColorSpaceLowValue dd ?
|
||||
dwColorSpaceHighValue dd ?
|
||||
ends
|
||||
|
||||
struct DDPIXELFORMAT
|
||||
dwSize dd ?
|
||||
dwFlags dd ?
|
||||
dwFourCC dd ?
|
||||
union
|
||||
dwRGBBitCount dd ?
|
||||
dwYUVBitCount dd ?
|
||||
dwZBufferBitDepth dd ?
|
||||
dwAlphaBitDepth dd ?
|
||||
dwLuminanceBitCount dd ?
|
||||
dwBumpBitCount dd ?
|
||||
ends
|
||||
union
|
||||
dwRBitMask dd ?
|
||||
dwYBitMask dd ?
|
||||
dwStencilBitDepth dd ?
|
||||
dwLuminanceBitMask dd ?
|
||||
dwBumpDuBitMask dd ?
|
||||
ends
|
||||
union
|
||||
dwGBitMask dd ?
|
||||
dwUBitMask dd ?
|
||||
dwZBitMask dd ?
|
||||
dwBumpDvBitMask dd ?
|
||||
ends
|
||||
union
|
||||
dwBBitMask dd ?
|
||||
dwVBitMask dd ?
|
||||
dwStencilBitMask dd ?
|
||||
dwBumpLuminanceBitMask dd ?
|
||||
ends
|
||||
union
|
||||
dwRGBAlphaBitMask dd ?
|
||||
dwYUVAlphaBitMask dd ?
|
||||
dwLuminanceAlphaBitMask dd ?
|
||||
dwRGBZBitMask dd ?
|
||||
dwYUVZBitMask dd ?
|
||||
ends
|
||||
ends
|
||||
|
||||
struct DDSCAPS
|
||||
dwCaps dd ?
|
||||
ends
|
||||
|
||||
struct DDSURFACEDESC
|
||||
dwSize dd ?
|
||||
dwFlags dd ?
|
||||
dwHeight dd ?
|
||||
dwWidth dd ?
|
||||
union
|
||||
lPitch dd ?
|
||||
dwLinearSize dd ?
|
||||
ends
|
||||
dwBackBufferCount dd ?
|
||||
union
|
||||
dwMipMapCount dd ?
|
||||
dwZBufferBitDepth dd ?
|
||||
dwRefreshRate dd ?
|
||||
ends
|
||||
dwAlphaBitDepth dd ?
|
||||
dwReserved dd ?,?
|
||||
lpSurface dq ?
|
||||
ddckCKDestOverlay DDCOLORKEY
|
||||
ddckCKDestBlt DDCOLORKEY
|
||||
ddckCKSrcOverlay DDCOLORKEY
|
||||
ddckCKSrcBlt DDCOLORKEY
|
||||
ddpfPixelFormat DDPIXELFORMAT
|
||||
ddsCaps DDSCAPS
|
||||
dd ?
|
||||
ends
|
||||
|
||||
; SetCooperativeLevel flags
|
||||
|
||||
DDSCL_FULLSCREEN = 000000001h
|
||||
DDSCL_ALLOWREBOOT = 000000002h
|
||||
DDSCL_NOWINDOWCHANGES = 000000004h
|
||||
DDSCL_NORMAL = 000000008h
|
||||
DDSCL_EXCLUSIVE = 000000010h
|
||||
DDSCL_ALLOWMODEX = 000000040h
|
||||
|
||||
; Blt flags
|
||||
|
||||
DDBLT_ALPHADEST = 000000001h
|
||||
DDBLT_ALPHADESTCONSTOVERRIDE = 000000002h
|
||||
DDBLT_ALPHADESTNEG = 000000004h
|
||||
DDBLT_ALPHADESTSURFACEOVERRIDE = 000000008h
|
||||
DDBLT_ALPHAEDGEBLEND = 000000010h
|
||||
DDBLT_ALPHASRC = 000000020h
|
||||
DDBLT_ALPHASRCCONSTOVERRIDE = 000000040h
|
||||
DDBLT_ALPHASRCNEG = 000000080h
|
||||
DDBLT_ALPHASRCSURFACEOVERRIDE = 000000100h
|
||||
DDBLT_ASYNC = 000000200h
|
||||
DDBLT_COLORFILL = 000000400h
|
||||
DDBLT_DDFX = 000000800h
|
||||
DDBLT_DDROPS = 000001000h
|
||||
DDBLT_KEYDEST = 000002000h
|
||||
DDBLT_KEYDESTOVERRIDE = 000004000h
|
||||
DDBLT_KEYSRC = 000008000h
|
||||
DDBLT_KEYSRCOVERRIDE = 000010000h
|
||||
DDBLT_ROP = 000020000h
|
||||
DDBLT_ROTATIONANGLE = 000040000h
|
||||
DDBLT_ZBUFFER = 000080000h
|
||||
DDBLT_ZBUFFERDESTCONSTOVERRIDE = 000100000h
|
||||
DDBLT_ZBUFFERDESTOVERRIDE = 000200000h
|
||||
DDBLT_ZBUFFERSRCCONSTOVERRIDE = 000400000h
|
||||
DDBLT_ZBUFFERSRCOVERRIDE = 000800000h
|
||||
DDBLT_WAIT = 001000000h
|
||||
DDBLT_DEPTHFILL = 002000000h
|
||||
|
||||
; BltFast flags
|
||||
|
||||
DDBLTFAST_NOCOLORKEY = 000000000h
|
||||
DDBLTFAST_SRCCOLORKEY = 000000001h
|
||||
DDBLTFAST_DESTCOLORKEY = 000000002h
|
||||
DDBLTFAST_WAIT = 000000010h
|
||||
|
||||
; Flip flags
|
||||
|
||||
DDFLIP_WAIT = 000000001h
|
||||
DDFLIP_EVEN = 000000002h
|
||||
DDFLIP_ODD = 000000004h
|
||||
|
||||
; DDSURFACEDESC field flags
|
||||
|
||||
DDSD_CAPS = 000000001h
|
||||
DDSD_HEIGHT = 000000002h
|
||||
DDSD_WIDTH = 000000004h
|
||||
DDSD_PITCH = 000000008h
|
||||
DDSD_BACKBUFFERCOUNT = 000000020h
|
||||
DDSD_ZBUFFERBITDEPTH = 000000040h
|
||||
DDSD_ALPHABITDEPTH = 000000080h
|
||||
DDSD_LPSURFACE = 000000800h
|
||||
DDSD_PIXELFORMAT = 000001000h
|
||||
DDSD_CKDESTOVERLAY = 000002000h
|
||||
DDSD_CKDESTBLT = 000004000h
|
||||
DDSD_CKSRCOVERLAY = 000008000h
|
||||
DDSD_CKSRCBLT = 000010000h
|
||||
DDSD_MIPMAPCOUNT = 000020000h
|
||||
DDSD_REFRESHRATE = 000040000h
|
||||
DDSD_LINEARSIZE = 000080000h
|
||||
DDSD_ALL = 0000FF9EEh
|
||||
|
||||
; DirectDrawSurface capability flags
|
||||
|
||||
DDSCAPS_RESERVED1 = 000000001h
|
||||
DDSCAPS_ALPHA = 000000002h
|
||||
DDSCAPS_BACKBUFFER = 000000004h
|
||||
DDSCAPS_COMPLEX = 000000008h
|
||||
DDSCAPS_FLIP = 000000010h
|
||||
DDSCAPS_FRONTBUFFER = 000000020h
|
||||
DDSCAPS_OFFSCREENPLAIN = 000000040h
|
||||
DDSCAPS_OVERLAY = 000000080h
|
||||
DDSCAPS_PALETTE = 000000100h
|
||||
DDSCAPS_PRIMARYSURFACE = 000000200h
|
||||
DDSCAPS_PRIMARYSURFACELEFT = 000000400h
|
||||
DDSCAPS_SYSTEMMEMORY = 000000800h
|
||||
DDSCAPS_TEXTURE = 000001000h
|
||||
DDSCAPS_3DDEVICE = 000002000h
|
||||
DDSCAPS_VIDEOMEMORY = 000004000h
|
||||
DDSCAPS_VISIBLE = 000008000h
|
||||
DDSCAPS_WRITEONLY = 000010000h
|
||||
DDSCAPS_ZBUFFER = 000020000h
|
||||
DDSCAPS_OWNDC = 000040000h
|
||||
DDSCAPS_LIVEVIDEO = 000080000h
|
||||
DDSCAPS_HWCODEC = 000100000h
|
||||
DDSCAPS_MODEX = 000200000h
|
||||
DDSCAPS_MIPMAP = 000400000h
|
||||
DDSCAPS_RESERVED2 = 000800000h
|
||||
DDSCAPS_ALLOCONLOAD = 004000000h
|
||||
DDSCAPS_VIDEOPORT = 008000000h
|
||||
DDSCAPS_LOCALVIDMEM = 010000000h
|
||||
DDSCAPS_NONLOCALVIDMEM = 020000000h
|
||||
DDSCAPS_STANDARDVGAMODE = 040000000h
|
||||
DDSCAPS_OPTIMIZED = 080000000h
|
||||
|
||||
; DirectDrawSurface lock flags
|
||||
|
||||
DDLOCK_SURFACEMEMORYPTR = 000000000h
|
||||
DDLOCK_WAIT = 000000001h
|
||||
DDLOCK_EVENT = 000000002h
|
||||
DDLOCK_READONLY = 000000010h
|
||||
DDLOCK_WRITEONLY = 000000020h
|
||||
DDLOCK_NOSYSLOCK = 000000800h
|
||||
|
||||
; DirectDrawPalette capabilities
|
||||
|
||||
DDPCAPS_4BIT = 000000001h
|
||||
DDPCAPS_8BITENTRIES = 000000002h
|
||||
DDPCAPS_8BIT = 000000004h
|
||||
DDPCAPS_INITIALIZE = 000000008h
|
||||
DDPCAPS_PRIMARYSURFACE = 000000010h
|
||||
DDPCAPS_PRIMARYSURFACELEFT = 000000020h
|
||||
DDPCAPS_ALLOW256 = 000000040h
|
||||
DDPCAPS_VSYNC = 000000080h
|
||||
DDPCAPS_1BIT = 000000100h
|
||||
DDPCAPS_2BIT = 000000200h
|
||||
|
||||
; DirectDraw errors
|
||||
|
||||
DDERR_ALREADYINITIALIZED = 088760000h+5
|
||||
DDERR_CANNOTATTACHSURFACE = 088760000h+10
|
||||
DDERR_CANNOTDETACHSURFACE = 088760000h+20
|
||||
DDERR_CURRENTLYNOTAVAIL = 088760000h+40
|
||||
DDERR_EXCEPTION = 088760000h+55
|
||||
DDERR_HEIGHTALIGN = 088760000h+90
|
||||
DDERR_INCOMPATIBLEPRIMARY = 088760000h+95
|
||||
DDERR_INVALIDCAPS = 088760000h+100
|
||||
DDERR_INVALIDCLIPLIST = 088760000h+110
|
||||
DDERR_INVALIDMODE = 088760000h+120
|
||||
DDERR_INVALIDOBJECT = 088760000h+130
|
||||
DDERR_INVALIDPIXELFORMAT = 088760000h+145
|
||||
DDERR_INVALIDRECT = 088760000h+150
|
||||
DDERR_LOCKEDSURFACES = 088760000h+160
|
||||
DDERR_NO3D = 088760000h+170
|
||||
DDERR_NOALPHAHW = 088760000h+180
|
||||
DDERR_NOCLIPLIST = 088760000h+205
|
||||
DDERR_NOCOLORCONVHW = 088760000h+210
|
||||
DDERR_NOCOOPERATIVELEVELSET = 088760000h+212
|
||||
DDERR_NOCOLORKEY = 088760000h+215
|
||||
DDERR_NOCOLORKEYHW = 088760000h+220
|
||||
DDERR_NODIRECTDRAWSUPPORT = 088760000h+222
|
||||
DDERR_NOEXCLUSIVEMODE = 088760000h+225
|
||||
DDERR_NOFLIPHW = 088760000h+230
|
||||
DDERR_NOGDI = 088760000h+240
|
||||
DDERR_NOMIRRORHW = 088760000h+250
|
||||
DDERR_NOTFOUND = 088760000h+255
|
||||
DDERR_NOOVERLAYHW = 088760000h+260
|
||||
DDERR_NORASTEROPHW = 088760000h+280
|
||||
DDERR_NOROTATIONHW = 088760000h+290
|
||||
DDERR_NOSTRETCHHW = 088760000h+310
|
||||
DDERR_NOT4BITCOLOR = 088760000h+316
|
||||
DDERR_NOT4BITCOLORINDEX = 088760000h+317
|
||||
DDERR_NOT8BITCOLOR = 088760000h+320
|
||||
DDERR_NOTEXTUREHW = 088760000h+330
|
||||
DDERR_NOVSYNCHW = 088760000h+335
|
||||
DDERR_NOZBUFFERHW = 088760000h+340
|
||||
DDERR_NOZOVERLAYHW = 088760000h+350
|
||||
DDERR_OUTOFCAPS = 088760000h+360
|
||||
DDERR_OUTOFVIDEOMEMORY = 088760000h+380
|
||||
DDERR_OVERLAYCANTCLIP = 088760000h+382
|
||||
DDERR_OVERLAYCOLORKEYONLYONEACTI = 088760000h+384
|
||||
DDERR_PALETTEBUSY = 088760000h+387
|
||||
DDERR_COLORKEYNOTSET = 088760000h+400
|
||||
DDERR_SURFACEALREADYATTACHED = 088760000h+410
|
||||
DDERR_SURFACEALREADYDEPENDENT = 088760000h+420
|
||||
DDERR_SURFACEBUSY = 088760000h+430
|
||||
DDERR_CANTLOCKSURFACE = 088760000h+435
|
||||
DDERR_SURFACEISOBSCURED = 088760000h+440
|
||||
DDERR_SURFACELOST = 088760000h+450
|
||||
DDERR_SURFACENOTATTACHED = 088760000h+460
|
||||
DDERR_TOOBIGHEIGHT = 088760000h+470
|
||||
DDERR_TOOBIGSIZE = 088760000h+480
|
||||
DDERR_TOOBIGWIDTH = 088760000h+490
|
||||
DDERR_UNSUPPORTEDFORMAT = 088760000h+510
|
||||
DDERR_UNSUPPORTEDMASK = 088760000h+520
|
||||
DDERR_VERTICALBLANKINPROGRESS = 088760000h+537
|
||||
DDERR_WASSTILLDRAWING = 088760000h+540
|
||||
DDERR_XALIGN = 088760000h+560
|
||||
DDERR_INVALIDDIRECTDRAWGUID = 088760000h+561
|
||||
DDERR_DIRECTDRAWALREADYCREATED = 088760000h+562
|
||||
DDERR_NODIRECTDRAWHW = 088760000h+563
|
||||
DDERR_PRIMARYSURFACEALREADYEXIST = 088760000h+564
|
||||
DDERR_NOEMULATION = 088760000h+565
|
||||
DDERR_REGIONTOOSMALL = 088760000h+566
|
||||
DDERR_CLIPPERISUSINGHWND = 088760000h+567
|
||||
DDERR_NOCLIPPERATTACHED = 088760000h+568
|
||||
DDERR_NOHWND = 088760000h+569
|
||||
DDERR_HWNDSUBCLASSED = 088760000h+570
|
||||
DDERR_HWNDALREADYSET = 088760000h+571
|
||||
DDERR_NOPALETTEATTACHED = 088760000h+572
|
||||
DDERR_NOPALETTEHW = 088760000h+573
|
||||
DDERR_BLTFASTCANTCLIP = 088760000h+574
|
||||
DDERR_NOBLTHW = 088760000h+575
|
||||
DDERR_NODDROPSHW = 088760000h+576
|
||||
DDERR_OVERLAYNOTVISIBLE = 088760000h+577
|
||||
DDERR_NOOVERLAYDEST = 088760000h+578
|
||||
DDERR_INVALIDPOSITION = 088760000h+579
|
||||
DDERR_NOTAOVERLAYSURFACE = 088760000h+580
|
||||
DDERR_EXCLUSIVEMODEALREADYSET = 088760000h+581
|
||||
DDERR_NOTFLIPPABLE = 088760000h+582
|
||||
DDERR_CANTDUPLICATE = 088760000h+583
|
||||
DDERR_NOTLOCKED = 088760000h+584
|
||||
DDERR_CANTCREATEDC = 088760000h+585
|
||||
DDERR_NODC = 088760000h+586
|
||||
DDERR_WRONGMODE = 088760000h+587
|
||||
DDERR_IMPLICITLYCREATED = 088760000h+588
|
||||
DDERR_NOTPALETTIZED = 088760000h+589
|
||||
DDERR_UNSUPPORTEDMODE = 088760000h+590
|
||||
DDERR_NOMIPMAPHW = 088760000h+591
|
||||
DDERR_INVALIDSURFACETYPE = 088760000h+592
|
||||
DDERR_NOOPTIMIZEHW = 088760000h+600
|
||||
DDERR_NOTLOADED = 088760000h+601
|
||||
DDERR_DCALREADYCREATED = 088760000h+620
|
||||
DDERR_NONONLOCALVIDMEM = 088760000h+630
|
||||
DDERR_CANTPAGELOCK = 088760000h+640
|
||||
DDERR_CANTPAGEUNLOCK = 088760000h+660
|
||||
DDERR_NOTPAGELOCKED = 088760000h+680
|
||||
DDERR_MOREDATA = 088760000h+690
|
||||
DDERR_VIDEONOTACTIVE = 088760000h+695
|
||||
DDERR_DEVICEDOESNTOWNSURFACE = 088760000h+699
|
||||
304
fasmw172/EXAMPLES/WIN64/MANDEL/MANDEL.ASM
Normal file
304
fasmw172/EXAMPLES/WIN64/MANDEL/MANDEL.ASM
Normal file
@@ -0,0 +1,304 @@
|
||||
|
||||
format PE64 GUI 5.0
|
||||
entry start
|
||||
|
||||
include 'win64a.inc'
|
||||
include 'ddraw64.inc'
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
start:
|
||||
|
||||
sub rsp,8
|
||||
|
||||
invoke GetModuleHandle,NULL
|
||||
mov [hinstance],rax
|
||||
mov [wc.hInstance],rax
|
||||
|
||||
invoke LoadIcon,NULL,IDI_APPLICATION
|
||||
mov [wc.hIcon],rax
|
||||
invoke LoadCursor,NULL,IDC_ARROW
|
||||
mov [wc.hCursor],rax
|
||||
invoke RegisterClassEx,wc
|
||||
test rax,rax
|
||||
jz startup_error
|
||||
|
||||
invoke CreateWindowEx,\
|
||||
0,_class,_title,WS_POPUP+WS_VISIBLE,0,0,0,0,NULL,NULL,[hinstance],NULL
|
||||
test rax,rax
|
||||
jz startup_error
|
||||
mov [hwnd],rax
|
||||
|
||||
invoke DirectDrawCreate,NULL,DDraw,NULL
|
||||
test rax,rax
|
||||
jnz ddraw_error
|
||||
|
||||
cominvk DDraw,SetCooperativeLevel,\
|
||||
[hwnd],DDSCL_EXCLUSIVE+DDSCL_FULLSCREEN
|
||||
test rax,rax
|
||||
jnz ddraw_error
|
||||
|
||||
cominvk DDraw,SetDisplayMode,\
|
||||
640,480,32
|
||||
test rax,rax
|
||||
jnz ddraw_error
|
||||
|
||||
mov [ddsd.dwSize],sizeof.DDSURFACEDESC
|
||||
mov [ddsd.dwFlags],DDSD_CAPS+DDSD_BACKBUFFERCOUNT
|
||||
mov [ddsd.ddsCaps.dwCaps],DDSCAPS_PRIMARYSURFACE+DDSCAPS_FLIP+DDSCAPS_COMPLEX
|
||||
mov [ddsd.dwBackBufferCount],1
|
||||
cominvk DDraw,CreateSurface,\
|
||||
ddsd,DDSPrimary,NULL
|
||||
or eax,eax
|
||||
jnz ddraw_error
|
||||
|
||||
mov [ddscaps.dwCaps],DDSCAPS_BACKBUFFER
|
||||
cominvk DDSPrimary,GetAttachedSurface,\
|
||||
ddscaps,DDSBack
|
||||
or eax,eax
|
||||
jnz ddraw_error
|
||||
|
||||
refresh:
|
||||
|
||||
cominvk DDSPrimary,IsLost
|
||||
test rax,rax
|
||||
jz paint
|
||||
cmp eax,DDERR_SURFACELOST
|
||||
jne end_loop
|
||||
cominvk DDSPrimary,Restore
|
||||
|
||||
paint:
|
||||
mov [ddsd.dwSize],sizeof.DDSURFACEDESC
|
||||
mov [ddsd.dwFlags],0
|
||||
cominvk DDSBack,Lock,NULL,ddsd,DDLOCK_SURFACEMEMORYPTR+DDLOCK_WAIT,NULL
|
||||
test rax,rax
|
||||
jnz main_loop
|
||||
mov rdi,[ddsd.lpSurface]
|
||||
mov r10d,[ddsd.lPitch]
|
||||
xor edx,edx
|
||||
movsd xmm8,[y_top]
|
||||
screen:
|
||||
xor ebx,ebx
|
||||
movsd xmm7,[x_left]
|
||||
unpcklpd xmm7,xmm8
|
||||
row:
|
||||
mov rcx,255
|
||||
xorpd xmm1,xmm1
|
||||
iterate:
|
||||
|
||||
movapd xmm3,xmm1
|
||||
unpckhpd xmm3,xmm3
|
||||
mulsd xmm3,xmm1
|
||||
addsd xmm3,xmm3
|
||||
|
||||
mulpd xmm1,xmm1
|
||||
movapd xmm2,xmm1 ; for SSE3-capable processor
|
||||
unpckhpd xmm2,xmm2 ; these three instructions can be
|
||||
subsd xmm1,xmm2 ; replaced with HSUBPD XMM1,XMM1
|
||||
unpcklpd xmm1,xmm3
|
||||
addpd xmm1,xmm7
|
||||
|
||||
movapd xmm0,xmm1
|
||||
mulpd xmm0,xmm0
|
||||
movapd xmm2,xmm0 ; for SSE3-capable processor
|
||||
shufpd xmm2,xmm2,1 ; these three instructions can be
|
||||
addsd xmm0,xmm2 ; replaced with HADDPD XMM0,XMM0
|
||||
sqrtpd xmm0,xmm0
|
||||
comisd xmm0,[limit]
|
||||
ja over
|
||||
|
||||
loop iterate
|
||||
over:
|
||||
xor al,al
|
||||
stosb
|
||||
mov al,cl
|
||||
stosb
|
||||
ror al,3
|
||||
stosb
|
||||
stosb
|
||||
|
||||
movsd xmm0,[x_step]
|
||||
addpd xmm7,xmm0
|
||||
inc ebx
|
||||
cmp ebx,640
|
||||
jb row
|
||||
sub rdi,640*4
|
||||
add rdi,r10
|
||||
subsd xmm8,[y_step]
|
||||
inc edx
|
||||
cmp edx,480
|
||||
jb screen
|
||||
|
||||
mov [refresh_needed],0
|
||||
cominvk DDSBack,Unlock,NULL
|
||||
cominvk DDSPrimary,Flip,0,0
|
||||
|
||||
main_loop:
|
||||
|
||||
invoke PeekMessage,msg,NULL,0,0,PM_NOREMOVE
|
||||
or eax,eax
|
||||
jz no_message
|
||||
invoke GetMessage,msg,NULL,0,0
|
||||
cmp eax,1
|
||||
jb end_loop
|
||||
jne no_message
|
||||
invoke TranslateMessage,msg
|
||||
invoke DispatchMessage,msg
|
||||
|
||||
cmp [refresh_needed],0
|
||||
jne refresh
|
||||
|
||||
jmp main_loop
|
||||
|
||||
no_message:
|
||||
invoke WaitMessage
|
||||
jmp main_loop
|
||||
|
||||
ddraw_error:
|
||||
invoke wsprintf,buffer,_ddraw_error,rax
|
||||
invoke MessageBox,[hwnd],buffer,_error,MB_OK+MB_ICONERROR
|
||||
invoke DestroyWindow,[hwnd]
|
||||
invoke PostQuitMessage,2
|
||||
jmp main_loop
|
||||
|
||||
startup_error:
|
||||
invoke MessageBox,[hwnd],_startup_error,_error,MB_OK+MB_ICONERROR
|
||||
invoke ExitProcess,1
|
||||
|
||||
end_loop:
|
||||
cominvk DDraw,RestoreDisplayMode
|
||||
cominvk DDraw,Release
|
||||
invoke ExitProcess,[msg.wParam]
|
||||
|
||||
proc WindowProc uses rbx rsi rdi, hwnd,wmsg,wparam,lparam
|
||||
cmp edx,WM_CREATE
|
||||
je .wmcreate
|
||||
cmp edx,WM_DESTROY
|
||||
je .wmdestroy
|
||||
cmp edx,WM_LBUTTONDOWN
|
||||
je .wmlbuttondown
|
||||
cmp edx,WM_RBUTTONDOWN
|
||||
je .wmrbuttondown
|
||||
cmp edx,WM_KEYDOWN
|
||||
je .wmkeydown
|
||||
cmp edx,WM_ACTIVATE
|
||||
je .wmactivate
|
||||
.defwindowproc:
|
||||
invoke DefWindowProc,rcx,rdx,r8,r9
|
||||
jmp .finish
|
||||
.wmcreate:
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.wmactivate:
|
||||
test r8,r8
|
||||
jz .finish
|
||||
or [refresh_needed],1
|
||||
jmp .finish
|
||||
.wmlbuttondown:
|
||||
movapd xmm0,[step]
|
||||
divpd xmm0,[zoom]
|
||||
movapd xmm1,xmm0
|
||||
subpd xmm1,[step]
|
||||
movapd [step],xmm0
|
||||
movzx eax,r9w
|
||||
cvtsi2sd xmm3,eax
|
||||
shr r9,16
|
||||
movzx eax,r9w
|
||||
cvtsi2sd xmm4,eax
|
||||
unpcklpd xmm3,xmm4
|
||||
mulpd xmm1,xmm3
|
||||
xorpd xmm1,[negate]
|
||||
addpd xmm1,[origin]
|
||||
movapd [origin],xmm1
|
||||
or [refresh_needed],1
|
||||
jmp .finish
|
||||
.wmrbuttondown:
|
||||
movapd xmm0,[step]
|
||||
mulpd xmm0,[zoom]
|
||||
movapd xmm1,xmm0
|
||||
subpd xmm1,[step]
|
||||
movapd [step],xmm0
|
||||
movzx eax,r9w
|
||||
cvtsi2sd xmm3,eax
|
||||
shr r9,16
|
||||
movzx eax,r9w
|
||||
cvtsi2sd xmm4,eax
|
||||
unpcklpd xmm3,xmm4
|
||||
mulpd xmm1,xmm3
|
||||
xorpd xmm1,[negate]
|
||||
addpd xmm1,[origin]
|
||||
movapd [origin],xmm1
|
||||
or [refresh_needed],1
|
||||
jmp .finish
|
||||
.wmkeydown:
|
||||
cmp r8d,VK_ESCAPE
|
||||
jne .finish
|
||||
.wmdestroy:
|
||||
invoke PostQuitMessage,0
|
||||
xor eax,eax
|
||||
.finish:
|
||||
ret
|
||||
endp
|
||||
|
||||
section '.data' data readable writeable
|
||||
|
||||
wc WNDCLASSEX sizeof.WNDCLASSEX,0,WindowProc,0,0,NULL,NULL,NULL,NULL,NULL,_class,NULL
|
||||
|
||||
_title db 'flat assembler DirectDraw application',0
|
||||
_class db 'FDDRAW64',0
|
||||
|
||||
_error db 'Error',0
|
||||
_startup_error db 'Startup failed',0
|
||||
_ddraw_error db 'Direct Draw initialization failed (error code 0x%x).',0
|
||||
|
||||
align 16 ; SSE data follows
|
||||
|
||||
label origin dqword
|
||||
x_left dq -2.2
|
||||
y_top dq 1.25
|
||||
|
||||
label step dqword
|
||||
x_step dq 0.0045
|
||||
y_step dq 0.0052
|
||||
|
||||
label zoom dqword
|
||||
dq 1.2,1.2
|
||||
|
||||
label negate dqword
|
||||
dq 8000000000000000h,0
|
||||
|
||||
limit dq 2.5
|
||||
|
||||
tmp db 1
|
||||
|
||||
section '.bss' readable writeable
|
||||
|
||||
hinstance dq ?
|
||||
hwnd dq ?
|
||||
msg MSG
|
||||
|
||||
ddsd DDSURFACEDESC
|
||||
ddscaps DDSCAPS
|
||||
|
||||
DDraw DirectDraw
|
||||
DDSPrimary DirectDrawSurface
|
||||
DDSBack DirectDrawSurface
|
||||
|
||||
rect RECT
|
||||
|
||||
refresh_needed dd ?
|
||||
|
||||
buffer rb 100h
|
||||
|
||||
|
||||
section '.idata' import data readable
|
||||
|
||||
library kernel32,'KERNEL32.DLL',\
|
||||
user32,'USER32.DLL',\
|
||||
ddraw,'DDRAW.DLL'
|
||||
|
||||
include 'api\kernel32.inc'
|
||||
include 'api\user32.inc'
|
||||
|
||||
import ddraw,\
|
||||
DirectDrawCreate,'DirectDrawCreate'
|
||||
615
fasmw172/EXAMPLES/WIN64/OPENGL/OPENGL.ASM
Normal file
615
fasmw172/EXAMPLES/WIN64/OPENGL/OPENGL.ASM
Normal file
@@ -0,0 +1,615 @@
|
||||
|
||||
; OpenGL programming example
|
||||
|
||||
format PE64 GUI 5.0
|
||||
entry start
|
||||
|
||||
include 'win64a.inc'
|
||||
|
||||
include '..\..\opengl\opengl.inc'
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
start:
|
||||
sub rsp,8 ; Make stack dqword aligned
|
||||
|
||||
invoke GetModuleHandle,0
|
||||
mov [wc.hInstance],rax
|
||||
invoke LoadIcon,0,IDI_APPLICATION
|
||||
mov [wc.hIcon],rax
|
||||
invoke LoadCursor,0,IDC_ARROW
|
||||
mov [wc.hCursor],rax
|
||||
invoke RegisterClass,wc
|
||||
invoke CreateWindowEx,0,_class,_title,WS_VISIBLE+WS_OVERLAPPEDWINDOW+WS_CLIPCHILDREN+WS_CLIPSIBLINGS,16,16,432,432,NULL,NULL,[wc.hInstance],NULL
|
||||
|
||||
msg_loop:
|
||||
invoke GetMessage,addr msg,NULL,0,0
|
||||
cmp eax,1
|
||||
jb end_loop
|
||||
jne msg_loop
|
||||
invoke TranslateMessage,addr msg
|
||||
invoke DispatchMessage,addr msg
|
||||
jmp msg_loop
|
||||
|
||||
end_loop:
|
||||
invoke ExitProcess,[msg.wParam]
|
||||
|
||||
proc WindowProc uses rbx rsi rdi, hwnd,wmsg,wparam,lparam
|
||||
mov [hwnd],rcx
|
||||
frame
|
||||
cmp edx,WM_CREATE
|
||||
je .wmcreate
|
||||
cmp edx,WM_SIZE
|
||||
je .wmsize
|
||||
cmp edx,WM_PAINT
|
||||
je .wmpaint
|
||||
cmp edx,WM_KEYDOWN
|
||||
je .wmkeydown
|
||||
cmp edx,WM_DESTROY
|
||||
je .wmdestroy
|
||||
.defwndproc:
|
||||
invoke DefWindowProc,rcx,rdx,r8,r9
|
||||
jmp .finish
|
||||
.wmcreate:
|
||||
invoke GetDC,rcx
|
||||
mov [hdc],rax
|
||||
lea rdi,[pfd]
|
||||
mov rcx,sizeof.PIXELFORMATDESCRIPTOR shr 3
|
||||
xor eax,eax
|
||||
rep stosq
|
||||
mov [pfd.nSize],sizeof.PIXELFORMATDESCRIPTOR
|
||||
mov [pfd.nVersion],1
|
||||
mov [pfd.dwFlags],PFD_SUPPORT_OPENGL+PFD_DOUBLEBUFFER+PFD_DRAW_TO_WINDOW
|
||||
mov [pfd.iLayerType],PFD_MAIN_PLANE
|
||||
mov [pfd.iPixelType],PFD_TYPE_RGBA
|
||||
mov [pfd.cColorBits],16
|
||||
mov [pfd.cDepthBits],16
|
||||
mov [pfd.cAccumBits],0
|
||||
mov [pfd.cStencilBits],0
|
||||
invoke ChoosePixelFormat,[hdc],addr pfd
|
||||
invoke SetPixelFormat,[hdc],eax,addr pfd
|
||||
invoke wglCreateContext,[hdc]
|
||||
mov [hrc],rax
|
||||
invoke wglMakeCurrent,[hdc],[hrc]
|
||||
invoke GetClientRect,[hwnd],addr rc
|
||||
invoke glViewport,0,0,[rc.right],[rc.bottom]
|
||||
invoke GetTickCount
|
||||
mov [clock],eax
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.wmsize:
|
||||
invoke GetClientRect,[hwnd],addr rc
|
||||
invoke glViewport,0,0,[rc.right],[rc.bottom]
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.wmpaint:
|
||||
invoke GetTickCount
|
||||
sub eax,[clock]
|
||||
cmp eax,10
|
||||
jb .animation_ok
|
||||
add [clock],eax
|
||||
invoke glRotatef,float [theta],float dword 0.0,float dword 0.0,float dword 1.0
|
||||
.animation_ok:
|
||||
invoke glClear,GL_COLOR_BUFFER_BIT
|
||||
invoke glBegin,GL_QUADS
|
||||
invoke glColor3f,float dword 1.0,float dword 0.1,float dword 0.1
|
||||
invoke glVertex3d,float -0.6,float -0.6,float 0.0
|
||||
invoke glColor3f,float dword 0.1,float dword 0.1,float dword 0.1
|
||||
invoke glVertex3d,float 0.6,float -0.6,float 0.0
|
||||
invoke glColor3f,float dword 0.1,float dword 0.1,float dword 1.0
|
||||
invoke glVertex3d,float 0.6,float 0.6,float 0.0
|
||||
invoke glColor3f,float dword 1.0,float dword 0.1,float dword 1.0
|
||||
invoke glVertex3d,float -0.6,float 0.6,float 0.0
|
||||
invoke glEnd
|
||||
invoke SwapBuffers,[hdc]
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.wmkeydown:
|
||||
cmp r8d,VK_ESCAPE
|
||||
jne .defwndproc
|
||||
.wmdestroy:
|
||||
invoke wglMakeCurrent,0,0
|
||||
invoke wglDeleteContext,[hrc]
|
||||
invoke ReleaseDC,[hwnd],[hdc]
|
||||
invoke PostQuitMessage,0
|
||||
xor eax,eax
|
||||
.finish:
|
||||
endf
|
||||
ret
|
||||
endp
|
||||
|
||||
section '.data' data readable writeable
|
||||
|
||||
_title db 'OpenGL example',0
|
||||
_class db 'FASMOPENGL32',0
|
||||
|
||||
theta GLfloat 0.6
|
||||
|
||||
wc WNDCLASS 0,WindowProc,0,0,NULL,NULL,NULL,NULL,NULL,_class
|
||||
|
||||
hdc dq ?
|
||||
hrc dq ?
|
||||
|
||||
msg MSG
|
||||
rc RECT
|
||||
pfd PIXELFORMATDESCRIPTOR
|
||||
|
||||
clock dd ?
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel,'KERNEL32.DLL',\
|
||||
user,'USER32.DLL',\
|
||||
gdi,'GDI32.DLL',\
|
||||
opengl,'OPENGL32.DLL',\
|
||||
glu,'GLU32.DLL'
|
||||
|
||||
import kernel,\
|
||||
GetModuleHandle,'GetModuleHandleA',\
|
||||
GetTickCount,'GetTickCount',\
|
||||
ExitProcess,'ExitProcess'
|
||||
|
||||
import user,\
|
||||
RegisterClass,'RegisterClassA',\
|
||||
CreateWindowEx,'CreateWindowExA',\
|
||||
DefWindowProc,'DefWindowProcA',\
|
||||
GetMessage,'GetMessageA',\
|
||||
TranslateMessage,'TranslateMessage',\
|
||||
DispatchMessage,'DispatchMessageA',\
|
||||
LoadCursor,'LoadCursorA',\
|
||||
LoadIcon,'LoadIconA',\
|
||||
GetClientRect,'GetClientRect',\
|
||||
GetDC,'GetDC',\
|
||||
ReleaseDC,'ReleaseDC',\
|
||||
PostQuitMessage,'PostQuitMessage'
|
||||
|
||||
import gdi,\
|
||||
ChoosePixelFormat,'ChoosePixelFormat',\
|
||||
SetPixelFormat,'SetPixelFormat',\
|
||||
SwapBuffers,'SwapBuffers'
|
||||
|
||||
import opengl,\
|
||||
glAccum,'glAccum',\
|
||||
glAlphaFunc,'glAlphaFunc',\
|
||||
glAreTexturesResident,'glAreTexturesResident',\
|
||||
glArrayElement,'glArrayElement',\
|
||||
glBegin,'glBegin',\
|
||||
glBindTexture,'glBindTexture',\
|
||||
glBitmap,'glBitmap',\
|
||||
glBlendFunc,'glBlendFunc',\
|
||||
glCallList,'glCallList',\
|
||||
glCallLists,'glCallLists',\
|
||||
glClear,'glClear',\
|
||||
glClearAccum,'glClearAccum',\
|
||||
glClearColor,'glClearColor',\
|
||||
glClearDepth,'glClearDepth',\
|
||||
glClearIndex,'glClearIndex',\
|
||||
glClearStencil,'glClearStencil',\
|
||||
glClipPlane,'glClipPlane',\
|
||||
glColor3b,'glColor3b',\
|
||||
glColor3bv,'glColor3bv',\
|
||||
glColor3d,'glColor3d',\
|
||||
glColor3dv,'glColor3dv',\
|
||||
glColor3f,'glColor3f',\
|
||||
glColor3fv,'glColor3fv',\
|
||||
glColor3i,'glColor3i',\
|
||||
glColor3iv,'glColor3iv',\
|
||||
glColor3s,'glColor3s',\
|
||||
glColor3sv,'glColor3sv',\
|
||||
glColor3ub,'glColor3ub',\
|
||||
glColor3ubv,'glColor3ubv',\
|
||||
glColor3ui,'glColor3ui',\
|
||||
glColor3uiv,'glColor3uiv',\
|
||||
glColor3us,'glColor3us',\
|
||||
glColor3usv,'glColor3usv',\
|
||||
glColor4b,'glColor4b',\
|
||||
glColor4bv,'glColor4bv',\
|
||||
glColor4d,'glColor4d',\
|
||||
glColor4dv,'glColor4dv',\
|
||||
glColor4f,'glColor4f',\
|
||||
glColor4fv,'glColor4fv',\
|
||||
glColor4i,'glColor4i',\
|
||||
glColor4iv,'glColor4iv',\
|
||||
glColor4s,'glColor4s',\
|
||||
glColor4sv,'glColor4sv',\
|
||||
glColor4ub,'glColor4ub',\
|
||||
glColor4ubv,'glColor4ubv',\
|
||||
glColor4ui,'glColor4ui',\
|
||||
glColor4uiv,'glColor4uiv',\
|
||||
glColor4us,'glColor4us',\
|
||||
glColor4usv,'glColor4usv',\
|
||||
glColorMask,'glColorMask',\
|
||||
glColorMaterial,'glColorMaterial',\
|
||||
glColorPointer,'glColorPointer',\
|
||||
glCopyPixels,'glCopyPixels',\
|
||||
glCopyTexImage1D,'glCopyTexImage1D',\
|
||||
glCopyTexImage2D,'glCopyTexImage2D',\
|
||||
glCopyTexSubImage1D,'glCopyTexSubImage1D',\
|
||||
glCopyTexSubImage2D,'glCopyTexSubImage2D',\
|
||||
glCullFace,'glCullFace',\
|
||||
glDeleteLists,'glDeleteLists',\
|
||||
glDeleteTextures,'glDeleteTextures',\
|
||||
glDepthFunc,'glDepthFunc',\
|
||||
glDepthMask,'glDepthMask',\
|
||||
glDepthRange,'glDepthRange',\
|
||||
glDisable,'glDisable',\
|
||||
glDisableClientState,'glDisableClientState',\
|
||||
glDrawArrays,'glDrawArrays',\
|
||||
glDrawBuffer,'glDrawBuffer',\
|
||||
glDrawElements,'glDrawElements',\
|
||||
glDrawPixels,'glDrawPixels',\
|
||||
glEdgeFlag,'glEdgeFlag',\
|
||||
glEdgeFlagPointer,'glEdgeFlagPointer',\
|
||||
glEdgeFlagv,'glEdgeFlagv',\
|
||||
glEnable,'glEnable',\
|
||||
glEnableClientState,'glEnableClientState',\
|
||||
glEnd,'glEnd',\
|
||||
glEndList,'glEndList',\
|
||||
glEvalCoord1d,'glEvalCoord1d',\
|
||||
glEvalCoord1dv,'glEvalCoord1dv',\
|
||||
glEvalCoord1f,'glEvalCoord1f',\
|
||||
glEvalCoord1fv,'glEvalCoord1fv',\
|
||||
glEvalCoord2d,'glEvalCoord2d',\
|
||||
glEvalCoord2dv,'glEvalCoord2dv',\
|
||||
glEvalCoord2f,'glEvalCoord2f',\
|
||||
glEvalCoord2fv,'glEvalCoord2fv',\
|
||||
glEvalMesh1,'glEvalMesh1',\
|
||||
glEvalMesh2,'glEvalMesh2',\
|
||||
glEvalPoint1,'glEvalPoint1',\
|
||||
glEvalPoint2,'glEvalPoint2',\
|
||||
glFeedbackBuffer,'glFeedbackBuffer',\
|
||||
glFinish,'glFinish',\
|
||||
glFlush,'glFlush',\
|
||||
glFogf,'glFogf',\
|
||||
glFogfv,'glFogfv',\
|
||||
glFogi,'glFogi',\
|
||||
glFogiv,'glFogiv',\
|
||||
glFrontFace,'glFrontFace',\
|
||||
glFrustum,'glFrustum',\
|
||||
glGenLists,'glGenLists',\
|
||||
glGenTextures,'glGenTextures',\
|
||||
glGetBooleanv,'glGetBooleanv',\
|
||||
glGetClipPlane,'glGetClipPlane',\
|
||||
glGetDoublev,'glGetDoublev',\
|
||||
glGetError,'glGetError',\
|
||||
glGetFloatv,'glGetFloatv',\
|
||||
glGetIntegerv,'glGetIntegerv',\
|
||||
glGetLightfv,'glGetLightfv',\
|
||||
glGetLightiv,'glGetLightiv',\
|
||||
glGetMapdv,'glGetMapdv',\
|
||||
glGetMapfv,'glGetMapfv',\
|
||||
glGetMapiv,'glGetMapiv',\
|
||||
glGetMaterialfv,'glGetMaterialfv',\
|
||||
glGetMaterialiv,'glGetMaterialiv',\
|
||||
glGetPixelMapfv,'glGetPixelMapfv',\
|
||||
glGetPixelMapuiv,'glGetPixelMapuiv',\
|
||||
glGetPixelMapusv,'glGetPixelMapusv',\
|
||||
glGetPointerv,'glGetPointerv',\
|
||||
glGetPolygonStipple,'glGetPolygonStipple',\
|
||||
glGetString,'glGetString',\
|
||||
glGetTexEnvfv,'glGetTexEnvfv',\
|
||||
glGetTexEnviv,'glGetTexEnviv',\
|
||||
glGetTexGendv,'glGetTexGendv',\
|
||||
glGetTexGenfv,'glGetTexGenfv',\
|
||||
glGetTexGeniv,'glGetTexGeniv',\
|
||||
glGetTexImage,'glGetTexImage',\
|
||||
glGetTexLevelParameterfv,'glGetTexLevelParameterfv',\
|
||||
glGetTexLevelParameteriv,'glGetTexLevelParameteriv',\
|
||||
glGetTexParameterfv,'glGetTexParameterfv',\
|
||||
glGetTexParameteriv,'glGetTexParameteriv',\
|
||||
glHint,'glHint',\
|
||||
glIndexMask,'glIndexMask',\
|
||||
glIndexPointer,'glIndexPointer',\
|
||||
glIndexd,'glIndexd',\
|
||||
glIndexdv,'glIndexdv',\
|
||||
glIndexf,'glIndexf',\
|
||||
glIndexfv,'glIndexfv',\
|
||||
glIndexi,'glIndexi',\
|
||||
glIndexiv,'glIndexiv',\
|
||||
glIndexs,'glIndexs',\
|
||||
glIndexsv,'glIndexsv',\
|
||||
glIndexub,'glIndexub',\
|
||||
glIndexubv,'glIndexubv',\
|
||||
glInitNames,'glInitNames',\
|
||||
glInterleavedArrays,'glInterleavedArrays',\
|
||||
glIsEnabled,'glIsEnabled',\
|
||||
glIsList,'glIsList',\
|
||||
glIsTexture,'glIsTexture',\
|
||||
glLightModelf,'glLightModelf',\
|
||||
glLightModelfv,'glLightModelfv',\
|
||||
glLightModeli,'glLightModeli',\
|
||||
glLightModeliv,'glLightModeliv',\
|
||||
glLightf,'glLightf',\
|
||||
glLightfv,'glLightfv',\
|
||||
glLighti,'glLighti',\
|
||||
glLightiv,'glLightiv',\
|
||||
glLineStipple,'glLineStipple',\
|
||||
glLineWidth,'glLineWidth',\
|
||||
glListBase,'glListBase',\
|
||||
glLoadIdentity,'glLoadIdentity',\
|
||||
glLoadMatrixd,'glLoadMatrixd',\
|
||||
glLoadMatrixf,'glLoadMatrixf',\
|
||||
glLoadName,'glLoadName',\
|
||||
glLogicOp,'glLogicOp',\
|
||||
glMap1d,'glMap1d',\
|
||||
glMap1f,'glMap1f',\
|
||||
glMap2d,'glMap2d',\
|
||||
glMap2f,'glMap2f',\
|
||||
glMapGrid1d,'glMapGrid1d',\
|
||||
glMapGrid1f,'glMapGrid1f',\
|
||||
glMapGrid2d,'glMapGrid2d',\
|
||||
glMapGrid2f,'glMapGrid2f',\
|
||||
glMaterialf,'glMaterialf',\
|
||||
glMaterialfv,'glMaterialfv',\
|
||||
glMateriali,'glMateriali',\
|
||||
glMaterialiv,'glMaterialiv',\
|
||||
glMatrixMode,'glMatrixMode',\
|
||||
glMultMatrixd,'glMultMatrixd',\
|
||||
glMultMatrixf,'glMultMatrixf',\
|
||||
glNewList,'glNewList',\
|
||||
glNormal3b,'glNormal3b',\
|
||||
glNormal3bv,'glNormal3bv',\
|
||||
glNormal3d,'glNormal3d',\
|
||||
glNormal3dv,'glNormal3dv',\
|
||||
glNormal3f,'glNormal3f',\
|
||||
glNormal3fv,'glNormal3fv',\
|
||||
glNormal3i,'glNormal3i',\
|
||||
glNormal3iv,'glNormal3iv',\
|
||||
glNormal3s,'glNormal3s',\
|
||||
glNormal3sv,'glNormal3sv',\
|
||||
glNormalPointer,'glNormalPointer',\
|
||||
glOrtho,'glOrtho',\
|
||||
glPassThrough,'glPassThrough',\
|
||||
glPixelMapfv,'glPixelMapfv',\
|
||||
glPixelMapuiv,'glPixelMapuiv',\
|
||||
glPixelMapusv,'glPixelMapusv',\
|
||||
glPixelStoref,'glPixelStoref',\
|
||||
glPixelStorei,'glPixelStorei',\
|
||||
glPixelTransferf,'glPixelTransferf',\
|
||||
glPixelTransferi,'glPixelTransferi',\
|
||||
glPixelZoom,'glPixelZoom',\
|
||||
glPointSize,'glPointSize',\
|
||||
glPolygonMode,'glPolygonMode',\
|
||||
glPolygonOffset,'glPolygonOffset',\
|
||||
glPolygonStipple,'glPolygonStipple',\
|
||||
glPopAttrib,'glPopAttrib',\
|
||||
glPopClientAttrib,'glPopClientAttrib',\
|
||||
glPopMatrix,'glPopMatrix',\
|
||||
glPopName,'glPopName',\
|
||||
glPrioritizeTextures,'glPrioritizeTextures',\
|
||||
glPushAttrib,'glPushAttrib',\
|
||||
glPushClientAttrib,'glPushClientAttrib',\
|
||||
glPushMatrix,'glPushMatrix',\
|
||||
glPushName,'glPushName',\
|
||||
glRasterPos2d,'glRasterPos2d',\
|
||||
glRasterPos2dv,'glRasterPos2dv',\
|
||||
glRasterPos2f,'glRasterPos2f',\
|
||||
glRasterPos2fv,'glRasterPos2fv',\
|
||||
glRasterPos2i,'glRasterPos2i',\
|
||||
glRasterPos2iv,'glRasterPos2iv',\
|
||||
glRasterPos2s,'glRasterPos2s',\
|
||||
glRasterPos2sv,'glRasterPos2sv',\
|
||||
glRasterPos3d,'glRasterPos3d',\
|
||||
glRasterPos3dv,'glRasterPos3dv',\
|
||||
glRasterPos3f,'glRasterPos3f',\
|
||||
glRasterPos3fv,'glRasterPos3fv',\
|
||||
glRasterPos3i,'glRasterPos3i',\
|
||||
glRasterPos3iv,'glRasterPos3iv',\
|
||||
glRasterPos3s,'glRasterPos3s',\
|
||||
glRasterPos3sv,'glRasterPos3sv',\
|
||||
glRasterPos4d,'glRasterPos4d',\
|
||||
glRasterPos4dv,'glRasterPos4dv',\
|
||||
glRasterPos4f,'glRasterPos4f',\
|
||||
glRasterPos4fv,'glRasterPos4fv',\
|
||||
glRasterPos4i,'glRasterPos4i',\
|
||||
glRasterPos4iv,'glRasterPos4iv',\
|
||||
glRasterPos4s,'glRasterPos4s',\
|
||||
glRasterPos4sv,'glRasterPos4sv',\
|
||||
glReadBuffer,'glReadBuffer',\
|
||||
glReadPixels,'glReadPixels',\
|
||||
glRectd,'glRectd',\
|
||||
glRectdv,'glRectdv',\
|
||||
glRectf,'glRectf',\
|
||||
glRectfv,'glRectfv',\
|
||||
glRecti,'glRecti',\
|
||||
glRectiv,'glRectiv',\
|
||||
glRects,'glRects',\
|
||||
glRectsv,'glRectsv',\
|
||||
glRenderMode,'glRenderMode',\
|
||||
glRotated,'glRotated',\
|
||||
glRotatef,'glRotatef',\
|
||||
glScaled,'glScaled',\
|
||||
glScalef,'glScalef',\
|
||||
glScissor,'glScissor',\
|
||||
glSelectBuffer,'glSelectBuffer',\
|
||||
glShadeModel,'glShadeModel',\
|
||||
glStencilFunc,'glStencilFunc',\
|
||||
glStencilMask,'glStencilMask',\
|
||||
glStencilOp,'glStencilOp',\
|
||||
glTexCoord1d,'glTexCoord1d',\
|
||||
glTexCoord1dv,'glTexCoord1dv',\
|
||||
glTexCoord1f,'glTexCoord1f',\
|
||||
glTexCoord1fv,'glTexCoord1fv',\
|
||||
glTexCoord1i,'glTexCoord1i',\
|
||||
glTexCoord1iv,'glTexCoord1iv',\
|
||||
glTexCoord1s,'glTexCoord1s',\
|
||||
glTexCoord1sv,'glTexCoord1sv',\
|
||||
glTexCoord2d,'glTexCoord2d',\
|
||||
glTexCoord2dv,'glTexCoord2dv',\
|
||||
glTexCoord2f,'glTexCoord2f',\
|
||||
glTexCoord2fv,'glTexCoord2fv',\
|
||||
glTexCoord2i,'glTexCoord2i',\
|
||||
glTexCoord2iv,'glTexCoord2iv',\
|
||||
glTexCoord2s,'glTexCoord2s',\
|
||||
glTexCoord2sv,'glTexCoord2sv',\
|
||||
glTexCoord3d,'glTexCoord3d',\
|
||||
glTexCoord3dv,'glTexCoord3dv',\
|
||||
glTexCoord3f,'glTexCoord3f',\
|
||||
glTexCoord3fv,'glTexCoord3fv',\
|
||||
glTexCoord3i,'glTexCoord3i',\
|
||||
glTexCoord3iv,'glTexCoord3iv',\
|
||||
glTexCoord3s,'glTexCoord3s',\
|
||||
glTexCoord3sv,'glTexCoord3sv',\
|
||||
glTexCoord4d,'glTexCoord4d',\
|
||||
glTexCoord4dv,'glTexCoord4dv',\
|
||||
glTexCoord4f,'glTexCoord4f',\
|
||||
glTexCoord4fv,'glTexCoord4fv',\
|
||||
glTexCoord4i,'glTexCoord4i',\
|
||||
glTexCoord4iv,'glTexCoord4iv',\
|
||||
glTexCoord4s,'glTexCoord4s',\
|
||||
glTexCoord4sv,'glTexCoord4sv',\
|
||||
glTexCoordPointer,'glTexCoordPointer',\
|
||||
glTexEnvf,'glTexEnvf',\
|
||||
glTexEnvfv,'glTexEnvfv',\
|
||||
glTexEnvi,'glTexEnvi',\
|
||||
glTexEnviv,'glTexEnviv',\
|
||||
glTexGend,'glTexGend',\
|
||||
glTexGendv,'glTexGendv',\
|
||||
glTexGenf,'glTexGenf',\
|
||||
glTexGenfv,'glTexGenfv',\
|
||||
glTexGeni,'glTexGeni',\
|
||||
glTexGeniv,'glTexGeniv',\
|
||||
glTexImage1D,'glTexImage1D',\
|
||||
glTexImage2D,'glTexImage2D',\
|
||||
glTexParameterf,'glTexParameterf',\
|
||||
glTexParameterfv,'glTexParameterfv',\
|
||||
glTexParameteri,'glTexParameteri',\
|
||||
glTexParameteriv,'glTexParameteriv',\
|
||||
glTexSubImage1D,'glTexSubImage1D',\
|
||||
glTexSubImage2D,'glTexSubImage2D',\
|
||||
glTranslated,'glTranslated',\
|
||||
glTranslatef,'glTranslatef',\
|
||||
glVertex2d,'glVertex2d',\
|
||||
glVertex2dv,'glVertex2dv',\
|
||||
glVertex2f,'glVertex2f',\
|
||||
glVertex2fv,'glVertex2fv',\
|
||||
glVertex2i,'glVertex2i',\
|
||||
glVertex2iv,'glVertex2iv',\
|
||||
glVertex2s,'glVertex2s',\
|
||||
glVertex2sv,'glVertex2sv',\
|
||||
glVertex3d,'glVertex3d',\
|
||||
glVertex3dv,'glVertex3dv',\
|
||||
glVertex3f,'glVertex3f',\
|
||||
glVertex3fv,'glVertex3fv',\
|
||||
glVertex3i,'glVertex3i',\
|
||||
glVertex3iv,'glVertex3iv',\
|
||||
glVertex3s,'glVertex3s',\
|
||||
glVertex3sv,'glVertex3sv',\
|
||||
glVertex4d,'glVertex4d',\
|
||||
glVertex4dv,'glVertex4dv',\
|
||||
glVertex4f,'glVertex4f',\
|
||||
glVertex4fv,'glVertex4fv',\
|
||||
glVertex4i,'glVertex4i',\
|
||||
glVertex4iv,'glVertex4iv',\
|
||||
glVertex4s,'glVertex4s',\
|
||||
glVertex4sv,'glVertex4sv',\
|
||||
glVertexPointer,'glVertexPointer',\
|
||||
glViewport,'glViewport',\
|
||||
wglGetProcAddress,'wglGetProcAddress',\
|
||||
wglCopyContext,'wglCopyContext',\
|
||||
wglCreateContext,'wglCreateContext',\
|
||||
wglCreateLayerContext,'wglCreateLayerContext',\
|
||||
wglDeleteContext,'wglDeleteContext',\
|
||||
wglDescribeLayerPlane,'wglDescribeLayerPlane',\
|
||||
wglGetCurrentContext,'wglGetCurrentContext',\
|
||||
wglGetCurrentDC,'wglGetCurrentDC',\
|
||||
wglGetLayerPaletteEntries,'wglGetLayerPaletteEntries',\
|
||||
wglMakeCurrent,'wglMakeCurrent',\
|
||||
wglRealizeLayerPalette,'wglRealizeLayerPalette',\
|
||||
wglSetLayerPaletteEntries,'wglSetLayerPaletteEntries',\
|
||||
wglShareLists,'wglShareLists',\
|
||||
wglSwapLayerBuffers,'wglSwapLayerBuffers',\
|
||||
wglSwapMultipleBuffers,'wglSwapMultipleBuffers',\
|
||||
wglUseFontBitmapsA,'wglUseFontBitmapsA',\
|
||||
wglUseFontOutlinesA,'wglUseFontOutlinesA',\
|
||||
wglUseFontBitmapsW,'wglUseFontBitmapsW',\
|
||||
wglUseFontOutlinesW,'wglUseFontOutlinesW',\
|
||||
glDrawRangeElements,'glDrawRangeElements',\
|
||||
glTexImage3D,'glTexImage3D',\
|
||||
glBlendColor,'glBlendColor',\
|
||||
glBlendEquation,'glBlendEquation',\
|
||||
glColorSubTable,'glColorSubTable',\
|
||||
glCopyColorSubTable,'glCopyColorSubTable',\
|
||||
glColorTable,'glColorTable',\
|
||||
glCopyColorTable,'glCopyColorTable',\
|
||||
glColorTableParameteriv,'glColorTableParameteriv',\
|
||||
glColorTableParameterfv,'glColorTableParameterfv',\
|
||||
glGetColorTable,'glGetColorTable',\
|
||||
glGetColorTableParameteriv,'glGetColorTableParameteriv',\
|
||||
glGetColorTableParameterfv,'glGetColorTableParameterfv',\
|
||||
glConvolutionFilter1D,'glConvolutionFilter1D',\
|
||||
glConvolutionFilter2D,'glConvolutionFilter2D',\
|
||||
glCopyConvolutionFilter1D,'glCopyConvolutionFilter1D',\
|
||||
glCopyConvolutionFilter2D,'glCopyConvolutionFilter2D',\
|
||||
glGetConvolutionFilter,'glGetConvolutionFilter',\
|
||||
glSeparableFilter2D,'glSeparableFilter2D',\
|
||||
glGetSeparableFilter,'glGetSeparableFilter',\
|
||||
glConvolutionParameteri,'glConvolutionParameteri',\
|
||||
glConvolutionParameteriv,'glConvolutionParameteriv',\
|
||||
glConvolutionParameterf,'glConvolutionParameterf',\
|
||||
glConvolutionParameterfv,'glConvolutionParameterfv',\
|
||||
glGetConvolutionParameteriv,'glGetConvolutionParameteriv',\
|
||||
glGetConvolutionParameterfv,'glGetConvolutionParameterfv',\
|
||||
glHistogram,'glHistogram',\
|
||||
glResetHistogram,'glResetHistogram',\
|
||||
glGetHistogram,'glGetHistogram',\
|
||||
glGetHistogramParameteriv,'glGetHistogramParameteriv',\
|
||||
glGetHistogramParameterfv,'glGetHistogramParameterfv',\
|
||||
glMinmax,'glMinmax',\
|
||||
glResetMinmax,'glResetMinmax',\
|
||||
glGetMinmax,'glGetMinmax',\
|
||||
glGetMinmaxParameteriv,'glGetMinmaxParameteriv',\
|
||||
glGetMinmaxParameterfv,'glGetMinmaxParameterfv'
|
||||
|
||||
import glu,\
|
||||
gluBeginCurve,'gluBeginCurve',\
|
||||
gluBeginPolygon,'gluBeginPolygon',\
|
||||
gluBeginSurface,'gluBeginSurface',\
|
||||
gluBeginTrim,'gluBeginTrim',\
|
||||
gluBuild1DMipmaps,'gluBuild1DMipmaps',\
|
||||
gluBuild2DMipmaps,'gluBuild2DMipmaps',\
|
||||
gluCylinder,'gluCylinder',\
|
||||
gluDeleteNurbsRenderer,'gluDeleteNurbsRenderer',\
|
||||
gluDeleteQuadric,'gluDeleteQuadric',\
|
||||
gluDeleteTess,'gluDeleteTess',\
|
||||
gluDisk,'gluDisk',\
|
||||
gluEndCurve,'gluEndCurve',\
|
||||
gluEndPolygon,'gluEndPolygon',\
|
||||
gluEndSurface,'gluEndSurface',\
|
||||
gluEndTrim,'gluEndTrim',\
|
||||
gluErrorString,'gluErrorString',\
|
||||
gluGetNurbsProperty,'gluGetNurbsProperty',\
|
||||
gluGetString,'gluGetString',\
|
||||
gluGetTessProperty,'gluGetTessProperty',\
|
||||
gluLoadSamplingMatrices,'gluLoadSamplingMatrices',\
|
||||
gluLookAt,'gluLookAt',\
|
||||
gluNewNurbsRenderer,'gluNewNurbsRenderer',\
|
||||
gluNewQuadric,'gluNewQuadric',\
|
||||
gluNewTess,'gluNewTess',\
|
||||
gluNextContour,'gluNextContour',\
|
||||
gluNurbsCallback,'gluNurbsCallback',\
|
||||
gluNurbsCurve,'gluNurbsCurve',\
|
||||
gluNurbsProperty,'gluNurbsProperty',\
|
||||
gluNurbsSurface,'gluNurbsSurface',\
|
||||
gluOrtho2D,'gluOrtho2D',\
|
||||
gluPartialDisk,'gluPartialDisk',\
|
||||
gluPerspective,'gluPerspective',\
|
||||
gluPickMatrix,'gluPickMatrix',\
|
||||
gluProject,'gluProject',\
|
||||
gluPwlCurve,'gluPwlCurve',\
|
||||
gluQuadricCallback,'gluQuadricCallback',\
|
||||
gluQuadricDrawStyle,'gluQuadricDrawStyle',\
|
||||
gluQuadricNormals,'gluQuadricNormals',\
|
||||
gluQuadricOrientation,'gluQuadricOrientation',\
|
||||
gluQuadricTexture,'gluQuadricTexture',\
|
||||
gluScaleImage,'gluScaleImage',\
|
||||
gluSphere,'gluSphere',\
|
||||
gluTessBeginContour,'gluTessBeginContour',\
|
||||
gluTessBeginPolygon,'gluTessBeginPolygon',\
|
||||
gluTessCallback,'gluTessCallback',\
|
||||
gluTessEndContour,'gluTessEndContour',\
|
||||
gluTessEndPolygon,'gluTessEndPolygon',\
|
||||
gluTessNormal,'gluTessNormal',\
|
||||
gluTessProperty,'gluTessProperty',\
|
||||
gluTessVertex,'gluTessVertex',\
|
||||
gluUnProject,'gluUnProject'
|
||||
45
fasmw172/EXAMPLES/WIN64/PE64DEMO/PE64DEMO.ASM
Normal file
45
fasmw172/EXAMPLES/WIN64/PE64DEMO/PE64DEMO.ASM
Normal file
@@ -0,0 +1,45 @@
|
||||
|
||||
; Example of 64-bit PE program
|
||||
|
||||
format PE64 GUI
|
||||
entry start
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
start:
|
||||
sub rsp,8*5 ; reserve stack for API use and make stack dqword aligned
|
||||
|
||||
mov r9d,0
|
||||
lea r8,[_caption]
|
||||
lea rdx,[_message]
|
||||
mov rcx,0
|
||||
call [MessageBoxA]
|
||||
|
||||
mov ecx,eax
|
||||
call [ExitProcess]
|
||||
|
||||
section '.data' data readable writeable
|
||||
|
||||
_caption db 'Win64 assembly program',0
|
||||
_message db 'Hello World!',0
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
dd 0,0,0,RVA kernel_name,RVA kernel_table
|
||||
dd 0,0,0,RVA user_name,RVA user_table
|
||||
dd 0,0,0,0,0
|
||||
|
||||
kernel_table:
|
||||
ExitProcess dq RVA _ExitProcess
|
||||
dq 0
|
||||
user_table:
|
||||
MessageBoxA dq RVA _MessageBoxA
|
||||
dq 0
|
||||
|
||||
kernel_name db 'KERNEL32.DLL',0
|
||||
user_name db 'USER32.DLL',0
|
||||
|
||||
_ExitProcess dw 0
|
||||
db 'ExitProcess',0
|
||||
_MessageBoxA dw 0
|
||||
db 'MessageBoxA',0
|
||||
82
fasmw172/EXAMPLES/WIN64/TEMPLATE/TEMPLATE.ASM
Normal file
82
fasmw172/EXAMPLES/WIN64/TEMPLATE/TEMPLATE.ASM
Normal file
@@ -0,0 +1,82 @@
|
||||
|
||||
format PE64 GUI 5.0
|
||||
entry start
|
||||
|
||||
include 'win64a.inc'
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
start:
|
||||
sub rsp,8 ; Make stack dqword aligned
|
||||
|
||||
invoke GetModuleHandle,0
|
||||
mov [wc.hInstance],rax
|
||||
invoke LoadIcon,0,IDI_APPLICATION
|
||||
mov [wc.hIcon],rax
|
||||
mov [wc.hIconSm],rax
|
||||
invoke LoadCursor,0,IDC_ARROW
|
||||
mov [wc.hCursor],rax
|
||||
invoke RegisterClassEx,wc
|
||||
test rax,rax
|
||||
jz error
|
||||
|
||||
invoke CreateWindowEx,0,_class,_title,WS_VISIBLE+WS_DLGFRAME+WS_SYSMENU,128,128,256,192,NULL,NULL,[wc.hInstance],NULL
|
||||
test rax,rax
|
||||
jz error
|
||||
|
||||
msg_loop:
|
||||
invoke GetMessage,msg,NULL,0,0
|
||||
cmp eax,1
|
||||
jb end_loop
|
||||
jne msg_loop
|
||||
invoke TranslateMessage,msg
|
||||
invoke DispatchMessage,msg
|
||||
jmp msg_loop
|
||||
|
||||
error:
|
||||
invoke MessageBox,NULL,_error,NULL,MB_ICONERROR+MB_OK
|
||||
|
||||
end_loop:
|
||||
invoke ExitProcess,[msg.wParam]
|
||||
|
||||
proc WindowProc uses rbx rsi rdi, hwnd,wmsg,wparam,lparam
|
||||
|
||||
; Note that first four parameters are passed in registers,
|
||||
; while names given in the declaration of procedure refer to the stack
|
||||
; space reserved for them - you may store them there to be later accessible
|
||||
; if the contents of registers gets destroyed. This may look like:
|
||||
; mov [hwnd],rcx
|
||||
; mov [wmsg],edx
|
||||
; mov [wparam],r8
|
||||
; mov [lparam],r9
|
||||
|
||||
cmp edx,WM_DESTROY
|
||||
je .wmdestroy
|
||||
.defwndproc:
|
||||
invoke DefWindowProc,rcx,rdx,r8,r9
|
||||
jmp .finish
|
||||
.wmdestroy:
|
||||
invoke PostQuitMessage,0
|
||||
xor eax,eax
|
||||
.finish:
|
||||
ret
|
||||
|
||||
endp
|
||||
|
||||
section '.data' data readable writeable
|
||||
|
||||
_title TCHAR 'Win64 program template',0
|
||||
_class TCHAR 'FASMWIN64',0
|
||||
_error TCHAR 'Startup failed.',0
|
||||
|
||||
wc WNDCLASSEX sizeof.WNDCLASSEX,0,WindowProc,0,0,NULL,NULL,NULL,COLOR_BTNFACE+1,NULL,_class,NULL
|
||||
|
||||
msg MSG
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel32,'KERNEL32.DLL',\
|
||||
user32,'USER32.DLL'
|
||||
|
||||
include 'api\kernel32.inc'
|
||||
include 'api\user32.inc'
|
||||
142
fasmw172/EXAMPLES/WIN64/USECOM/USECOM.ASM
Normal file
142
fasmw172/EXAMPLES/WIN64/USECOM/USECOM.ASM
Normal file
@@ -0,0 +1,142 @@
|
||||
|
||||
; Component Object Model usage demonstration
|
||||
|
||||
format PE64 GUI 5.0
|
||||
entry start
|
||||
|
||||
include 'win64a.inc'
|
||||
|
||||
struc GUID def
|
||||
{
|
||||
match d1-d2-d3-d4-d5, def
|
||||
\{
|
||||
.Data1 dd 0x\#d1
|
||||
.Data2 dw 0x\#d2
|
||||
.Data3 dw 0x\#d3
|
||||
.Data4 db 0x\#d4 shr 8,0x\#d4 and 0FFh
|
||||
.Data5 db 0x\#d5 shr 40,0x\#d5 shr 32 and 0FFh,0x\#d5 shr 24 and 0FFh,0x\#d5 shr 16 and 0FFh,0x\#d5 shr 8 and 0FFh,0x\#d5 and 0FFh
|
||||
\}
|
||||
}
|
||||
|
||||
interface ITaskBarList,\
|
||||
QueryInterface,\
|
||||
AddRef,\
|
||||
Release,\
|
||||
HrInit,\
|
||||
AddTab,\
|
||||
DeleteTab,\
|
||||
ActivateTab,\
|
||||
SetActiveAlt
|
||||
|
||||
CLSCTX_INPROC_SERVER = 0x1
|
||||
CLSCTX_INPROC_HANDLER = 0x2
|
||||
CLSCTX_LOCAL_SERVER = 0x4
|
||||
CLSCTX_INPROC_SERVER16 = 0x8
|
||||
CLSCTX_REMOTE_SERVER = 0x10
|
||||
CLSCTX_INPROC_HANDLER16 = 0x20
|
||||
CLSCTX_INPROC_SERVERX86 = 0x40
|
||||
CLSCTX_INPROC_HANDLERX86 = 0x80
|
||||
CLSCTX_ESERVER_HANDLER = 0x100
|
||||
CLSCTX_NO_CODE_DOWNLOAD = 0x400
|
||||
CLSCTX_NO_CUSTOM_MARSHAL = 0x1000
|
||||
CLSCTX_ENABLE_CODE_DOWNLOAD = 0x2000
|
||||
CLSCTX_NO_FAILURE_LOG = 0x4000
|
||||
CLSCTX_DISABLE_AAA = 0x8000
|
||||
CLSCTX_ENABLE_AAA = 0x10000
|
||||
CLSCTX_FROM_DEFAULT_CONTEXT = 0x20000
|
||||
|
||||
ID_EXIT = IDCANCEL
|
||||
ID_SHOW = 100
|
||||
ID_HIDE = 101
|
||||
|
||||
IDD_COMDEMO = 1
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
start:
|
||||
sub rsp,8 ; Make stack dqword aligned
|
||||
|
||||
invoke CoInitialize,NULL
|
||||
invoke CoCreateInstance,CLSID_TaskbarList,NULL,CLSCTX_INPROC_SERVER,IID_ITaskbarList,ShellTaskBar
|
||||
|
||||
invoke GetModuleHandle,0
|
||||
invoke DialogBoxParam,rax,IDD_COMDEMO,HWND_DESKTOP,COMDemo,0
|
||||
|
||||
cominvk ShellTaskBar,Release
|
||||
|
||||
invoke ExitProcess,0
|
||||
|
||||
proc COMDemo uses rbx, hwnd,msg,wparam,lparam
|
||||
mov [hwnd],rcx
|
||||
cmp edx,WM_INITDIALOG
|
||||
je .wminitdialog
|
||||
cmp edx,WM_COMMAND
|
||||
je .wmcommand
|
||||
cmp edx,WM_CLOSE
|
||||
je .wmclose
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.wminitdialog:
|
||||
jmp .processed
|
||||
.wmcommand:
|
||||
cmp r8,BN_CLICKED shl 16 + ID_EXIT
|
||||
je .wmclose
|
||||
cmp r8,BN_CLICKED shl 16 + ID_SHOW
|
||||
je .show
|
||||
cmp r8,BN_CLICKED shl 16 + ID_HIDE
|
||||
jne .processed
|
||||
.hide:
|
||||
cominvk ShellTaskBar,HrInit
|
||||
cominvk ShellTaskBar,DeleteTab,[hwnd]
|
||||
jmp .processed
|
||||
.show:
|
||||
mov rbx,[ShellTaskBar]
|
||||
comcall rbx,ITaskBarList,HrInit
|
||||
comcall rbx,ITaskBarList,AddTab,[hwnd]
|
||||
comcall rbx,ITaskBarList,ActivateTab,[hwnd]
|
||||
jmp .processed
|
||||
.wmclose:
|
||||
invoke EndDialog,[hwnd],0
|
||||
.processed:
|
||||
mov eax,1
|
||||
.finish:
|
||||
ret
|
||||
endp
|
||||
|
||||
section '.data' data readable writeable
|
||||
|
||||
CLSID_TaskbarList GUID 56FDF344-FD6D-11D0-958A-006097C9A090
|
||||
IID_ITaskbarList GUID 56FDF342-FD6D-11D0-958A-006097C9A090
|
||||
|
||||
ShellTaskBar ITaskBarList
|
||||
|
||||
section '.idata' import data readable
|
||||
|
||||
library kernel,'KERNEL32.DLL',\
|
||||
user,'USER32.DLL',\
|
||||
ole,'OLE32.DLL'
|
||||
|
||||
import kernel,\
|
||||
GetModuleHandle,'GetModuleHandleA',\
|
||||
ExitProcess,'ExitProcess'
|
||||
|
||||
import user,\
|
||||
DialogBoxParam,'DialogBoxParamA',\
|
||||
EndDialog,'EndDialog'
|
||||
|
||||
import ole,\
|
||||
CoInitialize,'CoInitialize',\
|
||||
CoCreateInstance,'CoCreateInstance'
|
||||
|
||||
section '.rsrc' resource data readable
|
||||
|
||||
directory RT_DIALOG,dialogs
|
||||
|
||||
resource dialogs,\
|
||||
IDD_COMDEMO,LANG_ENGLISH+SUBLANG_DEFAULT,comdemo
|
||||
|
||||
dialog comdemo,'Taskbar item control',70,70,170,24,WS_CAPTION+WS_POPUP+WS_SYSMENU+DS_MODALFRAME
|
||||
dialogitem 'BUTTON','Show',ID_SHOW,4,4,45,15,WS_VISIBLE+WS_TABSTOP
|
||||
dialogitem 'BUTTON','Hide',ID_HIDE,54,4,45,15,WS_VISIBLE+WS_TABSTOP
|
||||
dialogitem 'BUTTON','Exit',ID_EXIT,120,4,45,15,WS_VISIBLE+WS_TABSTOP
|
||||
enddialog
|
||||
98
fasmw172/EXAMPLES/WIN64/WIN64AVX/WIN64AVX.ASM
Normal file
98
fasmw172/EXAMPLES/WIN64/WIN64AVX/WIN64AVX.ASM
Normal file
@@ -0,0 +1,98 @@
|
||||
|
||||
format PE64 NX GUI 6.0
|
||||
entry start
|
||||
|
||||
include 'win64a.inc'
|
||||
|
||||
section '.data' data readable writeable
|
||||
|
||||
_title db 'AVX playground',0
|
||||
_error db 'AVX instructions are not supported.',0
|
||||
|
||||
x dq 3.14159265389
|
||||
|
||||
vector_output:
|
||||
rept 16 i:0
|
||||
{
|
||||
db 'ymm',`i,': %f,%f,%f,%f',13,10
|
||||
}
|
||||
db 0
|
||||
|
||||
buffer db 1000h dup ?
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
start:
|
||||
|
||||
mov eax,1
|
||||
cpuid
|
||||
and ecx,18000000h
|
||||
cmp ecx,18000000h
|
||||
jne no_AVX
|
||||
xor ecx,ecx
|
||||
xgetbv
|
||||
and eax,110b
|
||||
cmp eax,110b
|
||||
jne no_AVX
|
||||
|
||||
vbroadcastsd ymm0, [x]
|
||||
vsqrtpd ymm1, ymm0
|
||||
|
||||
vsubpd ymm2, ymm0, ymm1
|
||||
vsubpd ymm3, ymm1, ymm2
|
||||
|
||||
vaddpd xmm4, xmm2, xmm3
|
||||
vaddpd ymm5, ymm4, ymm0
|
||||
|
||||
vperm2f128 ymm6, ymm4, ymm5, 03h
|
||||
vshufpd ymm7, ymm6, ymm5, 10010011b
|
||||
|
||||
vroundpd ymm8, ymm7, 0011b
|
||||
vroundpd ymm9, ymm7, 0
|
||||
|
||||
sub rsp,418h
|
||||
|
||||
rept 16 i:0
|
||||
{
|
||||
vmovups [rsp+10h+i*32],ymm#i
|
||||
}
|
||||
|
||||
mov r8,[rsp+10h]
|
||||
mov r9,[rsp+18h]
|
||||
lea rdx,[vector_output]
|
||||
lea rcx,[buffer]
|
||||
call [sprintf]
|
||||
|
||||
xor ecx,ecx
|
||||
lea rdx,[buffer]
|
||||
lea r8,[_title]
|
||||
xor r9d,r9d
|
||||
call [MessageBoxA]
|
||||
|
||||
xor ecx,ecx
|
||||
call [ExitProcess]
|
||||
|
||||
no_AVX:
|
||||
|
||||
sub rsp,28h
|
||||
|
||||
xor ecx,ecx
|
||||
lea rdx,[_error]
|
||||
lea r8,[_title]
|
||||
mov r9d,10h
|
||||
call [MessageBoxA]
|
||||
|
||||
mov ecx,1
|
||||
call [ExitProcess]
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel32,'KERNEL32.DLL',\
|
||||
user32,'USER32.DLL',\
|
||||
msvcrt,'MSVCRT.DLL'
|
||||
|
||||
include 'api\kernel32.inc'
|
||||
include 'api\user32.inc'
|
||||
|
||||
import msvcrt,\
|
||||
sprintf,'sprintf'
|
||||
BIN
fasmw172/FASM.PDF
Normal file
BIN
fasmw172/FASM.PDF
Normal file
Binary file not shown.
535
fasmw172/INCLUDE/API/ADVAPI32.INC
Normal file
535
fasmw172/INCLUDE/API/ADVAPI32.INC
Normal file
@@ -0,0 +1,535 @@
|
||||
|
||||
; ADVAPI32 API calls
|
||||
|
||||
import advapi32,\
|
||||
AbortSystemShutdownA,'AbortSystemShutdownA',\
|
||||
AbortSystemShutdownW,'AbortSystemShutdownW',\
|
||||
AccessCheck,'AccessCheck',\
|
||||
AccessCheckAndAuditAlarmA,'AccessCheckAndAuditAlarmA',\
|
||||
AccessCheckAndAuditAlarmW,'AccessCheckAndAuditAlarmW',\
|
||||
AccessCheckByType,'AccessCheckByType',\
|
||||
AccessCheckByTypeAndAuditAlarmA,'AccessCheckByTypeAndAuditAlarmA',\
|
||||
AccessCheckByTypeAndAuditAlarmW,'AccessCheckByTypeAndAuditAlarmW',\
|
||||
AccessCheckByTypeResultList,'AccessCheckByTypeResultList',\
|
||||
AccessCheckByTypeResultListAndAuditAlarmA,'AccessCheckByTypeResultListAndAuditAlarmA',\
|
||||
AccessCheckByTypeResultListAndAuditAlarmW,'AccessCheckByTypeResultListAndAuditAlarmW',\
|
||||
AddAccessAllowedAce,'AddAccessAllowedAce',\
|
||||
AddAccessAllowedAceEx,'AddAccessAllowedAceEx',\
|
||||
AddAccessAllowedObjectAce,'AddAccessAllowedObjectAce',\
|
||||
AddAccessDeniedAce,'AddAccessDeniedAce',\
|
||||
AddAccessDeniedAceEx,'AddAccessDeniedAceEx',\
|
||||
AddAccessDeniedObjectAce,'AddAccessDeniedObjectAce',\
|
||||
AddAce,'AddAce',\
|
||||
AddAuditAccessAce,'AddAuditAccessAce',\
|
||||
AddAuditAccessAceEx,'AddAuditAccessAceEx',\
|
||||
AddAuditAccessObjectAce,'AddAuditAccessObjectAce',\
|
||||
AdjustTokenGroups,'AdjustTokenGroups',\
|
||||
AdjustTokenPrivileges,'AdjustTokenPrivileges',\
|
||||
AllocateAndInitializeSid,'AllocateAndInitializeSid',\
|
||||
AllocateLocallyUniqueId,'AllocateLocallyUniqueId',\
|
||||
AreAllAccessesGranted,'AreAllAccessesGranted',\
|
||||
AreAnyAccessesGranted,'AreAnyAccessesGranted',\
|
||||
BackupEventLogA,'BackupEventLogA',\
|
||||
BackupEventLogW,'BackupEventLogW',\
|
||||
BuildExplicitAccessWithNameA,'BuildExplicitAccessWithNameA',\
|
||||
BuildExplicitAccessWithNameW,'BuildExplicitAccessWithNameW',\
|
||||
BuildImpersonateExplicitAccessWithNameA,'BuildImpersonateExplicitAccessWithNameA',\
|
||||
BuildImpersonateExplicitAccessWithNameW,'BuildImpersonateExplicitAccessWithNameW',\
|
||||
BuildImpersonateTrusteeA,'BuildImpersonateTrusteeA',\
|
||||
BuildImpersonateTrusteeW,'BuildImpersonateTrusteeW',\
|
||||
BuildSecurityDescriptorA,'BuildSecurityDescriptorA',\
|
||||
BuildSecurityDescriptorW,'BuildSecurityDescriptorW',\
|
||||
BuildTrusteeWithNameA,'BuildTrusteeWithNameA',\
|
||||
BuildTrusteeWithNameW,'BuildTrusteeWithNameW',\
|
||||
BuildTrusteeWithSidA,'BuildTrusteeWithSidA',\
|
||||
BuildTrusteeWithSidW,'BuildTrusteeWithSidW',\
|
||||
CancelOverlappedAccess,'CancelOverlappedAccess',\
|
||||
ChangeServiceConfig2A,'ChangeServiceConfig2A',\
|
||||
ChangeServiceConfig2W,'ChangeServiceConfig2W',\
|
||||
ChangeServiceConfigA,'ChangeServiceConfigA',\
|
||||
ChangeServiceConfigW,'ChangeServiceConfigW',\
|
||||
ClearEventLogA,'ClearEventLogA',\
|
||||
ClearEventLogW,'ClearEventLogW',\
|
||||
CloseEventLog,'CloseEventLog',\
|
||||
CloseRaw,'CloseRaw',\
|
||||
CloseServiceHandle,'CloseServiceHandle',\
|
||||
ControlService,'ControlService',\
|
||||
ConvertAccessToSecurityDescriptorA,'ConvertAccessToSecurityDescriptorA',\
|
||||
ConvertAccessToSecurityDescriptorW,'ConvertAccessToSecurityDescriptorW',\
|
||||
ConvertSecurityDescriptorToAccessA,'ConvertSecurityDescriptorToAccessA',\
|
||||
ConvertSecurityDescriptorToAccessW,'ConvertSecurityDescriptorToAccessW',\
|
||||
ConvertSecurityDescriptorToAccessNamedA,'ConvertSecurityDescriptorToAccessNamedA',\
|
||||
ConvertSecurityDescriptorToAccessNamedW,'ConvertSecurityDescriptorToAccessNamedW',\
|
||||
ConvertToAutoInheritPrivateObjectSecurity,'ConvertToAutoInheritPrivateObjectSecurity',\
|
||||
CopySid,'CopySid',\
|
||||
CreatePrivateObjectSecurity,'CreatePrivateObjectSecurity',\
|
||||
CreatePrivateObjectSecurityEx,'CreatePrivateObjectSecurityEx',\
|
||||
CreateProcessAsUserA,'CreateProcessAsUserA',\
|
||||
CreateProcessAsUserW,'CreateProcessAsUserW',\
|
||||
CreateRestrictedToken,'CreateRestrictedToken',\
|
||||
CreateServiceA,'CreateServiceA',\
|
||||
CreateServiceW,'CreateServiceW',\
|
||||
CryptAcquireContextA,'CryptAcquireContextA',\
|
||||
CryptAcquireContextW,'CryptAcquireContextW',\
|
||||
CryptContextAddRef,'CryptContextAddRef',\
|
||||
CryptCreateHash,'CryptCreateHash',\
|
||||
CryptDecrypt,'CryptDecrypt',\
|
||||
CryptDeriveKey,'CryptDeriveKey',\
|
||||
CryptDestroyHash,'CryptDestroyHash',\
|
||||
CryptDestroyKey,'CryptDestroyKey',\
|
||||
CryptDuplicateHash,'CryptDuplicateHash',\
|
||||
CryptDuplicateKey,'CryptDuplicateKey',\
|
||||
CryptEncrypt,'CryptEncrypt',\
|
||||
CryptEnumProviderTypesA,'CryptEnumProviderTypesA',\
|
||||
CryptEnumProviderTypesW,'CryptEnumProviderTypesW',\
|
||||
CryptEnumProvidersA,'CryptEnumProvidersA',\
|
||||
CryptEnumProvidersW,'CryptEnumProvidersW',\
|
||||
CryptExportKey,'CryptExportKey',\
|
||||
CryptGenKey,'CryptGenKey',\
|
||||
CryptGenRandom,'CryptGenRandom',\
|
||||
CryptGetDefaultProviderA,'CryptGetDefaultProviderA',\
|
||||
CryptGetDefaultProviderW,'CryptGetDefaultProviderW',\
|
||||
CryptGetHashParam,'CryptGetHashParam',\
|
||||
CryptGetKeyParam,'CryptGetKeyParam',\
|
||||
CryptGetProvParam,'CryptGetProvParam',\
|
||||
CryptGetUserKey,'CryptGetUserKey',\
|
||||
CryptHashData,'CryptHashData',\
|
||||
CryptHashSessionKey,'CryptHashSessionKey',\
|
||||
CryptImportKey,'CryptImportKey',\
|
||||
CryptReleaseContext,'CryptReleaseContext',\
|
||||
CryptSetHashParam,'CryptSetHashParam',\
|
||||
CryptSetKeyParam,'CryptSetKeyParam',\
|
||||
CryptSetProvParam,'CryptSetProvParam',\
|
||||
CryptSetProviderA,'CryptSetProviderA',\
|
||||
CryptSetProviderW,'CryptSetProviderW',\
|
||||
CryptSetProviderExA,'CryptSetProviderExA',\
|
||||
CryptSetProviderExW,'CryptSetProviderExW',\
|
||||
CryptSignHashA,'CryptSignHashA',\
|
||||
CryptSignHashW,'CryptSignHashW',\
|
||||
CryptVerifySignatureA,'CryptVerifySignatureA',\
|
||||
CryptVerifySignatureW,'CryptVerifySignatureW',\
|
||||
DecryptFileA,'DecryptFileA',\
|
||||
DecryptFileW,'DecryptFileW',\
|
||||
DeleteAce,'DeleteAce',\
|
||||
DeleteService,'DeleteService',\
|
||||
DeregisterEventSource,'DeregisterEventSource',\
|
||||
DestroyPrivateObjectSecurity,'DestroyPrivateObjectSecurity',\
|
||||
DuplicateToken,'DuplicateToken',\
|
||||
DuplicateTokenEx,'DuplicateTokenEx',\
|
||||
ElfBackupEventLogFileA,'ElfBackupEventLogFileA',\
|
||||
ElfBackupEventLogFileW,'ElfBackupEventLogFileW',\
|
||||
ElfChangeNotify,'ElfChangeNotify',\
|
||||
ElfClearEventLogFileA,'ElfClearEventLogFileA',\
|
||||
ElfClearEventLogFileW,'ElfClearEventLogFileW',\
|
||||
ElfCloseEventLog,'ElfCloseEventLog',\
|
||||
ElfDeregisterEventSource,'ElfDeregisterEventSource',\
|
||||
ElfNumberOfRecords,'ElfNumberOfRecords',\
|
||||
ElfOldestRecord,'ElfOldestRecord',\
|
||||
ElfOpenBackupEventLogA,'ElfOpenBackupEventLogA',\
|
||||
ElfOpenBackupEventLogW,'ElfOpenBackupEventLogW',\
|
||||
ElfOpenEventLogA,'ElfOpenEventLogA',\
|
||||
ElfOpenEventLogW,'ElfOpenEventLogW',\
|
||||
ElfReadEventLogA,'ElfReadEventLogA',\
|
||||
ElfReadEventLogW,'ElfReadEventLogW',\
|
||||
ElfRegisterEventSourceA,'ElfRegisterEventSourceA',\
|
||||
ElfRegisterEventSourceW,'ElfRegisterEventSourceW',\
|
||||
ElfReportEventA,'ElfReportEventA',\
|
||||
ElfReportEventW,'ElfReportEventW',\
|
||||
EncryptFileA,'EncryptFileA',\
|
||||
EncryptFileW,'EncryptFileW',\
|
||||
EnumDependentServicesA,'EnumDependentServicesA',\
|
||||
EnumDependentServicesW,'EnumDependentServicesW',\
|
||||
EnumServicesStatusA,'EnumServicesStatusA',\
|
||||
EnumServicesStatusW,'EnumServicesStatusW',\
|
||||
EqualPrefixSid,'EqualPrefixSid',\
|
||||
EqualSid,'EqualSid',\
|
||||
FindFirstFreeAce,'FindFirstFreeAce',\
|
||||
FreeSid,'FreeSid',\
|
||||
GetAccessPermissionsForObjectA,'GetAccessPermissionsForObjectA',\
|
||||
GetAccessPermissionsForObjectW,'GetAccessPermissionsForObjectW',\
|
||||
GetAce,'GetAce',\
|
||||
GetAclInformation,'GetAclInformation',\
|
||||
GetAuditedPermissionsFromAclA,'GetAuditedPermissionsFromAclA',\
|
||||
GetAuditedPermissionsFromAclW,'GetAuditedPermissionsFromAclW',\
|
||||
GetCurrentHwProfileA,'GetCurrentHwProfileA',\
|
||||
GetCurrentHwProfileW,'GetCurrentHwProfileW',\
|
||||
GetEffectiveRightsFromAclA,'GetEffectiveRightsFromAclA',\
|
||||
GetEffectiveRightsFromAclW,'GetEffectiveRightsFromAclW',\
|
||||
GetExplicitEntriesFromAclA,'GetExplicitEntriesFromAclA',\
|
||||
GetExplicitEntriesFromAclW,'GetExplicitEntriesFromAclW',\
|
||||
GetFileSecurityA,'GetFileSecurityA',\
|
||||
GetFileSecurityW,'GetFileSecurityW',\
|
||||
GetKernelObjectSecurity,'GetKernelObjectSecurity',\
|
||||
GetLengthSid,'GetLengthSid',\
|
||||
GetMultipleTrusteeA,'GetMultipleTrusteeA',\
|
||||
GetMultipleTrusteeW,'GetMultipleTrusteeW',\
|
||||
GetMultipleTrusteeOperationA,'GetMultipleTrusteeOperationA',\
|
||||
GetMultipleTrusteeOperationW,'GetMultipleTrusteeOperationW',\
|
||||
GetNamedSecurityInfoA,'GetNamedSecurityInfoA',\
|
||||
GetNamedSecurityInfoW,'GetNamedSecurityInfoW',\
|
||||
GetNamedSecurityInfoExA,'GetNamedSecurityInfoExA',\
|
||||
GetNamedSecurityInfoExW,'GetNamedSecurityInfoExW',\
|
||||
GetNumberOfEventLogRecords,'GetNumberOfEventLogRecords',\
|
||||
GetOldestEventLogRecord,'GetOldestEventLogRecord',\
|
||||
GetOverlappedAccessResults,'GetOverlappedAccessResults',\
|
||||
GetPrivateObjectSecurity,'GetPrivateObjectSecurity',\
|
||||
GetSecurityDescriptorControl,'GetSecurityDescriptorControl',\
|
||||
GetSecurityDescriptorDacl,'GetSecurityDescriptorDacl',\
|
||||
GetSecurityDescriptorGroup,'GetSecurityDescriptorGroup',\
|
||||
GetSecurityDescriptorLength,'GetSecurityDescriptorLength',\
|
||||
GetSecurityDescriptorOwner,'GetSecurityDescriptorOwner',\
|
||||
GetSecurityDescriptorSacl,'GetSecurityDescriptorSacl',\
|
||||
GetSecurityInfo,'GetSecurityInfo',\
|
||||
GetSecurityInfoExA,'GetSecurityInfoExA',\
|
||||
GetSecurityInfoExW,'GetSecurityInfoExW',\
|
||||
GetServiceDisplayNameA,'GetServiceDisplayNameA',\
|
||||
GetServiceDisplayNameW,'GetServiceDisplayNameW',\
|
||||
GetServiceKeyNameA,'GetServiceKeyNameA',\
|
||||
GetServiceKeyNameW,'GetServiceKeyNameW',\
|
||||
GetSidLengthRequiredA,'GetSidLengthRequiredA',\
|
||||
GetSidLengthRequiredW,'GetSidLengthRequiredW',\
|
||||
GetSidSubAuthority,'GetSidSubAuthority',\
|
||||
GetSidSubAuthorityCount,'GetSidSubAuthorityCount',\
|
||||
GetTokenInformation,'GetTokenInformation',\
|
||||
GetTrusteeNameA,'GetTrusteeNameA',\
|
||||
GetTrusteeNameW,'GetTrusteeNameW',\
|
||||
GetTrusteeTypeA,'GetTrusteeTypeA',\
|
||||
GetTrusteeTypeW,'GetTrusteeTypeW',\
|
||||
GetUserNameA,'GetUserNameA',\
|
||||
GetUserNameW,'GetUserNameW',\
|
||||
I_ScSetServiceBitsA,'I_ScSetServiceBitsA',\
|
||||
I_ScSetServiceBitsW,'I_ScSetServiceBitsW',\
|
||||
ImpersonateLoggedOnUser,'ImpersonateLoggedOnUser',\
|
||||
ImpersonateNamedPipeClient,'ImpersonateNamedPipeClient',\
|
||||
ImpersonateSelf,'ImpersonateSelf',\
|
||||
InitializeAcl,'InitializeAcl',\
|
||||
InitializeSecurityDescriptor,'InitializeSecurityDescriptor',\
|
||||
InitializeSid,'InitializeSid',\
|
||||
InitiateSystemShutdownA,'InitiateSystemShutdownA',\
|
||||
InitiateSystemShutdownW,'InitiateSystemShutdownW',\
|
||||
IsTextUnicode,'IsTextUnicode',\
|
||||
IsTokenRestricted,'IsTokenRestricted',\
|
||||
IsValidAcl,'IsValidAcl',\
|
||||
IsValidSecurityDescriptor,'IsValidSecurityDescriptor',\
|
||||
IsValidSid,'IsValidSid',\
|
||||
LockServiceDatabase,'LockServiceDatabase',\
|
||||
LogonUserA,'LogonUserA',\
|
||||
LogonUserW,'LogonUserW',\
|
||||
LookupAccountNameA,'LookupAccountNameA',\
|
||||
LookupAccountNameW,'LookupAccountNameW',\
|
||||
LookupAccountSidA,'LookupAccountSidA',\
|
||||
LookupAccountSidW,'LookupAccountSidW',\
|
||||
LookupPrivilegeDisplayNameA,'LookupPrivilegeDisplayNameA',\
|
||||
LookupPrivilegeDisplayNameW,'LookupPrivilegeDisplayNameW',\
|
||||
LookupPrivilegeNameA,'LookupPrivilegeNameA',\
|
||||
LookupPrivilegeNameW,'LookupPrivilegeNameW',\
|
||||
LookupPrivilegeValueA,'LookupPrivilegeValueA',\
|
||||
LookupPrivilegeValueW,'LookupPrivilegeValueW',\
|
||||
LookupSecurityDescriptorPartsA,'LookupSecurityDescriptorPartsA',\
|
||||
LookupSecurityDescriptorPartsW,'LookupSecurityDescriptorPartsW',\
|
||||
LsaAddAccountRights,'LsaAddAccountRights',\
|
||||
LsaAddPrivilegesToAccount,'LsaAddPrivilegesToAccount',\
|
||||
LsaClearAuditLog,'LsaClearAuditLog',\
|
||||
LsaClose,'LsaClose',\
|
||||
LsaCreateAccount,'LsaCreateAccount',\
|
||||
LsaCreateSecret,'LsaCreateSecret',\
|
||||
LsaCreateTrustedDomain,'LsaCreateTrustedDomain',\
|
||||
LsaCreateTrustedDomainEx,'LsaCreateTrustedDomainEx',\
|
||||
LsaDelete,'LsaDelete',\
|
||||
LsaDeleteTrustedDomain,'LsaDeleteTrustedDomain',\
|
||||
LsaEnumerateAccountRights,'LsaEnumerateAccountRights',\
|
||||
LsaEnumerateAccounts,'LsaEnumerateAccounts',\
|
||||
LsaEnumerateAccountsWithUserRight,'LsaEnumerateAccountsWithUserRight',\
|
||||
LsaEnumeratePrivileges,'LsaEnumeratePrivileges',\
|
||||
LsaEnumeratePrivilegesOfAccount,'LsaEnumeratePrivilegesOfAccount',\
|
||||
LsaEnumerateTrustedDomains,'LsaEnumerateTrustedDomains',\
|
||||
LsaEnumerateTrustedDomainsEx,'LsaEnumerateTrustedDomainsEx',\
|
||||
LsaFreeMemory,'LsaFreeMemory',\
|
||||
LsaGetQuotasForAccount,'LsaGetQuotasForAccount',\
|
||||
LsaGetSystemAccessAccount,'LsaGetSystemAccessAccount',\
|
||||
LsaGetUserName,'LsaGetUserName',\
|
||||
LsaICLookupNames,'LsaICLookupNames',\
|
||||
LsaICLookupSids,'LsaICLookupSids',\
|
||||
LsaIGetTrustedDomainAuthInfoBlobs,'LsaIGetTrustedDomainAuthInfoBlobs',\
|
||||
LsaISetTrustedDomainAuthInfoBlobs,'LsaISetTrustedDomainAuthInfoBlobs',\
|
||||
LsaLookupNames,'LsaLookupNames',\
|
||||
LsaLookupPrivilegeDisplayName,'LsaLookupPrivilegeDisplayName',\
|
||||
LsaLookupPrivilegeName,'LsaLookupPrivilegeName',\
|
||||
LsaLookupPrivilegeValue,'LsaLookupPrivilegeValue',\
|
||||
LsaLookupSids,'LsaLookupSids',\
|
||||
LsaNtStatusToWinError,'LsaNtStatusToWinError',\
|
||||
LsaOpenAccount,'LsaOpenAccount',\
|
||||
LsaOpenPolicy,'LsaOpenPolicy',\
|
||||
LsaOpenSecret,'LsaOpenSecret',\
|
||||
LsaOpenTrustedDomain,'LsaOpenTrustedDomain',\
|
||||
LsaQueryDomainInformationPolicy,'LsaQueryDomainInformationPolicy',\
|
||||
LsaQueryInfoTrustedDomain,'LsaQueryInfoTrustedDomain',\
|
||||
LsaQueryInformationPolicy,'LsaQueryInformationPolicy',\
|
||||
LsaQueryLocalInformationPolicy,'LsaQueryLocalInformationPolicy',\
|
||||
LsaQuerySecret,'LsaQuerySecret',\
|
||||
LsaQuerySecurityObject,'LsaQuerySecurityObject',\
|
||||
LsaQueryTrustedDomainInfo,'LsaQueryTrustedDomainInfo',\
|
||||
LsaQueryTrustedDomainInfoByName,'LsaQueryTrustedDomainInfoByName',\
|
||||
LsaRemoveAccountRights,'LsaRemoveAccountRights',\
|
||||
LsaRemovePrivilegesFromAccount,'LsaRemovePrivilegesFromAccount',\
|
||||
LsaRetrievePrivateData,'LsaRetrievePrivateData',\
|
||||
LsaSetDomainInformationPolicy,'LsaSetDomainInformationPolicy',\
|
||||
LsaSetInformationPolicy,'LsaSetInformationPolicy',\
|
||||
LsaSetInformationTrustedDomain,'LsaSetInformationTrustedDomain',\
|
||||
LsaSetLocalInformationPolicy,'LsaSetLocalInformationPolicy',\
|
||||
LsaSetQuotasForAccount,'LsaSetQuotasForAccount',\
|
||||
LsaSetSecret,'LsaSetSecret',\
|
||||
LsaSetSecurityObject,'LsaSetSecurityObject',\
|
||||
LsaSetSystemAccessAccount,'LsaSetSystemAccessAccount',\
|
||||
LsaSetTrustedDomainInfoByName,'LsaSetTrustedDomainInfoByName',\
|
||||
LsaSetTrustedDomainInformation,'LsaSetTrustedDomainInformation',\
|
||||
LsaStorePrivateData,'LsaStorePrivateData',\
|
||||
MakeAbsoluteSD,'MakeAbsoluteSD',\
|
||||
MakeSelfRelativeSD,'MakeSelfRelativeSD',\
|
||||
MapGenericMask,'MapGenericMask',\
|
||||
NotifyBootConfigStatus,'NotifyBootConfigStatus',\
|
||||
NotifyChangeEventLog,'NotifyChangeEventLog',\
|
||||
ObjectCloseAuditAlarmA,'ObjectCloseAuditAlarmA',\
|
||||
ObjectCloseAuditAlarmW,'ObjectCloseAuditAlarmW',\
|
||||
ObjectDeleteAuditAlarmA,'ObjectDeleteAuditAlarmA',\
|
||||
ObjectDeleteAuditAlarmW,'ObjectDeleteAuditAlarmW',\
|
||||
ObjectOpenAuditAlarmA,'ObjectOpenAuditAlarmA',\
|
||||
ObjectOpenAuditAlarmW,'ObjectOpenAuditAlarmW',\
|
||||
ObjectPrivilegeAuditAlarmA,'ObjectPrivilegeAuditAlarmA',\
|
||||
ObjectPrivilegeAuditAlarmW,'ObjectPrivilegeAuditAlarmW',\
|
||||
OpenBackupEventLogA,'OpenBackupEventLogA',\
|
||||
OpenBackupEventLogW,'OpenBackupEventLogW',\
|
||||
OpenEventLogA,'OpenEventLogA',\
|
||||
OpenEventLogW,'OpenEventLogW',\
|
||||
OpenProcessToken,'OpenProcessToken',\
|
||||
OpenRawA,'OpenRawA',\
|
||||
OpenRawW,'OpenRawW',\
|
||||
OpenSCManagerA,'OpenSCManagerA',\
|
||||
OpenSCManagerW,'OpenSCManagerW',\
|
||||
OpenServiceA,'OpenServiceA',\
|
||||
OpenServiceW,'OpenServiceW',\
|
||||
OpenThreadToken,'OpenThreadToken',\
|
||||
PrivilegeCheck,'PrivilegeCheck',\
|
||||
PrivilegedServiceAuditAlarmA,'PrivilegedServiceAuditAlarmA',\
|
||||
PrivilegedServiceAuditAlarmW,'PrivilegedServiceAuditAlarmW',\
|
||||
QueryRecoveryAgentsA,'QueryRecoveryAgentsA',\
|
||||
QueryRecoveryAgentsW,'QueryRecoveryAgentsW',\
|
||||
QueryServiceConfig2A,'QueryServiceConfig2A',\
|
||||
QueryServiceConfig2W,'QueryServiceConfig2W',\
|
||||
QueryServiceConfigA,'QueryServiceConfigA',\
|
||||
QueryServiceConfigW,'QueryServiceConfigW',\
|
||||
QueryServiceLockStatusA,'QueryServiceLockStatusA',\
|
||||
QueryServiceLockStatusW,'QueryServiceLockStatusW',\
|
||||
QueryServiceObjectSecurity,'QueryServiceObjectSecurity',\
|
||||
QueryServiceStatus,'QueryServiceStatus',\
|
||||
QueryWindows31FilesMigration,'QueryWindows31FilesMigration',\
|
||||
ReadEventLogA,'ReadEventLogA',\
|
||||
ReadEventLogW,'ReadEventLogW',\
|
||||
ReadRaw,'ReadRaw',\
|
||||
RegCloseKey,'RegCloseKey',\
|
||||
RegConnectRegistryA,'RegConnectRegistryA',\
|
||||
RegConnectRegistryW,'RegConnectRegistryW',\
|
||||
RegCreateKeyA,'RegCreateKeyA',\
|
||||
RegCreateKeyW,'RegCreateKeyW',\
|
||||
RegCreateKeyExA,'RegCreateKeyExA',\
|
||||
RegCreateKeyExW,'RegCreateKeyExW',\
|
||||
RegDeleteKeyA,'RegDeleteKeyA',\
|
||||
RegDeleteKeyW,'RegDeleteKeyW',\
|
||||
RegDeleteValueA,'RegDeleteValueA',\
|
||||
RegDeleteValueW,'RegDeleteValueW',\
|
||||
RegEnumKeyA,'RegEnumKeyA',\
|
||||
RegEnumKeyW,'RegEnumKeyW',\
|
||||
RegEnumKeyExA,'RegEnumKeyExA',\
|
||||
RegEnumKeyExW,'RegEnumKeyExW',\
|
||||
RegEnumValueA,'RegEnumValueA',\
|
||||
RegEnumValueW,'RegEnumValueW',\
|
||||
RegFlushKey,'RegFlushKey',\
|
||||
RegGetKeySecurity,'RegGetKeySecurity',\
|
||||
RegLoadKeyA,'RegLoadKeyA',\
|
||||
RegLoadKeyW,'RegLoadKeyW',\
|
||||
RegNotifyChangeKeyValue,'RegNotifyChangeKeyValue',\
|
||||
RegOpenKeyA,'RegOpenKeyA',\
|
||||
RegOpenKeyW,'RegOpenKeyW',\
|
||||
RegOpenKeyExA,'RegOpenKeyExA',\
|
||||
RegOpenKeyExW,'RegOpenKeyExW',\
|
||||
RegOverridePredefKey,'RegOverridePredefKey',\
|
||||
RegQueryInfoKeyA,'RegQueryInfoKeyA',\
|
||||
RegQueryInfoKeyW,'RegQueryInfoKeyW',\
|
||||
RegQueryMultipleValuesA,'RegQueryMultipleValuesA',\
|
||||
RegQueryMultipleValuesW,'RegQueryMultipleValuesW',\
|
||||
RegQueryValueA,'RegQueryValueA',\
|
||||
RegQueryValueW,'RegQueryValueW',\
|
||||
RegQueryValueExA,'RegQueryValueExA',\
|
||||
RegQueryValueExW,'RegQueryValueExW',\
|
||||
RegReplaceKeyA,'RegReplaceKeyA',\
|
||||
RegReplaceKeyW,'RegReplaceKeyW',\
|
||||
RegRestoreKeyA,'RegRestoreKeyA',\
|
||||
RegRestoreKeyW,'RegRestoreKeyW',\
|
||||
RegSaveKeyA,'RegSaveKeyA',\
|
||||
RegSaveKeyW,'RegSaveKeyW',\
|
||||
RegSetKeySecurity,'RegSetKeySecurity',\
|
||||
RegSetValueA,'RegSetValueA',\
|
||||
RegSetValueW,'RegSetValueW',\
|
||||
RegSetValueExA,'RegSetValueExA',\
|
||||
RegSetValueExW,'RegSetValueExW',\
|
||||
RegUnLoadKeyA,'RegUnLoadKeyA',\
|
||||
RegUnLoadKeyW,'RegUnLoadKeyW',\
|
||||
RegisterEventSourceA,'RegisterEventSourceA',\
|
||||
RegisterEventSourceW,'RegisterEventSourceW',\
|
||||
RegisterServiceCtrlHandlerA,'RegisterServiceCtrlHandlerA',\
|
||||
RegisterServiceCtrlHandlerW,'RegisterServiceCtrlHandlerW',\
|
||||
ReportEventA,'ReportEventA',\
|
||||
ReportEventW,'ReportEventW',\
|
||||
RevertToSelf,'RevertToSelf',\
|
||||
SetAclInformation,'SetAclInformation',\
|
||||
SetEntriesInAccessListA,'SetEntriesInAccessListA',\
|
||||
SetEntriesInAccessListW,'SetEntriesInAccessListW',\
|
||||
SetEntriesInAclA,'SetEntriesInAclA',\
|
||||
SetEntriesInAclW,'SetEntriesInAclW',\
|
||||
SetEntriesInAuditListA,'SetEntriesInAuditListA',\
|
||||
SetEntriesInAuditListW,'SetEntriesInAuditListW',\
|
||||
SetFileSecurityA,'SetFileSecurityA',\
|
||||
SetFileSecurityW,'SetFileSecurityW',\
|
||||
SetKernelObjectSecurity,'SetKernelObjectSecurity',\
|
||||
SetNamedSecurityInfoA,'SetNamedSecurityInfoA',\
|
||||
SetNamedSecurityInfoW,'SetNamedSecurityInfoW',\
|
||||
SetNamedSecurityInfoExA,'SetNamedSecurityInfoExA',\
|
||||
SetNamedSecurityInfoExW,'SetNamedSecurityInfoExW',\
|
||||
SetPrivateObjectSecurity,'SetPrivateObjectSecurity',\
|
||||
SetPrivateObjectSecurityEx,'SetPrivateObjectSecurityEx',\
|
||||
SetSecurityDescriptorControl,'SetSecurityDescriptorControl',\
|
||||
SetSecurityDescriptorDacl,'SetSecurityDescriptorDacl',\
|
||||
SetSecurityDescriptorGroup,'SetSecurityDescriptorGroup',\
|
||||
SetSecurityDescriptorOwner,'SetSecurityDescriptorOwner',\
|
||||
SetSecurityDescriptorSacl,'SetSecurityDescriptorSacl',\
|
||||
SetSecurityInfo,'SetSecurityInfo',\
|
||||
SetSecurityInfoExA,'SetSecurityInfoExA',\
|
||||
SetSecurityInfoExW,'SetSecurityInfoExW',\
|
||||
SetServiceBits,'SetServiceBits',\
|
||||
SetServiceObjectSecurity,'SetServiceObjectSecurity',\
|
||||
SetServiceStatus,'SetServiceStatus',\
|
||||
SetThreadToken,'SetThreadToken',\
|
||||
SetTokenInformation,'SetTokenInformation',\
|
||||
StartServiceA,'StartServiceA',\
|
||||
StartServiceW,'StartServiceW',\
|
||||
StartServiceCtrlDispatcherA,'StartServiceCtrlDispatcherA',\
|
||||
StartServiceCtrlDispatcherW,'StartServiceCtrlDispatcherW',\
|
||||
SynchronizeWindows31FilesAndWindowsNTRegistry,'SynchronizeWindows31FilesAndWindowsNTRegistry',\
|
||||
TrusteeAccessToObjectA,'TrusteeAccessToObjectA',\
|
||||
TrusteeAccessToObjectW,'TrusteeAccessToObjectW',\
|
||||
UnlockServiceDatabase,'UnlockServiceDatabase',\
|
||||
WriteRaw,'WriteRaw'
|
||||
|
||||
api AbortSystemShutdown,\
|
||||
AccessCheckAndAuditAlarm,\
|
||||
AccessCheckByTypeAndAuditAlarm,\
|
||||
AccessCheckByTypeResultListAndAuditAlarm,\
|
||||
BackupEventLog,\
|
||||
BuildExplicitAccessWithName,\
|
||||
BuildImpersonateExplicitAccessWithName,\
|
||||
BuildImpersonateTrustee,\
|
||||
BuildSecurityDescriptor,\
|
||||
BuildTrusteeWithName,\
|
||||
BuildTrusteeWithSid,\
|
||||
ChangeServiceConfig2,\
|
||||
ChangeServiceConfig,\
|
||||
ClearEventLog,\
|
||||
ConvertAccessToSecurityDescriptor,\
|
||||
ConvertSecurityDescriptorToAccess,\
|
||||
ConvertSecurityDescriptorToAccessNamed,\
|
||||
CreateProcessAsUser,\
|
||||
CreateService,\
|
||||
CryptAcquireContext,\
|
||||
CryptEnumProviderTypes,\
|
||||
CryptEnumProviders,\
|
||||
CryptGetDefaultProvider,\
|
||||
CryptSetProvider,\
|
||||
CryptSetProviderEx,\
|
||||
CryptSignHash,\
|
||||
CryptVerifySignature,\
|
||||
DecryptFile,\
|
||||
ElfBackupEventLogFile,\
|
||||
ElfClearEventLogFile,\
|
||||
ElfOpenBackupEventLog,\
|
||||
ElfOpenEventLog,\
|
||||
ElfReadEventLog,\
|
||||
ElfRegisterEventSource,\
|
||||
ElfReportEvent,\
|
||||
EncryptFile,\
|
||||
EnumDependentServices,\
|
||||
EnumServicesStatus,\
|
||||
GetAccessPermissionsForObject,\
|
||||
GetAuditedPermissionsFromAcl,\
|
||||
GetCurrentHwProfile,\
|
||||
GetEffectiveRightsFromAcl,\
|
||||
GetExplicitEntriesFromAcl,\
|
||||
GetFileSecurity,\
|
||||
GetMultipleTrustee,\
|
||||
GetMultipleTrusteeOperation,\
|
||||
GetNamedSecurityInfo,\
|
||||
GetNamedSecurityInfoEx,\
|
||||
GetSecurityInfoEx,\
|
||||
GetServiceDisplayName,\
|
||||
GetServiceKeyName,\
|
||||
GetSidLengthRequired,\
|
||||
GetTrusteeName,\
|
||||
GetTrusteeType,\
|
||||
GetUserName,\
|
||||
I_ScSetServiceBits,\
|
||||
InitiateSystemShutdown,\
|
||||
LogonUser,\
|
||||
LookupAccountName,\
|
||||
LookupAccountSid,\
|
||||
LookupPrivilegeDisplayName,\
|
||||
LookupPrivilegeName,\
|
||||
LookupPrivilegeValue,\
|
||||
LookupSecurityDescriptorParts,\
|
||||
ObjectCloseAuditAlarm,\
|
||||
ObjectDeleteAuditAlarm,\
|
||||
ObjectOpenAuditAlarm,\
|
||||
ObjectPrivilegeAuditAlarm,\
|
||||
OpenBackupEventLog,\
|
||||
OpenEventLog,\
|
||||
OpenRaw,\
|
||||
OpenSCManager,\
|
||||
OpenService,\
|
||||
PrivilegedServiceAuditAlarm,\
|
||||
QueryRecoveryAgents,\
|
||||
QueryServiceConfig2,\
|
||||
QueryServiceConfig,\
|
||||
QueryServiceLockStatus,\
|
||||
ReadEventLog,\
|
||||
RegConnectRegistry,\
|
||||
RegCreateKey,\
|
||||
RegCreateKeyEx,\
|
||||
RegDeleteKey,\
|
||||
RegDeleteValue,\
|
||||
RegEnumKey,\
|
||||
RegEnumKeyEx,\
|
||||
RegEnumValue,\
|
||||
RegLoadKey,\
|
||||
RegOpenKey,\
|
||||
RegOpenKeyEx,\
|
||||
RegQueryInfoKey,\
|
||||
RegQueryMultipleValues,\
|
||||
RegQueryValue,\
|
||||
RegQueryValueEx,\
|
||||
RegReplaceKey,\
|
||||
RegRestoreKey,\
|
||||
RegSaveKey,\
|
||||
RegSetValue,\
|
||||
RegSetValueEx,\
|
||||
RegUnLoadKey,\
|
||||
RegisterEventSource,\
|
||||
RegisterServiceCtrlHandler,\
|
||||
ReportEvent,\
|
||||
SetEntriesInAccessList,\
|
||||
SetEntriesInAcl,\
|
||||
SetEntriesInAuditList,\
|
||||
SetFileSecurity,\
|
||||
SetNamedSecurityInfo,\
|
||||
SetNamedSecurityInfoEx,\
|
||||
SetSecurityInfoEx,\
|
||||
StartService,\
|
||||
StartServiceCtrlDispatcher,\
|
||||
TrusteeAccessToObject
|
||||
81
fasmw172/INCLUDE/API/COMCTL32.INC
Normal file
81
fasmw172/INCLUDE/API/COMCTL32.INC
Normal file
@@ -0,0 +1,81 @@
|
||||
|
||||
; COMCTL32 API calls
|
||||
|
||||
import comctl32,\
|
||||
CreateMappedBitmap,'CreateMappedBitmap',\
|
||||
CreatePropertySheetPageA,'CreatePropertySheetPageA',\
|
||||
CreatePropertySheetPageW,'CreatePropertySheetPageW',\
|
||||
CreateStatusWindowA,'CreateStatusWindowA',\
|
||||
CreateStatusWindowW,'CreateStatusWindowW',\
|
||||
CreateToolbar,'CreateToolbar',\
|
||||
CreateToolbarEx,'CreateToolbarEx',\
|
||||
CreateUpDownControl,'CreateUpDownControl',\
|
||||
DestroyPropertySheetPage,'DestroyPropertySheetPage',\
|
||||
DrawInsert,'DrawInsert',\
|
||||
DrawStatusTextA,'DrawStatusTextA',\
|
||||
DrawStatusTextW,'DrawStatusTextW',\
|
||||
FlatSB_EnableScrollBar,'FlatSB_EnableScrollBar',\
|
||||
FlatSB_GetScrollInfo,'FlatSB_GetScrollInfo',\
|
||||
FlatSB_GetScrollPos,'FlatSB_GetScrollPos',\
|
||||
FlatSB_GetScrollProp,'FlatSB_GetScrollProp',\
|
||||
FlatSB_GetScrollRange,'FlatSB_GetScrollRange',\
|
||||
FlatSB_SetScrollInfo,'FlatSB_SetScrollInfo',\
|
||||
FlatSB_SetScrollPos,'FlatSB_SetScrollPos',\
|
||||
FlatSB_SetScrollProp,'FlatSB_SetScrollProp',\
|
||||
FlatSB_SetScrollRange,'FlatSB_SetScrollRange',\
|
||||
FlatSB_ShowScrollBar,'FlatSB_ShowScrollBar',\
|
||||
GetEffectiveClientRect,'GetEffectiveClientRect',\
|
||||
ImageList_Add,'ImageList_Add',\
|
||||
ImageList_AddIcon,'ImageList_AddIcon',\
|
||||
ImageList_AddMasked,'ImageList_AddMasked',\
|
||||
ImageList_BeginDrag,'ImageList_BeginDrag',\
|
||||
ImageList_Copy,'ImageList_Copy',\
|
||||
ImageList_Create,'ImageList_Create',\
|
||||
ImageList_Destroy,'ImageList_Destroy',\
|
||||
ImageList_DragEnter,'ImageList_DragEnter',\
|
||||
ImageList_DragLeave,'ImageList_DragLeave',\
|
||||
ImageList_DragMove,'ImageList_DragMove',\
|
||||
ImageList_DragShowNolock,'ImageList_DragShowNolock',\
|
||||
ImageList_Draw,'ImageList_Draw',\
|
||||
ImageList_DrawEx,'ImageList_DrawEx',\
|
||||
ImageList_DrawIndirect,'ImageList_DrawIndirect',\
|
||||
ImageList_Duplicate,'ImageList_Duplicate',\
|
||||
ImageList_EndDrag,'ImageList_EndDrag',\
|
||||
ImageList_GetBkColor,'ImageList_GetBkColor',\
|
||||
ImageList_GetDragImage,'ImageList_GetDragImage',\
|
||||
ImageList_GetIcon,'ImageList_GetIcon',\
|
||||
ImageList_GetIconSize,'ImageList_GetIconSize',\
|
||||
ImageList_GetImageCount,'ImageList_GetImageCount',\
|
||||
ImageList_GetImageInfo,'ImageList_GetImageInfo',\
|
||||
ImageList_GetImageRect,'ImageList_GetImageRect',\
|
||||
ImageList_LoadImageA,'ImageList_LoadImageA',\
|
||||
ImageList_LoadImageW,'ImageList_LoadImageW',\
|
||||
ImageList_Merge,'ImageList_Merge',\
|
||||
ImageList_Read,'ImageList_Read',\
|
||||
ImageList_Remove,'ImageList_Remove',\
|
||||
ImageList_Replace,'ImageList_Replace',\
|
||||
ImageList_ReplaceIcon,'ImageList_ReplaceIcon',\
|
||||
ImageList_SetBkColor,'ImageList_SetBkColor',\
|
||||
ImageList_SetDragCursorImage,'ImageList_SetDragCursorImage',\
|
||||
ImageList_SetFilter,'ImageList_SetFilter',\
|
||||
ImageList_SetIconSize,'ImageList_SetIconSize',\
|
||||
ImageList_SetImageCount,'ImageList_SetImageCount',\
|
||||
ImageList_SetOverlayImage,'ImageList_SetOverlayImage',\
|
||||
ImageList_Write,'ImageList_Write',\
|
||||
InitCommonControls,'InitCommonControls',\
|
||||
InitCommonControlsEx,'InitCommonControlsEx',\
|
||||
InitializeFlatSB,'InitializeFlatSB',\
|
||||
LBItemFromPt,'LBItemFromPt',\
|
||||
MakeDragList,'MakeDragList',\
|
||||
MenuHelp,'MenuHelp',\
|
||||
PropertySheetA,'PropertySheetA',\
|
||||
PropertySheetW,'PropertySheetW',\
|
||||
ShowHideMenuCtl,'ShowHideMenuCtl',\
|
||||
UninitializeFlatSB,'UninitializeFlatSB',\
|
||||
_TrackMouseEvent,'_TrackMouseEvent'
|
||||
|
||||
api CreatePropertySheetPage,\
|
||||
CreateStatusWindow,\
|
||||
DrawStatusText,\
|
||||
ImageList_LoadImage,\
|
||||
PropertySheet
|
||||
38
fasmw172/INCLUDE/API/COMDLG32.INC
Normal file
38
fasmw172/INCLUDE/API/COMDLG32.INC
Normal file
@@ -0,0 +1,38 @@
|
||||
|
||||
; COMDLG32 API calls
|
||||
|
||||
import comdlg32,\
|
||||
ChooseColorA,'ChooseColorA',\
|
||||
ChooseColorW,'ChooseColorW',\
|
||||
ChooseFontA,'ChooseFontA',\
|
||||
ChooseFontW,'ChooseFontW',\
|
||||
CommDlgExtendedError,'CommDlgExtendedError',\
|
||||
FindTextA,'FindTextA',\
|
||||
FindTextW,'FindTextW',\
|
||||
FormatCharDlgProc,'FormatCharDlgProc',\
|
||||
GetFileTitleA,'GetFileTitleA',\
|
||||
GetFileTitleW,'GetFileTitleW',\
|
||||
GetOpenFileNameA,'GetOpenFileNameA',\
|
||||
GetOpenFileNameW,'GetOpenFileNameW',\
|
||||
GetSaveFileNameA,'GetSaveFileNameA',\
|
||||
GetSaveFileNameW,'GetSaveFileNameW',\
|
||||
LoadAlterBitmap,'LoadAlterBitmap',\
|
||||
PageSetupDlgA,'PageSetupDlgA',\
|
||||
PageSetupDlgW,'PageSetupDlgW',\
|
||||
PrintDlgA,'PrintDlgA',\
|
||||
PrintDlgW,'PrintDlgW',\
|
||||
ReplaceTextA,'ReplaceTextA',\
|
||||
ReplaceTextW,'ReplaceTextW',\
|
||||
WantArrows,'WantArrows',\
|
||||
dwLBSubclass,'dwLBSubclass',\
|
||||
dwOKSubclass,'dwOKSubclass'
|
||||
|
||||
api ChooseColor,\
|
||||
ChooseFont,\
|
||||
FindText,\
|
||||
GetFileTitle,\
|
||||
GetOpenFileName,\
|
||||
GetSaveFileName,\
|
||||
PageSetupDlg,\
|
||||
PrintDlg,\
|
||||
ReplaceText
|
||||
419
fasmw172/INCLUDE/API/GDI32.INC
Normal file
419
fasmw172/INCLUDE/API/GDI32.INC
Normal file
@@ -0,0 +1,419 @@
|
||||
|
||||
; GDI32 API calls
|
||||
|
||||
import gdi32,\
|
||||
AbortDoc,'AbortDoc',\
|
||||
AbortPath,'AbortPath',\
|
||||
AddFontMemResourceEx,'AddFontMemResourceEx',\
|
||||
AddFontResourceA,'AddFontResourceA',\
|
||||
AddFontResourceW,'AddFontResourceW',\
|
||||
AddFontResourceExA,'AddFontResourceExA',\
|
||||
AddFontResourceExW,'AddFontResourceExW',\
|
||||
AngleArc,'AngleArc',\
|
||||
AnimatePalette,'AnimatePalette',\
|
||||
Arc,'Arc',\
|
||||
ArcTo,'ArcTo',\
|
||||
BeginPath,'BeginPath',\
|
||||
BitBlt,'BitBlt',\
|
||||
CancelDC,'CancelDC',\
|
||||
CheckColorsInGamut,'CheckColorsInGamut',\
|
||||
ChoosePixelFormat,'ChoosePixelFormat',\
|
||||
Chord,'Chord',\
|
||||
CloseEnhMetaFile,'CloseEnhMetaFile',\
|
||||
CloseFigure,'CloseFigure',\
|
||||
CloseMetaFile,'CloseMetaFile',\
|
||||
ColorCorrectPalette,'ColorCorrectPalette',\
|
||||
ColorMatchToTarget,'ColorMatchToTarget',\
|
||||
CombineRgn,'CombineRgn',\
|
||||
CombineTransform,'CombineTransform',\
|
||||
CopyEnhMetaFileA,'CopyEnhMetaFileA',\
|
||||
CopyEnhMetaFileW,'CopyEnhMetaFileW',\
|
||||
CopyMetaFileA,'CopyMetaFileA',\
|
||||
CopyMetaFileW,'CopyMetaFileW',\
|
||||
CreateBitmap,'CreateBitmap',\
|
||||
CreateBitmapIndirect,'CreateBitmapIndirect',\
|
||||
CreateBrushIndirect,'CreateBrushIndirect',\
|
||||
CreateColorSpaceA,'CreateColorSpaceA',\
|
||||
CreateColorSpaceW,'CreateColorSpaceW',\
|
||||
CreateCompatibleBitmap,'CreateCompatibleBitmap',\
|
||||
CreateCompatibleDC,'CreateCompatibleDC',\
|
||||
CreateDCA,'CreateDCA',\
|
||||
CreateDCW,'CreateDCW',\
|
||||
CreateDIBPatternBrush,'CreateDIBPatternBrush',\
|
||||
CreateDIBPatternBrushPt,'CreateDIBPatternBrushPt',\
|
||||
CreateDIBSection,'CreateDIBSection',\
|
||||
CreateDIBitmap,'CreateDIBitmap',\
|
||||
CreateDiscardableBitmap,'CreateDiscardableBitmap',\
|
||||
CreateEllipticRgn,'CreateEllipticRgn',\
|
||||
CreateEllipticRgnIndirect,'CreateEllipticRgnIndirect',\
|
||||
CreateEnhMetaFileA,'CreateEnhMetaFileA',\
|
||||
CreateEnhMetaFileW,'CreateEnhMetaFileW',\
|
||||
CreateFontA,'CreateFontA',\
|
||||
CreateFontW,'CreateFontW',\
|
||||
CreateFontIndirectA,'CreateFontIndirectA',\
|
||||
CreateFontIndirectW,'CreateFontIndirectW',\
|
||||
CreateFontIndirectExA,'CreateFontIndirectExA',\
|
||||
CreateFontIndirectExW,'CreateFontIndirectExW',\
|
||||
CreateHalftonePalette,'CreateHalftonePalette',\
|
||||
CreateHatchBrush,'CreateHatchBrush',\
|
||||
CreateICA,'CreateICA',\
|
||||
CreateICW,'CreateICW',\
|
||||
CreateMetaFileA,'CreateMetaFileA',\
|
||||
CreateMetaFileW,'CreateMetaFileW',\
|
||||
CreatePalette,'CreatePalette',\
|
||||
CreatePatternBrush,'CreatePatternBrush',\
|
||||
CreatePen,'CreatePen',\
|
||||
CreatePenIndirect,'CreatePenIndirect',\
|
||||
CreatePolyPolygonRgn,'CreatePolyPolygonRgn',\
|
||||
CreatePolygonRgn,'CreatePolygonRgn',\
|
||||
CreateRectRgn,'CreateRectRgn',\
|
||||
CreateRectRgnIndirect,'CreateRectRgnIndirect',\
|
||||
CreateRoundRectRgn,'CreateRoundRectRgn',\
|
||||
CreateScalableFontResourceA,'CreateScalableFontResourceA',\
|
||||
CreateScalableFontResourceW,'CreateScalableFontResourceW',\
|
||||
CreateSolidBrush,'CreateSolidBrush',\
|
||||
DPtoLP,'DPtoLP',\
|
||||
DeleteColorSpace,'DeleteColorSpace',\
|
||||
DeleteDC,'DeleteDC',\
|
||||
DeleteEnhMetaFile,'DeleteEnhMetaFile',\
|
||||
DeleteMetaFile,'DeleteMetaFile',\
|
||||
DeleteObject,'DeleteObject',\
|
||||
DescribePixelFormat,'DescribePixelFormat',\
|
||||
DeviceCapabilitiesExA,'DeviceCapabilitiesExA',\
|
||||
DeviceCapabilitiesExW,'DeviceCapabilitiesExW',\
|
||||
DrawEscape,'DrawEscape',\
|
||||
Ellipse,'Ellipse',\
|
||||
EnableEUDC,'EnableEUDC',\
|
||||
EndDoc,'EndDoc',\
|
||||
EndPage,'EndPage',\
|
||||
EndPath,'EndPath',\
|
||||
EnumEnhMetaFile,'EnumEnhMetaFile',\
|
||||
EnumFontFamiliesA,'EnumFontFamiliesA',\
|
||||
EnumFontFamiliesW,'EnumFontFamiliesW',\
|
||||
EnumFontFamiliesExA,'EnumFontFamiliesExA',\
|
||||
EnumFontFamiliesExW,'EnumFontFamiliesExW',\
|
||||
EnumFontsA,'EnumFontsA',\
|
||||
EnumFontsW,'EnumFontsW',\
|
||||
EnumICMProfilesA,'EnumICMProfilesA',\
|
||||
EnumICMProfilesW,'EnumICMProfilesW',\
|
||||
EnumMetaFile,'EnumMetaFile',\
|
||||
EnumObjects,'EnumObjects',\
|
||||
EqualRgn,'EqualRgn',\
|
||||
Escape,'Escape',\
|
||||
ExcludeClipRect,'ExcludeClipRect',\
|
||||
ExtCreatePen,'ExtCreatePen',\
|
||||
ExtCreateRegion,'ExtCreateRegion',\
|
||||
ExtEscape,'ExtEscape',\
|
||||
ExtFloodFill,'ExtFloodFill',\
|
||||
ExtSelectClipRgn,'ExtSelectClipRgn',\
|
||||
ExtTextOutA,'ExtTextOutA',\
|
||||
ExtTextOutW,'ExtTextOutW',\
|
||||
FillPath,'FillPath',\
|
||||
FillRgn,'FillRgn',\
|
||||
FixBrushOrgEx,'FixBrushOrgEx',\
|
||||
FlattenPath,'FlattenPath',\
|
||||
FloodFill,'FloodFill',\
|
||||
FrameRgn,'FrameRgn',\
|
||||
GdiComment,'GdiComment',\
|
||||
GdiDeleteSpoolFileHandle,'GdiDeleteSpoolFileHandle',\
|
||||
GdiEndDocEMF,'GdiEndDocEMF',\
|
||||
GdiEndPageEMF,'GdiEndPageEMF',\
|
||||
GdiFlush,'GdiFlush',\
|
||||
GdiGetBatchLimit,'GdiGetBatchLimit',\
|
||||
GdiGetDC,'GdiGetDC',\
|
||||
GdiGetDevmodeForPage,'GdiGetDevmodeForPage',\
|
||||
GdiGetPageCount,'GdiGetPageCount',\
|
||||
GdiGetPageHandle,'GdiGetPageHandle',\
|
||||
GdiGetSpoolFileHandle,'GdiGetSpoolFileHandle',\
|
||||
GdiPlayDCScript,'GdiPlayDCScript',\
|
||||
GdiPlayEMF,'GdiPlayEMF',\
|
||||
GdiPlayJournal,'GdiPlayJournal',\
|
||||
GdiPlayPageEMF,'GdiPlayPageEMF',\
|
||||
GdiPlayPrivatePageEMF,'GdiPlayPrivatePageEMF',\
|
||||
GdiPlayScript,'GdiPlayScript',\
|
||||
GdiResetDCEMF,'GdiResetDCEMF',\
|
||||
GdiSetBatchLimit,'GdiSetBatchLimit',\
|
||||
GdiStartDocEMF,'GdiStartDocEMF',\
|
||||
GdiStartPageEMF,'GdiStartPageEMF',\
|
||||
GetArcDirection,'GetArcDirection',\
|
||||
GetAspectRatioFilterEx,'GetAspectRatioFilterEx',\
|
||||
GetBitmapBits,'GetBitmapBits',\
|
||||
GetBitmapDimensionEx,'GetBitmapDimensionEx',\
|
||||
GetBkColor,'GetBkColor',\
|
||||
GetBkMode,'GetBkMode',\
|
||||
GetBoundsRect,'GetBoundsRect',\
|
||||
GetBrushOrgEx,'GetBrushOrgEx',\
|
||||
GetCharABCWidthsA,'GetCharABCWidthsA',\
|
||||
GetCharABCWidthsW,'GetCharABCWidthsW',\
|
||||
GetCharABCWidthsFloatA,'GetCharABCWidthsFloatA',\
|
||||
GetCharABCWidthsFloatW,'GetCharABCWidthsFloatW',\
|
||||
GetCharABCWidthsI,'GetCharABCWidthsI',\
|
||||
GetCharWidth32A,'GetCharWidth32A',\
|
||||
GetCharWidth32W,'GetCharWidth32W',\
|
||||
GetCharWidthA,'GetCharWidthA',\
|
||||
GetCharWidthW,'GetCharWidthW',\
|
||||
GetCharWidthFloatA,'GetCharWidthFloatA',\
|
||||
GetCharWidthFloatW,'GetCharWidthFloatW',\
|
||||
GetCharWidthI,'GetCharWidthI',\
|
||||
GetCharacterPlacementA,'GetCharacterPlacementA',\
|
||||
GetCharacterPlacementW,'GetCharacterPlacementW',\
|
||||
GetClipBox,'GetClipBox',\
|
||||
GetClipRgn,'GetClipRgn',\
|
||||
GetColorAdjustment,'GetColorAdjustment',\
|
||||
GetColorSpace,'GetColorSpace',\
|
||||
GetCurrentObject,'GetCurrentObject',\
|
||||
GetCurrentPositionEx,'GetCurrentPositionEx',\
|
||||
GetDCBrushColor,'GetDCBrushColor',\
|
||||
GetDCOrgEx,'GetDCOrgEx',\
|
||||
GetDCPenColor,'GetDCPenColor',\
|
||||
GetDIBColorTable,'GetDIBColorTable',\
|
||||
GetDIBits,'GetDIBits',\
|
||||
GetDeviceCaps,'GetDeviceCaps',\
|
||||
GetDeviceGammaRamp,'GetDeviceGammaRamp',\
|
||||
GetEnhMetaFileA,'GetEnhMetaFileA',\
|
||||
GetEnhMetaFileW,'GetEnhMetaFileW',\
|
||||
GetEnhMetaFileBits,'GetEnhMetaFileBits',\
|
||||
GetEnhMetaFileDescriptionA,'GetEnhMetaFileDescriptionA',\
|
||||
GetEnhMetaFileDescriptionW,'GetEnhMetaFileDescriptionW',\
|
||||
GetEnhMetaFileHeader,'GetEnhMetaFileHeader',\
|
||||
GetEnhMetaFilePaletteEntries,'GetEnhMetaFilePaletteEntries',\
|
||||
GetEnhMetaFilePixelFormat,'GetEnhMetaFilePixelFormat',\
|
||||
GetFontAssocStatus,'GetFontAssocStatus',\
|
||||
GetFontData,'GetFontData',\
|
||||
GetFontLanguageInfo,'GetFontLanguageInfo',\
|
||||
GetFontUnicodeRanges,'GetFontUnicodeRanges',\
|
||||
GetGlyphIndicesA,'GetGlyphIndicesA',\
|
||||
GetGlyphIndicesW,'GetGlyphIndicesW',\
|
||||
GetGlyphOutlineA,'GetGlyphOutlineA',\
|
||||
GetGlyphOutlineW,'GetGlyphOutlineW',\
|
||||
GetGraphicsMode,'GetGraphicsMode',\
|
||||
GetICMProfileA,'GetICMProfileA',\
|
||||
GetICMProfileW,'GetICMProfileW',\
|
||||
GetKerningPairsA,'GetKerningPairsA',\
|
||||
GetKerningPairsW,'GetKerningPairsW',\
|
||||
GetLogColorSpaceA,'GetLogColorSpaceA',\
|
||||
GetLogColorSpaceW,'GetLogColorSpaceW',\
|
||||
GetMapMode,'GetMapMode',\
|
||||
GetMetaFileA,'GetMetaFileA',\
|
||||
GetMetaFileW,'GetMetaFileW',\
|
||||
GetMetaFileBitsEx,'GetMetaFileBitsEx',\
|
||||
GetMetaRgn,'GetMetaRgn',\
|
||||
GetMiterLimit,'GetMiterLimit',\
|
||||
GetNearestColor,'GetNearestColor',\
|
||||
GetNearestPaletteIndex,'GetNearestPaletteIndex',\
|
||||
GetObjectA,'GetObjectA',\
|
||||
GetObjectW,'GetObjectW',\
|
||||
GetObjectType,'GetObjectType',\
|
||||
GetOutlineTextMetricsA,'GetOutlineTextMetricsA',\
|
||||
GetOutlineTextMetricsW,'GetOutlineTextMetricsW',\
|
||||
GetPaletteEntries,'GetPaletteEntries',\
|
||||
GetPath,'GetPath',\
|
||||
GetPixel,'GetPixel',\
|
||||
GetPixelFormat,'GetPixelFormat',\
|
||||
GetPolyFillMode,'GetPolyFillMode',\
|
||||
GetROP2,'GetROP2',\
|
||||
GetRandomRgn,'GetRandomRgn',\
|
||||
GetRasterizerCaps,'GetRasterizerCaps',\
|
||||
GetRegionData,'GetRegionData',\
|
||||
GetRelAbs,'GetRelAbs',\
|
||||
GetRgnBox,'GetRgnBox',\
|
||||
GetStockObject,'GetStockObject',\
|
||||
GetStretchBltMode,'GetStretchBltMode',\
|
||||
GetSystemPaletteEntries,'GetSystemPaletteEntries',\
|
||||
GetSystemPaletteUse,'GetSystemPaletteUse',\
|
||||
GetTextAlign,'GetTextAlign',\
|
||||
GetTextCharacterExtra,'GetTextCharacterExtra',\
|
||||
GetTextCharset,'GetTextCharset',\
|
||||
GetTextCharsetInfo,'GetTextCharsetInfo',\
|
||||
GetTextColor,'GetTextColor',\
|
||||
GetTextExtentExPointA,'GetTextExtentExPointA',\
|
||||
GetTextExtentExPointW,'GetTextExtentExPointW',\
|
||||
GetTextExtentExPointI,'GetTextExtentExPointI',\
|
||||
GetTextExtentPoint32A,'GetTextExtentPoint32A',\
|
||||
GetTextExtentPoint32W,'GetTextExtentPoint32W',\
|
||||
GetTextExtentPointA,'GetTextExtentPointA',\
|
||||
GetTextExtentPointW,'GetTextExtentPointW',\
|
||||
GetTextExtentPointI,'GetTextExtentPointI',\
|
||||
GetTextFaceA,'GetTextFaceA',\
|
||||
GetTextFaceW,'GetTextFaceW',\
|
||||
GetTextMetricsA,'GetTextMetricsA',\
|
||||
GetTextMetricsW,'GetTextMetricsW',\
|
||||
GetViewportExtEx,'GetViewportExtEx',\
|
||||
GetViewportOrgEx,'GetViewportOrgEx',\
|
||||
GetWinMetaFileBits,'GetWinMetaFileBits',\
|
||||
GetWindowExtEx,'GetWindowExtEx',\
|
||||
GetWindowOrgEx,'GetWindowOrgEx',\
|
||||
GetWorldTransform,'GetWorldTransform',\
|
||||
IntersectClipRect,'IntersectClipRect',\
|
||||
InvertRgn,'InvertRgn',\
|
||||
LPtoDP,'LPtoDP',\
|
||||
LineDDA,'LineDDA',\
|
||||
LineDDW,'LineDDW',\
|
||||
LineTo,'LineTo',\
|
||||
MaskBlt,'MaskBlt',\
|
||||
ModifyWorldTransform,'ModifyWorldTransform',\
|
||||
MoveToEx,'MoveToEx',\
|
||||
OffsetClipRgn,'OffsetClipRgn',\
|
||||
OffsetRgn,'OffsetRgn',\
|
||||
OffsetViewportOrgEx,'OffsetViewportOrgEx',\
|
||||
OffsetWindowOrgEx,'OffsetWindowOrgEx',\
|
||||
PaintRgn,'PaintRgn',\
|
||||
PatBlt,'PatBlt',\
|
||||
PathToRegion,'PathToRegion',\
|
||||
Pie,'Pie',\
|
||||
PlayEnhMetaFile,'PlayEnhMetaFile',\
|
||||
PlayEnhMetaFileRecord,'PlayEnhMetaFileRecord',\
|
||||
PlayMetaFile,'PlayMetaFile',\
|
||||
PlayMetaFileRecord,'PlayMetaFileRecord',\
|
||||
PlgBlt,'PlgBlt',\
|
||||
PolyBezier,'PolyBezier',\
|
||||
PolyBezierTo,'PolyBezierTo',\
|
||||
PolyDraw,'PolyDraw',\
|
||||
PolyPatBlt,'PolyPatBlt',\
|
||||
PolyPolygon,'PolyPolygon',\
|
||||
PolyPolyline,'PolyPolyline',\
|
||||
PolyTextOutA,'PolyTextOutA',\
|
||||
PolyTextOutW,'PolyTextOutW',\
|
||||
Polygon,'Polygon',\
|
||||
Polyline,'Polyline',\
|
||||
PolylineTo,'PolylineTo',\
|
||||
PtInRegion,'PtInRegion',\
|
||||
PtVisible,'PtVisible',\
|
||||
RealizePalette,'RealizePalette',\
|
||||
RectInRegion,'RectInRegion',\
|
||||
RectVisible,'RectVisible',\
|
||||
Rectangle,'Rectangle',\
|
||||
RemoveFontMemResourceEx,'RemoveFontMemResourceEx',\
|
||||
RemoveFontResourceA,'RemoveFontResourceA',\
|
||||
RemoveFontResourceW,'RemoveFontResourceW',\
|
||||
RemoveFontResourceExA,'RemoveFontResourceExA',\
|
||||
RemoveFontResourceExW,'RemoveFontResourceExW',\
|
||||
ResetDCA,'ResetDCA',\
|
||||
ResetDCW,'ResetDCW',\
|
||||
ResizePalette,'ResizePalette',\
|
||||
RestoreDC,'RestoreDC',\
|
||||
RoundRect,'RoundRect',\
|
||||
SaveDC,'SaveDC',\
|
||||
ScaleViewportExtEx,'ScaleViewportExtEx',\
|
||||
ScaleWindowExtEx,'ScaleWindowExtEx',\
|
||||
SelectBrushLocal,'SelectBrushLocal',\
|
||||
SelectClipPath,'SelectClipPath',\
|
||||
SelectClipRgn,'SelectClipRgn',\
|
||||
SelectFontLocal,'SelectFontLocal',\
|
||||
SelectObject,'SelectObject',\
|
||||
SelectPalette,'SelectPalette',\
|
||||
SetAbortProc,'SetAbortProc',\
|
||||
SetArcDirection,'SetArcDirection',\
|
||||
SetBitmapBits,'SetBitmapBits',\
|
||||
SetBitmapDimensionEx,'SetBitmapDimensionEx',\
|
||||
SetBkColor,'SetBkColor',\
|
||||
SetBkMode,'SetBkMode',\
|
||||
SetBoundsRect,'SetBoundsRect',\
|
||||
SetBrushOrgEx,'SetBrushOrgEx',\
|
||||
SetColorAdjustment,'SetColorAdjustment',\
|
||||
SetColorSpace,'SetColorSpace',\
|
||||
SetDCBrushColor,'SetDCBrushColor',\
|
||||
SetDCPenColor,'SetDCPenColor',\
|
||||
SetDIBColorTable,'SetDIBColorTable',\
|
||||
SetDIBits,'SetDIBits',\
|
||||
SetDIBitsToDevice,'SetDIBitsToDevice',\
|
||||
SetDeviceGammaRamp,'SetDeviceGammaRamp',\
|
||||
SetEnhMetaFileBits,'SetEnhMetaFileBits',\
|
||||
SetFontEnumeration,'SetFontEnumeration',\
|
||||
SetGraphicsMode,'SetGraphicsMode',\
|
||||
SetICMMode,'SetICMMode',\
|
||||
SetICMProfileA,'SetICMProfileA',\
|
||||
SetICMProfileW,'SetICMProfileW',\
|
||||
SetMagicColors,'SetMagicColors',\
|
||||
SetMapMode,'SetMapMode',\
|
||||
SetMapperFlags,'SetMapperFlags',\
|
||||
SetMetaFileBitsEx,'SetMetaFileBitsEx',\
|
||||
SetMetaRgn,'SetMetaRgn',\
|
||||
SetMiterLimit,'SetMiterLimit',\
|
||||
SetPaletteEntries,'SetPaletteEntries',\
|
||||
SetPixel,'SetPixel',\
|
||||
SetPixelFormat,'SetPixelFormat',\
|
||||
SetPixelV,'SetPixelV',\
|
||||
SetPolyFillMode,'SetPolyFillMode',\
|
||||
SetROP2,'SetROP2',\
|
||||
SetRectRgn,'SetRectRgn',\
|
||||
SetRelAbs,'SetRelAbs',\
|
||||
SetStretchBltMode,'SetStretchBltMode',\
|
||||
SetSystemPaletteUse,'SetSystemPaletteUse',\
|
||||
SetTextAlign,'SetTextAlign',\
|
||||
SetTextCharacterExtra,'SetTextCharacterExtra',\
|
||||
SetTextColor,'SetTextColor',\
|
||||
SetTextJustification,'SetTextJustification',\
|
||||
SetViewportExtEx,'SetViewportExtEx',\
|
||||
SetViewportOrgEx,'SetViewportOrgEx',\
|
||||
SetWinMetaFileBits,'SetWinMetaFileBits',\
|
||||
SetWindowExtEx,'SetWindowExtEx',\
|
||||
SetWindowOrgEx,'SetWindowOrgEx',\
|
||||
SetWorldTransform,'SetWorldTransform',\
|
||||
StartDocA,'StartDocA',\
|
||||
StartDocW,'StartDocW',\
|
||||
StartPage,'StartPage',\
|
||||
StretchBlt,'StretchBlt',\
|
||||
StretchDIBits,'StretchDIBits',\
|
||||
StrokeAndFillPath,'StrokeAndFillPath',\
|
||||
StrokePath,'StrokePath',\
|
||||
SwapBuffers,'SwapBuffers',\
|
||||
TextOutA,'TextOutA',\
|
||||
TextOutW,'TextOutW',\
|
||||
TranslateCharsetInfo,'TranslateCharsetInfo',\
|
||||
UnrealizeObject,'UnrealizeObject',\
|
||||
UpdateColors,'UpdateColors',\
|
||||
UpdateICMRegKeyA,'UpdateICMRegKeyA',\
|
||||
UpdateICMRegKeyW,'UpdateICMRegKeyW',\
|
||||
WidenPath,'WidenPath',\
|
||||
gdiPlaySpoolStream,'gdiPlaySpoolStream'
|
||||
|
||||
api AddFontResource,\
|
||||
AddFontResourceEx,\
|
||||
CopyEnhMetaFile,\
|
||||
CopyMetaFile,\
|
||||
CreateColorSpace,\
|
||||
CreateDC,\
|
||||
CreateEnhMetaFile,\
|
||||
CreateFont,\
|
||||
CreateFontIndirect,\
|
||||
CreateFontIndirectEx,\
|
||||
CreateIC,\
|
||||
CreateMetaFile,\
|
||||
CreateScalableFontResource,\
|
||||
DeviceCapabilitiesEx,\
|
||||
EnumFontFamilies,\
|
||||
EnumFontFamiliesEx,\
|
||||
EnumFonts,\
|
||||
EnumICMProfiles,\
|
||||
ExtTextOut,\
|
||||
GetCharABCWidths,\
|
||||
GetCharABCWidthsFloat,\
|
||||
GetCharWidth32,\
|
||||
GetCharWidth,\
|
||||
GetCharWidthFloat,\
|
||||
GetCharacterPlacement,\
|
||||
GetEnhMetaFile,\
|
||||
GetEnhMetaFileDescription,\
|
||||
GetGlyphIndices,\
|
||||
GetGlyphOutline,\
|
||||
GetICMProfile,\
|
||||
GetKerningPairs,\
|
||||
GetLogColorSpace,\
|
||||
GetMetaFile,\
|
||||
GetObject,\
|
||||
GetOutlineTextMetrics,\
|
||||
GetTextExtentExPoint,\
|
||||
GetTextExtentPoint32,\
|
||||
GetTextExtentPoint,\
|
||||
GetTextFace,\
|
||||
GetTextMetrics,\
|
||||
LineDD,\
|
||||
PolyTextOut,\
|
||||
RemoveFontResource,\
|
||||
RemoveFontResourceEx,\
|
||||
ResetDC,\
|
||||
SetICMProfile,\
|
||||
StartDoc,\
|
||||
TextOut,\
|
||||
UpdateICMRegKey
|
||||
879
fasmw172/INCLUDE/API/KERNEL32.INC
Normal file
879
fasmw172/INCLUDE/API/KERNEL32.INC
Normal file
@@ -0,0 +1,879 @@
|
||||
|
||||
; KERNEL32 API calls
|
||||
|
||||
import kernel32,\
|
||||
AddAtomA,'AddAtomA',\
|
||||
AddAtomW,'AddAtomW',\
|
||||
AddConsoleAliasA,'AddConsoleAliasA',\
|
||||
AddConsoleAliasW,'AddConsoleAliasW',\
|
||||
AllocConsole,'AllocConsole',\
|
||||
AreFileApisANSI,'AreFileApisANSI',\
|
||||
AssignProcessToJobObject,'AssignProcessToJobObject',\
|
||||
BackupRead,'BackupRead',\
|
||||
BackupSeek,'BackupSeek',\
|
||||
BackupWrite,'BackupWrite',\
|
||||
BaseAttachCompleteThunk,'BaseAttachCompleteThunk',\
|
||||
Beep,'Beep',\
|
||||
BeginUpdateResourceA,'BeginUpdateResourceA',\
|
||||
BeginUpdateResourceW,'BeginUpdateResourceW',\
|
||||
BuildCommDCBA,'BuildCommDCBA',\
|
||||
BuildCommDCBW,'BuildCommDCBW',\
|
||||
BuildCommDCBAndTimeoutsA,'BuildCommDCBAndTimeoutsA',\
|
||||
BuildCommDCBAndTimeoutsW,'BuildCommDCBAndTimeoutsW',\
|
||||
CallNamedPipeA,'CallNamedPipeA',\
|
||||
CallNamedPipeW,'CallNamedPipeW',\
|
||||
CancelIo,'CancelIo',\
|
||||
CancelWaitableTimer,'CancelWaitableTimer',\
|
||||
ClearCommBreak,'ClearCommBreak',\
|
||||
ClearCommError,'ClearCommError',\
|
||||
CloseConsoleHandle,'CloseConsoleHandle',\
|
||||
CloseHandle,'CloseHandle',\
|
||||
CloseProfileUserMapping,'CloseProfileUserMapping',\
|
||||
CmdBatNotification,'CmdBatNotification',\
|
||||
CommConfigDialogA,'CommConfigDialogA',\
|
||||
CommConfigDialogW,'CommConfigDialogW',\
|
||||
CompareFileTime,'CompareFileTime',\
|
||||
CompareStringA,'CompareStringA',\
|
||||
CompareStringW,'CompareStringW',\
|
||||
ConnectNamedPipe,'ConnectNamedPipe',\
|
||||
ConsoleMenuControl,'ConsoleMenuControl',\
|
||||
ContinueDebugEvent,'ContinueDebugEvent',\
|
||||
ConvertDefaultLocale,'ConvertDefaultLocale',\
|
||||
ConvertThreadToFiber,'ConvertThreadToFiber',\
|
||||
CopyFileA,'CopyFileA',\
|
||||
CopyFileW,'CopyFileW',\
|
||||
CopyFileExA,'CopyFileExA',\
|
||||
CopyFileExW,'CopyFileExW',\
|
||||
CreateConsoleScreenBuffer,'CreateConsoleScreenBuffer',\
|
||||
CreateDirectoryA,'CreateDirectoryA',\
|
||||
CreateDirectoryW,'CreateDirectoryW',\
|
||||
CreateDirectoryExA,'CreateDirectoryExA',\
|
||||
CreateDirectoryExW,'CreateDirectoryExW',\
|
||||
CreateEventA,'CreateEventA',\
|
||||
CreateEventW,'CreateEventW',\
|
||||
CreateFiber,'CreateFiber',\
|
||||
CreateFileA,'CreateFileA',\
|
||||
CreateFileW,'CreateFileW',\
|
||||
CreateFileMappingA,'CreateFileMappingA',\
|
||||
CreateFileMappingW,'CreateFileMappingW',\
|
||||
CreateHardLinkA,'CreateHardLinkA',\
|
||||
CreateHardLinkW,'CreateHardLinkW',\
|
||||
CreateIoCompletionPort,'CreateIoCompletionPort',\
|
||||
CreateJobObjectA,'CreateJobObjectA',\
|
||||
CreateJobObjectW,'CreateJobObjectW',\
|
||||
CreateMailslotA,'CreateMailslotA',\
|
||||
CreateMailslotW,'CreateMailslotW',\
|
||||
CreateMutexA,'CreateMutexA',\
|
||||
CreateMutexW,'CreateMutexW',\
|
||||
CreateNamedPipeA,'CreateNamedPipeA',\
|
||||
CreateNamedPipeW,'CreateNamedPipeW',\
|
||||
CreatePipe,'CreatePipe',\
|
||||
CreateProcessA,'CreateProcessA',\
|
||||
CreateProcessW,'CreateProcessW',\
|
||||
CreateRemoteThread,'CreateRemoteThread',\
|
||||
CreateSemaphoreA,'CreateSemaphoreA',\
|
||||
CreateSemaphoreW,'CreateSemaphoreW',\
|
||||
CreateTapePartition,'CreateTapePartition',\
|
||||
CreateThread,'CreateThread',\
|
||||
CreateToolhelp32Snapshot,'CreateToolhelp32Snapshot',\
|
||||
CreateVirtualBuffer,'CreateVirtualBuffer',\
|
||||
CreateWaitableTimerA,'CreateWaitableTimerA',\
|
||||
CreateWaitableTimerW,'CreateWaitableTimerW',\
|
||||
DebugActiveProcess,'DebugActiveProcess',\
|
||||
DebugBreak,'DebugBreak',\
|
||||
DefineDosDeviceA,'DefineDosDeviceA',\
|
||||
DefineDosDeviceW,'DefineDosDeviceW',\
|
||||
DeleteAtom,'DeleteAtom',\
|
||||
DeleteCriticalSection,'DeleteCriticalSection',\
|
||||
DeleteFiber,'DeleteFiber',\
|
||||
DeleteFileA,'DeleteFileA',\
|
||||
DeleteFileW,'DeleteFileW',\
|
||||
DeviceIoControl,'DeviceIoControl',\
|
||||
DisableThreadLibraryCalls,'DisableThreadLibraryCalls',\
|
||||
DisconnectNamedPipe,'DisconnectNamedPipe',\
|
||||
DosDateTimeToFileTime,'DosDateTimeToFileTime',\
|
||||
DuplicateConsoleHandle,'DuplicateConsoleHandle',\
|
||||
DuplicateHandle,'DuplicateHandle',\
|
||||
EndUpdateResourceA,'EndUpdateResourceA',\
|
||||
EndUpdateResourceW,'EndUpdateResourceW',\
|
||||
EnterCriticalSection,'EnterCriticalSection',\
|
||||
EnumCalendarInfoA,'EnumCalendarInfoA',\
|
||||
EnumCalendarInfoW,'EnumCalendarInfoW',\
|
||||
EnumCalendarInfoExA,'EnumCalendarInfoExA',\
|
||||
EnumCalendarInfoExW,'EnumCalendarInfoExW',\
|
||||
EnumDateFormatsA,'EnumDateFormatsA',\
|
||||
EnumDateFormatsW,'EnumDateFormatsW',\
|
||||
EnumDateFormatsExA,'EnumDateFormatsExA',\
|
||||
EnumDateFormatsExW,'EnumDateFormatsExW',\
|
||||
EnumResourceLanguagesA,'EnumResourceLanguagesA',\
|
||||
EnumResourceLanguagesW,'EnumResourceLanguagesW',\
|
||||
EnumResourceNamesA,'EnumResourceNamesA',\
|
||||
EnumResourceNamesW,'EnumResourceNamesW',\
|
||||
EnumResourceTypesA,'EnumResourceTypesA',\
|
||||
EnumResourceTypesW,'EnumResourceTypesW',\
|
||||
EnumSystemCodePagesA,'EnumSystemCodePagesA',\
|
||||
EnumSystemCodePagesW,'EnumSystemCodePagesW',\
|
||||
EnumSystemLocalesA,'EnumSystemLocalesA',\
|
||||
EnumSystemLocalesW,'EnumSystemLocalesW',\
|
||||
EnumTimeFormatsA,'EnumTimeFormatsA',\
|
||||
EnumTimeFormatsW,'EnumTimeFormatsW',\
|
||||
EraseTape,'EraseTape',\
|
||||
EscapeCommFunction,'EscapeCommFunction',\
|
||||
ExitProcess,'ExitProcess',\
|
||||
ExitThread,'ExitThread',\
|
||||
ExitVDM,'ExitVDM',\
|
||||
ExpandEnvironmentStringsA,'ExpandEnvironmentStringsA',\
|
||||
ExpandEnvironmentStringsW,'ExpandEnvironmentStringsW',\
|
||||
ExpungeConsoleCommandHistoryA,'ExpungeConsoleCommandHistoryA',\
|
||||
ExpungeConsoleCommandHistoryW,'ExpungeConsoleCommandHistoryW',\
|
||||
ExtendVirtualBuffer,'ExtendVirtualBuffer',\
|
||||
FatalAppExitA,'FatalAppExitA',\
|
||||
FatalAppExitW,'FatalAppExitW',\
|
||||
FatalExit,'FatalExit',\
|
||||
FileTimeToDosDateTime,'FileTimeToDosDateTime',\
|
||||
FileTimeToLocalFileTime,'FileTimeToLocalFileTime',\
|
||||
FileTimeToSystemTime,'FileTimeToSystemTime',\
|
||||
FillConsoleOutputAttribute,'FillConsoleOutputAttribute',\
|
||||
FillConsoleOutputCharacterA,'FillConsoleOutputCharacterA',\
|
||||
FillConsoleOutputCharacterW,'FillConsoleOutputCharacterW',\
|
||||
FindAtomA,'FindAtomA',\
|
||||
FindAtomW,'FindAtomW',\
|
||||
FindClose,'FindClose',\
|
||||
FindCloseChangeNotification,'FindCloseChangeNotification',\
|
||||
FindFirstChangeNotificationA,'FindFirstChangeNotificationA',\
|
||||
FindFirstChangeNotificationW,'FindFirstChangeNotificationW',\
|
||||
FindFirstFileA,'FindFirstFileA',\
|
||||
FindFirstFileW,'FindFirstFileW',\
|
||||
FindFirstFileExA,'FindFirstFileExA',\
|
||||
FindFirstFileExW,'FindFirstFileExW',\
|
||||
FindNextChangeNotification,'FindNextChangeNotification',\
|
||||
FindNextFileA,'FindNextFileA',\
|
||||
FindNextFileW,'FindNextFileW',\
|
||||
FindResourceA,'FindResourceA',\
|
||||
FindResourceW,'FindResourceW',\
|
||||
FindResourceExA,'FindResourceExA',\
|
||||
FindResourceExW,'FindResourceExW',\
|
||||
FlushConsoleInputBuffer,'FlushConsoleInputBuffer',\
|
||||
FlushFileBuffers,'FlushFileBuffers',\
|
||||
FlushInstructionCache,'FlushInstructionCache',\
|
||||
FlushViewOfFile,'FlushViewOfFile',\
|
||||
FoldStringA,'FoldStringA',\
|
||||
FoldStringW,'FoldStringW',\
|
||||
FormatMessageA,'FormatMessageA',\
|
||||
FormatMessageW,'FormatMessageW',\
|
||||
FreeConsole,'FreeConsole',\
|
||||
FreeEnvironmentStringsA,'FreeEnvironmentStringsA',\
|
||||
FreeEnvironmentStringsW,'FreeEnvironmentStringsW',\
|
||||
FreeLibrary,'FreeLibrary',\
|
||||
FreeLibraryAndExitThread,'FreeLibraryAndExitThread',\
|
||||
FreeResource,'FreeResource',\
|
||||
FreeVirtualBuffer,'FreeVirtualBuffer',\
|
||||
GenerateConsoleCtrlEvent,'GenerateConsoleCtrlEvent',\
|
||||
GetACP,'GetACP',\
|
||||
GetAtomNameA,'GetAtomNameA',\
|
||||
GetAtomNameW,'GetAtomNameW',\
|
||||
GetBinaryTypeA,'GetBinaryTypeA',\
|
||||
GetBinaryTypeW,'GetBinaryTypeW',\
|
||||
GetCPInfo,'GetCPInfo',\
|
||||
GetCPInfoExA,'GetCPInfoExA',\
|
||||
GetCPInfoExW,'GetCPInfoExW',\
|
||||
GetCommConfig,'GetCommConfig',\
|
||||
GetCommMask,'GetCommMask',\
|
||||
GetCommModemStatus,'GetCommModemStatus',\
|
||||
GetCommProperties,'GetCommProperties',\
|
||||
GetCommState,'GetCommState',\
|
||||
GetCommTimeouts,'GetCommTimeouts',\
|
||||
GetCommandLineA,'GetCommandLineA',\
|
||||
GetCommandLineW,'GetCommandLineW',\
|
||||
GetCompressedFileSizeA,'GetCompressedFileSizeA',\
|
||||
GetCompressedFileSizeW,'GetCompressedFileSizeW',\
|
||||
GetComputerNameA,'GetComputerNameA',\
|
||||
GetComputerNameW,'GetComputerNameW',\
|
||||
GetConsoleAliasA,'GetConsoleAliasA',\
|
||||
GetConsoleAliasW,'GetConsoleAliasW',\
|
||||
GetConsoleAliasExesA,'GetConsoleAliasExesA',\
|
||||
GetConsoleAliasExesW,'GetConsoleAliasExesW',\
|
||||
GetConsoleAliasExesLengthA,'GetConsoleAliasExesLengthA',\
|
||||
GetConsoleAliasExesLengthW,'GetConsoleAliasExesLengthW',\
|
||||
GetConsoleAliasesA,'GetConsoleAliasesA',\
|
||||
GetConsoleAliasesW,'GetConsoleAliasesW',\
|
||||
GetConsoleAliasesLengthA,'GetConsoleAliasesLengthA',\
|
||||
GetConsoleAliasesLengthW,'GetConsoleAliasesLengthW',\
|
||||
GetConsoleCP,'GetConsoleCP',\
|
||||
GetConsoleCommandHistoryA,'GetConsoleCommandHistoryA',\
|
||||
GetConsoleCommandHistoryW,'GetConsoleCommandHistoryW',\
|
||||
GetConsoleCommandHistoryLengthA,'GetConsoleCommandHistoryLengthA',\
|
||||
GetConsoleCommandHistoryLengthW,'GetConsoleCommandHistoryLengthW',\
|
||||
GetConsoleCursorInfo,'GetConsoleCursorInfo',\
|
||||
GetConsoleDisplayMode,'GetConsoleDisplayMode',\
|
||||
GetConsoleFontInfo,'GetConsoleFontInfo',\
|
||||
GetConsoleFontSize,'GetConsoleFontSize',\
|
||||
GetConsoleHardwareState,'GetConsoleHardwareState',\
|
||||
GetConsoleInputExeNameA,'GetConsoleInputExeNameA',\
|
||||
GetConsoleInputExeNameW,'GetConsoleInputExeNameW',\
|
||||
GetConsoleInputWaitHandle,'GetConsoleInputWaitHandle',\
|
||||
GetConsoleKeyboardLayoutNameA,'GetConsoleKeyboardLayoutNameA',\
|
||||
GetConsoleKeyboardLayoutNameW,'GetConsoleKeyboardLayoutNameW',\
|
||||
GetConsoleMode,'GetConsoleMode',\
|
||||
GetConsoleOutputCP,'GetConsoleOutputCP',\
|
||||
GetConsoleScreenBufferInfo,'GetConsoleScreenBufferInfo',\
|
||||
GetConsoleTitleA,'GetConsoleTitleA',\
|
||||
GetConsoleTitleW,'GetConsoleTitleW',\
|
||||
GetConsoleWindow,'GetConsoleWindow',\
|
||||
GetCurrencyFormatA,'GetCurrencyFormatA',\
|
||||
GetCurrencyFormatW,'GetCurrencyFormatW',\
|
||||
GetCurrentConsoleFont,'GetCurrentConsoleFont',\
|
||||
GetCurrentDirectoryA,'GetCurrentDirectoryA',\
|
||||
GetCurrentDirectoryW,'GetCurrentDirectoryW',\
|
||||
GetCurrentProcess,'GetCurrentProcess',\
|
||||
GetCurrentProcessId,'GetCurrentProcessId',\
|
||||
GetCurrentThread,'GetCurrentThread',\
|
||||
GetCurrentThreadId,'GetCurrentThreadId',\
|
||||
GetDateFormatA,'GetDateFormatA',\
|
||||
GetDateFormatW,'GetDateFormatW',\
|
||||
GetDefaultCommConfigA,'GetDefaultCommConfigA',\
|
||||
GetDefaultCommConfigW,'GetDefaultCommConfigW',\
|
||||
GetDevicePowerState,'GetDevicePowerState',\
|
||||
GetDiskFreeSpaceA,'GetDiskFreeSpaceA',\
|
||||
GetDiskFreeSpaceW,'GetDiskFreeSpaceW',\
|
||||
GetDiskFreeSpaceExA,'GetDiskFreeSpaceExA',\
|
||||
GetDiskFreeSpaceExW,'GetDiskFreeSpaceExW',\
|
||||
GetDriveTypeA,'GetDriveTypeA',\
|
||||
GetDriveTypeW,'GetDriveTypeW',\
|
||||
GetEnvironmentStringsA,'GetEnvironmentStringsA',\
|
||||
GetEnvironmentStringsW,'GetEnvironmentStringsW',\
|
||||
GetEnvironmentVariableA,'GetEnvironmentVariableA',\
|
||||
GetEnvironmentVariableW,'GetEnvironmentVariableW',\
|
||||
GetExitCodeProcess,'GetExitCodeProcess',\
|
||||
GetExitCodeThread,'GetExitCodeThread',\
|
||||
GetFileAttributesA,'GetFileAttributesA',\
|
||||
GetFileAttributesW,'GetFileAttributesW',\
|
||||
GetFileAttributesExA,'GetFileAttributesExA',\
|
||||
GetFileAttributesExW,'GetFileAttributesExW',\
|
||||
GetFileInformationByHandle,'GetFileInformationByHandle',\
|
||||
GetFileSize,'GetFileSize',\
|
||||
GetFileTime,'GetFileTime',\
|
||||
GetFileType,'GetFileType',\
|
||||
GetFullPathNameA,'GetFullPathNameA',\
|
||||
GetFullPathNameW,'GetFullPathNameW',\
|
||||
GetHandleInformation,'GetHandleInformation',\
|
||||
GetLargestConsoleWindowSize,'GetLargestConsoleWindowSize',\
|
||||
GetLastError,'GetLastError',\
|
||||
GetLocalTime,'GetLocalTime',\
|
||||
GetLocaleInfoA,'GetLocaleInfoA',\
|
||||
GetLocaleInfoW,'GetLocaleInfoW',\
|
||||
GetLogicalDriveStringsA,'GetLogicalDriveStringsA',\
|
||||
GetLogicalDriveStringsW,'GetLogicalDriveStringsW',\
|
||||
GetLogicalDrives,'GetLogicalDrives',\
|
||||
GetLongPathNameA,'GetLongPathNameA',\
|
||||
GetLongPathNameW,'GetLongPathNameW',\
|
||||
GetMailslotInfo,'GetMailslotInfo',\
|
||||
GetModuleFileNameA,'GetModuleFileNameA',\
|
||||
GetModuleFileNameW,'GetModuleFileNameW',\
|
||||
GetModuleHandleA,'GetModuleHandleA',\
|
||||
GetModuleHandleW,'GetModuleHandleW',\
|
||||
GetNamedPipeHandleStateA,'GetNamedPipeHandleStateA',\
|
||||
GetNamedPipeHandleStateW,'GetNamedPipeHandleStateW',\
|
||||
GetNamedPipeInfo,'GetNamedPipeInfo',\
|
||||
GetNextVDMCommand,'GetNextVDMCommand',\
|
||||
GetNumberFormatA,'GetNumberFormatA',\
|
||||
GetNumberFormatW,'GetNumberFormatW',\
|
||||
GetNumberOfConsoleFonts,'GetNumberOfConsoleFonts',\
|
||||
GetNumberOfConsoleInputEvents,'GetNumberOfConsoleInputEvents',\
|
||||
GetNumberOfConsoleMouseButtons,'GetNumberOfConsoleMouseButtons',\
|
||||
GetOEMCP,'GetOEMCP',\
|
||||
GetOverlappedResult,'GetOverlappedResult',\
|
||||
GetPriorityClass,'GetPriorityClass',\
|
||||
GetPrivateProfileIntA,'GetPrivateProfileIntA',\
|
||||
GetPrivateProfileIntW,'GetPrivateProfileIntW',\
|
||||
GetPrivateProfileSectionA,'GetPrivateProfileSectionA',\
|
||||
GetPrivateProfileSectionW,'GetPrivateProfileSectionW',\
|
||||
GetPrivateProfileSectionNamesA,'GetPrivateProfileSectionNamesA',\
|
||||
GetPrivateProfileSectionNamesW,'GetPrivateProfileSectionNamesW',\
|
||||
GetPrivateProfileStringA,'GetPrivateProfileStringA',\
|
||||
GetPrivateProfileStringW,'GetPrivateProfileStringW',\
|
||||
GetPrivateProfileStructA,'GetPrivateProfileStructA',\
|
||||
GetPrivateProfileStructW,'GetPrivateProfileStructW',\
|
||||
GetProcAddress,'GetProcAddress',\
|
||||
GetProcessAffinityMask,'GetProcessAffinityMask',\
|
||||
GetProcessHeap,'GetProcessHeap',\
|
||||
GetProcessHeaps,'GetProcessHeaps',\
|
||||
GetProcessPriorityBoost,'GetProcessPriorityBoost',\
|
||||
GetProcessShutdownParameters,'GetProcessShutdownParameters',\
|
||||
GetProcessTimes,'GetProcessTimes',\
|
||||
GetProcessVersion,'GetProcessVersion',\
|
||||
GetProcessWorkingSetSize,'GetProcessWorkingSetSize',\
|
||||
GetProfileIntA,'GetProfileIntA',\
|
||||
GetProfileIntW,'GetProfileIntW',\
|
||||
GetProfileSectionA,'GetProfileSectionA',\
|
||||
GetProfileSectionW,'GetProfileSectionW',\
|
||||
GetProfileStringA,'GetProfileStringA',\
|
||||
GetProfileStringW,'GetProfileStringW',\
|
||||
GetQueuedCompletionStatus,'GetQueuedCompletionStatus',\
|
||||
GetShortPathNameA,'GetShortPathNameA',\
|
||||
GetShortPathNameW,'GetShortPathNameW',\
|
||||
GetStartupInfoA,'GetStartupInfoA',\
|
||||
GetStartupInfoW,'GetStartupInfoW',\
|
||||
GetStdHandle,'GetStdHandle',\
|
||||
GetStringTypeA,'GetStringTypeA',\
|
||||
GetStringTypeW,'GetStringTypeW',\
|
||||
GetStringTypeExA,'GetStringTypeExA',\
|
||||
GetStringTypeExW,'GetStringTypeExW',\
|
||||
GetSystemDefaultLCID,'GetSystemDefaultLCID',\
|
||||
GetSystemDefaultLangID,'GetSystemDefaultLangID',\
|
||||
GetSystemDirectoryA,'GetSystemDirectoryA',\
|
||||
GetSystemDirectoryW,'GetSystemDirectoryW',\
|
||||
GetSystemInfo,'GetSystemInfo',\
|
||||
GetSystemPowerStatus,'GetSystemPowerStatus',\
|
||||
GetSystemTime,'GetSystemTime',\
|
||||
GetSystemTimeAdjustment,'GetSystemTimeAdjustment',\
|
||||
GetSystemTimeAsFileTime,'GetSystemTimeAsFileTime',\
|
||||
GetTapeParameters,'GetTapeParameters',\
|
||||
GetTapePosition,'GetTapePosition',\
|
||||
GetTapeStatus,'GetTapeStatus',\
|
||||
GetTempFileNameA,'GetTempFileNameA',\
|
||||
GetTempFileNameW,'GetTempFileNameW',\
|
||||
GetTempPathA,'GetTempPathA',\
|
||||
GetTempPathW,'GetTempPathW',\
|
||||
GetThreadContext,'GetThreadContext',\
|
||||
GetThreadLocale,'GetThreadLocale',\
|
||||
GetThreadPriority,'GetThreadPriority',\
|
||||
GetThreadPriorityBoost,'GetThreadPriorityBoost',\
|
||||
GetThreadSelectorEntry,'GetThreadSelectorEntry',\
|
||||
GetThreadTimes,'GetThreadTimes',\
|
||||
GetTickCount,'GetTickCount',\
|
||||
GetTimeFormatA,'GetTimeFormatA',\
|
||||
GetTimeFormatW,'GetTimeFormatW',\
|
||||
GetTimeZoneInformation,'GetTimeZoneInformation',\
|
||||
GetUserDefaultLCID,'GetUserDefaultLCID',\
|
||||
GetUserDefaultLangID,'GetUserDefaultLangID',\
|
||||
GetVDMCurrentDirectories,'GetVDMCurrentDirectories',\
|
||||
GetVersion,'GetVersion',\
|
||||
GetVersionExA,'GetVersionExA',\
|
||||
GetVersionExW,'GetVersionExW',\
|
||||
GetVolumeInformationA,'GetVolumeInformationA',\
|
||||
GetVolumeInformationW,'GetVolumeInformationW',\
|
||||
GetWindowsDirectoryA,'GetWindowsDirectoryA',\
|
||||
GetWindowsDirectoryW,'GetWindowsDirectoryW',\
|
||||
GlobalAddAtomA,'GlobalAddAtomA',\
|
||||
GlobalAddAtomW,'GlobalAddAtomW',\
|
||||
GlobalAlloc,'GlobalAlloc',\
|
||||
GlobalCompact,'GlobalCompact',\
|
||||
GlobalDeleteAtom,'GlobalDeleteAtom',\
|
||||
GlobalFindAtomA,'GlobalFindAtomA',\
|
||||
GlobalFindAtomW,'GlobalFindAtomW',\
|
||||
GlobalFix,'GlobalFix',\
|
||||
GlobalFlags,'GlobalFlags',\
|
||||
GlobalFree,'GlobalFree',\
|
||||
GlobalGetAtomNameA,'GlobalGetAtomNameA',\
|
||||
GlobalGetAtomNameW,'GlobalGetAtomNameW',\
|
||||
GlobalHandle,'GlobalHandle',\
|
||||
GlobalLock,'GlobalLock',\
|
||||
GlobalMemoryStatus,'GlobalMemoryStatus',\
|
||||
GlobalMemoryStatusVlm,'GlobalMemoryStatusVlm',\
|
||||
GlobalReAlloc,'GlobalReAlloc',\
|
||||
GlobalSize,'GlobalSize',\
|
||||
GlobalUnWire,'GlobalUnWire',\
|
||||
GlobalUnfix,'GlobalUnfix',\
|
||||
GlobalUnlock,'GlobalUnlock',\
|
||||
GlobalWire,'GlobalWire',\
|
||||
Heap32First,'Heap32First',\
|
||||
Heap32ListFirst,'Heap32ListFirst',\
|
||||
Heap32ListNext,'Heap32ListNext',\
|
||||
Heap32Next,'Heap32Next',\
|
||||
HeapAlloc,'HeapAlloc',\
|
||||
HeapCompact,'HeapCompact',\
|
||||
HeapCreate,'HeapCreate',\
|
||||
HeapDestroy,'HeapDestroy',\
|
||||
HeapExtend,'HeapExtend',\
|
||||
HeapFree,'HeapFree',\
|
||||
HeapLock,'HeapLock',\
|
||||
HeapReAlloc,'HeapReAlloc',\
|
||||
HeapSize,'HeapSize',\
|
||||
HeapSummary,'HeapSummary',\
|
||||
HeapUnlock,'HeapUnlock',\
|
||||
HeapUsage,'HeapUsage',\
|
||||
HeapValidate,'HeapValidate',\
|
||||
HeapWalk,'HeapWalk',\
|
||||
InitAtomTable,'InitAtomTable',\
|
||||
InitializeCriticalSection,'InitializeCriticalSection',\
|
||||
InitializeCriticalSectionAndSpinCount,'InitializeCriticalSectionAndSpinCount',\
|
||||
InterlockedCompareExchange,'InterlockedCompareExchange',\
|
||||
InterlockedDecrement,'InterlockedDecrement',\
|
||||
InterlockedExchange,'InterlockedExchange',\
|
||||
InterlockedExchangeAdd,'InterlockedExchangeAdd',\
|
||||
InterlockedIncrement,'InterlockedIncrement',\
|
||||
InvalidateConsoleDIBits,'InvalidateConsoleDIBits',\
|
||||
IsBadCodePtr,'IsBadCodePtr',\
|
||||
IsBadHugeReadPtr,'IsBadHugeReadPtr',\
|
||||
IsBadHugeWritePtr,'IsBadHugeWritePtr',\
|
||||
IsBadReadPtr,'IsBadReadPtr',\
|
||||
IsBadStringPtrA,'IsBadStringPtrA',\
|
||||
IsBadStringPtrW,'IsBadStringPtrW',\
|
||||
IsBadWritePtr,'IsBadWritePtr',\
|
||||
IsDBCSLeadByte,'IsDBCSLeadByte',\
|
||||
IsDBCSLeadByteEx,'IsDBCSLeadByteEx',\
|
||||
IsDebuggerPresent,'IsDebuggerPresent',\
|
||||
IsProcessorFeaturePresent,'IsProcessorFeaturePresent',\
|
||||
IsValidCodePage,'IsValidCodePage',\
|
||||
IsValidLocale,'IsValidLocale',\
|
||||
LCMapStringA,'LCMapStringA',\
|
||||
LCMapStringW,'LCMapStringW',\
|
||||
LeaveCriticalSection,'LeaveCriticalSection',\
|
||||
LoadLibraryA,'LoadLibraryA',\
|
||||
LoadLibraryW,'LoadLibraryW',\
|
||||
LoadLibraryExA,'LoadLibraryExA',\
|
||||
LoadLibraryExW,'LoadLibraryExW',\
|
||||
LoadModule,'LoadModule',\
|
||||
LoadResource,'LoadResource',\
|
||||
LocalAlloc,'LocalAlloc',\
|
||||
LocalCompact,'LocalCompact',\
|
||||
LocalFileTimeToFileTime,'LocalFileTimeToFileTime',\
|
||||
LocalFlags,'LocalFlags',\
|
||||
LocalFree,'LocalFree',\
|
||||
LocalHandle,'LocalHandle',\
|
||||
LocalLock,'LocalLock',\
|
||||
LocalReAlloc,'LocalReAlloc',\
|
||||
LocalShrink,'LocalShrink',\
|
||||
LocalSize,'LocalSize',\
|
||||
LocalUnlock,'LocalUnlock',\
|
||||
LockFile,'LockFile',\
|
||||
LockFileEx,'LockFileEx',\
|
||||
LockResource,'LockResource',\
|
||||
MapViewOfFile,'MapViewOfFile',\
|
||||
MapViewOfFileEx,'MapViewOfFileEx',\
|
||||
MapViewOfFileVlm,'MapViewOfFileVlm',\
|
||||
Module32First,'Module32First',\
|
||||
Module32Next,'Module32Next',\
|
||||
MoveFileA,'MoveFileA',\
|
||||
MoveFileW,'MoveFileW',\
|
||||
MoveFileExA,'MoveFileExA',\
|
||||
MoveFileExW,'MoveFileExW',\
|
||||
MoveFileWithProgressA,'MoveFileWithProgressA',\
|
||||
MoveFileWithProgressW,'MoveFileWithProgressW',\
|
||||
MulDiv,'MulDiv',\
|
||||
MultiByteToWideChar,'MultiByteToWideChar',\
|
||||
OpenEventA,'OpenEventA',\
|
||||
OpenEventW,'OpenEventW',\
|
||||
OpenFile,'OpenFile',\
|
||||
OpenFileMappingA,'OpenFileMappingA',\
|
||||
OpenFileMappingW,'OpenFileMappingW',\
|
||||
OpenJobObjectA,'OpenJobObjectA',\
|
||||
OpenJobObjectW,'OpenJobObjectW',\
|
||||
OpenMutexA,'OpenMutexA',\
|
||||
OpenMutexW,'OpenMutexW',\
|
||||
OpenProcess,'OpenProcess',\
|
||||
OpenProfileUserMapping,'OpenProfileUserMapping',\
|
||||
OpenSemaphoreA,'OpenSemaphoreA',\
|
||||
OpenSemaphoreW,'OpenSemaphoreW',\
|
||||
OpenWaitableTimerA,'OpenWaitableTimerA',\
|
||||
OpenWaitableTimerW,'OpenWaitableTimerW',\
|
||||
OutputDebugStringA,'OutputDebugStringA',\
|
||||
OutputDebugStringW,'OutputDebugStringW',\
|
||||
PeekConsoleInputA,'PeekConsoleInputA',\
|
||||
PeekConsoleInputW,'PeekConsoleInputW',\
|
||||
PeekNamedPipe,'PeekNamedPipe',\
|
||||
PostQueuedCompletionStatus,'PostQueuedCompletionStatus',\
|
||||
PrepareTape,'PrepareTape',\
|
||||
Process32First,'Process32First',\
|
||||
Process32Next,'Process32Next',\
|
||||
PulseEvent,'PulseEvent',\
|
||||
PurgeComm,'PurgeComm',\
|
||||
QueryDosDeviceA,'QueryDosDeviceA',\
|
||||
QueryDosDeviceW,'QueryDosDeviceW',\
|
||||
QueryInformationJobObject,'QueryInformationJobObject',\
|
||||
QueryPerformanceCounter,'QueryPerformanceCounter',\
|
||||
QueryPerformanceFrequency,'QueryPerformanceFrequency',\
|
||||
QueryWin31IniFilesMappedToRegistry,'QueryWin31IniFilesMappedToRegistry',\
|
||||
QueueUserAPC,'QueueUserAPC',\
|
||||
RaiseException,'RaiseException',\
|
||||
ReadConsoleA,'ReadConsoleA',\
|
||||
ReadConsoleW,'ReadConsoleW',\
|
||||
ReadConsoleInputA,'ReadConsoleInputA',\
|
||||
ReadConsoleInputW,'ReadConsoleInputW',\
|
||||
ReadConsoleInputExA,'ReadConsoleInputExA',\
|
||||
ReadConsoleInputExW,'ReadConsoleInputExW',\
|
||||
ReadConsoleOutputA,'ReadConsoleOutputA',\
|
||||
ReadConsoleOutputW,'ReadConsoleOutputW',\
|
||||
ReadConsoleOutputAttribute,'ReadConsoleOutputAttribute',\
|
||||
ReadConsoleOutputCharacterA,'ReadConsoleOutputCharacterA',\
|
||||
ReadConsoleOutputCharacterW,'ReadConsoleOutputCharacterW',\
|
||||
ReadFile,'ReadFile',\
|
||||
ReadFileEx,'ReadFileEx',\
|
||||
ReadFileScatter,'ReadFileScatter',\
|
||||
ReadFileVlm,'ReadFileVlm',\
|
||||
ReadProcessMemory,'ReadProcessMemory',\
|
||||
ReadProcessMemoryVlm,'ReadProcessMemoryVlm',\
|
||||
RegisterConsoleVDM,'RegisterConsoleVDM',\
|
||||
RegisterWaitForInputIdle,'RegisterWaitForInputIdle',\
|
||||
RegisterWowBaseHandlers,'RegisterWowBaseHandlers',\
|
||||
RegisterWowExec,'RegisterWowExec',\
|
||||
ReleaseMutex,'ReleaseMutex',\
|
||||
ReleaseSemaphore,'ReleaseSemaphore',\
|
||||
RemoveDirectoryA,'RemoveDirectoryA',\
|
||||
RemoveDirectoryW,'RemoveDirectoryW',\
|
||||
RequestWakeupLatency,'RequestWakeupLatency',\
|
||||
ResetEvent,'ResetEvent',\
|
||||
ResumeThread,'ResumeThread',\
|
||||
RtlFillMemory,'RtlFillMemory',\
|
||||
RtlMoveMemory,'RtlMoveMemory',\
|
||||
RtlUnwind,'RtlUnwind',\
|
||||
RtlZeroMemory,'RtlZeroMemory',\
|
||||
ScrollConsoleScreenBufferA,'ScrollConsoleScreenBufferA',\
|
||||
ScrollConsoleScreenBufferW,'ScrollConsoleScreenBufferW',\
|
||||
SearchPathA,'SearchPathA',\
|
||||
SearchPathW,'SearchPathW',\
|
||||
SetCommBreak,'SetCommBreak',\
|
||||
SetCommConfig,'SetCommConfig',\
|
||||
SetCommMask,'SetCommMask',\
|
||||
SetCommState,'SetCommState',\
|
||||
SetCommTimeouts,'SetCommTimeouts',\
|
||||
SetComputerNameA,'SetComputerNameA',\
|
||||
SetComputerNameW,'SetComputerNameW',\
|
||||
SetConsoleActiveScreenBuffer,'SetConsoleActiveScreenBuffer',\
|
||||
SetConsoleCP,'SetConsoleCP',\
|
||||
SetConsoleCommandHistoryMode,'SetConsoleCommandHistoryMode',\
|
||||
SetConsoleCtrlHandler,'SetConsoleCtrlHandler',\
|
||||
SetConsoleCursor,'SetConsoleCursor',\
|
||||
SetConsoleCursorInfo,'SetConsoleCursorInfo',\
|
||||
SetConsoleCursorPosition,'SetConsoleCursorPosition',\
|
||||
SetConsoleDisplayMode,'SetConsoleDisplayMode',\
|
||||
SetConsoleFont,'SetConsoleFont',\
|
||||
SetConsoleHardwareState,'SetConsoleHardwareState',\
|
||||
SetConsoleIcon,'SetConsoleIcon',\
|
||||
SetConsoleInputExeNameA,'SetConsoleInputExeNameA',\
|
||||
SetConsoleInputExeNameW,'SetConsoleInputExeNameW',\
|
||||
SetConsoleKeyShortcuts,'SetConsoleKeyShortcuts',\
|
||||
SetConsoleMaximumWindowSize,'SetConsoleMaximumWindowSize',\
|
||||
SetConsoleMenuClose,'SetConsoleMenuClose',\
|
||||
SetConsoleMode,'SetConsoleMode',\
|
||||
SetConsoleNumberOfCommandsA,'SetConsoleNumberOfCommandsA',\
|
||||
SetConsoleNumberOfCommandsW,'SetConsoleNumberOfCommandsW',\
|
||||
SetConsoleOutputCP,'SetConsoleOutputCP',\
|
||||
SetConsolePalette,'SetConsolePalette',\
|
||||
SetConsoleScreenBufferSize,'SetConsoleScreenBufferSize',\
|
||||
SetConsoleTextAttribute,'SetConsoleTextAttribute',\
|
||||
SetConsoleTitleA,'SetConsoleTitleA',\
|
||||
SetConsoleTitleW,'SetConsoleTitleW',\
|
||||
SetConsoleWindowInfo,'SetConsoleWindowInfo',\
|
||||
SetCriticalSectionSpinCount,'SetCriticalSectionSpinCount',\
|
||||
SetCurrentDirectoryA,'SetCurrentDirectoryA',\
|
||||
SetCurrentDirectoryW,'SetCurrentDirectoryW',\
|
||||
SetDefaultCommConfigA,'SetDefaultCommConfigA',\
|
||||
SetDefaultCommConfigW,'SetDefaultCommConfigW',\
|
||||
SetEndOfFile,'SetEndOfFile',\
|
||||
SetEnvironmentVariableA,'SetEnvironmentVariableA',\
|
||||
SetEnvironmentVariableW,'SetEnvironmentVariableW',\
|
||||
SetErrorMode,'SetErrorMode',\
|
||||
SetEvent,'SetEvent',\
|
||||
SetFileApisToANSI,'SetFileApisToANSI',\
|
||||
SetFileApisToOEM,'SetFileApisToOEM',\
|
||||
SetFileAttributesA,'SetFileAttributesA',\
|
||||
SetFileAttributesW,'SetFileAttributesW',\
|
||||
SetFilePointer,'SetFilePointer',\
|
||||
SetFileTime,'SetFileTime',\
|
||||
SetHandleCount,'SetHandleCount',\
|
||||
SetHandleInformation,'SetHandleInformation',\
|
||||
SetInformationJobObject,'SetInformationJobObject',\
|
||||
SetLastConsoleEventActive,'SetLastConsoleEventActive',\
|
||||
SetLastError,'SetLastError',\
|
||||
SetLocalTime,'SetLocalTime',\
|
||||
SetLocaleInfoA,'SetLocaleInfoA',\
|
||||
SetLocaleInfoW,'SetLocaleInfoW',\
|
||||
SetMailslotInfo,'SetMailslotInfo',\
|
||||
SetNamedPipeHandleState,'SetNamedPipeHandleState',\
|
||||
SetPriorityClass,'SetPriorityClass',\
|
||||
SetProcessAffinityMask,'SetProcessAffinityMask',\
|
||||
SetProcessPriorityBoost,'SetProcessPriorityBoost',\
|
||||
SetProcessShutdownParameters,'SetProcessShutdownParameters',\
|
||||
SetProcessWorkingSetSize,'SetProcessWorkingSetSize',\
|
||||
SetStdHandle,'SetStdHandle',\
|
||||
SetSystemPowerState,'SetSystemPowerState',\
|
||||
SetSystemTime,'SetSystemTime',\
|
||||
SetSystemTimeAdjustment,'SetSystemTimeAdjustment',\
|
||||
SetTapeParameters,'SetTapeParameters',\
|
||||
SetTapePosition,'SetTapePosition',\
|
||||
SetThreadAffinityMask,'SetThreadAffinityMask',\
|
||||
SetThreadContext,'SetThreadContext',\
|
||||
SetThreadExecutionState,'SetThreadExecutionState',\
|
||||
SetThreadIdealProcessor,'SetThreadIdealProcessor',\
|
||||
SetThreadLocale,'SetThreadLocale',\
|
||||
SetThreadPriority,'SetThreadPriority',\
|
||||
SetThreadPriorityBoost,'SetThreadPriorityBoost',\
|
||||
SetTimeZoneInformation,'SetTimeZoneInformation',\
|
||||
SetUnhandledExceptionFilter,'SetUnhandledExceptionFilter',\
|
||||
SetVDMCurrentDirectories,'SetVDMCurrentDirectories',\
|
||||
SetVolumeLabelA,'SetVolumeLabelA',\
|
||||
SetVolumeLabelW,'SetVolumeLabelW',\
|
||||
SetWaitableTimer,'SetWaitableTimer',\
|
||||
SetupComm,'SetupComm',\
|
||||
ShowConsoleCursor,'ShowConsoleCursor',\
|
||||
SignalObjectAndWait,'SignalObjectAndWait',\
|
||||
SizeofResource,'SizeofResource',\
|
||||
Sleep,'Sleep',\
|
||||
SleepEx,'SleepEx',\
|
||||
SuspendThread,'SuspendThread',\
|
||||
SwitchToFiber,'SwitchToFiber',\
|
||||
SwitchToThread,'SwitchToThread',\
|
||||
SystemTimeToFileTime,'SystemTimeToFileTime',\
|
||||
SystemTimeToTzSpecificLocalTime,'SystemTimeToTzSpecificLocalTime',\
|
||||
TerminateJobObject,'TerminateJobObject',\
|
||||
TerminateProcess,'TerminateProcess',\
|
||||
TerminateThread,'TerminateThread',\
|
||||
Thread32First,'Thread32First',\
|
||||
Thread32Next,'Thread32Next',\
|
||||
TlsAlloc,'TlsAlloc',\
|
||||
TlsFree,'TlsFree',\
|
||||
TlsGetValue,'TlsGetValue',\
|
||||
TlsSetValue,'TlsSetValue',\
|
||||
Toolhelp32ReadProcessMemory,'Toolhelp32ReadProcessMemory',\
|
||||
TransactNamedPipe,'TransactNamedPipe',\
|
||||
TransmitCommChar,'TransmitCommChar',\
|
||||
TrimVirtualBuffer,'TrimVirtualBuffer',\
|
||||
TryEnterCriticalSection,'TryEnterCriticalSection',\
|
||||
UnhandledExceptionFilter,'UnhandledExceptionFilter',\
|
||||
UnlockFile,'UnlockFile',\
|
||||
UnlockFileEx,'UnlockFileEx',\
|
||||
UnmapViewOfFile,'UnmapViewOfFile',\
|
||||
UnmapViewOfFileVlm,'UnmapViewOfFileVlm',\
|
||||
UpdateResourceA,'UpdateResourceA',\
|
||||
UpdateResourceW,'UpdateResourceW',\
|
||||
VDMConsoleOperation,'VDMConsoleOperation',\
|
||||
VDMOperationStarted,'VDMOperationStarted',\
|
||||
VerLanguageNameA,'VerLanguageNameA',\
|
||||
VerLanguageNameW,'VerLanguageNameW',\
|
||||
VerifyConsoleIoHandle,'VerifyConsoleIoHandle',\
|
||||
VirtualAlloc,'VirtualAlloc',\
|
||||
VirtualAllocEx,'VirtualAllocEx',\
|
||||
VirtualAllocVlm,'VirtualAllocVlm',\
|
||||
VirtualBufferExceptionHandler,'VirtualBufferExceptionHandler',\
|
||||
VirtualFree,'VirtualFree',\
|
||||
VirtualFreeEx,'VirtualFreeEx',\
|
||||
VirtualFreeVlm,'VirtualFreeVlm',\
|
||||
VirtualLock,'VirtualLock',\
|
||||
VirtualProtect,'VirtualProtect',\
|
||||
VirtualProtectEx,'VirtualProtectEx',\
|
||||
VirtualProtectVlm,'VirtualProtectVlm',\
|
||||
VirtualQuery,'VirtualQuery',\
|
||||
VirtualQueryEx,'VirtualQueryEx',\
|
||||
VirtualQueryVlm,'VirtualQueryVlm',\
|
||||
VirtualUnlock,'VirtualUnlock',\
|
||||
WaitCommEvent,'WaitCommEvent',\
|
||||
WaitForDebugEvent,'WaitForDebugEvent',\
|
||||
WaitForMultipleObjects,'WaitForMultipleObjects',\
|
||||
WaitForMultipleObjectsEx,'WaitForMultipleObjectsEx',\
|
||||
WaitForSingleObject,'WaitForSingleObject',\
|
||||
WaitForSingleObjectEx,'WaitForSingleObjectEx',\
|
||||
WaitNamedPipeA,'WaitNamedPipeA',\
|
||||
WaitNamedPipeW,'WaitNamedPipeW',\
|
||||
WideCharToMultiByte,'WideCharToMultiByte',\
|
||||
WinExec,'WinExec',\
|
||||
WriteConsoleA,'WriteConsoleA',\
|
||||
WriteConsoleW,'WriteConsoleW',\
|
||||
WriteConsoleInputA,'WriteConsoleInputA',\
|
||||
WriteConsoleInputW,'WriteConsoleInputW',\
|
||||
WriteConsoleInputVDMA,'WriteConsoleInputVDMA',\
|
||||
WriteConsoleInputVDMW,'WriteConsoleInputVDMW',\
|
||||
WriteConsoleOutputA,'WriteConsoleOutputA',\
|
||||
WriteConsoleOutputW,'WriteConsoleOutputW',\
|
||||
WriteConsoleOutputAttribute,'WriteConsoleOutputAttribute',\
|
||||
WriteConsoleOutputCharacterA,'WriteConsoleOutputCharacterA',\
|
||||
WriteConsoleOutputCharacterW,'WriteConsoleOutputCharacterW',\
|
||||
WriteFile,'WriteFile',\
|
||||
WriteFileEx,'WriteFileEx',\
|
||||
WriteFileGather,'WriteFileGather',\
|
||||
WriteFileVlm,'WriteFileVlm',\
|
||||
WritePrivateProfileSectionA,'WritePrivateProfileSectionA',\
|
||||
WritePrivateProfileSectionW,'WritePrivateProfileSectionW',\
|
||||
WritePrivateProfileStringA,'WritePrivateProfileStringA',\
|
||||
WritePrivateProfileStringW,'WritePrivateProfileStringW',\
|
||||
WritePrivateProfileStructA,'WritePrivateProfileStructA',\
|
||||
WritePrivateProfileStructW,'WritePrivateProfileStructW',\
|
||||
WriteProcessMemory,'WriteProcessMemory',\
|
||||
WriteProcessMemoryVlm,'WriteProcessMemoryVlm',\
|
||||
WriteProfileSectionA,'WriteProfileSectionA',\
|
||||
WriteProfileSectionW,'WriteProfileSectionW',\
|
||||
WriteProfileStringA,'WriteProfileStringA',\
|
||||
WriteProfileStringW,'WriteProfileStringW',\
|
||||
WriteTapemark,'WriteTapemark',\
|
||||
_hread,'_hread',\
|
||||
_hwrite,'_hwrite',\
|
||||
_lclose,'_lclose',\
|
||||
_lcreat,'_lcreat',\
|
||||
_llseek,'_llseek',\
|
||||
_lopen,'_lopen',\
|
||||
_lread,'_lread',\
|
||||
_lwrite,'_lwrite',\
|
||||
lstrcatA,'lstrcatA',\
|
||||
lstrcatW,'lstrcatW',\
|
||||
lstrcmpA,'lstrcmpA',\
|
||||
lstrcmpW,'lstrcmpW',\
|
||||
lstrcmpiA,'lstrcmpiA',\
|
||||
lstrcmpiW,'lstrcmpiW',\
|
||||
lstrcpyA,'lstrcpyA',\
|
||||
lstrcpyW,'lstrcpyW',\
|
||||
lstrcpynA,'lstrcpynA',\
|
||||
lstrcpynW,'lstrcpynW',\
|
||||
lstrlenA,'lstrlenA',\
|
||||
lstrlenW,'lstrlenW'
|
||||
|
||||
api AddAtom,\
|
||||
AddConsoleAlias,\
|
||||
BeginUpdateResource,\
|
||||
BuildCommDCB,\
|
||||
BuildCommDCBAndTimeouts,\
|
||||
CallNamedPipe,\
|
||||
CommConfigDialog,\
|
||||
CompareString,\
|
||||
CopyFile,\
|
||||
CopyFileEx,\
|
||||
CreateDirectory,\
|
||||
CreateDirectoryEx,\
|
||||
CreateEvent,\
|
||||
CreateFile,\
|
||||
CreateFileMapping,\
|
||||
CreateHardLink,\
|
||||
CreateJobObject,\
|
||||
CreateMailslot,\
|
||||
CreateMutex,\
|
||||
CreateNamedPipe,\
|
||||
CreateProcess,\
|
||||
CreateSemaphore,\
|
||||
CreateWaitableTimer,\
|
||||
DefineDosDevice,\
|
||||
DeleteFile,\
|
||||
EndUpdateResource,\
|
||||
EnumCalendarInfo,\
|
||||
EnumCalendarInfoEx,\
|
||||
EnumDateFormats,\
|
||||
EnumDateFormatsEx,\
|
||||
EnumResourceLanguages,\
|
||||
EnumResourceNames,\
|
||||
EnumResourceTypes,\
|
||||
EnumSystemCodePages,\
|
||||
EnumSystemLocales,\
|
||||
EnumTimeFormats,\
|
||||
ExpandEnvironmentStrings,\
|
||||
ExpungeConsoleCommandHistory,\
|
||||
FatalAppExit,\
|
||||
FillConsoleOutputCharacter,\
|
||||
FindAtom,\
|
||||
FindFirstChangeNotification,\
|
||||
FindFirstFile,\
|
||||
FindFirstFileEx,\
|
||||
FindNextFile,\
|
||||
FindResource,\
|
||||
FindResourceEx,\
|
||||
FoldString,\
|
||||
FormatMessage,\
|
||||
FreeEnvironmentStrings,\
|
||||
GetAtomName,\
|
||||
GetBinaryType,\
|
||||
GetCPInfoEx,\
|
||||
GetCommandLine,\
|
||||
GetCompressedFileSize,\
|
||||
GetComputerName,\
|
||||
GetConsoleAlias,\
|
||||
GetConsoleAliasExes,\
|
||||
GetConsoleAliasExesLength,\
|
||||
GetConsoleAliases,\
|
||||
GetConsoleAliasesLength,\
|
||||
GetConsoleCommandHistory,\
|
||||
GetConsoleCommandHistoryLength,\
|
||||
GetConsoleInputExeName,\
|
||||
GetConsoleKeyboardLayoutName,\
|
||||
GetConsoleTitle,\
|
||||
GetCurrencyFormat,\
|
||||
GetCurrentDirectory,\
|
||||
GetDateFormat,\
|
||||
GetDefaultCommConfig,\
|
||||
GetDiskFreeSpace,\
|
||||
GetDiskFreeSpaceEx,\
|
||||
GetDriveType,\
|
||||
GetEnvironmentStrings,\
|
||||
GetEnvironmentVariable,\
|
||||
GetFileAttributes,\
|
||||
GetFileAttributesEx,\
|
||||
GetFullPathName,\
|
||||
GetLocaleInfo,\
|
||||
GetLogicalDriveStrings,\
|
||||
GetLongPathName,\
|
||||
GetModuleFileName,\
|
||||
GetModuleHandle,\
|
||||
GetNamedPipeHandleState,\
|
||||
GetNumberFormat,\
|
||||
GetPrivateProfileInt,\
|
||||
GetPrivateProfileSection,\
|
||||
GetPrivateProfileSectionNames,\
|
||||
GetPrivateProfileString,\
|
||||
GetPrivateProfileStruct,\
|
||||
GetProfileInt,\
|
||||
GetProfileSection,\
|
||||
GetProfileString,\
|
||||
GetShortPathName,\
|
||||
GetStartupInfo,\
|
||||
GetStringType,\
|
||||
GetStringTypeEx,\
|
||||
GetSystemDirectory,\
|
||||
GetTempFileName,\
|
||||
GetTempPath,\
|
||||
GetTimeFormat,\
|
||||
GetVersionEx,\
|
||||
GetVolumeInformation,\
|
||||
GetWindowsDirectory,\
|
||||
GlobalAddAtom,\
|
||||
GlobalFindAtom,\
|
||||
GlobalGetAtomName,\
|
||||
IsBadStringPtr,\
|
||||
LCMapString,\
|
||||
LoadLibrary,\
|
||||
LoadLibraryEx,\
|
||||
MoveFile,\
|
||||
MoveFileEx,\
|
||||
MoveFileWithProgress,\
|
||||
OpenEvent,\
|
||||
OpenFileMapping,\
|
||||
OpenJobObject,\
|
||||
OpenMutex,\
|
||||
OpenSemaphore,\
|
||||
OpenWaitableTimer,\
|
||||
OutputDebugString,\
|
||||
PeekConsoleInput,\
|
||||
QueryDosDevice,\
|
||||
ReadConsole,\
|
||||
ReadConsoleInput,\
|
||||
ReadConsoleInputEx,\
|
||||
ReadConsoleOutput,\
|
||||
ReadConsoleOutputCharacter,\
|
||||
RemoveDirectory,\
|
||||
ScrollConsoleScreenBuffer,\
|
||||
SearchPath,\
|
||||
SetComputerName,\
|
||||
SetConsoleInputExeName,\
|
||||
SetConsoleNumberOfCommands,\
|
||||
SetConsoleTitle,\
|
||||
SetCurrentDirectory,\
|
||||
SetDefaultCommConfig,\
|
||||
SetEnvironmentVariable,\
|
||||
SetFileAttributes,\
|
||||
SetLocaleInfo,\
|
||||
SetVolumeLabel,\
|
||||
UpdateResource,\
|
||||
VerLanguageName,\
|
||||
WaitNamedPipe,\
|
||||
WriteConsole,\
|
||||
WriteConsoleInput,\
|
||||
WriteConsoleInputVDM,\
|
||||
WriteConsoleOutput,\
|
||||
WriteConsoleOutputCharacter,\
|
||||
WritePrivateProfileSection,\
|
||||
WritePrivateProfileString,\
|
||||
WritePrivateProfileStruct,\
|
||||
WriteProfileSection,\
|
||||
WriteProfileString,\
|
||||
lstrcat,\
|
||||
lstrcmp,\
|
||||
lstrcmpi,\
|
||||
lstrcpy,\
|
||||
lstrcpyn,\
|
||||
lstrlen
|
||||
167
fasmw172/INCLUDE/API/SHELL32.INC
Normal file
167
fasmw172/INCLUDE/API/SHELL32.INC
Normal file
@@ -0,0 +1,167 @@
|
||||
|
||||
; SHELL32 API calls
|
||||
|
||||
import shell32,\
|
||||
CheckEscapesA,'CheckEscapesA',\
|
||||
CheckEscapesW,'CheckEscapesW',\
|
||||
DoEnvironmentSubstA,'DoEnvironmentSubstA',\
|
||||
DoEnvironmentSubstW,'DoEnvironmentSubstW',\
|
||||
DragAcceptFiles,'DragAcceptFiles',\
|
||||
DragFinish,'DragFinish',\
|
||||
DragQueryFileA,'DragQueryFileA',\
|
||||
DragQueryFileW,'DragQueryFileW',\
|
||||
DragQueryPoint,'DragQueryPoint',\
|
||||
DuplicateIcon,'DuplicateIcon',\
|
||||
ExtractAssociatedIconA,'ExtractAssociatedIconA',\
|
||||
ExtractAssociatedIconW,'ExtractAssociatedIconW',\
|
||||
ExtractAssociatedIconExA,'ExtractAssociatedIconExA',\
|
||||
ExtractAssociatedIconExW,'ExtractAssociatedIconExW',\
|
||||
ExtractIconA,'ExtractIconA',\
|
||||
ExtractIconW,'ExtractIconW',\
|
||||
ExtractIconExA,'ExtractIconExA',\
|
||||
ExtractIconExW,'ExtractIconExW',\
|
||||
ExtractIconResInfoA,'ExtractIconResInfoA',\
|
||||
ExtractIconResInfoW,'ExtractIconResInfoW',\
|
||||
FindExeDlgProc,'FindExeDlgProc',\
|
||||
FindExecutableA,'FindExecutableA',\
|
||||
FindExecutableW,'FindExecutableW',\
|
||||
FreeIconList,'FreeIconList',\
|
||||
InternalExtractIconListA,'InternalExtractIconListA',\
|
||||
InternalExtractIconListW,'InternalExtractIconListW',\
|
||||
RealShellExecuteA,'RealShellExecuteA',\
|
||||
RealShellExecuteW,'RealShellExecuteW',\
|
||||
RealShellExecuteExA,'RealShellExecuteExA',\
|
||||
RealShellExecuteExW,'RealShellExecuteExW',\
|
||||
RegenerateUserEnvironment,'RegenerateUserEnvironment',\
|
||||
SHAddToRecentDocs,'SHAddToRecentDocs',\
|
||||
SHAppBarMessage,'SHAppBarMessage',\
|
||||
SHBrowseForFolderA,'SHBrowseForFolderA',\
|
||||
SHBrowseForFolderW,'SHBrowseForFolderW',\
|
||||
SHChangeNotify,'SHChangeNotify',\
|
||||
SHEmptyRecycleBinA,'SHEmptyRecycleBinA',\
|
||||
SHEmptyRecycleBinW,'SHEmptyRecycleBinW',\
|
||||
SHFileOperationA,'SHFileOperationA',\
|
||||
SHFileOperationW,'SHFileOperationW',\
|
||||
SHFormatDrive,'SHFormatDrive',\
|
||||
SHFreeNameMappings,'SHFreeNameMappings',\
|
||||
SHGetDataFromIDListA,'SHGetDataFromIDListA',\
|
||||
SHGetDataFromIDListW,'SHGetDataFromIDListW',\
|
||||
SHGetDesktopFolder,'SHGetDesktopFolder',\
|
||||
SHGetDiskFreeSpaceA,'SHGetDiskFreeSpaceA',\
|
||||
SHGetDiskFreeSpaceW,'SHGetDiskFreeSpaceW',\
|
||||
SHGetFileInfoA,'SHGetFileInfoA',\
|
||||
SHGetFileInfoW,'SHGetFileInfoW',\
|
||||
SHGetInstanceExplorer,'SHGetInstanceExplorer',\
|
||||
SHGetMalloc,'SHGetMalloc',\
|
||||
SHGetNewLinkInfo,'SHGetNewLinkInfo',\
|
||||
SHGetPathFromIDListA,'SHGetPathFromIDListA',\
|
||||
SHGetPathFromIDListW,'SHGetPathFromIDListW',\
|
||||
SHGetSettings,'SHGetSettings',\
|
||||
SHGetSpecialFolderLocation,'SHGetSpecialFolderLocation',\
|
||||
SHGetSpecialFolderPathA,'SHGetSpecialFolderPathA',\
|
||||
SHGetSpecialFolderPathW,'SHGetSpecialFolderPathW',\
|
||||
SHInvokePrinterCommandA,'SHInvokePrinterCommandA',\
|
||||
SHInvokePrinterCommandW,'SHInvokePrinterCommandW',\
|
||||
SHLoadInProc,'SHLoadInProc',\
|
||||
SHQueryRecycleBinA,'SHQueryRecycleBinA',\
|
||||
SHQueryRecycleBinW,'SHQueryRecycleBinW',\
|
||||
SHUpdateRecycleBinIcon,'SHUpdateRecycleBinIcon',\
|
||||
SheChangeDirA,'SheChangeDirA',\
|
||||
SheChangeDirW,'SheChangeDirW',\
|
||||
SheChangeDirExA,'SheChangeDirExA',\
|
||||
SheChangeDirExW,'SheChangeDirExW',\
|
||||
SheFullPathA,'SheFullPathA',\
|
||||
SheFullPathW,'SheFullPathW',\
|
||||
SheGetCurDrive,'SheGetCurDrive',\
|
||||
SheGetDirA,'SheGetDirA',\
|
||||
SheGetDirW,'SheGetDirW',\
|
||||
SheRemoveQuotesA,'SheRemoveQuotesA',\
|
||||
SheRemoveQuotesW,'SheRemoveQuotesW',\
|
||||
SheSetCurDrive,'SheSetCurDrive',\
|
||||
SheShortenPathA,'SheShortenPathA',\
|
||||
SheShortenPathW,'SheShortenPathW',\
|
||||
ShellAboutA,'ShellAboutA',\
|
||||
ShellAboutW,'ShellAboutW',\
|
||||
ShellExecuteA,'ShellExecuteA',\
|
||||
ShellExecuteW,'ShellExecuteW',\
|
||||
ShellExecuteExA,'ShellExecuteExA',\
|
||||
ShellExecuteExW,'ShellExecuteExW',\
|
||||
ShellHookProc,'ShellHookProc',\
|
||||
Shell_NotifyIconA,'Shell_NotifyIconA',\
|
||||
Shell_NotifyIconW,'Shell_NotifyIconW',\
|
||||
StrChrA,'StrChrA',\
|
||||
StrChrW,'StrChrW',\
|
||||
StrChrIA,'StrChrIA',\
|
||||
StrChrIW,'StrChrIW',\
|
||||
StrCmpNA,'StrCmpNA',\
|
||||
StrCmpNW,'StrCmpNW',\
|
||||
StrCmpNIA,'StrCmpNIA',\
|
||||
StrCmpNIW,'StrCmpNIW',\
|
||||
StrCpyNA,'StrCpyNA',\
|
||||
StrCpyNW,'StrCpyNW',\
|
||||
StrNCmpA,'StrNCmpA',\
|
||||
StrNCmpW,'StrNCmpW',\
|
||||
StrNCmpIA,'StrNCmpIA',\
|
||||
StrNCmpIW,'StrNCmpIW',\
|
||||
StrNCpyA,'StrNCpyA',\
|
||||
StrNCpyW,'StrNCpyW',\
|
||||
StrRChrA,'StrRChrA',\
|
||||
StrRChrW,'StrRChrW',\
|
||||
StrRChrIA,'StrRChrIA',\
|
||||
StrRChrIW,'StrRChrIW',\
|
||||
StrRStrA,'StrRStrA',\
|
||||
StrRStrW,'StrRStrW',\
|
||||
StrRStrIA,'StrRStrIA',\
|
||||
StrRStrIW,'StrRStrIW',\
|
||||
StrStrA,'StrStrA',\
|
||||
StrStrW,'StrStrW',\
|
||||
StrStrIA,'StrStrIA',\
|
||||
StrStrIW,'StrStrIW',\
|
||||
WOWShellExecute,'WOWShellExecute'
|
||||
|
||||
api CheckEscapes,\
|
||||
DoEnvironmentSubst,\
|
||||
DragQueryFile,\
|
||||
ExtractAssociatedIcon,\
|
||||
ExtractAssociatedIconEx,\
|
||||
ExtractIcon,\
|
||||
ExtractIconEx,\
|
||||
ExtractIconResInfo,\
|
||||
FindExecutable,\
|
||||
InternalExtractIconList,\
|
||||
RealShellExecute,\
|
||||
RealShellExecuteEx,\
|
||||
SHBrowseForFolder,\
|
||||
SHEmptyRecycleBin,\
|
||||
SHFileOperation,\
|
||||
SHGetDataFromIDList,\
|
||||
SHGetDiskFreeSpace,\
|
||||
SHGetFileInfo,\
|
||||
SHGetPathFromIDList,\
|
||||
SHGetSpecialFolderPath,\
|
||||
SHInvokePrinterCommand,\
|
||||
SHQueryRecycleBin,\
|
||||
SheChangeDir,\
|
||||
SheChangeDirEx,\
|
||||
SheFullPath,\
|
||||
SheGetDir,\
|
||||
SheRemoveQuotes,\
|
||||
SheShortenPath,\
|
||||
ShellAbout,\
|
||||
ShellExecute,\
|
||||
ShellExecuteEx,\
|
||||
Shell_NotifyIcon,\
|
||||
StrChr,\
|
||||
StrChrI,\
|
||||
StrCmpN,\
|
||||
StrCmpNI,\
|
||||
StrCpyN,\
|
||||
StrNCmp,\
|
||||
StrNCmpI,\
|
||||
StrNCpy,\
|
||||
StrRChr,\
|
||||
StrRChrI,\
|
||||
StrRStr,\
|
||||
StrRStrI,\
|
||||
StrStr,\
|
||||
StrStrI
|
||||
756
fasmw172/INCLUDE/API/USER32.INC
Normal file
756
fasmw172/INCLUDE/API/USER32.INC
Normal file
@@ -0,0 +1,756 @@
|
||||
|
||||
; USER32 API calls
|
||||
|
||||
import user32,\
|
||||
ActivateKeyboardLayout,'ActivateKeyboardLayout',\
|
||||
AdjustWindowRect,'AdjustWindowRect',\
|
||||
AdjustWindowRectEx,'AdjustWindowRectEx',\
|
||||
AnimateWindow,'AnimateWindow',\
|
||||
AnyPopup,'AnyPopup',\
|
||||
AppendMenuA,'AppendMenuA',\
|
||||
AppendMenuW,'AppendMenuW',\
|
||||
ArrangeIconicWindows,'ArrangeIconicWindows',\
|
||||
AttachThreadInput,'AttachThreadInput',\
|
||||
BeginDeferWindowPos,'BeginDeferWindowPos',\
|
||||
BeginPaint,'BeginPaint',\
|
||||
BlockInput,'BlockInput',\
|
||||
BringWindowToTop,'BringWindowToTop',\
|
||||
BroadcastSystemMessageA,'BroadcastSystemMessageA',\
|
||||
BroadcastSystemMessageW,'BroadcastSystemMessageW',\
|
||||
CallMsgFilterA,'CallMsgFilterA',\
|
||||
CallMsgFilterW,'CallMsgFilterW',\
|
||||
CallNextHookEx,'CallNextHookEx',\
|
||||
CallWindowProcA,'CallWindowProcA',\
|
||||
CallWindowProcW,'CallWindowProcW',\
|
||||
CascadeChildWindows,'CascadeChildWindows',\
|
||||
CascadeWindows,'CascadeWindows',\
|
||||
ChangeClipboardChain,'ChangeClipboardChain',\
|
||||
ChangeDisplaySettingsA,'ChangeDisplaySettingsA',\
|
||||
ChangeDisplaySettingsW,'ChangeDisplaySettingsW',\
|
||||
ChangeDisplaySettingsExA,'ChangeDisplaySettingsExA',\
|
||||
ChangeDisplaySettingsExW,'ChangeDisplaySettingsExW',\
|
||||
ChangeMenuA,'ChangeMenuA',\
|
||||
ChangeMenuW,'ChangeMenuW',\
|
||||
CharLowerA,'CharLowerA',\
|
||||
CharLowerW,'CharLowerW',\
|
||||
CharLowerBuffA,'CharLowerBuffA',\
|
||||
CharLowerBuffW,'CharLowerBuffW',\
|
||||
CharNextA,'CharNextA',\
|
||||
CharNextW,'CharNextW',\
|
||||
CharNextExA,'CharNextExA',\
|
||||
CharNextExW,'CharNextExW',\
|
||||
CharPrevA,'CharPrevA',\
|
||||
CharPrevW,'CharPrevW',\
|
||||
CharPrevExA,'CharPrevExA',\
|
||||
CharPrevExW,'CharPrevExW',\
|
||||
CharToOemA,'CharToOemA',\
|
||||
CharToOemW,'CharToOemW',\
|
||||
CharToOemBuffA,'CharToOemBuffA',\
|
||||
CharToOemBuffW,'CharToOemBuffW',\
|
||||
CharUpperA,'CharUpperA',\
|
||||
CharUpperW,'CharUpperW',\
|
||||
CharUpperBuffA,'CharUpperBuffA',\
|
||||
CharUpperBuffW,'CharUpperBuffW',\
|
||||
CheckDlgButton,'CheckDlgButton',\
|
||||
CheckMenuItem,'CheckMenuItem',\
|
||||
CheckMenuRadioItem,'CheckMenuRadioItem',\
|
||||
CheckRadioButton,'CheckRadioButton',\
|
||||
ChildWindowFromPoint,'ChildWindowFromPoint',\
|
||||
ChildWindowFromPointEx,'ChildWindowFromPointEx',\
|
||||
ClientToScreen,'ClientToScreen',\
|
||||
ClipCursor,'ClipCursor',\
|
||||
CloseClipboard,'CloseClipboard',\
|
||||
CloseDesktop,'CloseDesktop',\
|
||||
CloseWindow,'CloseWindow',\
|
||||
CloseWindowStation,'CloseWindowStation',\
|
||||
CopyAcceleratorTableA,'CopyAcceleratorTableA',\
|
||||
CopyAcceleratorTableW,'CopyAcceleratorTableW',\
|
||||
CopyIcon,'CopyIcon',\
|
||||
CopyImage,'CopyImage',\
|
||||
CopyRect,'CopyRect',\
|
||||
CountClipboardFormats,'CountClipboardFormats',\
|
||||
CreateAcceleratorTableA,'CreateAcceleratorTableA',\
|
||||
CreateAcceleratorTableW,'CreateAcceleratorTableW',\
|
||||
CreateCaret,'CreateCaret',\
|
||||
CreateCursor,'CreateCursor',\
|
||||
CreateDesktopA,'CreateDesktopA',\
|
||||
CreateDesktopW,'CreateDesktopW',\
|
||||
CreateDialogIndirectParamA,'CreateDialogIndirectParamA',\
|
||||
CreateDialogIndirectParamW,'CreateDialogIndirectParamW',\
|
||||
CreateDialogParamA,'CreateDialogParamA',\
|
||||
CreateDialogParamW,'CreateDialogParamW',\
|
||||
CreateIcon,'CreateIcon',\
|
||||
CreateIconFromResource,'CreateIconFromResource',\
|
||||
CreateIconFromResourceEx,'CreateIconFromResourceEx',\
|
||||
CreateIconIndirect,'CreateIconIndirect',\
|
||||
CreateMDIWindowA,'CreateMDIWindowA',\
|
||||
CreateMDIWindowW,'CreateMDIWindowW',\
|
||||
CreateMenu,'CreateMenu',\
|
||||
CreatePopupMenu,'CreatePopupMenu',\
|
||||
CreateWindowExA,'CreateWindowExA',\
|
||||
CreateWindowExW,'CreateWindowExW',\
|
||||
CreateWindowStationA,'CreateWindowStationA',\
|
||||
CreateWindowStationW,'CreateWindowStationW',\
|
||||
DdeAbandonTransaction,'DdeAbandonTransaction',\
|
||||
DdeAccessData,'DdeAccessData',\
|
||||
DdeAddData,'DdeAddData',\
|
||||
DdeClientTransaction,'DdeClientTransaction',\
|
||||
DdeCmpStringHandles,'DdeCmpStringHandles',\
|
||||
DdeConnect,'DdeConnect',\
|
||||
DdeConnectList,'DdeConnectList',\
|
||||
DdeCreateDataHandle,'DdeCreateDataHandle',\
|
||||
DdeCreateStringHandleA,'DdeCreateStringHandleA',\
|
||||
DdeCreateStringHandleW,'DdeCreateStringHandleW',\
|
||||
DdeDisconnect,'DdeDisconnect',\
|
||||
DdeDisconnectList,'DdeDisconnectList',\
|
||||
DdeEnableCallback,'DdeEnableCallback',\
|
||||
DdeFreeDataHandle,'DdeFreeDataHandle',\
|
||||
DdeFreeStringHandle,'DdeFreeStringHandle',\
|
||||
DdeGetData,'DdeGetData',\
|
||||
DdeGetLastError,'DdeGetLastError',\
|
||||
DdeGetQualityOfService,'DdeGetQualityOfService',\
|
||||
DdeImpersonateClient,'DdeImpersonateClient',\
|
||||
DdeInitializeA,'DdeInitializeA',\
|
||||
DdeInitializeW,'DdeInitializeW',\
|
||||
DdeKeepStringHandle,'DdeKeepStringHandle',\
|
||||
DdeNameService,'DdeNameService',\
|
||||
DdePostAdvise,'DdePostAdvise',\
|
||||
DdeQueryConvInfo,'DdeQueryConvInfo',\
|
||||
DdeQueryNextServer,'DdeQueryNextServer',\
|
||||
DdeQueryStringA,'DdeQueryStringA',\
|
||||
DdeQueryStringW,'DdeQueryStringW',\
|
||||
DdeReconnect,'DdeReconnect',\
|
||||
DdeSetQualityOfService,'DdeSetQualityOfService',\
|
||||
DdeSetUserHandle,'DdeSetUserHandle',\
|
||||
DdeUnaccessData,'DdeUnaccessData',\
|
||||
DdeUninitialize,'DdeUninitialize',\
|
||||
DefDlgProcA,'DefDlgProcA',\
|
||||
DefDlgProcW,'DefDlgProcW',\
|
||||
DefFrameProcA,'DefFrameProcA',\
|
||||
DefFrameProcW,'DefFrameProcW',\
|
||||
DefMDIChildProcA,'DefMDIChildProcA',\
|
||||
DefMDIChildProcW,'DefMDIChildProcW',\
|
||||
DefWindowProcA,'DefWindowProcA',\
|
||||
DefWindowProcW,'DefWindowProcW',\
|
||||
DeferWindowPos,'DeferWindowPos',\
|
||||
DeleteMenu,'DeleteMenu',\
|
||||
DestroyAcceleratorTable,'DestroyAcceleratorTable',\
|
||||
DestroyCaret,'DestroyCaret',\
|
||||
DestroyCursor,'DestroyCursor',\
|
||||
DestroyIcon,'DestroyIcon',\
|
||||
DestroyMenu,'DestroyMenu',\
|
||||
DestroyWindow,'DestroyWindow',\
|
||||
DialogBoxIndirectParamA,'DialogBoxIndirectParamA',\
|
||||
DialogBoxIndirectParamW,'DialogBoxIndirectParamW',\
|
||||
DialogBoxParamA,'DialogBoxParamA',\
|
||||
DialogBoxParamW,'DialogBoxParamW',\
|
||||
DispatchMessageA,'DispatchMessageA',\
|
||||
DispatchMessageW,'DispatchMessageW',\
|
||||
DlgDirListA,'DlgDirListA',\
|
||||
DlgDirListW,'DlgDirListW',\
|
||||
DlgDirListComboBoxA,'DlgDirListComboBoxA',\
|
||||
DlgDirListComboBoxW,'DlgDirListComboBoxW',\
|
||||
DlgDirSelectComboBoxExA,'DlgDirSelectComboBoxExA',\
|
||||
DlgDirSelectComboBoxExW,'DlgDirSelectComboBoxExW',\
|
||||
DlgDirSelectExA,'DlgDirSelectExA',\
|
||||
DlgDirSelectExW,'DlgDirSelectExW',\
|
||||
DragDetect,'DragDetect',\
|
||||
DragObject,'DragObject',\
|
||||
DrawAnimatedRects,'DrawAnimatedRects',\
|
||||
DrawCaption,'DrawCaption',\
|
||||
DrawEdge,'DrawEdge',\
|
||||
DrawFocusRect,'DrawFocusRect',\
|
||||
DrawFrame,'DrawFrame',\
|
||||
DrawFrameControl,'DrawFrameControl',\
|
||||
DrawIcon,'DrawIcon',\
|
||||
DrawIconEx,'DrawIconEx',\
|
||||
DrawMenuBar,'DrawMenuBar',\
|
||||
DrawStateA,'DrawStateA',\
|
||||
DrawStateW,'DrawStateW',\
|
||||
DrawTextA,'DrawTextA',\
|
||||
DrawTextW,'DrawTextW',\
|
||||
DrawTextExA,'DrawTextExA',\
|
||||
DrawTextExW,'DrawTextExW',\
|
||||
EditWndProc,'EditWndProc',\
|
||||
EmptyClipboard,'EmptyClipboard',\
|
||||
EnableMenuItem,'EnableMenuItem',\
|
||||
EnableScrollBar,'EnableScrollBar',\
|
||||
EnableWindow,'EnableWindow',\
|
||||
EndDeferWindowPos,'EndDeferWindowPos',\
|
||||
EndDialog,'EndDialog',\
|
||||
EndMenu,'EndMenu',\
|
||||
EndPaint,'EndPaint',\
|
||||
EnumChildWindows,'EnumChildWindows',\
|
||||
EnumClipboardFormats,'EnumClipboardFormats',\
|
||||
EnumDesktopWindows,'EnumDesktopWindows',\
|
||||
EnumDesktopsA,'EnumDesktopsA',\
|
||||
EnumDesktopsW,'EnumDesktopsW',\
|
||||
EnumDisplayMonitors,'EnumDisplayMonitors',\
|
||||
EnumDisplaySettingsA,'EnumDisplaySettingsA',\
|
||||
EnumDisplaySettingsW,'EnumDisplaySettingsW',\
|
||||
EnumDisplaySettingsExA,'EnumDisplaySettingsExA',\
|
||||
EnumDisplaySettingsExW,'EnumDisplaySettingsExW',\
|
||||
EnumPropsA,'EnumPropsA',\
|
||||
EnumPropsW,'EnumPropsW',\
|
||||
EnumPropsExA,'EnumPropsExA',\
|
||||
EnumPropsExW,'EnumPropsExW',\
|
||||
EnumThreadWindows,'EnumThreadWindows',\
|
||||
EnumWindowStationsA,'EnumWindowStationsA',\
|
||||
EnumWindowStationsW,'EnumWindowStationsW',\
|
||||
EnumWindows,'EnumWindows',\
|
||||
EqualRect,'EqualRect',\
|
||||
ExcludeUpdateRgn,'ExcludeUpdateRgn',\
|
||||
ExitWindowsEx,'ExitWindowsEx',\
|
||||
FillRect,'FillRect',\
|
||||
FindWindowA,'FindWindowA',\
|
||||
FindWindowW,'FindWindowW',\
|
||||
FindWindowExA,'FindWindowExA',\
|
||||
FindWindowExW,'FindWindowExW',\
|
||||
FlashWindow,'FlashWindow',\
|
||||
FrameRect,'FrameRect',\
|
||||
FreeDDElParam,'FreeDDElParam',\
|
||||
GetActiveWindow,'GetActiveWindow',\
|
||||
GetAltTabInfoA,'GetAltTabInfoA',\
|
||||
GetAltTabInfoW,'GetAltTabInfoW',\
|
||||
GetAncestor,'GetAncestor',\
|
||||
GetAsyncKeyState,'GetAsyncKeyState',\
|
||||
GetCapture,'GetCapture',\
|
||||
GetCaretBlinkTime,'GetCaretBlinkTime',\
|
||||
GetCaretPos,'GetCaretPos',\
|
||||
GetClassInfoA,'GetClassInfoA',\
|
||||
GetClassInfoW,'GetClassInfoW',\
|
||||
GetClassInfoExA,'GetClassInfoExA',\
|
||||
GetClassInfoExW,'GetClassInfoExW',\
|
||||
GetClassLongA,'GetClassLongA',\
|
||||
GetClassLongW,'GetClassLongW',\
|
||||
GetClassNameA,'GetClassNameA',\
|
||||
GetClassNameW,'GetClassNameW',\
|
||||
GetClassWord,'GetClassWord',\
|
||||
GetClientRect,'GetClientRect',\
|
||||
GetClipCursor,'GetClipCursor',\
|
||||
GetClipboardData,'GetClipboardData',\
|
||||
GetClipboardFormatNameA,'GetClipboardFormatNameA',\
|
||||
GetClipboardFormatNameW,'GetClipboardFormatNameW',\
|
||||
GetClipboardSequenceNumberA,'GetClipboardSequenceNumberA',\
|
||||
GetClipboardSequenceNumberW,'GetClipboardSequenceNumberW',\
|
||||
GetClipboardViewer,'GetClipboardViewer',\
|
||||
GetComboBoxInfo,'GetComboBoxInfo',\
|
||||
GetCursor,'GetCursor',\
|
||||
GetCursorInfo,'GetCursorInfo',\
|
||||
GetCursorPos,'GetCursorPos',\
|
||||
GetDC,'GetDC',\
|
||||
GetDCEx,'GetDCEx',\
|
||||
GetDesktopWindow,'GetDesktopWindow',\
|
||||
GetDialogBaseUnits,'GetDialogBaseUnits',\
|
||||
GetDlgCtrlID,'GetDlgCtrlID',\
|
||||
GetDlgItem,'GetDlgItem',\
|
||||
GetDlgItemInt,'GetDlgItemInt',\
|
||||
GetDlgItemTextA,'GetDlgItemTextA',\
|
||||
GetDlgItemTextW,'GetDlgItemTextW',\
|
||||
GetDoubleClickTime,'GetDoubleClickTime',\
|
||||
GetFocus,'GetFocus',\
|
||||
GetForegroundWindow,'GetForegroundWindow',\
|
||||
GetGUIThreadInfo,'GetGUIThreadInfo',\
|
||||
GetGuiResources,'GetGuiResources',\
|
||||
GetIconInfo,'GetIconInfo',\
|
||||
GetInputDesktop,'GetInputDesktop',\
|
||||
GetInputState,'GetInputState',\
|
||||
GetKBCodePage,'GetKBCodePage',\
|
||||
GetKeyNameTextA,'GetKeyNameTextA',\
|
||||
GetKeyNameTextW,'GetKeyNameTextW',\
|
||||
GetKeyState,'GetKeyState',\
|
||||
GetKeyboardLayout,'GetKeyboardLayout',\
|
||||
GetKeyboardLayoutList,'GetKeyboardLayoutList',\
|
||||
GetKeyboardLayoutNameA,'GetKeyboardLayoutNameA',\
|
||||
GetKeyboardLayoutNameW,'GetKeyboardLayoutNameW',\
|
||||
GetKeyboardState,'GetKeyboardState',\
|
||||
GetKeyboardType,'GetKeyboardType',\
|
||||
GetLastActivePopup,'GetLastActivePopup',\
|
||||
GetLastInputInfo,'GetLastInputInfo',\
|
||||
GetLayeredWindowAttributes,'GetLayeredWindowAttributes',\
|
||||
GetListBoxInfo,'GetListBoxInfo',\
|
||||
GetMenu,'GetMenu',\
|
||||
GetMenuBarInfo,'GetMenuBarInfo',\
|
||||
GetMenuCheckMarkDimensions,'GetMenuCheckMarkDimensions',\
|
||||
GetMenuContextHelpId,'GetMenuContextHelpId',\
|
||||
GetMenuDefaultItem,'GetMenuDefaultItem',\
|
||||
GetMenuInfo,'GetMenuInfo',\
|
||||
GetMenuItemCount,'GetMenuItemCount',\
|
||||
GetMenuItemID,'GetMenuItemID',\
|
||||
GetMenuItemInfoA,'GetMenuItemInfoA',\
|
||||
GetMenuItemInfoW,'GetMenuItemInfoW',\
|
||||
GetMenuItemRect,'GetMenuItemRect',\
|
||||
GetMenuState,'GetMenuState',\
|
||||
GetMenuStringA,'GetMenuStringA',\
|
||||
GetMenuStringW,'GetMenuStringW',\
|
||||
GetMessageA,'GetMessageA',\
|
||||
GetMessageW,'GetMessageW',\
|
||||
GetMessageExtraInfo,'GetMessageExtraInfo',\
|
||||
GetMessagePos,'GetMessagePos',\
|
||||
GetMessageTime,'GetMessageTime',\
|
||||
GetMonitorInfoA,'GetMonitorInfoA',\
|
||||
GetMonitorInfoW,'GetMonitorInfoW',\
|
||||
GetMouseMovePoints,'GetMouseMovePoints',\
|
||||
GetNextDlgGroupItem,'GetNextDlgGroupItem',\
|
||||
GetNextDlgTabItem,'GetNextDlgTabItem',\
|
||||
GetOpenClipboardWindow,'GetOpenClipboardWindow',\
|
||||
GetParent,'GetParent',\
|
||||
GetPriorityClipboardFormat,'GetPriorityClipboardFormat',\
|
||||
GetProcessWindowStation,'GetProcessWindowStation',\
|
||||
GetPropA,'GetPropA',\
|
||||
GetPropW,'GetPropW',\
|
||||
GetQueueStatus,'GetQueueStatus',\
|
||||
GetScrollBarInfo,'GetScrollBarInfo',\
|
||||
GetScrollInfo,'GetScrollInfo',\
|
||||
GetScrollPos,'GetScrollPos',\
|
||||
GetScrollRange,'GetScrollRange',\
|
||||
GetShellWindow,'GetShellWindow',\
|
||||
GetSubMenu,'GetSubMenu',\
|
||||
GetSysColor,'GetSysColor',\
|
||||
GetSysColorBrush,'GetSysColorBrush',\
|
||||
GetSystemMenu,'GetSystemMenu',\
|
||||
GetSystemMetrics,'GetSystemMetrics',\
|
||||
GetTabbedTextExtentA,'GetTabbedTextExtentA',\
|
||||
GetTabbedTextExtentW,'GetTabbedTextExtentW',\
|
||||
GetThreadDesktop,'GetThreadDesktop',\
|
||||
GetTitleBarInfo,'GetTitleBarInfo',\
|
||||
GetTopWindow,'GetTopWindow',\
|
||||
GetUpdateRect,'GetUpdateRect',\
|
||||
GetUpdateRgn,'GetUpdateRgn',\
|
||||
GetUserObjectInformationA,'GetUserObjectInformationA',\
|
||||
GetUserObjectInformationW,'GetUserObjectInformationW',\
|
||||
GetUserObjectSecurity,'GetUserObjectSecurity',\
|
||||
GetWindow,'GetWindow',\
|
||||
GetWindowContextHelpId,'GetWindowContextHelpId',\
|
||||
GetWindowDC,'GetWindowDC',\
|
||||
GetWindowInfo,'GetWindowInfo',\
|
||||
GetWindowLongA,'GetWindowLongA',\
|
||||
GetWindowLongW,'GetWindowLongW',\
|
||||
GetWindowLongPtrA,'GetWindowLongPtrA',\
|
||||
GetWindowLongPtrW,'GetWindowLongPtrW',\
|
||||
GetWindowModuleFileNameA,'GetWindowModuleFileNameA',\
|
||||
GetWindowModuleFileNameW,'GetWindowModuleFileNameW',\
|
||||
GetWindowPlacement,'GetWindowPlacement',\
|
||||
GetWindowRect,'GetWindowRect',\
|
||||
GetWindowRgn,'GetWindowRgn',\
|
||||
GetWindowTextA,'GetWindowTextA',\
|
||||
GetWindowTextW,'GetWindowTextW',\
|
||||
GetWindowTextLengthA,'GetWindowTextLengthA',\
|
||||
GetWindowTextLengthW,'GetWindowTextLengthW',\
|
||||
GetWindowThreadProcessId,'GetWindowThreadProcessId',\
|
||||
GetWindowWord,'GetWindowWord',\
|
||||
GrayStringA,'GrayStringA',\
|
||||
GrayStringW,'GrayStringW',\
|
||||
HideCaret,'HideCaret',\
|
||||
HiliteMenuItem,'HiliteMenuItem',\
|
||||
IMPGetIMEA,'IMPGetIMEA',\
|
||||
IMPGetIMEW,'IMPGetIMEW',\
|
||||
IMPQueryIMEA,'IMPQueryIMEA',\
|
||||
IMPQueryIMEW,'IMPQueryIMEW',\
|
||||
IMPSetIMEA,'IMPSetIMEA',\
|
||||
IMPSetIMEW,'IMPSetIMEW',\
|
||||
ImpersonateDdeClientWindow,'ImpersonateDdeClientWindow',\
|
||||
InSendMessage,'InSendMessage',\
|
||||
InSendMessageEx,'InSendMessageEx',\
|
||||
InflateRect,'InflateRect',\
|
||||
InsertMenuA,'InsertMenuA',\
|
||||
InsertMenuW,'InsertMenuW',\
|
||||
InsertMenuItemA,'InsertMenuItemA',\
|
||||
InsertMenuItemW,'InsertMenuItemW',\
|
||||
IntersectRect,'IntersectRect',\
|
||||
InvalidateRect,'InvalidateRect',\
|
||||
InvalidateRgn,'InvalidateRgn',\
|
||||
InvertRect,'InvertRect',\
|
||||
IsCharAlphaA,'IsCharAlphaA',\
|
||||
IsCharAlphaW,'IsCharAlphaW',\
|
||||
IsCharAlphaNumericA,'IsCharAlphaNumericA',\
|
||||
IsCharAlphaNumericW,'IsCharAlphaNumericW',\
|
||||
IsCharLowerA,'IsCharLowerA',\
|
||||
IsCharLowerW,'IsCharLowerW',\
|
||||
IsCharUpperA,'IsCharUpperA',\
|
||||
IsCharUpperW,'IsCharUpperW',\
|
||||
IsChild,'IsChild',\
|
||||
IsClipboardFormatAvailable,'IsClipboardFormatAvailable',\
|
||||
IsDialogMessageA,'IsDialogMessageA',\
|
||||
IsDialogMessageW,'IsDialogMessageW',\
|
||||
IsDlgButtonChecked,'IsDlgButtonChecked',\
|
||||
IsIconic,'IsIconic',\
|
||||
IsMenu,'IsMenu',\
|
||||
IsRectEmpty,'IsRectEmpty',\
|
||||
IsWindow,'IsWindow',\
|
||||
IsWindowEnabled,'IsWindowEnabled',\
|
||||
IsWindowUnicode,'IsWindowUnicode',\
|
||||
IsWindowVisible,'IsWindowVisible',\
|
||||
IsZoomed,'IsZoomed',\
|
||||
KillSystemTimer,'KillSystemTimer',\
|
||||
KillTimer,'KillTimer',\
|
||||
LoadAcceleratorsA,'LoadAcceleratorsA',\
|
||||
LoadAcceleratorsW,'LoadAcceleratorsW',\
|
||||
LoadBitmapA,'LoadBitmapA',\
|
||||
LoadBitmapW,'LoadBitmapW',\
|
||||
LoadCursorA,'LoadCursorA',\
|
||||
LoadCursorW,'LoadCursorW',\
|
||||
LoadCursorFromFileA,'LoadCursorFromFileA',\
|
||||
LoadCursorFromFileW,'LoadCursorFromFileW',\
|
||||
LoadIconA,'LoadIconA',\
|
||||
LoadIconW,'LoadIconW',\
|
||||
LoadImageA,'LoadImageA',\
|
||||
LoadImageW,'LoadImageW',\
|
||||
LoadKeyboardLayoutA,'LoadKeyboardLayoutA',\
|
||||
LoadKeyboardLayoutW,'LoadKeyboardLayoutW',\
|
||||
LoadMenuA,'LoadMenuA',\
|
||||
LoadMenuW,'LoadMenuW',\
|
||||
LoadMenuIndirectA,'LoadMenuIndirectA',\
|
||||
LoadMenuIndirectW,'LoadMenuIndirectW',\
|
||||
LoadStringA,'LoadStringA',\
|
||||
LoadStringW,'LoadStringW',\
|
||||
LockWindowUpdate,'LockWindowUpdate',\
|
||||
LockWorkStation,'LockWorkStation',\
|
||||
LookupIconIdFromDirectory,'LookupIconIdFromDirectory',\
|
||||
LookupIconIdFromDirectoryEx,'LookupIconIdFromDirectoryEx',\
|
||||
MapDialogRect,'MapDialogRect',\
|
||||
MapVirtualKeyA,'MapVirtualKeyA',\
|
||||
MapVirtualKeyW,'MapVirtualKeyW',\
|
||||
MapVirtualKeyExA,'MapVirtualKeyExA',\
|
||||
MapVirtualKeyExW,'MapVirtualKeyExW',\
|
||||
MapWindowPoints,'MapWindowPoints',\
|
||||
MenuItemFromPoint,'MenuItemFromPoint',\
|
||||
MessageBeep,'MessageBeep',\
|
||||
MessageBoxA,'MessageBoxA',\
|
||||
MessageBoxW,'MessageBoxW',\
|
||||
MessageBoxExA,'MessageBoxExA',\
|
||||
MessageBoxExW,'MessageBoxExW',\
|
||||
MessageBoxIndirectA,'MessageBoxIndirectA',\
|
||||
MessageBoxIndirectW,'MessageBoxIndirectW',\
|
||||
ModifyMenuA,'ModifyMenuA',\
|
||||
ModifyMenuW,'ModifyMenuW',\
|
||||
MonitorFromPoint,'MonitorFromPoint',\
|
||||
MonitorFromRect,'MonitorFromRect',\
|
||||
MonitorFromWindow,'MonitorFromWindow',\
|
||||
MoveWindow,'MoveWindow',\
|
||||
MsgWaitForMultipleObjects,'MsgWaitForMultipleObjects',\
|
||||
MsgWaitForMultipleObjectsEx,'MsgWaitForMultipleObjectsEx',\
|
||||
NotifyWinEvent,'NotifyWinEvent',\
|
||||
OemKeyScan,'OemKeyScan',\
|
||||
OemToCharA,'OemToCharA',\
|
||||
OemToCharW,'OemToCharW',\
|
||||
OemToCharBuffA,'OemToCharBuffA',\
|
||||
OemToCharBuffW,'OemToCharBuffW',\
|
||||
OffsetRect,'OffsetRect',\
|
||||
OpenClipboard,'OpenClipboard',\
|
||||
OpenDesktopA,'OpenDesktopA',\
|
||||
OpenDesktopW,'OpenDesktopW',\
|
||||
OpenIcon,'OpenIcon',\
|
||||
OpenInputDesktop,'OpenInputDesktop',\
|
||||
OpenWindowStationA,'OpenWindowStationA',\
|
||||
OpenWindowStationW,'OpenWindowStationW',\
|
||||
PackDDElParam,'PackDDElParam',\
|
||||
PaintDesktop,'PaintDesktop',\
|
||||
PeekMessageA,'PeekMessageA',\
|
||||
PeekMessageW,'PeekMessageW',\
|
||||
PostMessageA,'PostMessageA',\
|
||||
PostMessageW,'PostMessageW',\
|
||||
PostQuitMessage,'PostQuitMessage',\
|
||||
PostThreadMessageA,'PostThreadMessageA',\
|
||||
PostThreadMessageW,'PostThreadMessageW',\
|
||||
PtInRect,'PtInRect',\
|
||||
RealChildWindowFromPoint,'RealChildWindowFromPoint',\
|
||||
RealGetWindowClassA,'RealGetWindowClassA',\
|
||||
RealGetWindowClassW,'RealGetWindowClassW',\
|
||||
RedrawWindow,'RedrawWindow',\
|
||||
RegisterClassA,'RegisterClassA',\
|
||||
RegisterClassW,'RegisterClassW',\
|
||||
RegisterClassExA,'RegisterClassExA',\
|
||||
RegisterClassExW,'RegisterClassExW',\
|
||||
RegisterClipboardFormatA,'RegisterClipboardFormatA',\
|
||||
RegisterClipboardFormatW,'RegisterClipboardFormatW',\
|
||||
RegisterDeviceNotificationA,'RegisterDeviceNotificationA',\
|
||||
RegisterDeviceNotificationW,'RegisterDeviceNotificationW',\
|
||||
RegisterHotKey,'RegisterHotKey',\
|
||||
RegisterWindowMessageA,'RegisterWindowMessageA',\
|
||||
RegisterWindowMessageW,'RegisterWindowMessageW',\
|
||||
ReleaseCapture,'ReleaseCapture',\
|
||||
ReleaseDC,'ReleaseDC',\
|
||||
RemoveMenu,'RemoveMenu',\
|
||||
RemovePropA,'RemovePropA',\
|
||||
RemovePropW,'RemovePropW',\
|
||||
ReplyMessage,'ReplyMessage',\
|
||||
ReuseDDElParam,'ReuseDDElParam',\
|
||||
ScreenToClient,'ScreenToClient',\
|
||||
ScrollChildren,'ScrollChildren',\
|
||||
ScrollDC,'ScrollDC',\
|
||||
ScrollWindow,'ScrollWindow',\
|
||||
ScrollWindowEx,'ScrollWindowEx',\
|
||||
SendDlgItemMessageA,'SendDlgItemMessageA',\
|
||||
SendDlgItemMessageW,'SendDlgItemMessageW',\
|
||||
SendIMEMessageExA,'SendIMEMessageExA',\
|
||||
SendIMEMessageExW,'SendIMEMessageExW',\
|
||||
SendInput,'SendInput',\
|
||||
SendMessageA,'SendMessageA',\
|
||||
SendMessageW,'SendMessageW',\
|
||||
SendMessageCallbackA,'SendMessageCallbackA',\
|
||||
SendMessageCallbackW,'SendMessageCallbackW',\
|
||||
SendMessageTimeoutA,'SendMessageTimeoutA',\
|
||||
SendMessageTimeoutW,'SendMessageTimeoutW',\
|
||||
SendNotifyMessageA,'SendNotifyMessageA',\
|
||||
SendNotifyMessageW,'SendNotifyMessageW',\
|
||||
SetActiveWindow,'SetActiveWindow',\
|
||||
SetCapture,'SetCapture',\
|
||||
SetCaretBlinkTime,'SetCaretBlinkTime',\
|
||||
SetCaretPos,'SetCaretPos',\
|
||||
SetClassLongA,'SetClassLongA',\
|
||||
SetClassLongW,'SetClassLongW',\
|
||||
SetClassWord,'SetClassWord',\
|
||||
SetClipboardData,'SetClipboardData',\
|
||||
SetClipboardViewer,'SetClipboardViewer',\
|
||||
SetCursor,'SetCursor',\
|
||||
SetCursorPos,'SetCursorPos',\
|
||||
SetDebugErrorLevel,'SetDebugErrorLevel',\
|
||||
SetDeskWallpaper,'SetDeskWallpaper',\
|
||||
SetDlgItemInt,'SetDlgItemInt',\
|
||||
SetDlgItemTextA,'SetDlgItemTextA',\
|
||||
SetDlgItemTextW,'SetDlgItemTextW',\
|
||||
SetDoubleClickTime,'SetDoubleClickTime',\
|
||||
SetFocus,'SetFocus',\
|
||||
SetForegroundWindow,'SetForegroundWindow',\
|
||||
SetKeyboardState,'SetKeyboardState',\
|
||||
SetLastErrorEx,'SetLastErrorEx',\
|
||||
SetLayeredWindowAttributes,'SetLayeredWindowAttributes',\
|
||||
SetMenu,'SetMenu',\
|
||||
SetMenuContextHelpId,'SetMenuContextHelpId',\
|
||||
SetMenuDefaultItem,'SetMenuDefaultItem',\
|
||||
SetMenuInfo,'SetMenuInfo',\
|
||||
SetMenuItemBitmaps,'SetMenuItemBitmaps',\
|
||||
SetMenuItemInfoA,'SetMenuItemInfoA',\
|
||||
SetMenuItemInfoW,'SetMenuItemInfoW',\
|
||||
SetMessageExtraInfo,'SetMessageExtraInfo',\
|
||||
SetMessageQueue,'SetMessageQueue',\
|
||||
SetParent,'SetParent',\
|
||||
SetProcessWindowStation,'SetProcessWindowStation',\
|
||||
SetPropA,'SetPropA',\
|
||||
SetPropW,'SetPropW',\
|
||||
SetRect,'SetRect',\
|
||||
SetRectEmpty,'SetRectEmpty',\
|
||||
SetScrollInfo,'SetScrollInfo',\
|
||||
SetScrollPos,'SetScrollPos',\
|
||||
SetScrollRange,'SetScrollRange',\
|
||||
SetShellWindow,'SetShellWindow',\
|
||||
SetSysColors,'SetSysColors',\
|
||||
SetSystemCursor,'SetSystemCursor',\
|
||||
SetSystemMenu,'SetSystemMenu',\
|
||||
SetSystemTimer,'SetSystemTimer',\
|
||||
SetThreadDesktop,'SetThreadDesktop',\
|
||||
SetTimer,'SetTimer',\
|
||||
SetUserObjectInformationA,'SetUserObjectInformationA',\
|
||||
SetUserObjectInformationW,'SetUserObjectInformationW',\
|
||||
SetUserObjectSecurity,'SetUserObjectSecurity',\
|
||||
SetWinEventHook,'SetWinEventHook',\
|
||||
SetWindowContextHelpId,'SetWindowContextHelpId',\
|
||||
SetWindowLongA,'SetWindowLongA',\
|
||||
SetWindowLongW,'SetWindowLongW',\
|
||||
SetWindowPlacement,'SetWindowPlacement',\
|
||||
SetWindowPos,'SetWindowPos',\
|
||||
SetWindowRgn,'SetWindowRgn',\
|
||||
SetWindowTextA,'SetWindowTextA',\
|
||||
SetWindowTextW,'SetWindowTextW',\
|
||||
SetWindowWord,'SetWindowWord',\
|
||||
SetWindowsHookA,'SetWindowsHookA',\
|
||||
SetWindowsHookW,'SetWindowsHookW',\
|
||||
SetWindowsHookExA,'SetWindowsHookExA',\
|
||||
SetWindowsHookExW,'SetWindowsHookExW',\
|
||||
ShowCaret,'ShowCaret',\
|
||||
ShowCursor,'ShowCursor',\
|
||||
ShowOwnedPopups,'ShowOwnedPopups',\
|
||||
ShowScrollBar,'ShowScrollBar',\
|
||||
ShowWindow,'ShowWindow',\
|
||||
ShowWindowAsync,'ShowWindowAsync',\
|
||||
SubtractRect,'SubtractRect',\
|
||||
SwapMouseButton,'SwapMouseButton',\
|
||||
SwitchDesktop,'SwitchDesktop',\
|
||||
SystemParametersInfoA,'SystemParametersInfoA',\
|
||||
SystemParametersInfoW,'SystemParametersInfoW',\
|
||||
TabbedTextOutA,'TabbedTextOutA',\
|
||||
TabbedTextOutW,'TabbedTextOutW',\
|
||||
TileChildWindows,'TileChildWindows',\
|
||||
TileWindows,'TileWindows',\
|
||||
ToAscii,'ToAscii',\
|
||||
ToAsciiEx,'ToAsciiEx',\
|
||||
ToUnicode,'ToUnicode',\
|
||||
ToUnicodeEx,'ToUnicodeEx',\
|
||||
TrackMouseEvent,'TrackMouseEvent',\
|
||||
TrackPopupMenu,'TrackPopupMenu',\
|
||||
TrackPopupMenuEx,'TrackPopupMenuEx',\
|
||||
TranslateAcceleratorA,'TranslateAcceleratorA',\
|
||||
TranslateAcceleratorW,'TranslateAcceleratorW',\
|
||||
TranslateMDISysAccel,'TranslateMDISysAccel',\
|
||||
TranslateMessage,'TranslateMessage',\
|
||||
UnhookWinEvent,'UnhookWinEvent',\
|
||||
UnhookWindowsHook,'UnhookWindowsHook',\
|
||||
UnhookWindowsHookEx,'UnhookWindowsHookEx',\
|
||||
UnionRect,'UnionRect',\
|
||||
UnloadKeyboardLayout,'UnloadKeyboardLayout',\
|
||||
UnpackDDElParam,'UnpackDDElParam',\
|
||||
UnregisterClassA,'UnregisterClassA',\
|
||||
UnregisterClassW,'UnregisterClassW',\
|
||||
UnregisterDeviceNotification,'UnregisterDeviceNotification',\
|
||||
UnregisterHotKey,'UnregisterHotKey',\
|
||||
UpdateWindow,'UpdateWindow',\
|
||||
UserHandleGrantAccess,'UserHandleGrantAccess',\
|
||||
ValidateRect,'ValidateRect',\
|
||||
ValidateRgn,'ValidateRgn',\
|
||||
VkKeyScanA,'VkKeyScanA',\
|
||||
VkKeyScanW,'VkKeyScanW',\
|
||||
VkKeyScanExA,'VkKeyScanExA',\
|
||||
VkKeyScanExW,'VkKeyScanExW',\
|
||||
WINNLSEnableIME,'WINNLSEnableIME',\
|
||||
WINNLSGetEnableStatus,'WINNLSGetEnableStatus',\
|
||||
WINNLSGetIMEHotkey,'WINNLSGetIMEHotkey',\
|
||||
WaitForInputIdle,'WaitForInputIdle',\
|
||||
WaitMessage,'WaitMessage',\
|
||||
WinHelpA,'WinHelpA',\
|
||||
WinHelpW,'WinHelpW',\
|
||||
WindowFromDC,'WindowFromDC',\
|
||||
WindowFromPoint,'WindowFromPoint',\
|
||||
keybd_event,'keybd_event',\
|
||||
mouse_event,'mouse_event',\
|
||||
wsprintfA,'wsprintfA',\
|
||||
wsprintfW,'wsprintfW',\
|
||||
wvsprintfA,'wvsprintfA',\
|
||||
wvsprintfW,'wvsprintfW'
|
||||
|
||||
api AppendMenu,\
|
||||
BroadcastSystemMessage,\
|
||||
CallMsgFilter,\
|
||||
CallWindowProc,\
|
||||
ChangeDisplaySettings,\
|
||||
ChangeDisplaySettingsEx,\
|
||||
ChangeMenu,\
|
||||
CharLower,\
|
||||
CharLowerBuff,\
|
||||
CharNext,\
|
||||
CharNextEx,\
|
||||
CharPrev,\
|
||||
CharPrevEx,\
|
||||
CharToOem,\
|
||||
CharToOemBuff,\
|
||||
CharUpper,\
|
||||
CharUpperBuff,\
|
||||
CopyAcceleratorTable,\
|
||||
CreateAcceleratorTable,\
|
||||
CreateDesktop,\
|
||||
CreateDialogIndirectParam,\
|
||||
CreateDialogParam,\
|
||||
CreateMDIWindow,\
|
||||
CreateWindowEx,\
|
||||
CreateWindowStation,\
|
||||
DdeCreateStringHandle,\
|
||||
DdeInitialize,\
|
||||
DdeQueryString,\
|
||||
DefDlgProc,\
|
||||
DefFrameProc,\
|
||||
DefMDIChildProc,\
|
||||
DefWindowProc,\
|
||||
DialogBoxIndirectParam,\
|
||||
DialogBoxParam,\
|
||||
DispatchMessage,\
|
||||
DlgDirList,\
|
||||
DlgDirListComboBox,\
|
||||
DlgDirSelectComboBoxEx,\
|
||||
DlgDirSelectEx,\
|
||||
DrawState,\
|
||||
DrawText,\
|
||||
DrawTextEx,\
|
||||
EnumDesktops,\
|
||||
EnumDisplaySettings,\
|
||||
EnumDisplaySettingsEx,\
|
||||
EnumProps,\
|
||||
EnumPropsEx,\
|
||||
EnumWindowStations,\
|
||||
FindWindow,\
|
||||
FindWindowEx,\
|
||||
GetAltTabInfo,\
|
||||
GetClassInfo,\
|
||||
GetClassInfoEx,\
|
||||
GetClassLong,\
|
||||
GetClassName,\
|
||||
GetClipboardFormatName,\
|
||||
GetClipboardSequenceNumber,\
|
||||
GetDlgItemText,\
|
||||
GetKeyNameText,\
|
||||
GetKeyboardLayoutName,\
|
||||
GetMenuItemInfo,\
|
||||
GetMenuString,\
|
||||
GetMessage,\
|
||||
GetMonitorInfo,\
|
||||
GetProp,\
|
||||
GetTabbedTextExtent,\
|
||||
GetUserObjectInformation,\
|
||||
GetWindowLong,\
|
||||
GetWindowModuleFileName,\
|
||||
GetWindowText,\
|
||||
GetWindowTextLength,\
|
||||
GrayString,\
|
||||
IMPGetIME,\
|
||||
IMPQueryIME,\
|
||||
IMPSetIME,\
|
||||
InsertMenu,\
|
||||
InsertMenuItem,\
|
||||
IsCharAlpha,\
|
||||
IsCharAlphaNumeric,\
|
||||
IsCharLower,\
|
||||
IsCharUpper,\
|
||||
IsDialogMessage,\
|
||||
LoadAccelerators,\
|
||||
LoadBitmap,\
|
||||
LoadCursor,\
|
||||
LoadCursorFromFile,\
|
||||
LoadIcon,\
|
||||
LoadImage,\
|
||||
LoadKeyboardLayout,\
|
||||
LoadMenu,\
|
||||
LoadMenuIndirect,\
|
||||
LoadString,\
|
||||
MapVirtualKey,\
|
||||
MapVirtualKeyEx,\
|
||||
MessageBox,\
|
||||
MessageBoxEx,\
|
||||
MessageBoxIndirect,\
|
||||
ModifyMenu,\
|
||||
OemToChar,\
|
||||
OemToCharBuff,\
|
||||
OpenDesktop,\
|
||||
OpenWindowStation,\
|
||||
PeekMessage,\
|
||||
PostMessage,\
|
||||
PostThreadMessage,\
|
||||
RealGetWindowClass,\
|
||||
RegisterClass,\
|
||||
RegisterClassEx,\
|
||||
RegisterClipboardFormat,\
|
||||
RegisterDeviceNotification,\
|
||||
RegisterWindowMessage,\
|
||||
RemoveProp,\
|
||||
SendDlgItemMessage,\
|
||||
SendIMEMessageEx,\
|
||||
SendMessage,\
|
||||
SendMessageCallback,\
|
||||
SendMessageTimeout,\
|
||||
SendNotifyMessage,\
|
||||
SetClassLong,\
|
||||
SetDlgItemText,\
|
||||
SetMenuItemInfo,\
|
||||
SetProp,\
|
||||
SetUserObjectInformation,\
|
||||
SetWindowLong,\
|
||||
SetWindowText,\
|
||||
SetWindowsHook,\
|
||||
SetWindowsHookEx,\
|
||||
SystemParametersInfo,\
|
||||
TabbedTextOut,\
|
||||
TranslateAccelerator,\
|
||||
UnregisterClass,\
|
||||
VkKeyScan,\
|
||||
VkKeyScanEx,\
|
||||
WinHelp,\
|
||||
wsprintf,\
|
||||
wvsprintf
|
||||
85
fasmw172/INCLUDE/API/WSOCK32.INC
Normal file
85
fasmw172/INCLUDE/API/WSOCK32.INC
Normal file
@@ -0,0 +1,85 @@
|
||||
|
||||
; WSOCK32 API calls
|
||||
|
||||
import wsock32,\
|
||||
AcceptEx,'AcceptEx',\
|
||||
EnumProtocolsA,'EnumProtocolsA',\
|
||||
EnumProtocolsW,'EnumProtocolsW',\
|
||||
GetAcceptExSockaddrs,'GetAcceptExSockaddrs',\
|
||||
GetAddressByNameA,'GetAddressByNameA',\
|
||||
GetAddressByNameW,'GetAddressByNameW',\
|
||||
GetNameByTypeA,'GetNameByTypeA',\
|
||||
GetNameByTypeW,'GetNameByTypeW',\
|
||||
GetServiceA,'GetServiceA',\
|
||||
GetServiceW,'GetServiceW',\
|
||||
GetTypeByNameA,'GetTypeByNameA',\
|
||||
GetTypeByNameW,'GetTypeByNameW',\
|
||||
MigrateWinsockConfiguration,'MigrateWinsockConfiguration',\
|
||||
NPLoadNameSpaces,'NPLoadNameSpaces',\
|
||||
SetServiceA,'SetServiceA',\
|
||||
SetServiceW,'SetServiceW',\
|
||||
TransmitFile,'TransmitFile',\
|
||||
WEP,'WEP',\
|
||||
WSAAsyncGetHostByAddr,'WSAAsyncGetHostByAddr',\
|
||||
WSAAsyncGetHostByName,'WSAAsyncGetHostByName',\
|
||||
WSAAsyncGetProtoByName,'WSAAsyncGetProtoByName',\
|
||||
WSAAsyncGetProtoByNumber,'WSAAsyncGetProtoByNumber',\
|
||||
WSAAsyncGetServByName,'WSAAsyncGetServByName',\
|
||||
WSAAsyncGetServByPort,'WSAAsyncGetServByPort',\
|
||||
WSAAsyncSelect,'WSAAsyncSelect',\
|
||||
WSACancelAsyncRequest,'WSACancelAsyncRequest',\
|
||||
WSACancelBlockingCall,'WSACancelBlockingCall',\
|
||||
WSACleanup,'WSACleanup',\
|
||||
WSAGetLastError,'WSAGetLastError',\
|
||||
WSAIsBlocking,'WSAIsBlocking',\
|
||||
WSARecvEx,'WSARecvEx',\
|
||||
WSASetBlockingHook,'WSASetBlockingHook',\
|
||||
WSASetLastError,'WSASetLastError',\
|
||||
WSAStartup,'WSAStartup',\
|
||||
WSAUnhookBlockingHook,'WSAUnhookBlockingHook',\
|
||||
__WSAFDIsSet,'__WSAFDIsSet',\
|
||||
accept,'accept',\
|
||||
bind,'bind',\
|
||||
closesocket,'closesocket',\
|
||||
connect,'connect',\
|
||||
dn_expand,'dn_expand',\
|
||||
gethostbyaddr,'gethostbyaddr',\
|
||||
gethostbyname,'gethostbyname',\
|
||||
gethostname,'gethostname',\
|
||||
getnetbyname,'getnetbyname',\
|
||||
getpeername,'getpeername',\
|
||||
getprotobyname,'getprotobyname',\
|
||||
getprotobynumber,'getprotobynumber',\
|
||||
getservbyname,'getservbyname',\
|
||||
getservbyport,'getservbyport',\
|
||||
getsockname,'getsockname',\
|
||||
getsockopt,'getsockopt',\
|
||||
htonl,'htonl',\
|
||||
htons,'htons',\
|
||||
inet_addr,'inet_addr',\
|
||||
inet_network,'inet_network',\
|
||||
inet_ntoa,'inet_ntoa',\
|
||||
ioctlsocket,'ioctlsocket',\
|
||||
listen,'listen',\
|
||||
ntohl,'ntohl',\
|
||||
ntohs,'ntohs',\
|
||||
rcmd,'rcmd',\
|
||||
recv,'recv',\
|
||||
recvfrom,'recvfrom',\
|
||||
rexec,'rexec',\
|
||||
rresvport,'rresvport',\
|
||||
s_perror,'s_perror',\
|
||||
select,'select',\
|
||||
send,'send',\
|
||||
sendto,'sendto',\
|
||||
sethostname,'sethostname',\
|
||||
setsockopt,'setsockopt',\
|
||||
shutdown,'shutdown',\
|
||||
socket,'socket'
|
||||
|
||||
api EnumProtocols,\
|
||||
GetAddressByName,\
|
||||
GetNameByType,\
|
||||
GetService,\
|
||||
GetTypeByName,\
|
||||
SetService
|
||||
77
fasmw172/INCLUDE/ENCODING/UTF8.INC
Normal file
77
fasmw172/INCLUDE/ENCODING/UTF8.INC
Normal file
@@ -0,0 +1,77 @@
|
||||
|
||||
; UTF-8
|
||||
|
||||
macro du [arg]
|
||||
{ local current,..input,char
|
||||
if arg eqtype ''
|
||||
virtual at 0
|
||||
..input::
|
||||
db arg
|
||||
count = $
|
||||
end virtual
|
||||
current = 0
|
||||
while current < count
|
||||
load char byte from ..input:current
|
||||
wide = char
|
||||
current = current + 1
|
||||
if char > 0C0h
|
||||
if char < 0E0h
|
||||
wide = char and 11111b
|
||||
load char byte from ..input:current
|
||||
wide = wide shl 6 + (char and 111111b)
|
||||
current = current + 1
|
||||
else if char < 0F0h
|
||||
wide = char and 1111b
|
||||
load char byte from ..input:current
|
||||
wide = wide shl 6 + (char and 111111b)
|
||||
load char byte from ..input:current+1
|
||||
wide = wide shl 6 + (char and 111111b)
|
||||
current = current + 2
|
||||
else if char < 0F8h
|
||||
wide = char and 111b
|
||||
load char byte from ..input:current
|
||||
wide = wide shl 6 + (char and 111111b)
|
||||
load char byte from ..input:current+1
|
||||
wide = wide shl 6 + (char and 111111b)
|
||||
load char byte from ..input:current+2
|
||||
wide = wide shl 6 + (char and 111111b)
|
||||
current = current + 3
|
||||
else if char < 0FCh
|
||||
wide = char and 11b
|
||||
load char byte from ..input:current
|
||||
wide = wide shl 6 + (char and 111111b)
|
||||
load char byte from ..input:current+1
|
||||
wide = wide shl 6 + (char and 111111b)
|
||||
load char byte from ..input:current+2
|
||||
wide = wide shl 6 + (char and 111111b)
|
||||
load char byte from ..input:current+3
|
||||
wide = wide shl 6 + (char and 111111b)
|
||||
current = current + 4
|
||||
else
|
||||
wide = char and 1
|
||||
load char byte from ..input:current
|
||||
wide = wide shl 6 + (char and 111111b)
|
||||
load char byte from ..input:current+1
|
||||
wide = wide shl 6 + (char and 111111b)
|
||||
load char byte from ..input:current+2
|
||||
wide = wide shl 6 + (char and 111111b)
|
||||
load char byte from ..input:current+3
|
||||
wide = wide shl 6 + (char and 111111b)
|
||||
load char byte from ..input:current+4
|
||||
wide = wide shl 6 + (char and 111111b)
|
||||
current = current + 5
|
||||
end if
|
||||
end if
|
||||
if wide < 10000h
|
||||
dw wide
|
||||
else
|
||||
dw 0D7C0h + wide shr 10,0DC00h or (wide and 3FFh)
|
||||
end if
|
||||
end while
|
||||
else
|
||||
dw arg
|
||||
end if }
|
||||
|
||||
struc du [args]
|
||||
{ common label . word
|
||||
du args }
|
||||
36
fasmw172/INCLUDE/ENCODING/WIN1250.INC
Normal file
36
fasmw172/INCLUDE/ENCODING/WIN1250.INC
Normal file
@@ -0,0 +1,36 @@
|
||||
|
||||
; Windows 1250
|
||||
|
||||
rept 1 { local ..encoding
|
||||
__encoding equ ..encoding }
|
||||
|
||||
virtual at 0
|
||||
__encoding::
|
||||
times 80h dw %-1
|
||||
dw 20ACh,?,201Ah,?,201Eh,2026h,2020h,2021h,?,2030h,160h,2039h,15Ah,164h,17Dh,179h
|
||||
dw ?,2018h,2019h,201Ch,201Dh,2022h,2013h,2014h,?,2122h,161h,203Ah,15Bh,165h,17Eh,17Ah
|
||||
dw 0A0h,2C7h,2D8h,141h,0A4h,104h,0A6h,0A7h,0A8h,0A9h,15Eh,0ABh,0ACh,0ADh,0AEh,17Bh
|
||||
dw 0B0h,0B1h,2DBh,142h,0B4h,0B5h,0B6h,0B7h,0B8h,105h,15Fh,0BBh,13Dh,2DDh,13Eh,17Ch
|
||||
dw 154h,0C1h,0C2h,102h,0C4h,139h,106h,0C7h,10Ch,0C9h,118h,0CBh,11Ah,0CDh,0CEh,10Eh
|
||||
dw 110h,143h,147h,0D3h,0D4h,150h,0D6h,0D7h,158h,16Eh,0DAh,170h,0DCh,0DDh,162h,0DFh
|
||||
dw 155h,0E1h,0E2h,103h,0E4h,13Ah,107h,0E7h,10Dh,0E9h,119h,0EBh,11Bh,0EDh,0EEh,10Fh
|
||||
dw 111h,144h,148h,0F3h,0F4h,151h,0F6h,0F7h,159h,16Fh,0FAh,171h,0FCh,0FDh,163h,2D9h
|
||||
end virtual
|
||||
|
||||
macro du [arg]
|
||||
{ local offset,char
|
||||
offset = $-$$
|
||||
du arg
|
||||
if arg eqtype ''
|
||||
repeat ($-offset-$$)/2
|
||||
load char byte from $$+offset+(%-1)*2
|
||||
if char > 7Fh
|
||||
load char word from __encoding:char*2
|
||||
store word char at $$+offset+(%-1)*2
|
||||
end if
|
||||
end repeat
|
||||
end if }
|
||||
|
||||
struc du [args]
|
||||
{ common label . word
|
||||
du args }
|
||||
33
fasmw172/INCLUDE/ENCODING/WIN1251.INC
Normal file
33
fasmw172/INCLUDE/ENCODING/WIN1251.INC
Normal file
@@ -0,0 +1,33 @@
|
||||
|
||||
; Windows 1251
|
||||
|
||||
rept 1 { local ..encoding
|
||||
__encoding equ ..encoding }
|
||||
|
||||
virtual at 0
|
||||
__encoding::
|
||||
times 80h dw %-1
|
||||
dw 401h,403h,201Ah,453h,201Eh,2026h,2020h,2021h,20ACh,2030h,409h,2039h,40Ah,40Ch,40Bh,40Fh
|
||||
dw 452h,2018h,2019h,201Ch,201Dh,2022h,2013h,2014h,?,2122h,459h,203Ah,45Ah,45Ch,45Bh,45Fh
|
||||
dw 0A0h,40Eh,45Eh,408h,0A4h,490h,0A6h,0A7h,401h,0A9h,404h,0ABh,0ACh,0ADh,0AEh,407h
|
||||
dw 0B0h,0B1h,406h,456h,491h,0B5h,0B6h,0B7h,451h,2116h,454h,0BBh,458h,405h,455h,457h
|
||||
times 40h dw 410h+%-1
|
||||
end virtual
|
||||
|
||||
macro du [arg]
|
||||
{ local offset,char
|
||||
offset = $-$$
|
||||
du arg
|
||||
if arg eqtype ''
|
||||
repeat ($-offset-$$)/2
|
||||
load char byte from $$+offset+(%-1)*2
|
||||
if char > 7Fh
|
||||
load char word from __encoding:char*2
|
||||
store word char at $$+offset+(%-1)*2
|
||||
end if
|
||||
end repeat
|
||||
end if }
|
||||
|
||||
struc du [args]
|
||||
{ common label . word
|
||||
du args }
|
||||
31
fasmw172/INCLUDE/ENCODING/WIN1252.INC
Normal file
31
fasmw172/INCLUDE/ENCODING/WIN1252.INC
Normal file
@@ -0,0 +1,31 @@
|
||||
|
||||
; Windows 1252
|
||||
|
||||
rept 1 { local ..encoding
|
||||
__encoding equ ..encoding }
|
||||
|
||||
virtual at 0
|
||||
__encoding::
|
||||
times 80h dw %-1
|
||||
dw 20ACh,?,201Ah,192h,201Eh,2026h,2020h,2021h,2C6h,2030h,160h,2039h,152h,?,17D,?
|
||||
dw ?,2018h,2019h,201Ch,201Dh,2022h,2013h,2014h,2DCh,2122h,161h,203Ah,153h,?,17Eh,178h
|
||||
times 60h dw 0A0h+%-1
|
||||
end virtual
|
||||
|
||||
macro du [arg]
|
||||
{ local offset,char
|
||||
offset = $-$$
|
||||
du arg
|
||||
if arg eqtype ''
|
||||
repeat ($-offset-$$)/2
|
||||
load char byte from $$+offset+(%-1)*2
|
||||
if char > 7Fh
|
||||
load char word from __encoding:char*2
|
||||
store word char at $$+offset+(%-1)*2
|
||||
end if
|
||||
end repeat
|
||||
end if }
|
||||
|
||||
struc du [args]
|
||||
{ common label . word
|
||||
du args }
|
||||
33
fasmw172/INCLUDE/ENCODING/WIN1253.INC
Normal file
33
fasmw172/INCLUDE/ENCODING/WIN1253.INC
Normal file
@@ -0,0 +1,33 @@
|
||||
|
||||
; Windows 1253
|
||||
|
||||
rept 1 { local ..encoding
|
||||
__encoding equ ..encoding }
|
||||
|
||||
virtual at 0
|
||||
__encoding::
|
||||
times 80h dw %-1
|
||||
dw 20ACh,?,201Ah,192h,201Eh,2026h,2020h,2021h,?,2030h,?,2039h,?,?,?,?
|
||||
dw ?,2018h,2019h,201Ch,201Dh,2022h,2013h,2014h,?,2122h,?,203Ah,?,?,?,?
|
||||
dw 0A0h,385h,386h,0A3h,0A4h,0A5h,0A6h,0A7h,0A8h,0A9h,?,0ABh,0ACh,0ADh,0AEh,2015h
|
||||
dw 0B0h,0B1h,0B2h,0B3h,384h,0B5h,0B6h,0B7h,288h,389h,38Ah,0BBh,38Ch,0BDh,38Eh,38Fh
|
||||
times 40h dw 390h+%-1
|
||||
end virtual
|
||||
|
||||
macro du [arg]
|
||||
{ local offset,char
|
||||
offset = $-$$
|
||||
du arg
|
||||
if arg eqtype ''
|
||||
repeat ($-offset-$$)/2
|
||||
load char byte from $$+offset+(%-1)*2
|
||||
if char > 7Fh
|
||||
load char word from __encoding:char*2
|
||||
store word char at $$+offset+(%-1)*2
|
||||
end if
|
||||
end repeat
|
||||
end if }
|
||||
|
||||
struc du [args]
|
||||
{ common label . word
|
||||
du args }
|
||||
34
fasmw172/INCLUDE/ENCODING/WIN1254.INC
Normal file
34
fasmw172/INCLUDE/ENCODING/WIN1254.INC
Normal file
@@ -0,0 +1,34 @@
|
||||
|
||||
; Windows 1254
|
||||
|
||||
rept 1 { local ..encoding
|
||||
__encoding equ ..encoding }
|
||||
|
||||
virtual at 0
|
||||
__encoding::
|
||||
times 80h dw %-1
|
||||
dw 20ACh,?,201Ah,192h,201Eh,2026h,2020h,2021h,2C6h,2030h,160h,2039h,152h,?,?,?
|
||||
dw ?,2018h,2019h,201Ch,201Dh,2022h,2013h,2014h,2DCh,2122h,161h,203Ah,153h,?,?,178h
|
||||
times 30h dw 0A0h+%-1
|
||||
dw 11Eh,0D1h,0D2h,0D3h,0D4h,0D5h,0D6h,0D7h,0D8h,0D9h,0DAh,0DBh,0DCh,130h,15Eh,0DFh
|
||||
times 10h dw 0E0h+%-1
|
||||
dw 11Fh,0F1h,0F2h,0F3h,0F4h,0F5h,0F6h,0F7h,0F8h,0F9h,0FAh,0FBh,0FCh,131h,15Fh,0FFh
|
||||
end virtual
|
||||
|
||||
macro du [arg]
|
||||
{ local offset,char
|
||||
offset = $-$$
|
||||
du arg
|
||||
if arg eqtype ''
|
||||
repeat ($-offset-$$)/2
|
||||
load char byte from $$+offset+(%-1)*2
|
||||
if char > 7Fh
|
||||
load char word from __encoding:char*2
|
||||
store word char at $$+offset+(%-1)*2
|
||||
end if
|
||||
end repeat
|
||||
end if }
|
||||
|
||||
struc du [args]
|
||||
{ common label . word
|
||||
du args }
|
||||
36
fasmw172/INCLUDE/ENCODING/WIN1255.INC
Normal file
36
fasmw172/INCLUDE/ENCODING/WIN1255.INC
Normal file
@@ -0,0 +1,36 @@
|
||||
|
||||
; Windows 1255
|
||||
|
||||
rept 1 { local ..encoding
|
||||
__encoding equ ..encoding }
|
||||
|
||||
virtual at 0
|
||||
__encoding::
|
||||
times 80h dw %-1
|
||||
dw 20ACh,?,201Ah,192h,201Eh,2026h,2020h,2021h,2C6h,2030h,?,2039h,?,?,?,?
|
||||
dw ?,2018h,2019h,201Ch,201Dh,2022h,2013h,2014h,2DCh,2122h,?,203Ah,?,?,?,?
|
||||
dw 0A0h,0A1h,0A2h,0A3h,20AAh,0A5h,0A6h,0A7h,0A8h,0A9h,0D7h,0ABh,0ACh,0ADh,0AEh,0AFh
|
||||
dw 0B0h,0B1h,0B2h,0B3h,0B4h,0B5h,0B6h,0B7h,0B8h,0B9h,0F7h,0BBh,0BCh,0BDh,0BEh,0BFh
|
||||
dw 5B0h,5B1h,5B2h,5B3h,5B4h,5B5h,5B6h,5B7h,5B8h,5B9h,?,5BBh,5BCh,5BDh,5BEh,5BFh
|
||||
dw 5C0h,5C1h,5C2h,5C3h,5F0h,5F1h,5F2h,5F3h,5F4h,?,?,?,?,?,?,?
|
||||
dw 5D0h,5D1h,5D2h,5D3h,5D4h,5D5h,5D6h,5D7h,5D8h,5D9h,5DAh,5DBh,5DCh,5DDh,5DEh,5DFh
|
||||
dw 5E0h,5E1h,5E2h,5E3h,5E4h,5E5h,5E6h,5E7h,5E8h,5E9h,5EAh,?,?,200Eh,200Fh,?
|
||||
end virtual
|
||||
|
||||
macro du [arg]
|
||||
{ local offset,char
|
||||
offset = $-$$
|
||||
du arg
|
||||
if arg eqtype ''
|
||||
repeat ($-offset-$$)/2
|
||||
load char byte from $$+offset+(%-1)*2
|
||||
if char > 7Fh
|
||||
load char word from __encoding:char*2
|
||||
store word char at $$+offset+(%-1)*2
|
||||
end if
|
||||
end repeat
|
||||
end if }
|
||||
|
||||
struc du [args]
|
||||
{ common label . word
|
||||
du args }
|
||||
36
fasmw172/INCLUDE/ENCODING/WIN1256.INC
Normal file
36
fasmw172/INCLUDE/ENCODING/WIN1256.INC
Normal file
@@ -0,0 +1,36 @@
|
||||
|
||||
; Windows 1256
|
||||
|
||||
rept 1 { local ..encoding
|
||||
__encoding equ ..encoding }
|
||||
|
||||
virtual at 0
|
||||
__encoding::
|
||||
times 80h dw %-1
|
||||
dw 20ACh,67Eh,201Ah,192h,201Eh,2026h,2020h,2021h,2C6h,2030h,679h,2039h,152h,686h,698h,688h
|
||||
dw 6AFh,2018h,2019h,201Ch,201Dh,2022h,2013h,2014h,6A9h,2122h,691h,203Ah,153h,200Ch,200Dh,6BAh
|
||||
dw 0A0h,60Ch,0A2h,0A3h,0A4h,0A5h,0A6h,0A7h,0A8h,0A9h,6BEh,0ABh,0ACh,0ADh,0AEh,0AFh
|
||||
dw 0B0h,0B1h,0B2h,0B3h,0B4h,0B5h,0B6h,0B7h,0B8h,0B9h,0BAh,0BBh,0BCh,0BDh,0BEh,0BFh
|
||||
dw 6C1h,621h,622h,623h,624h,625h,626h,627h,628h,629h,62Ah,62Bh,62Ch,62Dh,62Eh,62Fh
|
||||
dw 630h,631h,632h,633h,634h,635h,636h,0D7h,637h,638h,639h,63Ah,640h,641h,642h,643h
|
||||
dw 0E0h,644h,0E2h,645h,646h,647h,648h,0E7h,0E8h,0E9h,0EAh,0EBh,649h,64Ah,0EEh,0EFh
|
||||
dw 64Bh,64Ch,64Dh,64Eh,0F4h,64Fh,650h,0F7h,651h,0F9h,652h,0FBh,0FCh,200Eh,200Fh,6D2h
|
||||
end virtual
|
||||
|
||||
macro du [arg]
|
||||
{ local offset,char
|
||||
offset = $-$$
|
||||
du arg
|
||||
if arg eqtype ''
|
||||
repeat ($-offset-$$)/2
|
||||
load char byte from $$+offset+(%-1)*2
|
||||
if char > 7Fh
|
||||
load char word from __encoding:char*2
|
||||
store word char at $$+offset+(%-1)*2
|
||||
end if
|
||||
end repeat
|
||||
end if }
|
||||
|
||||
struc du [args]
|
||||
{ common label . word
|
||||
du args }
|
||||
36
fasmw172/INCLUDE/ENCODING/WIN1257.INC
Normal file
36
fasmw172/INCLUDE/ENCODING/WIN1257.INC
Normal file
@@ -0,0 +1,36 @@
|
||||
|
||||
; Windows 1257
|
||||
|
||||
rept 1 { local ..encoding
|
||||
__encoding equ ..encoding }
|
||||
|
||||
virtual at 0
|
||||
__encoding::
|
||||
times 80h dw %-1
|
||||
dw 20ACh,?,201Ah,?,201Eh,2026h,2020h,2021h,?,2030h,?,2039h,?,0A8h,2C7h,0B8h
|
||||
dw ?,2018h,2019h,201Ch,201Dh,2022h,2013h,2014h,?,2122h,?,203Ah,?,0AFh,2DBh,?
|
||||
dw 0A0h,?,0A2h,0A3h,0A4h,?,0A6h,0A7h,0D8h,0A9h,156h,0ABh,0ACh,0ADh,0AEh,0C6h
|
||||
dw 0B0h,0B1h,0B2h,0B3h,0B4h,0B5h,0B6h,0B7h,0F8h,0B9h,157h,0BBh,0BCh,0BDh,0BEh,0E6h
|
||||
dw 104h,12Eh,100h,106h,0C4h,0C5h,118h,112h,10Ch,0C9h,179h,116h,122h,136h,12Ah,13Bh
|
||||
dw 160h,143h,145h,0D3h,14Ch,0D5h,0D6h,0D7h,172h,141h,15Ah,16Ah,0DCh,17Bh,17Dh,0DFh
|
||||
dw 105h,12Fh,101h,107h,0E4h,0E5h,119h,113h,10Dh,0E9h,17Ah,117h,123h,137h,12Bh,13Ch
|
||||
dw 161h,144h,146h,0F3h,14Dh,0F5h,0F6h,0F7h,173h,142h,15Bh,16Bh,0FCh,17Ch,17Eh,2D9h
|
||||
end virtual
|
||||
|
||||
macro du [arg]
|
||||
{ local offset,char
|
||||
offset = $-$$
|
||||
du arg
|
||||
if arg eqtype ''
|
||||
repeat ($-offset-$$)/2
|
||||
load char byte from $$+offset+(%-1)*2
|
||||
if char > 7Fh
|
||||
load char word from __encoding:char*2
|
||||
store word char at $$+offset+(%-1)*2
|
||||
end if
|
||||
end repeat
|
||||
end if }
|
||||
|
||||
struc du [args]
|
||||
{ common label . word
|
||||
du args }
|
||||
36
fasmw172/INCLUDE/ENCODING/WIN1258.INC
Normal file
36
fasmw172/INCLUDE/ENCODING/WIN1258.INC
Normal file
@@ -0,0 +1,36 @@
|
||||
|
||||
; Windows 1258
|
||||
|
||||
rept 1 { local ..encoding
|
||||
__encoding equ ..encoding }
|
||||
|
||||
virtual at 0
|
||||
__encoding::
|
||||
times 80h dw %-1
|
||||
dw 20ACh,?,201Ah,192h,201Eh,2026h,2020h,2021h,2C6h,2030h,?,2039h,152h,?,?,?
|
||||
dw ?,2018h,2019h,201Ch,201Dh,2022h,2013h,2014h,2DCh,2122h,?,203Ah,153h,?,?,178h
|
||||
dw 0A0h,0A1h,0A2h,0A3h,0A4h,0A5h,0A6h,0A7h,0A8h,0A9h,0AAh,0ABh,0ACh,0ADh,0AEh,0AFh
|
||||
dw 0B0h,0B1h,0B2h,0B3h,0B4h,0B5h,0B6h,0B7h,0B8h,0B9h,0BAh,0BBh,0BCh,0BDh,0BEh,0BFh
|
||||
dw 0C0h,0C1h,0C2h,102h,0C4h,0C5h,0C6h,0C7h,0C8h,0C9h,0CAh,0CBh,300h,0CDh,0CEh,0CFh
|
||||
dw 110h,0D1h,309h,0D3h,0D4h,1A0h,0D6h,0D7h,0D8h,0D9h,0DAh,0DBh,0DCh,1AFh,303h,0DFh
|
||||
dw 0E0h,0E1h,0E2h,103h,0E4h,0E5h,0E6h,0E7h,0E8h,0E9h,0EAh,0EBh,301h,0EDh,0EEh,0EFh
|
||||
dw 111h,0F1h,323h,0F3h,0F4h,1A1h,0F6h,0F7h,0F8h,0F9h,0FAh,0FBh,0FCh,1B0h,20ABh,0FFh
|
||||
end virtual
|
||||
|
||||
macro du [arg]
|
||||
{ local offset,char
|
||||
offset = $-$$
|
||||
du arg
|
||||
if arg eqtype ''
|
||||
repeat ($-offset-$$)/2
|
||||
load char byte from $$+offset+(%-1)*2
|
||||
if char > 7Fh
|
||||
load char word from __encoding:char*2
|
||||
store word char at $$+offset+(%-1)*2
|
||||
end if
|
||||
end repeat
|
||||
end if }
|
||||
|
||||
struc du [args]
|
||||
{ common label . word
|
||||
du args }
|
||||
31
fasmw172/INCLUDE/ENCODING/WIN874.INC
Normal file
31
fasmw172/INCLUDE/ENCODING/WIN874.INC
Normal file
@@ -0,0 +1,31 @@
|
||||
|
||||
; Windows 874
|
||||
|
||||
rept 1 { local ..encoding
|
||||
__encoding equ ..encoding }
|
||||
|
||||
virtual at 0
|
||||
__encoding::
|
||||
times 80h dw %-1
|
||||
dw 20ACh,?,?,?,?,2026h,?,?,?,?,?,?,?,?,?,?
|
||||
dw ?,2018h,2019h,201Ch,201Dh,2022h,2013h,2014h,?,?,?,?,?,?,?,?
|
||||
times 60h dw 0E00h+%-1
|
||||
end virtual
|
||||
|
||||
macro du [arg]
|
||||
{ local offset,char
|
||||
offset = $-$$
|
||||
du arg
|
||||
if arg eqtype ''
|
||||
repeat ($-offset-$$)/2
|
||||
load char byte from $$+offset+(%-1)*2
|
||||
if char > 7Fh
|
||||
load char word from __encoding:char*2
|
||||
store word char at $$+offset+(%-1)*2
|
||||
end if
|
||||
end repeat
|
||||
end if }
|
||||
|
||||
struc du [args]
|
||||
{ common label . word
|
||||
du args }
|
||||
1869
fasmw172/INCLUDE/EQUATES/COMCTL32.INC
Normal file
1869
fasmw172/INCLUDE/EQUATES/COMCTL32.INC
Normal file
File diff suppressed because it is too large
Load Diff
1871
fasmw172/INCLUDE/EQUATES/COMCTL64.INC
Normal file
1871
fasmw172/INCLUDE/EQUATES/COMCTL64.INC
Normal file
File diff suppressed because it is too large
Load Diff
333
fasmw172/INCLUDE/EQUATES/COMDLG32.INC
Normal file
333
fasmw172/INCLUDE/EQUATES/COMDLG32.INC
Normal file
@@ -0,0 +1,333 @@
|
||||
|
||||
; COMDLG32.DLL structures and constants
|
||||
|
||||
struct OPENFILENAME
|
||||
lStructSize dd ?
|
||||
hwndOwner dd ?
|
||||
hInstance dd ?
|
||||
lpstrFilter dd ?
|
||||
lpstrCustomFilter dd ?
|
||||
nMaxCustFilter dd ?
|
||||
nFilterIndex dd ?
|
||||
lpstrFile dd ?
|
||||
nMaxFile dd ?
|
||||
lpstrFileTitle dd ?
|
||||
nMaxFileTitle dd ?
|
||||
lpstrInitialDir dd ?
|
||||
lpstrTitle dd ?
|
||||
Flags dd ?
|
||||
nFileOffset dw ?
|
||||
nFileExtension dw ?
|
||||
lpstrDefExt dd ?
|
||||
lCustData dd ?
|
||||
lpfnHook dd ?
|
||||
lpTemplateName dd ?
|
||||
ends
|
||||
|
||||
struct CHOOSECOLOR
|
||||
lStructSize dd ?
|
||||
hwndOwner dd ?
|
||||
hInstance dd ?
|
||||
rgbResult dd ?
|
||||
lpCustColors dd ?
|
||||
Flags dd ?
|
||||
lCustData dd ?
|
||||
lpfnHook dd ?
|
||||
lpTemplateName dd ?
|
||||
ends
|
||||
|
||||
struct FINDREPLACE
|
||||
lStructSize dd ?
|
||||
hwndOwner dd ?
|
||||
hInstance dd ?
|
||||
Flags dd ?
|
||||
lpstrFindWhat dd ?
|
||||
lpstrReplaceWith dd ?
|
||||
wFindWhatLen dw ?
|
||||
wReplaceWithLen dw ?
|
||||
lCustData dd ?
|
||||
lpfnHook dd ?
|
||||
lpTemplateName dd ?
|
||||
ends
|
||||
|
||||
struct CHOOSEFONT
|
||||
lStructSize dd ?
|
||||
hwndOwner dd ?
|
||||
hDC dd ?
|
||||
lpLogFont dd ?
|
||||
iPointSize dd ?
|
||||
Flags dd ?
|
||||
rgbColors dd ?
|
||||
lCustData dd ?
|
||||
lpfnHook dd ?
|
||||
lpTemplateName dd ?
|
||||
hInstance dd ?
|
||||
lpszStyle dd ?
|
||||
nFontType dw ?
|
||||
wReserved dw ?
|
||||
nSizeMin dd ?
|
||||
nSizeMax dd ?
|
||||
ends
|
||||
|
||||
struct PRINTDLG
|
||||
lStructSize dd ?
|
||||
hwndOwner dd ?
|
||||
hDevMode dd ?
|
||||
hDevNames dd ?
|
||||
hDC dd ?
|
||||
Flags dd ?
|
||||
nFromPage dw ?
|
||||
nToPage dw ?
|
||||
nMinPage dw ?
|
||||
nMaxPage dw ?
|
||||
nCopies dw ?
|
||||
hInstance dd ?
|
||||
lCustData dd ?
|
||||
lpfnPrintHook dd ?
|
||||
lpfnSetupHook dd ?
|
||||
lpPrintTemplateName dd ?
|
||||
lpSetupTemplateName dd ?
|
||||
hPrintTemplate dd ?
|
||||
hSetupTemplate dd ?
|
||||
ends
|
||||
|
||||
struct DEVNAMES
|
||||
wDriverOffset dw ?
|
||||
wDeviceOffset dw ?
|
||||
wOutputOffset dw ?
|
||||
wDefault dw ?
|
||||
ends
|
||||
|
||||
struct PAGESETUPDLG
|
||||
lStructSize dd ?
|
||||
hwndOwner dd ?
|
||||
hDevMode dd ?
|
||||
hDevNames dd ?
|
||||
Flags dd ?
|
||||
ptPaperSize POINT
|
||||
rtMinMargin RECT
|
||||
rtMargin RECT
|
||||
hInstance dd ?
|
||||
lCustData dd ?
|
||||
lpfnPageSetupHook dd ?
|
||||
lpfnPagePaintHook dd ?
|
||||
lpPageSetupTemplateName dd ?
|
||||
hPageSetupTemplate dd ?
|
||||
ends
|
||||
|
||||
; OPENFILENAME flags
|
||||
|
||||
OFN_READONLY = 000001h
|
||||
OFN_OVERWRITEPROMPT = 000002h
|
||||
OFN_HIDEREADONLY = 000004h
|
||||
OFN_NOCHANGEDIR = 000008h
|
||||
OFN_SHOWHELP = 000010h
|
||||
OFN_ENABLEHOOK = 000020h
|
||||
OFN_ENABLETEMPLATE = 000040h
|
||||
OFN_ENABLETEMPLATEHANDLE = 000080h
|
||||
OFN_NOVALIDATE = 000100h
|
||||
OFN_ALLOWMULTISELECT = 000200h
|
||||
OFN_EXTENSIONDIFFERENT = 000400h
|
||||
OFN_PATHMUSTEXIST = 000800h
|
||||
OFN_FILEMUSTEXIST = 001000h
|
||||
OFN_CREATEPROMPT = 002000h
|
||||
OFN_SHAREAWARE = 004000h
|
||||
OFN_NOREADONLYRETURN = 008000h
|
||||
OFN_NOTESTFILECREATE = 010000h
|
||||
OFN_NONETWORKBUTTON = 020000h
|
||||
OFN_NOLONGNAMES = 040000h
|
||||
OFN_EXPLORER = 080000h
|
||||
OFN_NODEREFERENCELINKS = 100000h
|
||||
OFN_LONGNAMES = 200000h
|
||||
|
||||
; Common dialog notifications
|
||||
|
||||
CDN_FIRST = -601
|
||||
CDN_LAST = -699
|
||||
CDN_INITDONE = CDN_FIRST - 0
|
||||
CDN_SELCHANGE = CDN_FIRST - 1
|
||||
CDN_FOLDERCHANGE = CDN_FIRST - 2
|
||||
CDN_SHAREVIOLATION = CDN_FIRST - 3
|
||||
CDN_HELP = CDN_FIRST - 4
|
||||
CDN_FILEOK = CDN_FIRST - 5
|
||||
CDN_TYPECHANGE = CDN_FIRST - 6
|
||||
|
||||
; Common dialog messages
|
||||
|
||||
CDM_FIRST = WM_USER + 100
|
||||
CDM_LAST = WM_USER + 200
|
||||
CDM_GETSPEC = CDM_FIRST + 0
|
||||
CDM_GETFILEPATH = CDM_FIRST + 1
|
||||
CDM_GETFOLDERPATH = CDM_FIRST + 2
|
||||
CDM_GETFOLDERIDLIST = CDM_FIRST + 3
|
||||
CDM_SETCONTROLTEXT = CDM_FIRST + 4
|
||||
CDM_HIDECONTROL = CDM_FIRST + 5
|
||||
CDM_SETDEFEXT = CDM_FIRST + 6
|
||||
|
||||
; CHOOSECOLOR flags
|
||||
|
||||
CC_RGBINIT = 001h
|
||||
CC_FULLOPEN = 002h
|
||||
CC_PREVENTFULLOPEN = 004h
|
||||
CC_SHOWHELP = 008h
|
||||
CC_ENABLEHOOK = 010h
|
||||
CC_ENABLETEMPLATE = 020h
|
||||
CC_ENABLETEMPLATEHANDLE = 040h
|
||||
CC_SOLIDCOLOR = 080h
|
||||
CC_ANYCOLOR = 100h
|
||||
|
||||
; FINDREPLACE flags
|
||||
|
||||
FR_DOWN = 00001h
|
||||
FR_WHOLEWORD = 00002h
|
||||
FR_MATCHCASE = 00004h
|
||||
FR_FINDNEXT = 00008h
|
||||
FR_REPLACE = 00010h
|
||||
FR_REPLACEALL = 00020h
|
||||
FR_DIALOGTERM = 00040h
|
||||
FR_SHOWHELP = 00080h
|
||||
FR_ENABLEHOOK = 00100h
|
||||
FR_ENABLETEMPLATE = 00200h
|
||||
FR_NOUPDOWN = 00400h
|
||||
FR_NOMATCHCASE = 00800h
|
||||
FR_NOWHOLEWORD = 01000h
|
||||
FR_ENABLETEMPLATEHANDLE = 02000h
|
||||
FR_HIDEUPDOWN = 04000h
|
||||
FR_HIDEMATCHCASE = 08000h
|
||||
FR_HIDEWHOLEWORD = 10000h
|
||||
|
||||
; CHOOSEFONT flags
|
||||
|
||||
CF_SCREENFONTS = 0000001h
|
||||
CF_PRINTERFONTS = 0000002h
|
||||
CF_BOTH = CF_SCREENFONTS or CF_PRINTERFONTS
|
||||
CF_SHOWHELP = 0000004h
|
||||
CF_ENABLEHOOK = 0000008h
|
||||
CF_ENABLETEMPLATE = 0000010h
|
||||
CF_ENABLETEMPLATEHANDLE = 0000020h
|
||||
CF_INITTOLOGFONTSTRUCT = 0000040h
|
||||
CF_USESTYLE = 0000080h
|
||||
CF_EFFECTS = 0000100h
|
||||
CF_APPLY = 0000200h
|
||||
CF_ANSIONLY = 0000400h
|
||||
CF_SCRIPTSONLY = CF_ANSIONLY
|
||||
CF_NOVECTORFONTS = 0000800h
|
||||
CF_NOOEMFONTS = CF_NOVECTORFONTS
|
||||
CF_NOSIMULATIONS = 0001000h
|
||||
CF_LIMITSIZE = 0002000h
|
||||
CF_FIXEDPITCHONLY = 0004000h
|
||||
CF_WYSIWYG = 0008000h
|
||||
CF_FORCEFONTEXIST = 0010000h
|
||||
CF_SCALABLEONLY = 0020000h
|
||||
CF_TTONLY = 0040000h
|
||||
CF_NOFACESEL = 0080000h
|
||||
CF_NOSTYLESEL = 0100000h
|
||||
CF_NOSIZESEL = 0200000h
|
||||
CF_SELECTSCRIPT = 0400000h
|
||||
CF_NOSCRIPTSEL = 0800000h
|
||||
CF_NOVERTFONTS = 1000000h
|
||||
|
||||
; ChooseFont messages
|
||||
|
||||
WM_CHOOSEFONT_GETLOGFONT = WM_USER + 1
|
||||
WM_CHOOSEFONT_SETLOGFONT = WM_USER + 101
|
||||
WM_CHOOSEFONT_SETFLAGS = WM_USER + 102
|
||||
|
||||
; PRINTDLG flags
|
||||
|
||||
PD_ALLPAGES = 000000h
|
||||
PD_SELECTION = 000001h
|
||||
PD_PAGENUMS = 000002h
|
||||
PD_NOSELECTION = 000004h
|
||||
PD_NOPAGENUMS = 000008h
|
||||
PD_COLLATE = 000010h
|
||||
PD_PRINTTOFILE = 000020h
|
||||
PD_PRINTSETUP = 000040h
|
||||
PD_NOWARNING = 000080h
|
||||
PD_RETURNDC = 000100h
|
||||
PD_RETURNIC = 000200h
|
||||
PD_RETURNDEFAULT = 000400h
|
||||
PD_SHOWHELP = 000800h
|
||||
PD_ENABLEPRINTHOOK = 001000h
|
||||
PD_ENABLESETUPHOOK = 002000h
|
||||
PD_ENABLEPRINTTEMPLATE = 004000h
|
||||
PD_ENABLESETUPTEMPLATE = 008000h
|
||||
PD_ENABLEPRINTTEMPLATEHANDLE = 010000h
|
||||
PD_ENABLESETUPTEMPLATEHANDLE = 020000h
|
||||
PD_USEDEVMODECOPIES = 040000h
|
||||
PD_USEDEVMODECOPIESANDCOLLATE = 040000h
|
||||
PD_DISABLEPRINTTOFILE = 080000h
|
||||
PD_HIDEPRINTTOFILE = 100000h
|
||||
PD_NONETWORKBUTTON = 200000h
|
||||
|
||||
; PAGESETUPDLG flags
|
||||
|
||||
PSD_DEFAULTMINMARGINS = 000000h
|
||||
PSD_INWININIINTLMEASURE = 000000h
|
||||
PSD_MINMARGINS = 000001h
|
||||
PSD_MARGINS = 000002h
|
||||
PSD_INTHOUSANDTHSOFINCHES = 000004h
|
||||
PSD_INHUNDREDTHSOFMILLIMETERS = 000008h
|
||||
PSD_DISABLEMARGINS = 000010h
|
||||
PSD_DISABLEPRINTER = 000020h
|
||||
PSD_NOWARNING = 000080h
|
||||
PSD_DISABLEORIENTATION = 000100h
|
||||
PSD_RETURNDEFAULT = 000400h
|
||||
PSD_DISABLEPAPER = 000200h
|
||||
PSD_SHOWHELP = 000800h
|
||||
PSD_ENABLEPAGESETUPHOOK = 002000h
|
||||
PSD_ENABLEPAGESETUPTEMPLATE = 008000h
|
||||
PSD_ENABLEPAGESETUPTEMPLATEHANDLE = 020000h
|
||||
PSD_ENABLEPAGEPAINTHOOK = 040000h
|
||||
PSD_DISABLEPAGEPAINTING = 080000h
|
||||
PSD_NONETWORKBUTTON = 200000h
|
||||
|
||||
; PageSetupDlg messages
|
||||
|
||||
WM_PSD_PAGESETUPDLG = WM_USER
|
||||
WM_PSD_FULLPAGERECT = WM_USER + 1
|
||||
WM_PSD_MINMARGINRECT = WM_USER + 2
|
||||
WM_PSD_MARGINRECT = WM_USER + 3
|
||||
WM_PSD_GREEKTEXTRECT = WM_USER + 4
|
||||
WM_PSD_ENVSTAMPRECT = WM_USER + 5
|
||||
WM_PSD_YAFULLPAGERECT = WM_USER + 6
|
||||
|
||||
; Common dialog error codes
|
||||
|
||||
CDERR_DIALOGFAILURE = 0FFFFh
|
||||
CDERR_GENERALCODES = 00000h
|
||||
CDERR_STRUCTSIZE = 00001h
|
||||
CDERR_INITIALIZATION = 00002h
|
||||
CDERR_NOTEMPLATE = 00003h
|
||||
CDERR_NOHINSTANCE = 00004h
|
||||
CDERR_LOADSTRFAILURE = 00005h
|
||||
CDERR_FINDRESFAILURE = 00006h
|
||||
CDERR_LOADRESFAILURE = 00007h
|
||||
CDERR_LOCKRESFAILURE = 00008h
|
||||
CDERR_MEMALLOCFAILURE = 00009h
|
||||
CDERR_MEMLOCKFAILURE = 0000Ah
|
||||
CDERR_NOHOOK = 0000Bh
|
||||
CDERR_REGISTERMSGFAIL = 0000Ch
|
||||
PDERR_PRINTERCODES = 01000h
|
||||
PDERR_SETUPFAILURE = 01001h
|
||||
PDERR_PARSEFAILURE = 01002h
|
||||
PDERR_RETDEFFAILURE = 01003h
|
||||
PDERR_LOADDRVFAILURE = 01004h
|
||||
PDERR_GETDEVMODEFAIL = 01005h
|
||||
PDERR_INITFAILURE = 01006h
|
||||
PDERR_NODEVICES = 01007h
|
||||
PDERR_NODEFAULTPRN = 01008h
|
||||
PDERR_DNDMMISMATCH = 01009h
|
||||
PDERR_CREATEICFAILURE = 0100Ah
|
||||
PDERR_PRINTERNOTFOUND = 0100Bh
|
||||
PDERR_DEFAULTDIFFERENT = 0100Ch
|
||||
CFERR_CHOOSEFONTCODES = 02000h
|
||||
CFERR_NOFONTS = 02001h
|
||||
CFERR_MAXLESSTHANMIN = 02002h
|
||||
FNERR_FILENAMECODES = 03000h
|
||||
FNERR_SUBCLASSFAILURE = 03001h
|
||||
FNERR_INVALIDFILENAME = 03002h
|
||||
FNERR_BUFFERTOOSMALL = 03003h
|
||||
FRERR_FINDREPLACECODES = 04000h
|
||||
FRERR_BUFFERLENGTHZERO = 04001h
|
||||
CCERR_CHOOSECOLORCODES = 05000h
|
||||
334
fasmw172/INCLUDE/EQUATES/COMDLG64.INC
Normal file
334
fasmw172/INCLUDE/EQUATES/COMDLG64.INC
Normal file
@@ -0,0 +1,334 @@
|
||||
|
||||
; COMDLG32.DLL structures and constants
|
||||
|
||||
struct OPENFILENAME
|
||||
lStructSize dd ?,?
|
||||
hwndOwner dq ?
|
||||
hInstance dq ?
|
||||
lpstrFilter dq ?
|
||||
lpstrCustomFilter dq ?
|
||||
nMaxCustFilter dd ?
|
||||
nFilterIndex dd ?
|
||||
lpstrFile dq ?
|
||||
nMaxFile dd ?,?
|
||||
lpstrFileTitle dq ?
|
||||
nMaxFileTitle dd ?,?
|
||||
lpstrInitialDir dq ?
|
||||
lpstrTitle dq ?
|
||||
Flags dd ?
|
||||
nFileOffset dw ?
|
||||
nFileExtension dw ?
|
||||
lpstrDefExt dq ?
|
||||
lCustData dd ?,?
|
||||
lpfnHook dq ?
|
||||
lpTemplateName dq ?
|
||||
ends
|
||||
|
||||
struct CHOOSECOLOR
|
||||
lStructSize dd ?,?
|
||||
hwndOwner dq ?
|
||||
hInstance dq ?
|
||||
rgbResult dd ?,?
|
||||
lpCustColors dq ?
|
||||
Flags dd ?
|
||||
lCustData dd ?,?
|
||||
lpfnHook dq ?
|
||||
lpTemplateName dq ?
|
||||
ends
|
||||
|
||||
struct FINDREPLACE
|
||||
lStructSize dd ?,?
|
||||
hwndOwner dq ?
|
||||
hInstance dq ?
|
||||
Flags dd ?,?
|
||||
lpstrFindWhat dq ?
|
||||
lpstrReplaceWith dq ?
|
||||
wFindWhatLen dw ?
|
||||
wReplaceWithLen dw ?
|
||||
lCustData dd ?
|
||||
lpfnHook dq ?
|
||||
lpTemplateName dq ?
|
||||
ends
|
||||
|
||||
struct CHOOSEFONT
|
||||
lStructSize dd ?,?
|
||||
hwndOwner dq ?
|
||||
hDC dq ?
|
||||
lpLogFont dq ?
|
||||
iPointSize dd ?
|
||||
Flags dd ?
|
||||
rgbColors dd ?
|
||||
lCustData dd ?
|
||||
lpfnHook dq ?
|
||||
lpTemplateName dq ?
|
||||
hInstance dq ?
|
||||
lpszStyle dq ?
|
||||
nFontType dw ?
|
||||
wReserved dw ?
|
||||
nSizeMin dd ?
|
||||
nSizeMax dd ?
|
||||
ends
|
||||
|
||||
struct PRINTDLG
|
||||
lStructSize dd ?,?
|
||||
hwndOwner dq ?
|
||||
hDevMode dq ?
|
||||
hDevNames dq ?
|
||||
hDC dq ?
|
||||
Flags dd ?
|
||||
nFromPage dw ?
|
||||
nToPage dw ?
|
||||
nMinPage dw ?
|
||||
nMaxPage dw ?
|
||||
nCopies dw ?,?
|
||||
hInstance dq ?
|
||||
lCustData dd ?
|
||||
lpfnPrintHook dq ?
|
||||
lpfnSetupHook dq ?
|
||||
lpPrintTemplateName dq ?
|
||||
lpSetupTemplateName dq ?
|
||||
hPrintTemplate dq ?
|
||||
hSetupTemplate dq ?
|
||||
ends
|
||||
|
||||
struct DEVNAMES
|
||||
wDriverOffset dw ?
|
||||
wDeviceOffset dw ?
|
||||
wOutputOffset dw ?
|
||||
wDefault dw ?
|
||||
ends
|
||||
|
||||
struct PAGESETUPDLG
|
||||
lStructSize dd ?,?
|
||||
hwndOwner dq ?
|
||||
hDevMode dq ?
|
||||
hDevNames dq ?
|
||||
Flags dd ?
|
||||
ptPaperSize POINT
|
||||
rtMinMargin RECT
|
||||
rtMargin RECT
|
||||
dd ?
|
||||
hInstance dq ?
|
||||
lCustData dd ?,?
|
||||
lpfnPageSetupHook dq ?
|
||||
lpfnPagePaintHook dq ?
|
||||
lpPageSetupTemplateName dq ?
|
||||
hPageSetupTemplate dq ?
|
||||
ends
|
||||
|
||||
; OPENFILENAME flags
|
||||
|
||||
OFN_READONLY = 000001h
|
||||
OFN_OVERWRITEPROMPT = 000002h
|
||||
OFN_HIDEREADONLY = 000004h
|
||||
OFN_NOCHANGEDIR = 000008h
|
||||
OFN_SHOWHELP = 000010h
|
||||
OFN_ENABLEHOOK = 000020h
|
||||
OFN_ENABLETEMPLATE = 000040h
|
||||
OFN_ENABLETEMPLATEHANDLE = 000080h
|
||||
OFN_NOVALIDATE = 000100h
|
||||
OFN_ALLOWMULTISELECT = 000200h
|
||||
OFN_EXTENSIONDIFFERENT = 000400h
|
||||
OFN_PATHMUSTEXIST = 000800h
|
||||
OFN_FILEMUSTEXIST = 001000h
|
||||
OFN_CREATEPROMPT = 002000h
|
||||
OFN_SHAREAWARE = 004000h
|
||||
OFN_NOREADONLYRETURN = 008000h
|
||||
OFN_NOTESTFILECREATE = 010000h
|
||||
OFN_NONETWORKBUTTON = 020000h
|
||||
OFN_NOLONGNAMES = 040000h
|
||||
OFN_EXPLORER = 080000h
|
||||
OFN_NODEREFERENCELINKS = 100000h
|
||||
OFN_LONGNAMES = 200000h
|
||||
|
||||
; Common dialog notifications
|
||||
|
||||
CDN_FIRST = -601
|
||||
CDN_LAST = -699
|
||||
CDN_INITDONE = CDN_FIRST - 0
|
||||
CDN_SELCHANGE = CDN_FIRST - 1
|
||||
CDN_FOLDERCHANGE = CDN_FIRST - 2
|
||||
CDN_SHAREVIOLATION = CDN_FIRST - 3
|
||||
CDN_HELP = CDN_FIRST - 4
|
||||
CDN_FILEOK = CDN_FIRST - 5
|
||||
CDN_TYPECHANGE = CDN_FIRST - 6
|
||||
|
||||
; Common dialog messages
|
||||
|
||||
CDM_FIRST = WM_USER + 100
|
||||
CDM_LAST = WM_USER + 200
|
||||
CDM_GETSPEC = CDM_FIRST + 0
|
||||
CDM_GETFILEPATH = CDM_FIRST + 1
|
||||
CDM_GETFOLDERPATH = CDM_FIRST + 2
|
||||
CDM_GETFOLDERIDLIST = CDM_FIRST + 3
|
||||
CDM_SETCONTROLTEXT = CDM_FIRST + 4
|
||||
CDM_HIDECONTROL = CDM_FIRST + 5
|
||||
CDM_SETDEFEXT = CDM_FIRST + 6
|
||||
|
||||
; CHOOSECOLOR flags
|
||||
|
||||
CC_RGBINIT = 001h
|
||||
CC_FULLOPEN = 002h
|
||||
CC_PREVENTFULLOPEN = 004h
|
||||
CC_SHOWHELP = 008h
|
||||
CC_ENABLEHOOK = 010h
|
||||
CC_ENABLETEMPLATE = 020h
|
||||
CC_ENABLETEMPLATEHANDLE = 040h
|
||||
CC_SOLIDCOLOR = 080h
|
||||
CC_ANYCOLOR = 100h
|
||||
|
||||
; FINDREPLACE flags
|
||||
|
||||
FR_DOWN = 00001h
|
||||
FR_WHOLEWORD = 00002h
|
||||
FR_MATCHCASE = 00004h
|
||||
FR_FINDNEXT = 00008h
|
||||
FR_REPLACE = 00010h
|
||||
FR_REPLACEALL = 00020h
|
||||
FR_DIALOGTERM = 00040h
|
||||
FR_SHOWHELP = 00080h
|
||||
FR_ENABLEHOOK = 00100h
|
||||
FR_ENABLETEMPLATE = 00200h
|
||||
FR_NOUPDOWN = 00400h
|
||||
FR_NOMATCHCASE = 00800h
|
||||
FR_NOWHOLEWORD = 01000h
|
||||
FR_ENABLETEMPLATEHANDLE = 02000h
|
||||
FR_HIDEUPDOWN = 04000h
|
||||
FR_HIDEMATCHCASE = 08000h
|
||||
FR_HIDEWHOLEWORD = 10000h
|
||||
|
||||
; CHOOSEFONT flags
|
||||
|
||||
CF_SCREENFONTS = 0000001h
|
||||
CF_PRINTERFONTS = 0000002h
|
||||
CF_BOTH = CF_SCREENFONTS or CF_PRINTERFONTS
|
||||
CF_SHOWHELP = 0000004h
|
||||
CF_ENABLEHOOK = 0000008h
|
||||
CF_ENABLETEMPLATE = 0000010h
|
||||
CF_ENABLETEMPLATEHANDLE = 0000020h
|
||||
CF_INITTOLOGFONTSTRUCT = 0000040h
|
||||
CF_USESTYLE = 0000080h
|
||||
CF_EFFECTS = 0000100h
|
||||
CF_APPLY = 0000200h
|
||||
CF_ANSIONLY = 0000400h
|
||||
CF_SCRIPTSONLY = CF_ANSIONLY
|
||||
CF_NOVECTORFONTS = 0000800h
|
||||
CF_NOOEMFONTS = CF_NOVECTORFONTS
|
||||
CF_NOSIMULATIONS = 0001000h
|
||||
CF_LIMITSIZE = 0002000h
|
||||
CF_FIXEDPITCHONLY = 0004000h
|
||||
CF_WYSIWYG = 0008000h
|
||||
CF_FORCEFONTEXIST = 0010000h
|
||||
CF_SCALABLEONLY = 0020000h
|
||||
CF_TTONLY = 0040000h
|
||||
CF_NOFACESEL = 0080000h
|
||||
CF_NOSTYLESEL = 0100000h
|
||||
CF_NOSIZESEL = 0200000h
|
||||
CF_SELECTSCRIPT = 0400000h
|
||||
CF_NOSCRIPTSEL = 0800000h
|
||||
CF_NOVERTFONTS = 1000000h
|
||||
|
||||
; ChooseFont messages
|
||||
|
||||
WM_CHOOSEFONT_GETLOGFONT = WM_USER + 1
|
||||
WM_CHOOSEFONT_SETLOGFONT = WM_USER + 101
|
||||
WM_CHOOSEFONT_SETFLAGS = WM_USER + 102
|
||||
|
||||
; PRINTDLG flags
|
||||
|
||||
PD_ALLPAGES = 000000h
|
||||
PD_SELECTION = 000001h
|
||||
PD_PAGENUMS = 000002h
|
||||
PD_NOSELECTION = 000004h
|
||||
PD_NOPAGENUMS = 000008h
|
||||
PD_COLLATE = 000010h
|
||||
PD_PRINTTOFILE = 000020h
|
||||
PD_PRINTSETUP = 000040h
|
||||
PD_NOWARNING = 000080h
|
||||
PD_RETURNDC = 000100h
|
||||
PD_RETURNIC = 000200h
|
||||
PD_RETURNDEFAULT = 000400h
|
||||
PD_SHOWHELP = 000800h
|
||||
PD_ENABLEPRINTHOOK = 001000h
|
||||
PD_ENABLESETUPHOOK = 002000h
|
||||
PD_ENABLEPRINTTEMPLATE = 004000h
|
||||
PD_ENABLESETUPTEMPLATE = 008000h
|
||||
PD_ENABLEPRINTTEMPLATEHANDLE = 010000h
|
||||
PD_ENABLESETUPTEMPLATEHANDLE = 020000h
|
||||
PD_USEDEVMODECOPIES = 040000h
|
||||
PD_USEDEVMODECOPIESANDCOLLATE = 040000h
|
||||
PD_DISABLEPRINTTOFILE = 080000h
|
||||
PD_HIDEPRINTTOFILE = 100000h
|
||||
PD_NONETWORKBUTTON = 200000h
|
||||
|
||||
; PAGESETUPDLG flags
|
||||
|
||||
PSD_DEFAULTMINMARGINS = 000000h
|
||||
PSD_INWININIINTLMEASURE = 000000h
|
||||
PSD_MINMARGINS = 000001h
|
||||
PSD_MARGINS = 000002h
|
||||
PSD_INTHOUSANDTHSOFINCHES = 000004h
|
||||
PSD_INHUNDREDTHSOFMILLIMETERS = 000008h
|
||||
PSD_DISABLEMARGINS = 000010h
|
||||
PSD_DISABLEPRINTER = 000020h
|
||||
PSD_NOWARNING = 000080h
|
||||
PSD_DISABLEORIENTATION = 000100h
|
||||
PSD_RETURNDEFAULT = 000400h
|
||||
PSD_DISABLEPAPER = 000200h
|
||||
PSD_SHOWHELP = 000800h
|
||||
PSD_ENABLEPAGESETUPHOOK = 002000h
|
||||
PSD_ENABLEPAGESETUPTEMPLATE = 008000h
|
||||
PSD_ENABLEPAGESETUPTEMPLATEHANDLE = 020000h
|
||||
PSD_ENABLEPAGEPAINTHOOK = 040000h
|
||||
PSD_DISABLEPAGEPAINTING = 080000h
|
||||
PSD_NONETWORKBUTTON = 200000h
|
||||
|
||||
; PageSetupDlg messages
|
||||
|
||||
WM_PSD_PAGESETUPDLG = WM_USER
|
||||
WM_PSD_FULLPAGERECT = WM_USER + 1
|
||||
WM_PSD_MINMARGINRECT = WM_USER + 2
|
||||
WM_PSD_MARGINRECT = WM_USER + 3
|
||||
WM_PSD_GREEKTEXTRECT = WM_USER + 4
|
||||
WM_PSD_ENVSTAMPRECT = WM_USER + 5
|
||||
WM_PSD_YAFULLPAGERECT = WM_USER + 6
|
||||
|
||||
; Common dialog error codes
|
||||
|
||||
CDERR_DIALOGFAILURE = 0FFFFh
|
||||
CDERR_GENERALCODES = 00000h
|
||||
CDERR_STRUCTSIZE = 00001h
|
||||
CDERR_INITIALIZATION = 00002h
|
||||
CDERR_NOTEMPLATE = 00003h
|
||||
CDERR_NOHINSTANCE = 00004h
|
||||
CDERR_LOADSTRFAILURE = 00005h
|
||||
CDERR_FINDRESFAILURE = 00006h
|
||||
CDERR_LOADRESFAILURE = 00007h
|
||||
CDERR_LOCKRESFAILURE = 00008h
|
||||
CDERR_MEMALLOCFAILURE = 00009h
|
||||
CDERR_MEMLOCKFAILURE = 0000Ah
|
||||
CDERR_NOHOOK = 0000Bh
|
||||
CDERR_REGISTERMSGFAIL = 0000Ch
|
||||
PDERR_PRINTERCODES = 01000h
|
||||
PDERR_SETUPFAILURE = 01001h
|
||||
PDERR_PARSEFAILURE = 01002h
|
||||
PDERR_RETDEFFAILURE = 01003h
|
||||
PDERR_LOADDRVFAILURE = 01004h
|
||||
PDERR_GETDEVMODEFAIL = 01005h
|
||||
PDERR_INITFAILURE = 01006h
|
||||
PDERR_NODEVICES = 01007h
|
||||
PDERR_NODEFAULTPRN = 01008h
|
||||
PDERR_DNDMMISMATCH = 01009h
|
||||
PDERR_CREATEICFAILURE = 0100Ah
|
||||
PDERR_PRINTERNOTFOUND = 0100Bh
|
||||
PDERR_DEFAULTDIFFERENT = 0100Ch
|
||||
CFERR_CHOOSEFONTCODES = 02000h
|
||||
CFERR_NOFONTS = 02001h
|
||||
CFERR_MAXLESSTHANMIN = 02002h
|
||||
FNERR_FILENAMECODES = 03000h
|
||||
FNERR_SUBCLASSFAILURE = 03001h
|
||||
FNERR_INVALIDFILENAME = 03002h
|
||||
FNERR_BUFFERTOOSMALL = 03003h
|
||||
FRERR_FINDREPLACECODES = 04000h
|
||||
FRERR_BUFFERLENGTHZERO = 04001h
|
||||
CCERR_CHOOSECOLORCODES = 05000h
|
||||
480
fasmw172/INCLUDE/EQUATES/GDI32.INC
Normal file
480
fasmw172/INCLUDE/EQUATES/GDI32.INC
Normal file
@@ -0,0 +1,480 @@
|
||||
|
||||
; GDI32.DLL structures and constants
|
||||
|
||||
struct SIZE
|
||||
cx dd ?
|
||||
cy dd ?
|
||||
ends
|
||||
|
||||
struct BITMAP
|
||||
bmType dd ?
|
||||
bmWidth dd ?
|
||||
bmHeight dd ?
|
||||
bmWidthBytes dd ?
|
||||
bmPlanes dw ?
|
||||
bmBitsPixel dw ?
|
||||
bmBits dd ?
|
||||
ends
|
||||
|
||||
struct BITMAPCOREHEADER
|
||||
bcSize dd ?
|
||||
bcWidth dw ?
|
||||
bcHeight dw ?
|
||||
bcPlanes dw ?
|
||||
bcBitCount dw ?
|
||||
ends
|
||||
|
||||
struct BITMAPINFOHEADER
|
||||
biSize dd ?
|
||||
biWidth dd ?
|
||||
biHeight dd ?
|
||||
biPlanes dw ?
|
||||
biBitCount dw ?
|
||||
biCompression dd ?
|
||||
biSizeImage dd ?
|
||||
biXPelsPerMeter dd ?
|
||||
biYPelsPerMeter dd ?
|
||||
biClrUsed dd ?
|
||||
biClrImportant dd ?
|
||||
ends
|
||||
|
||||
struct BITMAPFILEHEADER
|
||||
bfType dw ?
|
||||
bfSize dd ?
|
||||
bfReserved1 dw ?
|
||||
bfReserved2 dw ?
|
||||
bfOffBits dd ?
|
||||
ends
|
||||
|
||||
struct TEXTMETRIC
|
||||
tmHeight dd ?
|
||||
tmAscent dd ?
|
||||
tmDescent dd ?
|
||||
tmInternalLeading dd ?
|
||||
tmExternalLeading dd ?
|
||||
tmAveCharWidth dd ?
|
||||
tmMaxCharWidth dd ?
|
||||
tmWeight dd ?
|
||||
tmOverhang dd ?
|
||||
tmDigitizedAspectX dd ?
|
||||
tmDigitizedAspectY dd ?
|
||||
tmFirstChar TCHAR ?
|
||||
tmLastChar TCHAR ?
|
||||
tmDefaultChar TCHAR ?
|
||||
tmBreakChar TCHAR ?
|
||||
tmItalic db ?
|
||||
tmUnderlined db ?
|
||||
tmStruckOut db ?
|
||||
tmPitchAndFamily db ?
|
||||
tmCharSet db ?
|
||||
ends
|
||||
|
||||
struct LOGBRUSH
|
||||
lbStyle dd ?
|
||||
lbColor dd ?
|
||||
lbHatch dd ?
|
||||
ends
|
||||
|
||||
struct LOGPEN
|
||||
lopnStyle dd ?
|
||||
lopnWidth POINT
|
||||
lopnColor dd ?
|
||||
ends
|
||||
|
||||
struct EXTLOGPEN
|
||||
elpPenStyle dd ?
|
||||
elpWidth dd ?
|
||||
elpBrushStyle dd ?
|
||||
elpColor dd ?
|
||||
elpHatch dd ?
|
||||
elpNumEntries dd ?
|
||||
elpStyleEntry dd ?
|
||||
ends
|
||||
|
||||
struct LOGFONT
|
||||
lfHeight dd ?
|
||||
lfWidth dd ?
|
||||
lfEscapement dd ?
|
||||
lfOrientation dd ?
|
||||
lfWeight dd ?
|
||||
lfItalic db ?
|
||||
lfUnderline db ?
|
||||
lfStrikeOut db ?
|
||||
lfCharSet db ?
|
||||
lfOutPrecision db ?
|
||||
lfClipPrecision db ?
|
||||
lfQuality db ?
|
||||
lfPitchAndFamily db ?
|
||||
lfFaceName TCHAR 32 dup (?)
|
||||
ends
|
||||
|
||||
struct ENUMLOGFONT
|
||||
elfLogFont LOGFONT
|
||||
elfFullName TCHAR 64 dup (?)
|
||||
elfStyle TCHAR 32 dup (?)
|
||||
ends
|
||||
|
||||
struct ENUMLOGFONTEX
|
||||
elfLogFont LOGFONT
|
||||
elfFullName TCHAR 64 dup (?)
|
||||
elfStyle TCHAR 32 dup (?)
|
||||
elfScript TCHAR 32 dup (?)
|
||||
ends
|
||||
|
||||
struct PIXELFORMATDESCRIPTOR
|
||||
nSize dw ?
|
||||
nVersion dw ?
|
||||
dwFlags dd ?
|
||||
iPixelType db ?
|
||||
cColorBits db ?
|
||||
cRedBits db ?
|
||||
cRedShift db ?
|
||||
cGreenBits db ?
|
||||
cGreenShift db ?
|
||||
cBlueBits db ?
|
||||
cBlueShift db ?
|
||||
cAlphaBits db ?
|
||||
cAlphaShift db ?
|
||||
cAccumBits db ?
|
||||
cAccumRedBits db ?
|
||||
cAccumGreenBits db ?
|
||||
cAccumBlueBits db ?
|
||||
cAccumAlphaBits db ?
|
||||
cDepthBits db ?
|
||||
cStencilBits db ?
|
||||
cAuxBuffers db ?
|
||||
iLayerType db ?
|
||||
bReserved db ?
|
||||
dwLayerMask dd ?
|
||||
dwVisibleMask dd ?
|
||||
dwDamageMask dd ?
|
||||
ends
|
||||
|
||||
struct TRIVERTEX
|
||||
x dd ?
|
||||
y dd ?
|
||||
Red dw ?
|
||||
Green dw ?
|
||||
Blue dw ?
|
||||
Alpha dw ?
|
||||
ends
|
||||
|
||||
; General constants
|
||||
|
||||
GDI_ERROR = 0FFFFFFFFh
|
||||
HGDI_ERROR = 0FFFFFFFFh
|
||||
|
||||
; Binary raster operations
|
||||
|
||||
R2_BLACK = 1
|
||||
R2_NOTMERGEPEN = 2
|
||||
R2_MASKNOTPEN = 3
|
||||
R2_NOTCOPYPEN = 4
|
||||
R2_MASKPENNOT = 5
|
||||
R2_NOT = 6
|
||||
R2_XORPEN = 7
|
||||
R2_NOTMASKPEN = 8
|
||||
R2_MASKPEN = 9
|
||||
R2_NOTXORPEN = 10
|
||||
R2_NOP = 11
|
||||
R2_MERGENOTPEN = 12
|
||||
R2_COPYPEN = 13
|
||||
R2_MERGEPENNOT = 14
|
||||
R2_MERGEPEN = 15
|
||||
R2_WHITE = 16
|
||||
|
||||
; Raster operations
|
||||
|
||||
SRCCOPY = 00CC0020h
|
||||
SRCPAINT = 00EE0086h
|
||||
SRCAND = 008800C6h
|
||||
SRCINVERT = 00660046h
|
||||
SRCERASE = 00440328h
|
||||
NOTSRCCOPY = 00330008h
|
||||
NOTSRCERASE = 001100A6h
|
||||
MERGECOPY = 00C000CAh
|
||||
MERGEPAINT = 00BB0226h
|
||||
PATCOPY = 00F00021h
|
||||
PATPAINT = 00FB0A09h
|
||||
PATINVERT = 005A0049h
|
||||
DSTINVERT = 00550009h
|
||||
BLACKNESS = 00000042h
|
||||
WHITENESS = 00FF0062h
|
||||
|
||||
; Region flags
|
||||
|
||||
ERROR = 0
|
||||
NULLREGION = 1
|
||||
SIMPLEREGION = 2
|
||||
COMPLEXREGION = 3
|
||||
|
||||
; CombineRgn styles
|
||||
|
||||
RGN_AND = 1
|
||||
RGN_OR = 2
|
||||
RGN_XOR = 3
|
||||
RGN_DIFF = 4
|
||||
RGN_COPY = 5
|
||||
|
||||
; StretchBlt modes
|
||||
|
||||
BLACKONWHITE = 1
|
||||
WHITEONBLACK = 2
|
||||
COLORONCOLOR = 3
|
||||
HALFTONE = 4
|
||||
STRETCH_ANDSCANS = BLACKONWHITE
|
||||
STRETCH_ORSCANS = WHITEONBLACK
|
||||
STRETCH_DELETESCANS = COLORONCOLOR
|
||||
STRETCH_HALFTONE = HALFTONE
|
||||
|
||||
; PolyFill modes
|
||||
|
||||
ALTERNATE = 1
|
||||
WINDING = 2
|
||||
|
||||
; Background modes
|
||||
|
||||
TRANSPARENT = 1
|
||||
OPAQUE = 2
|
||||
|
||||
; Point types
|
||||
|
||||
PT_CLOSEFIGURE = 1
|
||||
PT_LINETO = 2
|
||||
PT_BEZIERTO = 4
|
||||
PT_MOVETO = 6
|
||||
|
||||
; Mapping modes
|
||||
|
||||
MM_TEXT = 1
|
||||
MM_LOMETRIC = 2
|
||||
MM_HIMETRIC = 3
|
||||
MM_LOENGLISH = 4
|
||||
MM_HIENGLISH = 5
|
||||
MM_TWIPS = 6
|
||||
MM_ISOTROPIC = 7
|
||||
MM_ANISOTROPIC = 8
|
||||
|
||||
; Coordinate modes
|
||||
|
||||
ABSOLUTE = 1
|
||||
RELATIVE = 2
|
||||
|
||||
; Stock logical objects
|
||||
|
||||
WHITE_BRUSH = 0
|
||||
LTGRAY_BRUSH = 1
|
||||
GRAY_BRUSH = 2
|
||||
DKGRAY_BRUSH = 3
|
||||
BLACK_BRUSH = 4
|
||||
NULL_BRUSH = 5
|
||||
HOLLOW_BRUSH = NULL_BRUSH
|
||||
WHITE_PEN = 6
|
||||
BLACK_PEN = 7
|
||||
NULL_PEN = 8
|
||||
OEM_FIXED_FONT = 10
|
||||
ANSI_FIXED_FONT = 11
|
||||
ANSI_VAR_FONT = 12
|
||||
SYSTEM_FONT = 13
|
||||
DEVICE_DEFAULT_FONT = 14
|
||||
DEFAULT_PALETTE = 15
|
||||
SYSTEM_FIXED_FONT = 16
|
||||
DEFAULT_GUI_FONT = 17
|
||||
|
||||
; Brush styles
|
||||
|
||||
BS_SOLID = 0
|
||||
BS_NULL = 1
|
||||
BS_HOLLOW = BS_NULL
|
||||
BS_HATCHED = 2
|
||||
BS_PATTERN = 3
|
||||
BS_INDEXED = 4
|
||||
BS_DIBPATTERN = 5
|
||||
BS_DIBPATTERNPT = 6
|
||||
BS_PATTERN8X8 = 7
|
||||
BS_DIBPATTERN8X8 = 8
|
||||
BS_MONOPATTERN = 9
|
||||
|
||||
; Hatch styles
|
||||
|
||||
HS_HORIZONTAL = 0
|
||||
HS_VERTICAL = 1
|
||||
HS_FDIAGONAL = 2
|
||||
HS_BDIAGONAL = 3
|
||||
HS_CROSS = 4
|
||||
HS_DIAGCROSS = 5
|
||||
|
||||
; Pen styles
|
||||
|
||||
PS_SOLID = 0
|
||||
PS_DASH = 1
|
||||
PS_DOT = 2
|
||||
PS_DASHDOT = 3
|
||||
PS_DASHDOTDOT = 4
|
||||
PS_NULL = 5
|
||||
PS_INSIDEFRAME = 6
|
||||
PS_USERSTYLE = 7
|
||||
PS_ALTERNATE = 8
|
||||
PS_ENDCAP_ROUND = 0
|
||||
PS_ENDCAP_SQUARE = 100h
|
||||
PS_ENDCAP_FLAT = 200h
|
||||
PS_JOIN_ROUND = 0
|
||||
PS_JOIN_BEVEL = 1000h
|
||||
PS_JOIN_MITER = 2000h
|
||||
PS_COSMETIC = 0
|
||||
PS_GEOMETRIC = 010000h
|
||||
|
||||
; Arc directions
|
||||
|
||||
AD_COUNTERCLOCKWISE = 1
|
||||
AD_CLOCKWISE = 2
|
||||
|
||||
; Text alignment options
|
||||
|
||||
TA_NOUPDATECP = 0
|
||||
TA_UPDATECP = 1
|
||||
TA_LEFT = 0
|
||||
TA_RIGHT = 2
|
||||
TA_CENTER = 6
|
||||
TA_TOP = 0
|
||||
TA_BOTTOM = 8
|
||||
TA_BASELINE = 24
|
||||
TA_RTLREADING = 100h
|
||||
VTA_BASELINE = TA_BASELINE
|
||||
VTA_LEFT = TA_BOTTOM
|
||||
VTA_RIGHT = TA_TOP
|
||||
VTA_CENTER = TA_CENTER
|
||||
VTA_BOTTOM = TA_RIGHT
|
||||
VTA_TOP = TA_LEFT
|
||||
|
||||
; ExtTextOut options
|
||||
|
||||
ETO_OPAQUE = 0002h
|
||||
ETO_CLIPPED = 0004h
|
||||
ETO_GLYPH_INDEX = 0010h
|
||||
ETO_RTLREADING = 0080h
|
||||
ETO_IGNORELANGUAGE = 1000h
|
||||
|
||||
; Bitmap compression types
|
||||
|
||||
BI_RGB = 0
|
||||
BI_RLE8 = 1
|
||||
BI_RLE4 = 2
|
||||
BI_BITFIELDS = 3
|
||||
|
||||
; tmPitchAndFamily flags
|
||||
|
||||
TMPF_FIXED_PITCH = 1
|
||||
TMPF_VECTOR = 2
|
||||
TMPF_TRUETYPE = 4
|
||||
TMPF_DEVICE = 8
|
||||
|
||||
; Font output precision values
|
||||
|
||||
OUT_DEFAULT_PRECIS = 0
|
||||
OUT_STRING_PRECIS = 1
|
||||
OUT_CHARACTER_PRECIS = 2
|
||||
OUT_STROKE_PRECIS = 3
|
||||
OUT_TT_PRECIS = 4
|
||||
OUT_DEVICE_PRECIS = 5
|
||||
OUT_RASTER_PRECIS = 6
|
||||
OUT_TT_ONLY_PRECIS = 7
|
||||
OUT_OUTLINE_PRECIS = 8
|
||||
OUT_SCREEN_OUTLINE_PRECIS = 9
|
||||
|
||||
; Font clipping precision values
|
||||
|
||||
CLIP_DEFAULT_PRECIS = 0
|
||||
CLIP_CHARACTER_PRECIS = 1
|
||||
CLIP_STROKE_PRECIS = 2
|
||||
CLIP_LH_ANGLES = 10h
|
||||
CLIP_TT_ALWAYS = 20h
|
||||
CLIP_EMBEDDED = 80h
|
||||
|
||||
; Font output quality values
|
||||
|
||||
DEFAULT_QUALITY = 0
|
||||
DRAFT_QUALITY = 1
|
||||
PROOF_QUALITY = 2
|
||||
NONANTIALIASED_QUALITY = 3
|
||||
ANTIALIASED_QUALITY = 4
|
||||
|
||||
; Font pitch values
|
||||
|
||||
DEFAULT_PITCH = 0
|
||||
FIXED_PITCH = 1
|
||||
VARIABLE_PITCH = 2
|
||||
MONO_FONT = 8
|
||||
|
||||
; Font families
|
||||
|
||||
FF_DONTCARE = 00h
|
||||
FF_ROMAN = 10h
|
||||
FF_SWISS = 20h
|
||||
FF_MODERN = 30h
|
||||
FF_SCRIPT = 40h
|
||||
FF_DECORATIVE = 50h
|
||||
|
||||
; Font weights
|
||||
|
||||
FW_DONTCARE = 0
|
||||
FW_THIN = 100
|
||||
FW_EXTRALIGHT = 200
|
||||
FW_LIGHT = 300
|
||||
FW_NORMAL = 400
|
||||
FW_MEDIUM = 500
|
||||
FW_SEMIBOLD = 600
|
||||
FW_BOLD = 700
|
||||
FW_EXTRABOLD = 800
|
||||
FW_HEAVY = 900
|
||||
FW_ULTRALIGHT = FW_EXTRALIGHT
|
||||
FW_REGULAR = FW_NORMAL
|
||||
FW_DEMIBOLD = FW_SEMIBOLD
|
||||
FW_ULTRABOLD = FW_EXTRABOLD
|
||||
FW_BLACK = FW_HEAVY
|
||||
|
||||
; Character set values
|
||||
|
||||
ANSI_CHARSET = 0
|
||||
DEFAULT_CHARSET = 1
|
||||
SYMBOL_CHARSET = 2
|
||||
SHIFTJIS_CHARSET = 128
|
||||
HANGEUL_CHARSET = 129
|
||||
GB2312_CHARSET = 134
|
||||
CHINESEBIG5_CHARSET = 136
|
||||
OEM_CHARSET = 255
|
||||
JOHAB_CHARSET = 130
|
||||
HEBREW_CHARSET = 177
|
||||
ARABIC_CHARSET = 178
|
||||
GREEK_CHARSET = 161
|
||||
TURKISH_CHARSET = 162
|
||||
VIETNAMESE_CHARSET = 163
|
||||
THAI_CHARSET = 222
|
||||
EASTEUROPE_CHARSET = 238
|
||||
RUSSIAN_CHARSET = 204
|
||||
MAC_CHARSET = 77
|
||||
BALTIC_CHARSET = 186
|
||||
|
||||
; Pixel format constants
|
||||
|
||||
PFD_TYPE_RGBA = 0
|
||||
PFD_TYPE_COLORINDEX = 1
|
||||
PFD_MAIN_PLANE = 0
|
||||
PFD_OVERLAY_PLANE = 1
|
||||
PFD_UNDERLAY_PLANE = -1
|
||||
PFD_DOUBLEBUFFER = 1
|
||||
PFD_STEREO = 2
|
||||
PFD_DRAW_TO_WINDOW = 4
|
||||
PFD_DRAW_TO_BITMAP = 8
|
||||
PFD_SUPPORT_GDI = 10h
|
||||
PFD_SUPPORT_OPENGL = 20h
|
||||
PFD_GENERIC_FORMAT = 40h
|
||||
PFD_NEED_PALETTE = 80h
|
||||
PFD_NEED_SYSTEM_PALETTE = 100h
|
||||
PFD_SWAP_EXCHANGE = 200h
|
||||
PFD_SWAP_COPY = 400h
|
||||
PFD_SWAP_LAYER_BUFFERS = 800h
|
||||
PFD_GENERIC_ACCELERATED = 1000h
|
||||
PFD_DEPTH_DONTCARE = 20000000h
|
||||
PFD_DOUBLEBUFFER_DONTCARE = 40000000h
|
||||
PFD_STEREO_DONTCARE = 80000000h
|
||||
480
fasmw172/INCLUDE/EQUATES/GDI64.INC
Normal file
480
fasmw172/INCLUDE/EQUATES/GDI64.INC
Normal file
@@ -0,0 +1,480 @@
|
||||
|
||||
; GDI32.DLL structures and constants
|
||||
|
||||
struct SIZE
|
||||
cx dd ?
|
||||
cy dd ?
|
||||
ends
|
||||
|
||||
struct BITMAP
|
||||
bmType dd ?
|
||||
bmWidth dd ?
|
||||
bmHeight dd ?
|
||||
bmWidthBytes dd ?
|
||||
bmPlanes dw ?
|
||||
bmBitsPixel dw ?,?,?
|
||||
bmBits dq ?
|
||||
ends
|
||||
|
||||
struct BITMAPCOREHEADER
|
||||
bcSize dd ?
|
||||
bcWidth dw ?
|
||||
bcHeight dw ?
|
||||
bcPlanes dw ?
|
||||
bcBitCount dw ?
|
||||
ends
|
||||
|
||||
struct BITMAPINFOHEADER
|
||||
biSize dd ?
|
||||
biWidth dd ?
|
||||
biHeight dd ?
|
||||
biPlanes dw ?
|
||||
biBitCount dw ?
|
||||
biCompression dd ?
|
||||
biSizeImage dd ?
|
||||
biXPelsPerMeter dd ?
|
||||
biYPelsPerMeter dd ?
|
||||
biClrUsed dd ?
|
||||
biClrImportant dd ?
|
||||
ends
|
||||
|
||||
struct BITMAPFILEHEADER
|
||||
bfType dw ?
|
||||
bfSize dd ?
|
||||
bfReserved1 dw ?
|
||||
bfReserved2 dw ?
|
||||
bfOffBits dd ?
|
||||
ends
|
||||
|
||||
struct TEXTMETRIC
|
||||
tmHeight dd ?
|
||||
tmAscent dd ?
|
||||
tmDescent dd ?
|
||||
tmInternalLeading dd ?
|
||||
tmExternalLeading dd ?
|
||||
tmAveCharWidth dd ?
|
||||
tmMaxCharWidth dd ?
|
||||
tmWeight dd ?
|
||||
tmOverhang dd ?
|
||||
tmDigitizedAspectX dd ?
|
||||
tmDigitizedAspectY dd ?
|
||||
tmFirstChar TCHAR ?
|
||||
tmLastChar TCHAR ?
|
||||
tmDefaultChar TCHAR ?
|
||||
tmBreakChar TCHAR ?
|
||||
tmItalic db ?
|
||||
tmUnderlined db ?
|
||||
tmStruckOut db ?
|
||||
tmPitchAndFamily db ?
|
||||
tmCharSet db ?
|
||||
ends
|
||||
|
||||
struct LOGBRUSH
|
||||
lbStyle dd ?
|
||||
lbColor dd ?
|
||||
lbHatch dd ?
|
||||
ends
|
||||
|
||||
struct LOGPEN
|
||||
lopnStyle dd ?
|
||||
lopnWidth POINT
|
||||
lopnColor dd ?
|
||||
ends
|
||||
|
||||
struct EXTLOGPEN
|
||||
elpPenStyle dd ?
|
||||
elpWidth dd ?
|
||||
elpBrushStyle dd ?
|
||||
elpColor dd ?
|
||||
elpHatch dd ?
|
||||
elpNumEntries dd ?
|
||||
elpStyleEntry dd ?
|
||||
ends
|
||||
|
||||
struct LOGFONT
|
||||
lfHeight dd ?
|
||||
lfWidth dd ?
|
||||
lfEscapement dd ?
|
||||
lfOrientation dd ?
|
||||
lfWeight dd ?
|
||||
lfItalic db ?
|
||||
lfUnderline db ?
|
||||
lfStrikeOut db ?
|
||||
lfCharSet db ?
|
||||
lfOutPrecision db ?
|
||||
lfClipPrecision db ?
|
||||
lfQuality db ?
|
||||
lfPitchAndFamily db ?
|
||||
lfFaceName TCHAR 32 dup (?)
|
||||
ends
|
||||
|
||||
struct ENUMLOGFONT
|
||||
elfLogFont LOGFONT
|
||||
elfFullName TCHAR 64 dup (?)
|
||||
elfStyle TCHAR 32 dup (?)
|
||||
ends
|
||||
|
||||
struct ENUMLOGFONTEX
|
||||
elfLogFont LOGFONT
|
||||
elfFullName TCHAR 64 dup (?)
|
||||
elfStyle TCHAR 32 dup (?)
|
||||
elfScript TCHAR 32 dup (?)
|
||||
ends
|
||||
|
||||
struct PIXELFORMATDESCRIPTOR
|
||||
nSize dw ?
|
||||
nVersion dw ?
|
||||
dwFlags dd ?
|
||||
iPixelType db ?
|
||||
cColorBits db ?
|
||||
cRedBits db ?
|
||||
cRedShift db ?
|
||||
cGreenBits db ?
|
||||
cGreenShift db ?
|
||||
cBlueBits db ?
|
||||
cBlueShift db ?
|
||||
cAlphaBits db ?
|
||||
cAlphaShift db ?
|
||||
cAccumBits db ?
|
||||
cAccumRedBits db ?
|
||||
cAccumGreenBits db ?
|
||||
cAccumBlueBits db ?
|
||||
cAccumAlphaBits db ?
|
||||
cDepthBits db ?
|
||||
cStencilBits db ?
|
||||
cAuxBuffers db ?
|
||||
iLayerType db ?
|
||||
bReserved db ?
|
||||
dwLayerMask dd ?
|
||||
dwVisibleMask dd ?
|
||||
dwDamageMask dd ?
|
||||
ends
|
||||
|
||||
struct TRIVERTEX
|
||||
x dd ?
|
||||
y dd ?
|
||||
Red dw ?
|
||||
Green dw ?
|
||||
Blue dw ?
|
||||
Alpha dw ?
|
||||
ends
|
||||
|
||||
; General constants
|
||||
|
||||
GDI_ERROR = 0FFFFFFFFh
|
||||
HGDI_ERROR = 0FFFFFFFFh
|
||||
|
||||
; Binary raster operations
|
||||
|
||||
R2_BLACK = 1
|
||||
R2_NOTMERGEPEN = 2
|
||||
R2_MASKNOTPEN = 3
|
||||
R2_NOTCOPYPEN = 4
|
||||
R2_MASKPENNOT = 5
|
||||
R2_NOT = 6
|
||||
R2_XORPEN = 7
|
||||
R2_NOTMASKPEN = 8
|
||||
R2_MASKPEN = 9
|
||||
R2_NOTXORPEN = 10
|
||||
R2_NOP = 11
|
||||
R2_MERGENOTPEN = 12
|
||||
R2_COPYPEN = 13
|
||||
R2_MERGEPENNOT = 14
|
||||
R2_MERGEPEN = 15
|
||||
R2_WHITE = 16
|
||||
|
||||
; Raster operations
|
||||
|
||||
SRCCOPY = 00CC0020h
|
||||
SRCPAINT = 00EE0086h
|
||||
SRCAND = 008800C6h
|
||||
SRCINVERT = 00660046h
|
||||
SRCERASE = 00440328h
|
||||
NOTSRCCOPY = 00330008h
|
||||
NOTSRCERASE = 001100A6h
|
||||
MERGECOPY = 00C000CAh
|
||||
MERGEPAINT = 00BB0226h
|
||||
PATCOPY = 00F00021h
|
||||
PATPAINT = 00FB0A09h
|
||||
PATINVERT = 005A0049h
|
||||
DSTINVERT = 00550009h
|
||||
BLACKNESS = 00000042h
|
||||
WHITENESS = 00FF0062h
|
||||
|
||||
; Region flags
|
||||
|
||||
ERROR = 0
|
||||
NULLREGION = 1
|
||||
SIMPLEREGION = 2
|
||||
COMPLEXREGION = 3
|
||||
|
||||
; CombineRgn styles
|
||||
|
||||
RGN_AND = 1
|
||||
RGN_OR = 2
|
||||
RGN_XOR = 3
|
||||
RGN_DIFF = 4
|
||||
RGN_COPY = 5
|
||||
|
||||
; StretchBlt modes
|
||||
|
||||
BLACKONWHITE = 1
|
||||
WHITEONBLACK = 2
|
||||
COLORONCOLOR = 3
|
||||
HALFTONE = 4
|
||||
STRETCH_ANDSCANS = BLACKONWHITE
|
||||
STRETCH_ORSCANS = WHITEONBLACK
|
||||
STRETCH_DELETESCANS = COLORONCOLOR
|
||||
STRETCH_HALFTONE = HALFTONE
|
||||
|
||||
; PolyFill modes
|
||||
|
||||
ALTERNATE = 1
|
||||
WINDING = 2
|
||||
|
||||
; Background modes
|
||||
|
||||
TRANSPARENT = 1
|
||||
OPAQUE = 2
|
||||
|
||||
; Point types
|
||||
|
||||
PT_CLOSEFIGURE = 1
|
||||
PT_LINETO = 2
|
||||
PT_BEZIERTO = 4
|
||||
PT_MOVETO = 6
|
||||
|
||||
; Mapping modes
|
||||
|
||||
MM_TEXT = 1
|
||||
MM_LOMETRIC = 2
|
||||
MM_HIMETRIC = 3
|
||||
MM_LOENGLISH = 4
|
||||
MM_HIENGLISH = 5
|
||||
MM_TWIPS = 6
|
||||
MM_ISOTROPIC = 7
|
||||
MM_ANISOTROPIC = 8
|
||||
|
||||
; Coordinate modes
|
||||
|
||||
ABSOLUTE = 1
|
||||
RELATIVE = 2
|
||||
|
||||
; Stock logical objects
|
||||
|
||||
WHITE_BRUSH = 0
|
||||
LTGRAY_BRUSH = 1
|
||||
GRAY_BRUSH = 2
|
||||
DKGRAY_BRUSH = 3
|
||||
BLACK_BRUSH = 4
|
||||
NULL_BRUSH = 5
|
||||
HOLLOW_BRUSH = NULL_BRUSH
|
||||
WHITE_PEN = 6
|
||||
BLACK_PEN = 7
|
||||
NULL_PEN = 8
|
||||
OEM_FIXED_FONT = 10
|
||||
ANSI_FIXED_FONT = 11
|
||||
ANSI_VAR_FONT = 12
|
||||
SYSTEM_FONT = 13
|
||||
DEVICE_DEFAULT_FONT = 14
|
||||
DEFAULT_PALETTE = 15
|
||||
SYSTEM_FIXED_FONT = 16
|
||||
DEFAULT_GUI_FONT = 17
|
||||
|
||||
; Brush styles
|
||||
|
||||
BS_SOLID = 0
|
||||
BS_NULL = 1
|
||||
BS_HOLLOW = BS_NULL
|
||||
BS_HATCHED = 2
|
||||
BS_PATTERN = 3
|
||||
BS_INDEXED = 4
|
||||
BS_DIBPATTERN = 5
|
||||
BS_DIBPATTERNPT = 6
|
||||
BS_PATTERN8X8 = 7
|
||||
BS_DIBPATTERN8X8 = 8
|
||||
BS_MONOPATTERN = 9
|
||||
|
||||
; Hatch styles
|
||||
|
||||
HS_HORIZONTAL = 0
|
||||
HS_VERTICAL = 1
|
||||
HS_FDIAGONAL = 2
|
||||
HS_BDIAGONAL = 3
|
||||
HS_CROSS = 4
|
||||
HS_DIAGCROSS = 5
|
||||
|
||||
; Pen styles
|
||||
|
||||
PS_SOLID = 0
|
||||
PS_DASH = 1
|
||||
PS_DOT = 2
|
||||
PS_DASHDOT = 3
|
||||
PS_DASHDOTDOT = 4
|
||||
PS_NULL = 5
|
||||
PS_INSIDEFRAME = 6
|
||||
PS_USERSTYLE = 7
|
||||
PS_ALTERNATE = 8
|
||||
PS_ENDCAP_ROUND = 0
|
||||
PS_ENDCAP_SQUARE = 100h
|
||||
PS_ENDCAP_FLAT = 200h
|
||||
PS_JOIN_ROUND = 0
|
||||
PS_JOIN_BEVEL = 1000h
|
||||
PS_JOIN_MITER = 2000h
|
||||
PS_COSMETIC = 0
|
||||
PS_GEOMETRIC = 010000h
|
||||
|
||||
; Arc directions
|
||||
|
||||
AD_COUNTERCLOCKWISE = 1
|
||||
AD_CLOCKWISE = 2
|
||||
|
||||
; Text alignment options
|
||||
|
||||
TA_NOUPDATECP = 0
|
||||
TA_UPDATECP = 1
|
||||
TA_LEFT = 0
|
||||
TA_RIGHT = 2
|
||||
TA_CENTER = 6
|
||||
TA_TOP = 0
|
||||
TA_BOTTOM = 8
|
||||
TA_BASELINE = 24
|
||||
TA_RTLREADING = 100h
|
||||
VTA_BASELINE = TA_BASELINE
|
||||
VTA_LEFT = TA_BOTTOM
|
||||
VTA_RIGHT = TA_TOP
|
||||
VTA_CENTER = TA_CENTER
|
||||
VTA_BOTTOM = TA_RIGHT
|
||||
VTA_TOP = TA_LEFT
|
||||
|
||||
; ExtTextOut options
|
||||
|
||||
ETO_OPAQUE = 0002h
|
||||
ETO_CLIPPED = 0004h
|
||||
ETO_GLYPH_INDEX = 0010h
|
||||
ETO_RTLREADING = 0080h
|
||||
ETO_IGNORELANGUAGE = 1000h
|
||||
|
||||
; Bitmap compression types
|
||||
|
||||
BI_RGB = 0
|
||||
BI_RLE8 = 1
|
||||
BI_RLE4 = 2
|
||||
BI_BITFIELDS = 3
|
||||
|
||||
; tmPitchAndFamily flags
|
||||
|
||||
TMPF_FIXED_PITCH = 1
|
||||
TMPF_VECTOR = 2
|
||||
TMPF_TRUETYPE = 4
|
||||
TMPF_DEVICE = 8
|
||||
|
||||
; Font output precision values
|
||||
|
||||
OUT_DEFAULT_PRECIS = 0
|
||||
OUT_STRING_PRECIS = 1
|
||||
OUT_CHARACTER_PRECIS = 2
|
||||
OUT_STROKE_PRECIS = 3
|
||||
OUT_TT_PRECIS = 4
|
||||
OUT_DEVICE_PRECIS = 5
|
||||
OUT_RASTER_PRECIS = 6
|
||||
OUT_TT_ONLY_PRECIS = 7
|
||||
OUT_OUTLINE_PRECIS = 8
|
||||
OUT_SCREEN_OUTLINE_PRECIS = 9
|
||||
|
||||
; Font clipping precision values
|
||||
|
||||
CLIP_DEFAULT_PRECIS = 0
|
||||
CLIP_CHARACTER_PRECIS = 1
|
||||
CLIP_STROKE_PRECIS = 2
|
||||
CLIP_LH_ANGLES = 10h
|
||||
CLIP_TT_ALWAYS = 20h
|
||||
CLIP_EMBEDDED = 80h
|
||||
|
||||
; Font output quality values
|
||||
|
||||
DEFAULT_QUALITY = 0
|
||||
DRAFT_QUALITY = 1
|
||||
PROOF_QUALITY = 2
|
||||
NONANTIALIASED_QUALITY = 3
|
||||
ANTIALIASED_QUALITY = 4
|
||||
|
||||
; Font pitch values
|
||||
|
||||
DEFAULT_PITCH = 0
|
||||
FIXED_PITCH = 1
|
||||
VARIABLE_PITCH = 2
|
||||
MONO_FONT = 8
|
||||
|
||||
; Font families
|
||||
|
||||
FF_DONTCARE = 00h
|
||||
FF_ROMAN = 10h
|
||||
FF_SWISS = 20h
|
||||
FF_MODERN = 30h
|
||||
FF_SCRIPT = 40h
|
||||
FF_DECORATIVE = 50h
|
||||
|
||||
; Font weights
|
||||
|
||||
FW_DONTCARE = 0
|
||||
FW_THIN = 100
|
||||
FW_EXTRALIGHT = 200
|
||||
FW_LIGHT = 300
|
||||
FW_NORMAL = 400
|
||||
FW_MEDIUM = 500
|
||||
FW_SEMIBOLD = 600
|
||||
FW_BOLD = 700
|
||||
FW_EXTRABOLD = 800
|
||||
FW_HEAVY = 900
|
||||
FW_ULTRALIGHT = FW_EXTRALIGHT
|
||||
FW_REGULAR = FW_NORMAL
|
||||
FW_DEMIBOLD = FW_SEMIBOLD
|
||||
FW_ULTRABOLD = FW_EXTRABOLD
|
||||
FW_BLACK = FW_HEAVY
|
||||
|
||||
; Character set values
|
||||
|
||||
ANSI_CHARSET = 0
|
||||
DEFAULT_CHARSET = 1
|
||||
SYMBOL_CHARSET = 2
|
||||
SHIFTJIS_CHARSET = 128
|
||||
HANGEUL_CHARSET = 129
|
||||
GB2312_CHARSET = 134
|
||||
CHINESEBIG5_CHARSET = 136
|
||||
OEM_CHARSET = 255
|
||||
JOHAB_CHARSET = 130
|
||||
HEBREW_CHARSET = 177
|
||||
ARABIC_CHARSET = 178
|
||||
GREEK_CHARSET = 161
|
||||
TURKISH_CHARSET = 162
|
||||
VIETNAMESE_CHARSET = 163
|
||||
THAI_CHARSET = 222
|
||||
EASTEUROPE_CHARSET = 238
|
||||
RUSSIAN_CHARSET = 204
|
||||
MAC_CHARSET = 77
|
||||
BALTIC_CHARSET = 186
|
||||
|
||||
; Pixel format constants
|
||||
|
||||
PFD_TYPE_RGBA = 0
|
||||
PFD_TYPE_COLORINDEX = 1
|
||||
PFD_MAIN_PLANE = 0
|
||||
PFD_OVERLAY_PLANE = 1
|
||||
PFD_UNDERLAY_PLANE = -1
|
||||
PFD_DOUBLEBUFFER = 1
|
||||
PFD_STEREO = 2
|
||||
PFD_DRAW_TO_WINDOW = 4
|
||||
PFD_DRAW_TO_BITMAP = 8
|
||||
PFD_SUPPORT_GDI = 10h
|
||||
PFD_SUPPORT_OPENGL = 20h
|
||||
PFD_GENERIC_FORMAT = 40h
|
||||
PFD_NEED_PALETTE = 80h
|
||||
PFD_NEED_SYSTEM_PALETTE = 100h
|
||||
PFD_SWAP_EXCHANGE = 200h
|
||||
PFD_SWAP_COPY = 400h
|
||||
PFD_SWAP_LAYER_BUFFERS = 800h
|
||||
PFD_GENERIC_ACCELERATED = 1000h
|
||||
PFD_DEPTH_DONTCARE = 20000000h
|
||||
PFD_DOUBLEBUFFER_DONTCARE = 40000000h
|
||||
PFD_STEREO_DONTCARE = 80000000h
|
||||
812
fasmw172/INCLUDE/EQUATES/KERNEL32.INC
Normal file
812
fasmw172/INCLUDE/EQUATES/KERNEL32.INC
Normal file
@@ -0,0 +1,812 @@
|
||||
|
||||
; KERNEL32.DLL structures and constants
|
||||
|
||||
struct SYSTEM_INFO
|
||||
wProcessorArchitecture dw ?
|
||||
wReserved dw ?
|
||||
dwPageSize dd ?
|
||||
lpMinimumApplicationAddress dd ?
|
||||
lpMaximumApplicationAddress dd ?
|
||||
dwActiveProcessorMask dd ?
|
||||
dwNumberOfProcessors dd ?
|
||||
dwProcessorType dd ?
|
||||
dwAllocationGranularity dd ?
|
||||
wProcessorLevel dw ?
|
||||
wProcessorRevision dw ?
|
||||
ends
|
||||
|
||||
struct OSVERSIONINFO
|
||||
dwOSVersionInfoSize dd ?
|
||||
dwMajorVersion dd ?
|
||||
dwMinorVersion dd ?
|
||||
dwBuildNumber dd ?
|
||||
dwPlatformId dd ?
|
||||
szCSDVersion TCHAR 128 dup (?)
|
||||
ends
|
||||
|
||||
struct OSVERSIONINFOA
|
||||
dwOSVersionInfoSize dd ?
|
||||
dwMajorVersion dd ?
|
||||
dwMinorVersion dd ?
|
||||
dwBuildNumber dd ?
|
||||
dwPlatformId dd ?
|
||||
szCSDVersion db 128 dup (?)
|
||||
ends
|
||||
|
||||
struct OSVERSIONINFOW
|
||||
dwOSVersionInfoSize dd ?
|
||||
dwMajorVersion dd ?
|
||||
dwMinorVersion dd ?
|
||||
dwBuildNumber dd ?
|
||||
dwPlatformId dd ?
|
||||
szCSDVersion du 128 dup (?)
|
||||
ends
|
||||
|
||||
struct MEMORYSTATUS
|
||||
dwLength dd ?
|
||||
dwMemoryLoad dd ?
|
||||
dwTotalPhys dd ?
|
||||
dwAvailPhys dd ?
|
||||
dwTotalPageFile dd ?
|
||||
dwAvailPageFile dd ?
|
||||
dwTotalVirtual dd ?
|
||||
dwAvailVirtual dd ?
|
||||
ends
|
||||
|
||||
struct STARTUPINFO
|
||||
cb dd ?
|
||||
lpReserved dd ?
|
||||
lpDesktop dd ?
|
||||
lpTitle dd ?
|
||||
dwX dd ?
|
||||
dwY dd ?
|
||||
dwXSize dd ?
|
||||
dwYSize dd ?
|
||||
dwXCountChars dd ?
|
||||
dwYCountChars dd ?
|
||||
dwFillAttribute dd ?
|
||||
dwFlags dd ?
|
||||
wShowWindow dw ?
|
||||
cbReserved2 dw ?
|
||||
lpReserved2 dd ?
|
||||
hStdInput dd ?
|
||||
hStdOutput dd ?
|
||||
hStdError dd ?
|
||||
ends
|
||||
|
||||
struct PROCESS_INFORMATION
|
||||
hProcess dd ?
|
||||
hThread dd ?
|
||||
dwProcessId dd ?
|
||||
dwThreadId dd ?
|
||||
ends
|
||||
|
||||
struct FILETIME
|
||||
dwLowDateTime dd ?
|
||||
dwHighDateTime dd ?
|
||||
ends
|
||||
|
||||
struct SYSTEMTIME
|
||||
wYear dw ?
|
||||
wMonth dw ?
|
||||
wDayOfWeek dw ?
|
||||
wDay dw ?
|
||||
wHour dw ?
|
||||
wMinute dw ?
|
||||
wSecond dw ?
|
||||
wMilliseconds dw ?
|
||||
ends
|
||||
|
||||
struct BY_HANDLE_FILE_INFORMATION
|
||||
dwFileAttributes dd ?
|
||||
ftCreationTime FILETIME
|
||||
ftLastAccessTime FILETIME
|
||||
ftLastWriteTime FILETIME
|
||||
dwVolumeSerialNumber dd ?
|
||||
nFileSizeHigh dd ?
|
||||
nFileSizeLow dd ?
|
||||
nNumberOfLinks dd ?
|
||||
nFileIndexHigh dd ?
|
||||
nFileIndexLow dd ?
|
||||
ends
|
||||
|
||||
struct WIN32_FIND_DATA
|
||||
dwFileAttributes dd ?
|
||||
ftCreationTime FILETIME
|
||||
ftLastAccessTime FILETIME
|
||||
ftLastWriteTime FILETIME
|
||||
nFileSizeHigh dd ?
|
||||
nFileSizeLow dd ?
|
||||
dwReserved0 dd ?
|
||||
dwReserved1 dd ?
|
||||
cFileName TCHAR MAX_PATH dup (?)
|
||||
cAlternateFileName TCHAR 14 dup (?)
|
||||
ends
|
||||
|
||||
struct WIN32_FIND_DATAA
|
||||
dwFileAttributes dd ?
|
||||
ftCreationTime FILETIME
|
||||
ftLastAccessTime FILETIME
|
||||
ftLastWriteTime FILETIME
|
||||
nFileSizeHigh dd ?
|
||||
nFileSizeLow dd ?
|
||||
dwReserved0 dd ?
|
||||
dwReserved1 dd ?
|
||||
cFileName db MAX_PATH dup (?)
|
||||
cAlternateFileName db 14 dup (?)
|
||||
ends
|
||||
|
||||
struct WIN32_FIND_DATAW
|
||||
dwFileAttributes dd ?
|
||||
ftCreationTime FILETIME
|
||||
ftLastAccessTime FILETIME
|
||||
ftLastWriteTime FILETIME
|
||||
nFileSizeHigh dd ?
|
||||
nFileSizeLow dd ?
|
||||
dwReserved0 dd ?
|
||||
dwReserved1 dd ?
|
||||
cFileName du MAX_PATH dup (?)
|
||||
cAlternateFileName du 14 dup (?)
|
||||
ends
|
||||
|
||||
; General constants
|
||||
|
||||
NULL = 0
|
||||
TRUE = 1
|
||||
FALSE = 0
|
||||
|
||||
; Maximum path length in characters
|
||||
|
||||
MAX_PATH = 260
|
||||
|
||||
; Access rights
|
||||
|
||||
DELETE_RIGHT = 00010000h
|
||||
READ_CONTROL = 00020000h
|
||||
WRITE_DAC = 00040000h
|
||||
WRITE_OWNER = 00080000h
|
||||
SYNCHRONIZE = 00100000h
|
||||
STANDARD_RIGHTS_READ = READ_CONTROL
|
||||
STANDARD_RIGHTS_WRITE = READ_CONTROL
|
||||
STANDARD_RIGHTS_EXECUTE = READ_CONTROL
|
||||
STANDARD_RIGHTS_REQUIRED = 000F0000h
|
||||
STANDARD_RIGHTS_ALL = 001F0000h
|
||||
SPECIFIC_RIGHTS_ALL = 0000FFFFh
|
||||
ACCESS_SYSTEM_SECURITY = 01000000h
|
||||
MAXIMUM_ALLOWED = 02000000h
|
||||
GENERIC_READ = 80000000h
|
||||
GENERIC_WRITE = 40000000h
|
||||
GENERIC_EXECUTE = 20000000h
|
||||
GENERIC_ALL = 10000000h
|
||||
PROCESS_TERMINATE = 00000001h
|
||||
PROCESS_CREATE_THREAD = 00000002h
|
||||
PROCESS_VM_OPERATION = 00000008h
|
||||
PROCESS_VM_READ = 00000010h
|
||||
PROCESS_VM_WRITE = 00000020h
|
||||
PROCESS_DUP_HANDLE = 00000040h
|
||||
PROCESS_CREATE_PROCESS = 00000080h
|
||||
PROCESS_SET_QUOTA = 00000100h
|
||||
PROCESS_SET_INFORMATION = 00000200h
|
||||
PROCESS_QUERY_INFORMATION = 00000400h
|
||||
PROCESS_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED or SYNCHRONIZE or 0FFFh
|
||||
FILE_SHARE_READ = 00000001h
|
||||
FILE_SHARE_WRITE = 00000002h
|
||||
FILE_SHARE_DELETE = 00000004h
|
||||
|
||||
; CreateFile actions
|
||||
|
||||
CREATE_NEW = 1
|
||||
CREATE_ALWAYS = 2
|
||||
OPEN_EXISTING = 3
|
||||
OPEN_ALWAYS = 4
|
||||
TRUNCATE_EXISTING = 5
|
||||
|
||||
; OpenFile modes
|
||||
|
||||
OF_READ = 0000h
|
||||
OF_WRITE = 0001h
|
||||
OF_READWRITE = 0002h
|
||||
OF_SHARE_COMPAT = 0000h
|
||||
OF_SHARE_EXCLUSIVE = 0010h
|
||||
OF_SHARE_DENY_WRITE = 0020h
|
||||
OF_SHARE_DENY_READ = 0030h
|
||||
OF_SHARE_DENY_NONE = 0040h
|
||||
OF_PARSE = 0100h
|
||||
OF_DELETE = 0200h
|
||||
OF_VERIFY = 0400h
|
||||
OF_CANCEL = 0800h
|
||||
OF_CREATE = 1000h
|
||||
OF_PROMPT = 2000h
|
||||
OF_EXIST = 4000h
|
||||
OF_REOPEN = 8000h
|
||||
|
||||
; SetFilePointer methods
|
||||
|
||||
FILE_BEGIN = 0
|
||||
FILE_CURRENT = 1
|
||||
FILE_END = 2
|
||||
|
||||
; File attributes
|
||||
|
||||
FILE_ATTRIBUTE_READONLY = 001h
|
||||
FILE_ATTRIBUTE_HIDDEN = 002h
|
||||
FILE_ATTRIBUTE_SYSTEM = 004h
|
||||
FILE_ATTRIBUTE_DIRECTORY = 010h
|
||||
FILE_ATTRIBUTE_ARCHIVE = 020h
|
||||
FILE_ATTRIBUTE_NORMAL = 080h
|
||||
FILE_ATTRIBUTE_TEMPORARY = 100h
|
||||
FILE_ATTRIBUTE_COMPRESSED = 800h
|
||||
|
||||
; File flags
|
||||
|
||||
FILE_FLAG_WRITE_THROUGH = 80000000h
|
||||
FILE_FLAG_OVERLAPPED = 40000000h
|
||||
FILE_FLAG_NO_BUFFERING = 20000000h
|
||||
FILE_FLAG_RANDOM_ACCESS = 10000000h
|
||||
FILE_FLAG_SEQUENTIAL_SCAN = 08000000h
|
||||
FILE_FLAG_DELETE_ON_CLOSE = 04000000h
|
||||
FILE_FLAG_BACKUP_SEMANTICS = 02000000h
|
||||
FILE_FLAG_POSIX_SEMANTICS = 01000000h
|
||||
|
||||
; Notify filters
|
||||
|
||||
FILE_NOTIFY_CHANGE_FILE_NAME = 001h
|
||||
FILE_NOTIFY_CHANGE_DIR_NAME = 002h
|
||||
FILE_NOTIFY_CHANGE_ATTRIBUTES = 004h
|
||||
FILE_NOTIFY_CHANGE_SIZE = 008h
|
||||
FILE_NOTIFY_CHANGE_LAST_WRITE = 010h
|
||||
FILE_NOTIFY_CHANGE_SECURITY = 100h
|
||||
|
||||
; File types
|
||||
|
||||
FILE_TYPE_UNKNOWN = 0
|
||||
FILE_TYPE_DISK = 1
|
||||
FILE_TYPE_CHAR = 2
|
||||
FILE_TYPE_PIPE = 3
|
||||
FILE_TYPE_REMOTE = 8000h
|
||||
|
||||
; LockFileEx flags
|
||||
|
||||
LOCKFILE_FAIL_IMMEDIATELY = 1
|
||||
LOCKFILE_EXCLUSIVE_LOCK = 2
|
||||
|
||||
; MoveFileEx flags
|
||||
|
||||
MOVEFILE_REPLACE_EXISTING = 1
|
||||
MOVEFILE_COPY_ALLOWED = 2
|
||||
MOVEFILE_DELAY_UNTIL_REBOOT = 4
|
||||
MOVEFILE_WRITE_THROUGH = 8
|
||||
|
||||
; FindFirstFileEx flags
|
||||
|
||||
FIND_FIRST_EX_CASE_SENSITIVE = 1
|
||||
|
||||
; Device handles
|
||||
|
||||
INVALID_HANDLE_VALUE = -1
|
||||
STD_INPUT_HANDLE = -10
|
||||
STD_OUTPUT_HANDLE = -11
|
||||
STD_ERROR_HANDLE = -12
|
||||
|
||||
; DuplicateHandle options
|
||||
|
||||
DUPLICATE_CLOSE_SOURCE = 1
|
||||
DUPLICATE_SAME_ACCESS = 2
|
||||
|
||||
; File mapping acccess rights
|
||||
|
||||
SECTION_QUERY = 01h
|
||||
SECTION_MAP_WRITE = 02h
|
||||
SECTION_MAP_READ = 04h
|
||||
SECTION_MAP_EXECUTE = 08h
|
||||
SECTION_EXTEND_SIZE = 10h
|
||||
SECTION_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED or SECTION_QUERY or SECTION_MAP_WRITE or SECTION_MAP_READ or SECTION_MAP_EXECUTE or SECTION_EXTEND_SIZE
|
||||
FILE_MAP_COPY = SECTION_QUERY
|
||||
FILE_MAP_WRITE = SECTION_MAP_WRITE
|
||||
FILE_MAP_READ = SECTION_MAP_READ
|
||||
FILE_MAP_ALL_ACCESS = SECTION_ALL_ACCESS
|
||||
|
||||
; File system flags
|
||||
|
||||
FILE_CASE_SENSITIVE_SEARCH = 0001h
|
||||
FILE_CASE_PRESERVED_NAMES = 0002h
|
||||
FILE_UNICODE_ON_DISK = 0004h
|
||||
FILE_PERSISTENT_ACLS = 0008h
|
||||
FILE_FILE_COMPRESSION = 0010h
|
||||
FILE_VOLUME_IS_COMPRESSED = 8000h
|
||||
FS_CASE_IS_PRESERVED = FILE_CASE_PRESERVED_NAMES
|
||||
FS_CASE_SENSITIVE = FILE_CASE_SENSITIVE_SEARCH
|
||||
FS_UNICODE_STORED_ON_DISK = FILE_UNICODE_ON_DISK
|
||||
FS_PERSISTENT_ACLS = FILE_PERSISTENT_ACLS
|
||||
|
||||
; Drive types
|
||||
|
||||
DRIVE_UNKNOWN = 0
|
||||
DRIVE_NO_ROOT_DIR = 1
|
||||
DRIVE_REMOVABLE = 2
|
||||
DRIVE_FIXED = 3
|
||||
DRIVE_REMOTE = 4
|
||||
DRIVE_CDROM = 5
|
||||
DRIVE_RAMDISK = 6
|
||||
|
||||
; Pipe modes
|
||||
|
||||
PIPE_ACCESS_INBOUND = 1
|
||||
PIPE_ACCESS_OUTBOUND = 2
|
||||
PIPE_ACCESS_DUPLEX = 3
|
||||
PIPE_CLIENT_END = 0
|
||||
PIPE_SERVER_END = 1
|
||||
PIPE_WAIT = 0
|
||||
PIPE_NOWAIT = 1
|
||||
PIPE_READMODE_BYTE = 0
|
||||
PIPE_READMODE_MESSAGE = 2
|
||||
PIPE_TYPE_BYTE = 0
|
||||
PIPE_TYPE_MESSAGE = 4
|
||||
PIPE_UNLIMITED_INSTANCES = 255
|
||||
|
||||
; Global memory flags
|
||||
|
||||
GMEM_FIXED = 0000h
|
||||
GMEM_MOVEABLE = 0002h
|
||||
GMEM_NOCOMPACT = 0010h
|
||||
GMEM_NODISCARD = 0020h
|
||||
GMEM_ZEROINIT = 0040h
|
||||
GMEM_MODIFY = 0080h
|
||||
GMEM_DISCARDABLE = 0100h
|
||||
GMEM_NOT_BANKED = 1000h
|
||||
GMEM_SHARE = 2000h
|
||||
GMEM_DDESHARE = 2000h
|
||||
GMEM_NOTIFY = 4000h
|
||||
GMEM_LOWER = GMEM_NOT_BANKED
|
||||
GMEM_VALID_FLAGS = 7F72h
|
||||
GMEM_INVALID_HANDLE = 8000h
|
||||
GMEM_DISCARDED = 4000h
|
||||
GMEM_LOCKCOUNT = 0FFh
|
||||
GHND = GMEM_MOVEABLE + GMEM_ZEROINIT
|
||||
GPTR = GMEM_FIXED + GMEM_ZEROINIT
|
||||
|
||||
; Local memory flags
|
||||
|
||||
LMEM_FIXED = 0000h
|
||||
LMEM_MOVEABLE = 0002h
|
||||
LMEM_NOCOMPACT = 0010h
|
||||
LMEM_NODISCARD = 0020h
|
||||
LMEM_ZEROINIT = 0040h
|
||||
LMEM_MODIFY = 0080h
|
||||
LMEM_DISCARDABLE = 0F00h
|
||||
LMEM_VALID_FLAGS = 0F72h
|
||||
LMEM_INVALID_HANDLE = 8000h
|
||||
LHND = LMEM_MOVEABLE + LMEM_ZEROINIT
|
||||
LPTR = LMEM_FIXED + LMEM_ZEROINIT
|
||||
LMEM_DISCARDED = 4000h
|
||||
LMEM_LOCKCOUNT = 00FFh
|
||||
|
||||
; Page access flags
|
||||
|
||||
PAGE_NOACCESS = 001h
|
||||
PAGE_READONLY = 002h
|
||||
PAGE_READWRITE = 004h
|
||||
PAGE_WRITECOPY = 008h
|
||||
PAGE_EXECUTE = 010h
|
||||
PAGE_EXECUTE_READ = 020h
|
||||
PAGE_EXECUTE_READWRITE = 040h
|
||||
PAGE_EXECUTE_WRITECOPY = 080h
|
||||
PAGE_GUARD = 100h
|
||||
PAGE_NOCACHE = 200h
|
||||
|
||||
; Memory allocation flags
|
||||
|
||||
MEM_COMMIT = 001000h
|
||||
MEM_RESERVE = 002000h
|
||||
MEM_DECOMMIT = 004000h
|
||||
MEM_RELEASE = 008000h
|
||||
MEM_FREE = 010000h
|
||||
MEM_PRIVATE = 020000h
|
||||
MEM_MAPPED = 040000h
|
||||
MEM_RESET = 080000h
|
||||
MEM_TOP_DOWN = 100000h
|
||||
|
||||
; Heap allocation flags
|
||||
|
||||
HEAP_NO_SERIALIZE = 1
|
||||
HEAP_GENERATE_EXCEPTIONS = 4
|
||||
HEAP_ZERO_MEMORY = 8
|
||||
|
||||
; Platform identifiers
|
||||
|
||||
VER_PLATFORM_WIN32s = 0
|
||||
VER_PLATFORM_WIN32_WINDOWS = 1
|
||||
VER_PLATFORM_WIN32_NT = 2
|
||||
|
||||
; GetBinaryType return values
|
||||
|
||||
SCS_32BIT_BINARY = 0
|
||||
SCS_DOS_BINARY = 1
|
||||
SCS_WOW_BINARY = 2
|
||||
SCS_PIF_BINARY = 3
|
||||
SCS_POSIX_BINARY = 4
|
||||
SCS_OS216_BINARY = 5
|
||||
|
||||
; CreateProcess flags
|
||||
|
||||
DEBUG_PROCESS = 001h
|
||||
DEBUG_ONLY_THIS_PROCESS = 002h
|
||||
CREATE_SUSPENDED = 004h
|
||||
DETACHED_PROCESS = 008h
|
||||
CREATE_NEW_CONSOLE = 010h
|
||||
NORMAL_PRIORITY_CLASS = 020h
|
||||
IDLE_PRIORITY_CLASS = 040h
|
||||
HIGH_PRIORITY_CLASS = 080h
|
||||
REALTIME_PRIORITY_CLASS = 100h
|
||||
CREATE_NEW_PROCESS_GROUP = 200h
|
||||
CREATE_SEPARATE_WOW_VDM = 800h
|
||||
|
||||
; Thread priority values
|
||||
|
||||
THREAD_BASE_PRIORITY_MIN = -2
|
||||
THREAD_BASE_PRIORITY_MAX = 2
|
||||
THREAD_BASE_PRIORITY_LOWRT = 15
|
||||
THREAD_BASE_PRIORITY_IDLE = -15
|
||||
THREAD_PRIORITY_LOWEST = THREAD_BASE_PRIORITY_MIN
|
||||
THREAD_PRIORITY_BELOW_NORMAL = THREAD_PRIORITY_LOWEST + 1
|
||||
THREAD_PRIORITY_NORMAL = 0
|
||||
THREAD_PRIORITY_HIGHEST = THREAD_BASE_PRIORITY_MAX
|
||||
THREAD_PRIORITY_ABOVE_NORMAL = THREAD_PRIORITY_HIGHEST - 1
|
||||
THREAD_PRIORITY_ERROR_RETURN = 7FFFFFFFh
|
||||
THREAD_PRIORITY_TIME_CRITICAL = THREAD_BASE_PRIORITY_LOWRT
|
||||
THREAD_PRIORITY_IDLE = THREAD_BASE_PRIORITY_IDLE
|
||||
|
||||
; Startup flags
|
||||
|
||||
STARTF_USESHOWWINDOW = 001h
|
||||
STARTF_USESIZE = 002h
|
||||
STARTF_USEPOSITION = 004h
|
||||
STARTF_USECOUNTCHARS = 008h
|
||||
STARTF_USEFILLATTRIBUTE = 010h
|
||||
STARTF_RUNFULLSCREEN = 020h
|
||||
STARTF_FORCEONFEEDBACK = 040h
|
||||
STARTF_FORCEOFFFEEDBACK = 080h
|
||||
STARTF_USESTDHANDLES = 100h
|
||||
|
||||
; Shutdown flags
|
||||
|
||||
SHUTDOWN_NORETRY = 1h
|
||||
|
||||
; LoadLibraryEx flags
|
||||
|
||||
DONT_RESOLVE_DLL_REFERENCES = 1
|
||||
LOAD_LIBRARY_AS_DATAFILE = 2
|
||||
LOAD_WITH_ALTERED_SEARCH_PATH = 8
|
||||
|
||||
; DLL entry-point calls
|
||||
|
||||
DLL_PROCESS_DETACH = 0
|
||||
DLL_PROCESS_ATTACH = 1
|
||||
DLL_THREAD_ATTACH = 2
|
||||
DLL_THREAD_DETACH = 3
|
||||
|
||||
; Status codes
|
||||
|
||||
STATUS_WAIT_0 = 000000000h
|
||||
STATUS_ABANDONED_WAIT_0 = 000000080h
|
||||
STATUS_USER_APC = 0000000C0h
|
||||
STATUS_TIMEOUT = 000000102h
|
||||
STATUS_PENDING = 000000103h
|
||||
STATUS_DATATYPE_MISALIGNMENT = 080000002h
|
||||
STATUS_BREAKPOINT = 080000003h
|
||||
STATUS_SINGLE_STEP = 080000004h
|
||||
STATUS_ACCESS_VIOLATION = 0C0000005h
|
||||
STATUS_IN_PAGE_ERROR = 0C0000006h
|
||||
STATUS_NO_MEMORY = 0C0000017h
|
||||
STATUS_ILLEGAL_INSTRUCTION = 0C000001Dh
|
||||
STATUS_NONCONTINUABLE_EXCEPTION = 0C0000025h
|
||||
STATUS_INVALID_DISPOSITION = 0C0000026h
|
||||
STATUS_ARRAY_BOUNDS_EXCEEDED = 0C000008Ch
|
||||
STATUS_FLOAT_DENORMAL_OPERAND = 0C000008Dh
|
||||
STATUS_FLOAT_DIVIDE_BY_ZERO = 0C000008Eh
|
||||
STATUS_FLOAT_INEXACT_RESULT = 0C000008Fh
|
||||
STATUS_FLOAT_INVALID_OPERATION = 0C0000090h
|
||||
STATUS_FLOAT_OVERFLOW = 0C0000091h
|
||||
STATUS_FLOAT_STACK_CHECK = 0C0000092h
|
||||
STATUS_FLOAT_UNDERFLOW = 0C0000093h
|
||||
STATUS_INTEGER_DIVIDE_BY_ZERO = 0C0000094h
|
||||
STATUS_INTEGER_OVERFLOW = 0C0000095h
|
||||
STATUS_PRIVILEGED_INSTRUCTION = 0C0000096h
|
||||
STATUS_STACK_OVERFLOW = 0C00000FDh
|
||||
STATUS_CONTROL_C_EXIT = 0C000013Ah
|
||||
WAIT_FAILED = -1
|
||||
WAIT_OBJECT_0 = STATUS_WAIT_0
|
||||
WAIT_ABANDONED = STATUS_ABANDONED_WAIT_0
|
||||
WAIT_ABANDONED_0 = STATUS_ABANDONED_WAIT_0
|
||||
WAIT_TIMEOUT = STATUS_TIMEOUT
|
||||
WAIT_IO_COMPLETION = STATUS_USER_APC
|
||||
STILL_ACTIVE = STATUS_PENDING
|
||||
|
||||
; Exception codes
|
||||
|
||||
EXCEPTION_CONTINUABLE = 0
|
||||
EXCEPTION_NONCONTINUABLE = 1
|
||||
EXCEPTION_ACCESS_VIOLATION = STATUS_ACCESS_VIOLATION
|
||||
EXCEPTION_DATATYPE_MISALIGNMENT = STATUS_DATATYPE_MISALIGNMENT
|
||||
EXCEPTION_BREAKPOINT = STATUS_BREAKPOINT
|
||||
EXCEPTION_SINGLE_STEP = STATUS_SINGLE_STEP
|
||||
EXCEPTION_ARRAY_BOUNDS_EXCEEDED = STATUS_ARRAY_BOUNDS_EXCEEDED
|
||||
EXCEPTION_FLT_DENORMAL_OPERAND = STATUS_FLOAT_DENORMAL_OPERAND
|
||||
EXCEPTION_FLT_DIVIDE_BY_ZERO = STATUS_FLOAT_DIVIDE_BY_ZERO
|
||||
EXCEPTION_FLT_INEXACT_RESULT = STATUS_FLOAT_INEXACT_RESULT
|
||||
EXCEPTION_FLT_INVALID_OPERATION = STATUS_FLOAT_INVALID_OPERATION
|
||||
EXCEPTION_FLT_OVERFLOW = STATUS_FLOAT_OVERFLOW
|
||||
EXCEPTION_FLT_STACK_CHECK = STATUS_FLOAT_STACK_CHECK
|
||||
EXCEPTION_FLT_UNDERFLOW = STATUS_FLOAT_UNDERFLOW
|
||||
EXCEPTION_INT_DIVIDE_BY_ZERO = STATUS_INTEGER_DIVIDE_BY_ZERO
|
||||
EXCEPTION_INT_OVERFLOW = STATUS_INTEGER_OVERFLOW
|
||||
EXCEPTION_ILLEGAL_INSTRUCTION = STATUS_ILLEGAL_INSTRUCTION
|
||||
EXCEPTION_PRIV_INSTRUCTION = STATUS_PRIVILEGED_INSTRUCTION
|
||||
EXCEPTION_IN_PAGE_ERROR = STATUS_IN_PAGE_ERROR
|
||||
|
||||
; Registry options
|
||||
|
||||
REG_OPTION_RESERVED = 0
|
||||
REG_OPTION_NON_VOLATILE = 0
|
||||
REG_OPTION_VOLATILE = 1
|
||||
REG_OPTION_CREATE_LINK = 2
|
||||
REG_OPTION_BACKUP_RESTORE = 4
|
||||
REG_CREATED_NEW_KEY = 1
|
||||
REG_OPENED_EXISTING_KEY = 2
|
||||
REG_WHOLE_HIVE_VOLATILE = 1
|
||||
REG_REFRESH_HIVE = 2
|
||||
REG_NOTIFY_CHANGE_NAME = 1
|
||||
REG_NOTIFY_CHANGE_ATTRIBUTES = 2
|
||||
REG_NOTIFY_CHANGE_LAST_SET = 4
|
||||
REG_NOTIFY_CHANGE_SECURITY = 8
|
||||
REG_LEGAL_CHANGE_FILTER = REG_NOTIFY_CHANGE_NAME or REG_NOTIFY_CHANGE_ATTRIBUTES or REG_NOTIFY_CHANGE_LAST_SET or REG_NOTIFY_CHANGE_SECURITY
|
||||
REG_LEGAL_OPTION = REG_OPTION_RESERVED or REG_OPTION_NON_VOLATILE or REG_OPTION_VOLATILE or REG_OPTION_CREATE_LINK or REG_OPTION_BACKUP_RESTORE
|
||||
REG_NONE = 0
|
||||
REG_SZ = 1
|
||||
REG_EXPAND_SZ = 2
|
||||
REG_BINARY = 3
|
||||
REG_DWORD = 4
|
||||
REG_DWORD_LITTLE_ENDIAN = 4
|
||||
REG_DWORD_BIG_ENDIAN = 5
|
||||
REG_LINK = 6
|
||||
REG_MULTI_SZ = 7
|
||||
REG_RESOURCE_LIST = 8
|
||||
REG_FULL_RESOURCE_DESCRIPTOR = 9
|
||||
REG_RESOURCE_REQUIREMENTS_LIST = 10
|
||||
|
||||
; Registry access modes
|
||||
|
||||
KEY_QUERY_VALUE = 1
|
||||
KEY_SET_VALUE = 2
|
||||
KEY_CREATE_SUB_KEY = 4
|
||||
KEY_ENUMERATE_SUB_KEYS = 8
|
||||
KEY_NOTIFY = 10h
|
||||
KEY_CREATE_LINK = 20h
|
||||
KEY_READ = STANDARD_RIGHTS_READ or KEY_QUERY_VALUE or KEY_ENUMERATE_SUB_KEYS or KEY_NOTIFY and not SYNCHRONIZE
|
||||
KEY_WRITE = STANDARD_RIGHTS_WRITE or KEY_SET_VALUE or KEY_CREATE_SUB_KEY and not SYNCHRONIZE
|
||||
KEY_EXECUTE = KEY_READ
|
||||
KEY_ALL_ACCESS = STANDARD_RIGHTS_ALL or KEY_QUERY_VALUE or KEY_SET_VALUE or KEY_CREATE_SUB_KEY or KEY_ENUMERATE_SUB_KEYS or KEY_NOTIFY or KEY_CREATE_LINK and not SYNCHRONIZE
|
||||
|
||||
; Predefined registry keys
|
||||
|
||||
HKEY_CLASSES_ROOT = 80000000h
|
||||
HKEY_CURRENT_USER = 80000001h
|
||||
HKEY_LOCAL_MACHINE = 80000002h
|
||||
HKEY_USERS = 80000003h
|
||||
HKEY_PERFORMANCE_DATA = 80000004h
|
||||
HKEY_CURRENT_CONFIG = 80000005h
|
||||
HKEY_DYN_DATA = 80000006h
|
||||
|
||||
; FormatMessage flags
|
||||
|
||||
FORMAT_MESSAGE_ALLOCATE_BUFFER = 0100h
|
||||
FORMAT_MESSAGE_IGNORE_INSERTS = 0200h
|
||||
FORMAT_MESSAGE_FROM_STRING = 0400h
|
||||
FORMAT_MESSAGE_FROM_HMODULE = 0800h
|
||||
FORMAT_MESSAGE_FROM_SYSTEM = 1000h
|
||||
FORMAT_MESSAGE_ARGUMENT_ARRAY = 2000h
|
||||
FORMAT_MESSAGE_MAX_WIDTH_MASK = 00FFh
|
||||
|
||||
; Language identifiers
|
||||
|
||||
LANG_NEUTRAL = 00h
|
||||
LANG_BULGARIAN = 02h
|
||||
LANG_CHINESE = 04h
|
||||
LANG_CROATIAN = 1Ah
|
||||
LANG_CZECH = 05h
|
||||
LANG_DANISH = 06h
|
||||
LANG_DUTCH = 13h
|
||||
LANG_ENGLISH = 09h
|
||||
LANG_FINNISH = 0Bh
|
||||
LANG_FRENCH = 0Ch
|
||||
LANG_GERMAN = 07h
|
||||
LANG_GREEK = 08h
|
||||
LANG_HUNGARIAN = 0Eh
|
||||
LANG_ICELANDIC = 0Fh
|
||||
LANG_ITALIAN = 10h
|
||||
LANG_JAPANESE = 11h
|
||||
LANG_KOREAN = 12h
|
||||
LANG_NORWEGIAN = 14h
|
||||
LANG_POLISH = 15h
|
||||
LANG_PORTUGUESE = 16h
|
||||
LANG_ROMANIAN = 18h
|
||||
LANG_RUSSIAN = 19h
|
||||
LANG_SLOVAK = 1Bh
|
||||
LANG_SLOVENIAN = 24h
|
||||
LANG_SPANISH = 0Ah
|
||||
LANG_SWEDISH = 1Dh
|
||||
LANG_THAI = 1Eh
|
||||
LANG_TURKISH = 1Fh
|
||||
|
||||
; Sublanguage identifiers
|
||||
|
||||
SUBLANG_NEUTRAL = 00h shl 10
|
||||
SUBLANG_DEFAULT = 01h shl 10
|
||||
SUBLANG_SYS_DEFAULT = 02h shl 10
|
||||
SUBLANG_CHINESE_TRADITIONAL = 01h shl 10
|
||||
SUBLANG_CHINESE_SIMPLIFIED = 02h shl 10
|
||||
SUBLANG_CHINESE_HONGKONG = 03h shl 10
|
||||
SUBLANG_CHINESE_SINGAPORE = 04h shl 10
|
||||
SUBLANG_DUTCH = 01h shl 10
|
||||
SUBLANG_DUTCH_BELGIAN = 02h shl 10
|
||||
SUBLANG_ENGLISH_US = 01h shl 10
|
||||
SUBLANG_ENGLISH_UK = 02h shl 10
|
||||
SUBLANG_ENGLISH_AUS = 03h shl 10
|
||||
SUBLANG_ENGLISH_CAN = 04h shl 10
|
||||
SUBLANG_ENGLISH_NZ = 05h shl 10
|
||||
SUBLANG_ENGLISH_EIRE = 06h shl 10
|
||||
SUBLANG_FRENCH = 01h shl 10
|
||||
SUBLANG_FRENCH_BELGIAN = 02h shl 10
|
||||
SUBLANG_FRENCH_CANADIAN = 03h shl 10
|
||||
SUBLANG_FRENCH_SWISS = 04h shl 10
|
||||
SUBLANG_GERMAN = 01h shl 10
|
||||
SUBLANG_GERMAN_SWISS = 02h shl 10
|
||||
SUBLANG_GERMAN_AUSTRIAN = 03h shl 10
|
||||
SUBLANG_ITALIAN = 01h shl 10
|
||||
SUBLANG_ITALIAN_SWISS = 02h shl 10
|
||||
SUBLANG_NORWEGIAN_BOKMAL = 01h shl 10
|
||||
SUBLANG_NORWEGIAN_NYNORSK = 02h shl 10
|
||||
SUBLANG_PORTUGUESE = 02h shl 10
|
||||
SUBLANG_PORTUGUESE_BRAZILIAN = 01h shl 10
|
||||
SUBLANG_SPANISH = 01h shl 10
|
||||
SUBLANG_SPANISH_MEXICAN = 02h shl 10
|
||||
SUBLANG_SPANISH_MODERN = 03h shl 10
|
||||
|
||||
; Sorting identifiers
|
||||
|
||||
SORT_DEFAULT = 0 shl 16
|
||||
SORT_JAPANESE_XJIS = 0 shl 16
|
||||
SORT_JAPANESE_UNICODE = 1 shl 16
|
||||
SORT_CHINESE_BIG5 = 0 shl 16
|
||||
SORT_CHINESE_PRCP = 0 shl 16
|
||||
SORT_CHINESE_UNICODE = 1 shl 16
|
||||
SORT_CHINESE_PRC = 2 shl 16
|
||||
SORT_CHINESE_BOPOMOFO = 3 shl 16
|
||||
SORT_KOREAN_KSC = 0 shl 16
|
||||
SORT_KOREAN_UNICODE = 1 shl 16
|
||||
SORT_GERMAN_PHONE_BOOK = 1 shl 16
|
||||
SORT_HUNGARIAN_DEFAULT = 0 shl 16
|
||||
SORT_HUNGARIAN_TECHNICAL = 1 shl 16
|
||||
|
||||
; Code pages
|
||||
|
||||
CP_ACP = 0 ; default to ANSI code page
|
||||
CP_OEMCP = 1 ; default to OEM code page
|
||||
CP_MACCP = 2 ; default to MAC code page
|
||||
CP_THREAD_ACP = 3 ; current thread's ANSI code page
|
||||
CP_SYMBOL = 42 ; SYMBOL translations
|
||||
CP_UTF7 = 65000 ; UTF-7 translation
|
||||
CP_UTF8 = 65001 ; UTF-8 translation
|
||||
|
||||
; Resource types
|
||||
|
||||
RT_CURSOR = 1
|
||||
RT_BITMAP = 2
|
||||
RT_ICON = 3
|
||||
RT_MENU = 4
|
||||
RT_DIALOG = 5
|
||||
RT_STRING = 6
|
||||
RT_FONTDIR = 7
|
||||
RT_FONT = 8
|
||||
RT_ACCELERATOR = 9
|
||||
RT_RCDATA = 10
|
||||
RT_MESSAGETABLE = 11
|
||||
RT_GROUP_CURSOR = 12
|
||||
RT_GROUP_ICON = 14
|
||||
RT_VERSION = 16
|
||||
RT_DLGINCLUDE = 17
|
||||
RT_PLUGPLAY = 19
|
||||
RT_VXD = 20
|
||||
RT_ANICURSOR = 21
|
||||
RT_ANIICON = 22
|
||||
RT_HTML = 23
|
||||
RT_MANIFEST = 24
|
||||
|
||||
; Clipboard formats
|
||||
|
||||
CF_TEXT = 001h
|
||||
CF_BITMAP = 002h
|
||||
CF_METAFILEPICT = 003h
|
||||
CF_SYLK = 004h
|
||||
CF_DIF = 005h
|
||||
CF_TIFF = 006h
|
||||
CF_OEMTEXT = 007h
|
||||
CF_DIB = 008h
|
||||
CF_PALETTE = 009h
|
||||
CF_PENDATA = 00Ah
|
||||
CF_RIFF = 00Bh
|
||||
CF_WAVE = 00Ch
|
||||
CF_UNICODETEXT = 00Dh
|
||||
CF_ENHMETAFILE = 00Eh
|
||||
CF_HDROP = 00Fh
|
||||
CF_LOCALE = 010h
|
||||
CF_OWNERDISPLAY = 080h
|
||||
CF_DSPTEXT = 081h
|
||||
CF_DSPBITMAP = 082h
|
||||
CF_DSPMETAFILEPICT = 083h
|
||||
CF_DSPENHMETAFILE = 08Eh
|
||||
CF_PRIVATEFIRST = 200h
|
||||
CF_PRIVATELAST = 2FFh
|
||||
CF_GDIOBJFIRST = 300h
|
||||
CF_GDIOBJLAST = 3FFh
|
||||
|
||||
; OS types for version info
|
||||
|
||||
VOS_UNKNOWN = 00000000h
|
||||
VOS_DOS = 00010000h
|
||||
VOS_OS216 = 00020000h
|
||||
VOS_OS232 = 00030000h
|
||||
VOS_NT = 00040000h
|
||||
VOS__BASE = 00000000h
|
||||
VOS__WINDOWS16 = 00000001h
|
||||
VOS__PM16 = 00000002h
|
||||
VOS__PM32 = 00000003h
|
||||
VOS__WINDOWS32 = 00000004h
|
||||
VOS_DOS_WINDOWS16 = 00010001h
|
||||
VOS_DOS_WINDOWS32 = 00010004h
|
||||
VOS_OS216_PM16 = 00020002h
|
||||
VOS_OS232_PM32 = 00030003h
|
||||
VOS_NT_WINDOWS32 = 00040004h
|
||||
|
||||
; File types for version info
|
||||
|
||||
VFT_UNKNOWN = 00000000h
|
||||
VFT_APP = 00000001h
|
||||
VFT_DLL = 00000002h
|
||||
VFT_DRV = 00000003h
|
||||
VFT_FONT = 00000004h
|
||||
VFT_VXD = 00000005h
|
||||
VFT_STATIC_LIB = 00000007h
|
||||
|
||||
; File subtypes for version info
|
||||
|
||||
VFT2_UNKNOWN = 00000000h
|
||||
VFT2_DRV_PRINTER = 00000001h
|
||||
VFT2_DRV_KEYBOARD = 00000002h
|
||||
VFT2_DRV_LANGUAGE = 00000003h
|
||||
VFT2_DRV_DISPLAY = 00000004h
|
||||
VFT2_DRV_MOUSE = 00000005h
|
||||
VFT2_DRV_NETWORK = 00000006h
|
||||
VFT2_DRV_SYSTEM = 00000007h
|
||||
VFT2_DRV_INSTALLABLE = 00000008h
|
||||
VFT2_DRV_SOUND = 00000009h
|
||||
VFT2_DRV_COMM = 0000000Ah
|
||||
VFT2_DRV_INPUTMETHOD = 0000000Bh
|
||||
VFT2_DRV_VERSIONED_PRINTER = 0000000Ch
|
||||
VFT2_FONT_RASTER = 00000001h
|
||||
VFT2_FONT_VECTOR = 00000002h
|
||||
VFT2_FONT_TRUETYPE = 00000003h
|
||||
|
||||
; Console control signals
|
||||
|
||||
CTRL_C_EVENT = 0
|
||||
CTRL_BREAK_EVENT = 1
|
||||
CTRL_CLOSE_EVENT = 2
|
||||
CTRL_LOGOFF_EVENT = 5
|
||||
CTRL_SHUTDOWN_EVENT = 6
|
||||
|
||||
; Standard file handles
|
||||
|
||||
STD_INPUT_HANDLE = 0FFFFFFF6h
|
||||
STD_OUTPUT_HANDLE = 0FFFFFFF5h
|
||||
STD_ERROR_HANDLE = 0FFFFFFF4h
|
||||
806
fasmw172/INCLUDE/EQUATES/KERNEL64.INC
Normal file
806
fasmw172/INCLUDE/EQUATES/KERNEL64.INC
Normal file
@@ -0,0 +1,806 @@
|
||||
|
||||
; KERNEL32.DLL structures and constants
|
||||
|
||||
struct SYSTEM_INFO
|
||||
wProcessorArchitecture dw ?
|
||||
wReserved dw ?
|
||||
dwPageSize dd ?
|
||||
lpMinimumApplicationAddress dq ?
|
||||
lpMaximumApplicationAddress dq ?
|
||||
dwActiveProcessorMask dq ?
|
||||
dwNumberOfProcessors dd ?
|
||||
dwProcessorType dd ?
|
||||
dwAllocationGranularity dd ?
|
||||
wProcessorLevel dw ?
|
||||
wProcessorRevision dw ?
|
||||
ends
|
||||
|
||||
struct OSVERSIONINFO
|
||||
dwOSVersionInfoSize dd ?
|
||||
dwMajorVersion dd ?
|
||||
dwMinorVersion dd ?
|
||||
dwBuildNumber dd ?
|
||||
dwPlatformId dd ?
|
||||
szCSDVersion TCHAR 128 dup (?)
|
||||
ends
|
||||
|
||||
struct OSVERSIONINFOA
|
||||
dwOSVersionInfoSize dd ?
|
||||
dwMajorVersion dd ?
|
||||
dwMinorVersion dd ?
|
||||
dwBuildNumber dd ?
|
||||
dwPlatformId dd ?
|
||||
szCSDVersion db 128 dup (?)
|
||||
ends
|
||||
|
||||
struct OSVERSIONINFOW
|
||||
dwOSVersionInfoSize dd ?
|
||||
dwMajorVersion dd ?
|
||||
dwMinorVersion dd ?
|
||||
dwBuildNumber dd ?
|
||||
dwPlatformId dd ?
|
||||
szCSDVersion du 128 dup (?)
|
||||
ends
|
||||
|
||||
struct MEMORYSTATUS
|
||||
dwLength dd ?
|
||||
dwMemoryLoad dd ?
|
||||
dwTotalPhys dq ?
|
||||
dwAvailPhys dq ?
|
||||
dwTotalPageFile dq ?
|
||||
dwAvailPageFile dq ?
|
||||
dwTotalVirtual dq ?
|
||||
dwAvailVirtual dq ?
|
||||
ends
|
||||
|
||||
struct STARTUPINFO
|
||||
cb dd ?,?
|
||||
lpReserved dq ?
|
||||
lpDesktop dq ?
|
||||
lpTitle dq ?
|
||||
dwX dd ?
|
||||
dwY dd ?
|
||||
dwXSize dd ?
|
||||
dwYSize dd ?
|
||||
dwXCountChars dd ?
|
||||
dwYCountChars dd ?
|
||||
dwFillAttribute dd ?
|
||||
dwFlags dd ?
|
||||
wShowWindow dw ?
|
||||
cbReserved2 dw ?,?,?
|
||||
lpReserved2 dq ?
|
||||
hStdInput dq ?
|
||||
hStdOutput dq ?
|
||||
hStdError dq ?
|
||||
ends
|
||||
|
||||
struct PROCESS_INFORMATION
|
||||
hProcess dq ?
|
||||
hThread dq ?
|
||||
dwProcessId dd ?
|
||||
dwThreadId dd ?
|
||||
ends
|
||||
|
||||
struct FILETIME
|
||||
dwLowDateTime dd ?
|
||||
dwHighDateTime dd ?
|
||||
ends
|
||||
|
||||
struct SYSTEMTIME
|
||||
wYear dw ?
|
||||
wMonth dw ?
|
||||
wDayOfWeek dw ?
|
||||
wDay dw ?
|
||||
wHour dw ?
|
||||
wMinute dw ?
|
||||
wSecond dw ?
|
||||
wMilliseconds dw ?
|
||||
ends
|
||||
|
||||
struct BY_HANDLE_FILE_INFORMATION
|
||||
dwFileAttributes dd ?
|
||||
ftCreationTime FILETIME
|
||||
ftLastAccessTime FILETIME
|
||||
ftLastWriteTime FILETIME
|
||||
dwVolumeSerialNumber dd ?
|
||||
nFileSizeHigh dd ?
|
||||
nFileSizeLow dd ?
|
||||
nNumberOfLinks dd ?
|
||||
nFileIndexHigh dd ?
|
||||
nFileIndexLow dd ?
|
||||
ends
|
||||
|
||||
struct WIN32_FIND_DATA
|
||||
dwFileAttributes dd ?
|
||||
ftCreationTime FILETIME
|
||||
ftLastAccessTime FILETIME
|
||||
ftLastWriteTime FILETIME
|
||||
nFileSizeHigh dd ?
|
||||
nFileSizeLow dd ?
|
||||
dwReserved0 dd ?
|
||||
dwReserved1 dd ?
|
||||
cFileName TCHAR MAX_PATH dup (?)
|
||||
cAlternateFileName TCHAR 14 dup (?)
|
||||
ends
|
||||
|
||||
struct WIN32_FIND_DATAA
|
||||
dwFileAttributes dd ?
|
||||
ftCreationTime FILETIME
|
||||
ftLastAccessTime FILETIME
|
||||
ftLastWriteTime FILETIME
|
||||
nFileSizeHigh dd ?
|
||||
nFileSizeLow dd ?
|
||||
dwReserved0 dd ?
|
||||
dwReserved1 dd ?
|
||||
cFileName db MAX_PATH dup (?)
|
||||
cAlternateFileName db 14 dup (?)
|
||||
ends
|
||||
|
||||
struct WIN32_FIND_DATAW
|
||||
dwFileAttributes dd ?
|
||||
ftCreationTime FILETIME
|
||||
ftLastAccessTime FILETIME
|
||||
ftLastWriteTime FILETIME
|
||||
nFileSizeHigh dd ?
|
||||
nFileSizeLow dd ?
|
||||
dwReserved0 dd ?
|
||||
dwReserved1 dd ?
|
||||
cFileName du MAX_PATH dup (?)
|
||||
cAlternateFileName du 14 dup (?)
|
||||
ends
|
||||
|
||||
; General constants
|
||||
|
||||
NULL = 0
|
||||
TRUE = 1
|
||||
FALSE = 0
|
||||
|
||||
; Maximum path length in characters
|
||||
|
||||
MAX_PATH = 260
|
||||
|
||||
; Access rights
|
||||
|
||||
DELETE_RIGHT = 00010000h
|
||||
READ_CONTROL = 00020000h
|
||||
WRITE_DAC = 00040000h
|
||||
WRITE_OWNER = 00080000h
|
||||
SYNCHRONIZE = 00100000h
|
||||
STANDARD_RIGHTS_READ = READ_CONTROL
|
||||
STANDARD_RIGHTS_WRITE = READ_CONTROL
|
||||
STANDARD_RIGHTS_EXECUTE = READ_CONTROL
|
||||
STANDARD_RIGHTS_REQUIRED = 000F0000h
|
||||
STANDARD_RIGHTS_ALL = 001F0000h
|
||||
SPECIFIC_RIGHTS_ALL = 0000FFFFh
|
||||
ACCESS_SYSTEM_SECURITY = 01000000h
|
||||
MAXIMUM_ALLOWED = 02000000h
|
||||
GENERIC_READ = 80000000h
|
||||
GENERIC_WRITE = 40000000h
|
||||
GENERIC_EXECUTE = 20000000h
|
||||
GENERIC_ALL = 10000000h
|
||||
PROCESS_TERMINATE = 00000001h
|
||||
PROCESS_CREATE_THREAD = 00000002h
|
||||
PROCESS_VM_OPERATION = 00000008h
|
||||
PROCESS_VM_READ = 00000010h
|
||||
PROCESS_VM_WRITE = 00000020h
|
||||
PROCESS_DUP_HANDLE = 00000040h
|
||||
PROCESS_CREATE_PROCESS = 00000080h
|
||||
PROCESS_SET_QUOTA = 00000100h
|
||||
PROCESS_SET_INFORMATION = 00000200h
|
||||
PROCESS_QUERY_INFORMATION = 00000400h
|
||||
PROCESS_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED or SYNCHRONIZE or 0FFFh
|
||||
FILE_SHARE_READ = 00000001h
|
||||
FILE_SHARE_WRITE = 00000002h
|
||||
FILE_SHARE_DELETE = 00000004h
|
||||
|
||||
; CreateFile actions
|
||||
|
||||
CREATE_NEW = 1
|
||||
CREATE_ALWAYS = 2
|
||||
OPEN_EXISTING = 3
|
||||
OPEN_ALWAYS = 4
|
||||
TRUNCATE_EXISTING = 5
|
||||
|
||||
; OpenFile modes
|
||||
|
||||
OF_READ = 0000h
|
||||
OF_WRITE = 0001h
|
||||
OF_READWRITE = 0002h
|
||||
OF_SHARE_COMPAT = 0000h
|
||||
OF_SHARE_EXCLUSIVE = 0010h
|
||||
OF_SHARE_DENY_WRITE = 0020h
|
||||
OF_SHARE_DENY_READ = 0030h
|
||||
OF_SHARE_DENY_NONE = 0040h
|
||||
OF_PARSE = 0100h
|
||||
OF_DELETE = 0200h
|
||||
OF_VERIFY = 0400h
|
||||
OF_CANCEL = 0800h
|
||||
OF_CREATE = 1000h
|
||||
OF_PROMPT = 2000h
|
||||
OF_EXIST = 4000h
|
||||
OF_REOPEN = 8000h
|
||||
|
||||
; SetFilePointer methods
|
||||
|
||||
FILE_BEGIN = 0
|
||||
FILE_CURRENT = 1
|
||||
FILE_END = 2
|
||||
|
||||
; File attributes
|
||||
|
||||
FILE_ATTRIBUTE_READONLY = 001h
|
||||
FILE_ATTRIBUTE_HIDDEN = 002h
|
||||
FILE_ATTRIBUTE_SYSTEM = 004h
|
||||
FILE_ATTRIBUTE_DIRECTORY = 010h
|
||||
FILE_ATTRIBUTE_ARCHIVE = 020h
|
||||
FILE_ATTRIBUTE_NORMAL = 080h
|
||||
FILE_ATTRIBUTE_TEMPORARY = 100h
|
||||
FILE_ATTRIBUTE_COMPRESSED = 800h
|
||||
|
||||
; File flags
|
||||
|
||||
FILE_FLAG_WRITE_THROUGH = 80000000h
|
||||
FILE_FLAG_OVERLAPPED = 40000000h
|
||||
FILE_FLAG_NO_BUFFERING = 20000000h
|
||||
FILE_FLAG_RANDOM_ACCESS = 10000000h
|
||||
FILE_FLAG_SEQUENTIAL_SCAN = 08000000h
|
||||
FILE_FLAG_DELETE_ON_CLOSE = 04000000h
|
||||
FILE_FLAG_BACKUP_SEMANTICS = 02000000h
|
||||
FILE_FLAG_POSIX_SEMANTICS = 01000000h
|
||||
|
||||
; Notify filters
|
||||
|
||||
FILE_NOTIFY_CHANGE_FILE_NAME = 001h
|
||||
FILE_NOTIFY_CHANGE_DIR_NAME = 002h
|
||||
FILE_NOTIFY_CHANGE_ATTRIBUTES = 004h
|
||||
FILE_NOTIFY_CHANGE_SIZE = 008h
|
||||
FILE_NOTIFY_CHANGE_LAST_WRITE = 010h
|
||||
FILE_NOTIFY_CHANGE_SECURITY = 100h
|
||||
|
||||
; File types
|
||||
|
||||
FILE_TYPE_UNKNOWN = 0
|
||||
FILE_TYPE_DISK = 1
|
||||
FILE_TYPE_CHAR = 2
|
||||
FILE_TYPE_PIPE = 3
|
||||
FILE_TYPE_REMOTE = 8000h
|
||||
|
||||
; LockFileEx flags
|
||||
|
||||
LOCKFILE_FAIL_IMMEDIATELY = 1
|
||||
LOCKFILE_EXCLUSIVE_LOCK = 2
|
||||
|
||||
; MoveFileEx flags
|
||||
|
||||
MOVEFILE_REPLACE_EXISTING = 1
|
||||
MOVEFILE_COPY_ALLOWED = 2
|
||||
MOVEFILE_DELAY_UNTIL_REBOOT = 4
|
||||
MOVEFILE_WRITE_THROUGH = 8
|
||||
|
||||
; FindFirstFileEx flags
|
||||
|
||||
FIND_FIRST_EX_CASE_SENSITIVE = 1
|
||||
|
||||
; Device handles
|
||||
|
||||
INVALID_HANDLE_VALUE = -1
|
||||
STD_INPUT_HANDLE = -10
|
||||
STD_OUTPUT_HANDLE = -11
|
||||
STD_ERROR_HANDLE = -12
|
||||
|
||||
; DuplicateHandle options
|
||||
|
||||
DUPLICATE_CLOSE_SOURCE = 1
|
||||
DUPLICATE_SAME_ACCESS = 2
|
||||
|
||||
; File mapping acccess rights
|
||||
|
||||
SECTION_QUERY = 01h
|
||||
SECTION_MAP_WRITE = 02h
|
||||
SECTION_MAP_READ = 04h
|
||||
SECTION_MAP_EXECUTE = 08h
|
||||
SECTION_EXTEND_SIZE = 10h
|
||||
SECTION_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED or SECTION_QUERY or SECTION_MAP_WRITE or SECTION_MAP_READ or SECTION_MAP_EXECUTE or SECTION_EXTEND_SIZE
|
||||
FILE_MAP_COPY = SECTION_QUERY
|
||||
FILE_MAP_WRITE = SECTION_MAP_WRITE
|
||||
FILE_MAP_READ = SECTION_MAP_READ
|
||||
FILE_MAP_ALL_ACCESS = SECTION_ALL_ACCESS
|
||||
|
||||
; File system flags
|
||||
|
||||
FILE_CASE_SENSITIVE_SEARCH = 0001h
|
||||
FILE_CASE_PRESERVED_NAMES = 0002h
|
||||
FILE_UNICODE_ON_DISK = 0004h
|
||||
FILE_PERSISTENT_ACLS = 0008h
|
||||
FILE_FILE_COMPRESSION = 0010h
|
||||
FILE_VOLUME_IS_COMPRESSED = 8000h
|
||||
FS_CASE_IS_PRESERVED = FILE_CASE_PRESERVED_NAMES
|
||||
FS_CASE_SENSITIVE = FILE_CASE_SENSITIVE_SEARCH
|
||||
FS_UNICODE_STORED_ON_DISK = FILE_UNICODE_ON_DISK
|
||||
FS_PERSISTENT_ACLS = FILE_PERSISTENT_ACLS
|
||||
|
||||
; Drive types
|
||||
|
||||
DRIVE_UNKNOWN = 0
|
||||
DRIVE_NO_ROOT_DIR = 1
|
||||
DRIVE_REMOVABLE = 2
|
||||
DRIVE_FIXED = 3
|
||||
DRIVE_REMOTE = 4
|
||||
DRIVE_CDROM = 5
|
||||
DRIVE_RAMDISK = 6
|
||||
|
||||
; Pipe modes
|
||||
|
||||
PIPE_ACCESS_INBOUND = 1
|
||||
PIPE_ACCESS_OUTBOUND = 2
|
||||
PIPE_ACCESS_DUPLEX = 3
|
||||
PIPE_CLIENT_END = 0
|
||||
PIPE_SERVER_END = 1
|
||||
PIPE_WAIT = 0
|
||||
PIPE_NOWAIT = 1
|
||||
PIPE_READMODE_BYTE = 0
|
||||
PIPE_READMODE_MESSAGE = 2
|
||||
PIPE_TYPE_BYTE = 0
|
||||
PIPE_TYPE_MESSAGE = 4
|
||||
PIPE_UNLIMITED_INSTANCES = 255
|
||||
|
||||
; Global memory flags
|
||||
|
||||
GMEM_FIXED = 0000h
|
||||
GMEM_MOVEABLE = 0002h
|
||||
GMEM_NOCOMPACT = 0010h
|
||||
GMEM_NODISCARD = 0020h
|
||||
GMEM_ZEROINIT = 0040h
|
||||
GMEM_MODIFY = 0080h
|
||||
GMEM_DISCARDABLE = 0100h
|
||||
GMEM_NOT_BANKED = 1000h
|
||||
GMEM_SHARE = 2000h
|
||||
GMEM_DDESHARE = 2000h
|
||||
GMEM_NOTIFY = 4000h
|
||||
GMEM_LOWER = GMEM_NOT_BANKED
|
||||
GMEM_VALID_FLAGS = 7F72h
|
||||
GMEM_INVALID_HANDLE = 8000h
|
||||
GMEM_DISCARDED = 4000h
|
||||
GMEM_LOCKCOUNT = 0FFh
|
||||
GHND = GMEM_MOVEABLE + GMEM_ZEROINIT
|
||||
GPTR = GMEM_FIXED + GMEM_ZEROINIT
|
||||
|
||||
; Local memory flags
|
||||
|
||||
LMEM_FIXED = 0000h
|
||||
LMEM_MOVEABLE = 0002h
|
||||
LMEM_NOCOMPACT = 0010h
|
||||
LMEM_NODISCARD = 0020h
|
||||
LMEM_ZEROINIT = 0040h
|
||||
LMEM_MODIFY = 0080h
|
||||
LMEM_DISCARDABLE = 0F00h
|
||||
LMEM_VALID_FLAGS = 0F72h
|
||||
LMEM_INVALID_HANDLE = 8000h
|
||||
LHND = LMEM_MOVEABLE + LMEM_ZEROINIT
|
||||
LPTR = LMEM_FIXED + LMEM_ZEROINIT
|
||||
LMEM_DISCARDED = 4000h
|
||||
LMEM_LOCKCOUNT = 00FFh
|
||||
|
||||
; Page access flags
|
||||
|
||||
PAGE_NOACCESS = 001h
|
||||
PAGE_READONLY = 002h
|
||||
PAGE_READWRITE = 004h
|
||||
PAGE_WRITECOPY = 008h
|
||||
PAGE_EXECUTE = 010h
|
||||
PAGE_EXECUTE_READ = 020h
|
||||
PAGE_EXECUTE_READWRITE = 040h
|
||||
PAGE_EXECUTE_WRITECOPY = 080h
|
||||
PAGE_GUARD = 100h
|
||||
PAGE_NOCACHE = 200h
|
||||
|
||||
; Memory allocation flags
|
||||
|
||||
MEM_COMMIT = 001000h
|
||||
MEM_RESERVE = 002000h
|
||||
MEM_DECOMMIT = 004000h
|
||||
MEM_RELEASE = 008000h
|
||||
MEM_FREE = 010000h
|
||||
MEM_PRIVATE = 020000h
|
||||
MEM_MAPPED = 040000h
|
||||
MEM_RESET = 080000h
|
||||
MEM_TOP_DOWN = 100000h
|
||||
|
||||
; Heap allocation flags
|
||||
|
||||
HEAP_NO_SERIALIZE = 1
|
||||
HEAP_GENERATE_EXCEPTIONS = 4
|
||||
HEAP_ZERO_MEMORY = 8
|
||||
|
||||
; Platform identifiers
|
||||
|
||||
VER_PLATFORM_WIN32s = 0
|
||||
VER_PLATFORM_WIN32_WINDOWS = 1
|
||||
VER_PLATFORM_WIN32_NT = 2
|
||||
|
||||
; GetBinaryType return values
|
||||
|
||||
SCS_32BIT_BINARY = 0
|
||||
SCS_DOS_BINARY = 1
|
||||
SCS_WOW_BINARY = 2
|
||||
SCS_PIF_BINARY = 3
|
||||
SCS_POSIX_BINARY = 4
|
||||
SCS_OS216_BINARY = 5
|
||||
|
||||
; CreateProcess flags
|
||||
|
||||
DEBUG_PROCESS = 001h
|
||||
DEBUG_ONLY_THIS_PROCESS = 002h
|
||||
CREATE_SUSPENDED = 004h
|
||||
DETACHED_PROCESS = 008h
|
||||
CREATE_NEW_CONSOLE = 010h
|
||||
NORMAL_PRIORITY_CLASS = 020h
|
||||
IDLE_PRIORITY_CLASS = 040h
|
||||
HIGH_PRIORITY_CLASS = 080h
|
||||
REALTIME_PRIORITY_CLASS = 100h
|
||||
CREATE_NEW_PROCESS_GROUP = 200h
|
||||
CREATE_SEPARATE_WOW_VDM = 800h
|
||||
|
||||
; Thread priority values
|
||||
|
||||
THREAD_BASE_PRIORITY_MIN = -2
|
||||
THREAD_BASE_PRIORITY_MAX = 2
|
||||
THREAD_BASE_PRIORITY_LOWRT = 15
|
||||
THREAD_BASE_PRIORITY_IDLE = -15
|
||||
THREAD_PRIORITY_LOWEST = THREAD_BASE_PRIORITY_MIN
|
||||
THREAD_PRIORITY_BELOW_NORMAL = THREAD_PRIORITY_LOWEST + 1
|
||||
THREAD_PRIORITY_NORMAL = 0
|
||||
THREAD_PRIORITY_HIGHEST = THREAD_BASE_PRIORITY_MAX
|
||||
THREAD_PRIORITY_ABOVE_NORMAL = THREAD_PRIORITY_HIGHEST - 1
|
||||
THREAD_PRIORITY_ERROR_RETURN = 7FFFFFFFh
|
||||
THREAD_PRIORITY_TIME_CRITICAL = THREAD_BASE_PRIORITY_LOWRT
|
||||
THREAD_PRIORITY_IDLE = THREAD_BASE_PRIORITY_IDLE
|
||||
|
||||
; Startup flags
|
||||
|
||||
STARTF_USESHOWWINDOW = 001h
|
||||
STARTF_USESIZE = 002h
|
||||
STARTF_USEPOSITION = 004h
|
||||
STARTF_USECOUNTCHARS = 008h
|
||||
STARTF_USEFILLATTRIBUTE = 010h
|
||||
STARTF_RUNFULLSCREEN = 020h
|
||||
STARTF_FORCEONFEEDBACK = 040h
|
||||
STARTF_FORCEOFFFEEDBACK = 080h
|
||||
STARTF_USESTDHANDLES = 100h
|
||||
|
||||
; Shutdown flags
|
||||
|
||||
SHUTDOWN_NORETRY = 1h
|
||||
|
||||
; LoadLibraryEx flags
|
||||
|
||||
DONT_RESOLVE_DLL_REFERENCES = 1
|
||||
LOAD_LIBRARY_AS_DATAFILE = 2
|
||||
LOAD_WITH_ALTERED_SEARCH_PATH = 8
|
||||
|
||||
; DLL entry-point calls
|
||||
|
||||
DLL_PROCESS_DETACH = 0
|
||||
DLL_PROCESS_ATTACH = 1
|
||||
DLL_THREAD_ATTACH = 2
|
||||
DLL_THREAD_DETACH = 3
|
||||
|
||||
; Status codes
|
||||
|
||||
STATUS_WAIT_0 = 000000000h
|
||||
STATUS_ABANDONED_WAIT_0 = 000000080h
|
||||
STATUS_USER_APC = 0000000C0h
|
||||
STATUS_TIMEOUT = 000000102h
|
||||
STATUS_PENDING = 000000103h
|
||||
STATUS_DATATYPE_MISALIGNMENT = 080000002h
|
||||
STATUS_BREAKPOINT = 080000003h
|
||||
STATUS_SINGLE_STEP = 080000004h
|
||||
STATUS_ACCESS_VIOLATION = 0C0000005h
|
||||
STATUS_IN_PAGE_ERROR = 0C0000006h
|
||||
STATUS_NO_MEMORY = 0C0000017h
|
||||
STATUS_ILLEGAL_INSTRUCTION = 0C000001Dh
|
||||
STATUS_NONCONTINUABLE_EXCEPTION = 0C0000025h
|
||||
STATUS_INVALID_DISPOSITION = 0C0000026h
|
||||
STATUS_ARRAY_BOUNDS_EXCEEDED = 0C000008Ch
|
||||
STATUS_FLOAT_DENORMAL_OPERAND = 0C000008Dh
|
||||
STATUS_FLOAT_DIVIDE_BY_ZERO = 0C000008Eh
|
||||
STATUS_FLOAT_INEXACT_RESULT = 0C000008Fh
|
||||
STATUS_FLOAT_INVALID_OPERATION = 0C0000090h
|
||||
STATUS_FLOAT_OVERFLOW = 0C0000091h
|
||||
STATUS_FLOAT_STACK_CHECK = 0C0000092h
|
||||
STATUS_FLOAT_UNDERFLOW = 0C0000093h
|
||||
STATUS_INTEGER_DIVIDE_BY_ZERO = 0C0000094h
|
||||
STATUS_INTEGER_OVERFLOW = 0C0000095h
|
||||
STATUS_PRIVILEGED_INSTRUCTION = 0C0000096h
|
||||
STATUS_STACK_OVERFLOW = 0C00000FDh
|
||||
STATUS_CONTROL_C_EXIT = 0C000013Ah
|
||||
WAIT_FAILED = -1
|
||||
WAIT_OBJECT_0 = STATUS_WAIT_0
|
||||
WAIT_ABANDONED = STATUS_ABANDONED_WAIT_0
|
||||
WAIT_ABANDONED_0 = STATUS_ABANDONED_WAIT_0
|
||||
WAIT_TIMEOUT = STATUS_TIMEOUT
|
||||
WAIT_IO_COMPLETION = STATUS_USER_APC
|
||||
STILL_ACTIVE = STATUS_PENDING
|
||||
|
||||
; Exception codes
|
||||
|
||||
EXCEPTION_CONTINUABLE = 0
|
||||
EXCEPTION_NONCONTINUABLE = 1
|
||||
EXCEPTION_ACCESS_VIOLATION = STATUS_ACCESS_VIOLATION
|
||||
EXCEPTION_DATATYPE_MISALIGNMENT = STATUS_DATATYPE_MISALIGNMENT
|
||||
EXCEPTION_BREAKPOINT = STATUS_BREAKPOINT
|
||||
EXCEPTION_SINGLE_STEP = STATUS_SINGLE_STEP
|
||||
EXCEPTION_ARRAY_BOUNDS_EXCEEDED = STATUS_ARRAY_BOUNDS_EXCEEDED
|
||||
EXCEPTION_FLT_DENORMAL_OPERAND = STATUS_FLOAT_DENORMAL_OPERAND
|
||||
EXCEPTION_FLT_DIVIDE_BY_ZERO = STATUS_FLOAT_DIVIDE_BY_ZERO
|
||||
EXCEPTION_FLT_INEXACT_RESULT = STATUS_FLOAT_INEXACT_RESULT
|
||||
EXCEPTION_FLT_INVALID_OPERATION = STATUS_FLOAT_INVALID_OPERATION
|
||||
EXCEPTION_FLT_OVERFLOW = STATUS_FLOAT_OVERFLOW
|
||||
EXCEPTION_FLT_STACK_CHECK = STATUS_FLOAT_STACK_CHECK
|
||||
EXCEPTION_FLT_UNDERFLOW = STATUS_FLOAT_UNDERFLOW
|
||||
EXCEPTION_INT_DIVIDE_BY_ZERO = STATUS_INTEGER_DIVIDE_BY_ZERO
|
||||
EXCEPTION_INT_OVERFLOW = STATUS_INTEGER_OVERFLOW
|
||||
EXCEPTION_ILLEGAL_INSTRUCTION = STATUS_ILLEGAL_INSTRUCTION
|
||||
EXCEPTION_PRIV_INSTRUCTION = STATUS_PRIVILEGED_INSTRUCTION
|
||||
EXCEPTION_IN_PAGE_ERROR = STATUS_IN_PAGE_ERROR
|
||||
|
||||
; Registry options
|
||||
|
||||
REG_OPTION_RESERVED = 0
|
||||
REG_OPTION_NON_VOLATILE = 0
|
||||
REG_OPTION_VOLATILE = 1
|
||||
REG_OPTION_CREATE_LINK = 2
|
||||
REG_OPTION_BACKUP_RESTORE = 4
|
||||
REG_CREATED_NEW_KEY = 1
|
||||
REG_OPENED_EXISTING_KEY = 2
|
||||
REG_WHOLE_HIVE_VOLATILE = 1
|
||||
REG_REFRESH_HIVE = 2
|
||||
REG_NOTIFY_CHANGE_NAME = 1
|
||||
REG_NOTIFY_CHANGE_ATTRIBUTES = 2
|
||||
REG_NOTIFY_CHANGE_LAST_SET = 4
|
||||
REG_NOTIFY_CHANGE_SECURITY = 8
|
||||
REG_LEGAL_CHANGE_FILTER = REG_NOTIFY_CHANGE_NAME or REG_NOTIFY_CHANGE_ATTRIBUTES or REG_NOTIFY_CHANGE_LAST_SET or REG_NOTIFY_CHANGE_SECURITY
|
||||
REG_LEGAL_OPTION = REG_OPTION_RESERVED or REG_OPTION_NON_VOLATILE or REG_OPTION_VOLATILE or REG_OPTION_CREATE_LINK or REG_OPTION_BACKUP_RESTORE
|
||||
REG_NONE = 0
|
||||
REG_SZ = 1
|
||||
REG_EXPAND_SZ = 2
|
||||
REG_BINARY = 3
|
||||
REG_DWORD = 4
|
||||
REG_DWORD_LITTLE_ENDIAN = 4
|
||||
REG_DWORD_BIG_ENDIAN = 5
|
||||
REG_LINK = 6
|
||||
REG_MULTI_SZ = 7
|
||||
REG_RESOURCE_LIST = 8
|
||||
REG_FULL_RESOURCE_DESCRIPTOR = 9
|
||||
REG_RESOURCE_REQUIREMENTS_LIST = 10
|
||||
|
||||
; Registry access modes
|
||||
|
||||
KEY_QUERY_VALUE = 1
|
||||
KEY_SET_VALUE = 2
|
||||
KEY_CREATE_SUB_KEY = 4
|
||||
KEY_ENUMERATE_SUB_KEYS = 8
|
||||
KEY_NOTIFY = 10h
|
||||
KEY_CREATE_LINK = 20h
|
||||
KEY_READ = STANDARD_RIGHTS_READ or KEY_QUERY_VALUE or KEY_ENUMERATE_SUB_KEYS or KEY_NOTIFY and not SYNCHRONIZE
|
||||
KEY_WRITE = STANDARD_RIGHTS_WRITE or KEY_SET_VALUE or KEY_CREATE_SUB_KEY and not SYNCHRONIZE
|
||||
KEY_EXECUTE = KEY_READ
|
||||
KEY_ALL_ACCESS = STANDARD_RIGHTS_ALL or KEY_QUERY_VALUE or KEY_SET_VALUE or KEY_CREATE_SUB_KEY or KEY_ENUMERATE_SUB_KEYS or KEY_NOTIFY or KEY_CREATE_LINK and not SYNCHRONIZE
|
||||
|
||||
; Predefined registry keys
|
||||
|
||||
HKEY_CLASSES_ROOT = 80000000h
|
||||
HKEY_CURRENT_USER = 80000001h
|
||||
HKEY_LOCAL_MACHINE = 80000002h
|
||||
HKEY_USERS = 80000003h
|
||||
HKEY_PERFORMANCE_DATA = 80000004h
|
||||
HKEY_CURRENT_CONFIG = 80000005h
|
||||
HKEY_DYN_DATA = 80000006h
|
||||
|
||||
; FormatMessage flags
|
||||
|
||||
FORMAT_MESSAGE_ALLOCATE_BUFFER = 0100h
|
||||
FORMAT_MESSAGE_IGNORE_INSERTS = 0200h
|
||||
FORMAT_MESSAGE_FROM_STRING = 0400h
|
||||
FORMAT_MESSAGE_FROM_HMODULE = 0800h
|
||||
FORMAT_MESSAGE_FROM_SYSTEM = 1000h
|
||||
FORMAT_MESSAGE_ARGUMENT_ARRAY = 2000h
|
||||
FORMAT_MESSAGE_MAX_WIDTH_MASK = 00FFh
|
||||
|
||||
; Language identifiers
|
||||
|
||||
LANG_NEUTRAL = 00h
|
||||
LANG_BULGARIAN = 02h
|
||||
LANG_CHINESE = 04h
|
||||
LANG_CROATIAN = 1Ah
|
||||
LANG_CZECH = 05h
|
||||
LANG_DANISH = 06h
|
||||
LANG_DUTCH = 13h
|
||||
LANG_ENGLISH = 09h
|
||||
LANG_FINNISH = 0Bh
|
||||
LANG_FRENCH = 0Ch
|
||||
LANG_GERMAN = 07h
|
||||
LANG_GREEK = 08h
|
||||
LANG_HUNGARIAN = 0Eh
|
||||
LANG_ICELANDIC = 0Fh
|
||||
LANG_ITALIAN = 10h
|
||||
LANG_JAPANESE = 11h
|
||||
LANG_KOREAN = 12h
|
||||
LANG_NORWEGIAN = 14h
|
||||
LANG_POLISH = 15h
|
||||
LANG_PORTUGUESE = 16h
|
||||
LANG_ROMANIAN = 18h
|
||||
LANG_RUSSIAN = 19h
|
||||
LANG_SLOVAK = 1Bh
|
||||
LANG_SLOVENIAN = 24h
|
||||
LANG_SPANISH = 0Ah
|
||||
LANG_SWEDISH = 1Dh
|
||||
LANG_THAI = 1Eh
|
||||
LANG_TURKISH = 1Fh
|
||||
|
||||
; Sublanguage identifiers
|
||||
|
||||
SUBLANG_NEUTRAL = 00h shl 10
|
||||
SUBLANG_DEFAULT = 01h shl 10
|
||||
SUBLANG_SYS_DEFAULT = 02h shl 10
|
||||
SUBLANG_CHINESE_TRADITIONAL = 01h shl 10
|
||||
SUBLANG_CHINESE_SIMPLIFIED = 02h shl 10
|
||||
SUBLANG_CHINESE_HONGKONG = 03h shl 10
|
||||
SUBLANG_CHINESE_SINGAPORE = 04h shl 10
|
||||
SUBLANG_DUTCH = 01h shl 10
|
||||
SUBLANG_DUTCH_BELGIAN = 02h shl 10
|
||||
SUBLANG_ENGLISH_US = 01h shl 10
|
||||
SUBLANG_ENGLISH_UK = 02h shl 10
|
||||
SUBLANG_ENGLISH_AUS = 03h shl 10
|
||||
SUBLANG_ENGLISH_CAN = 04h shl 10
|
||||
SUBLANG_ENGLISH_NZ = 05h shl 10
|
||||
SUBLANG_ENGLISH_EIRE = 06h shl 10
|
||||
SUBLANG_FRENCH = 01h shl 10
|
||||
SUBLANG_FRENCH_BELGIAN = 02h shl 10
|
||||
SUBLANG_FRENCH_CANADIAN = 03h shl 10
|
||||
SUBLANG_FRENCH_SWISS = 04h shl 10
|
||||
SUBLANG_GERMAN = 01h shl 10
|
||||
SUBLANG_GERMAN_SWISS = 02h shl 10
|
||||
SUBLANG_GERMAN_AUSTRIAN = 03h shl 10
|
||||
SUBLANG_ITALIAN = 01h shl 10
|
||||
SUBLANG_ITALIAN_SWISS = 02h shl 10
|
||||
SUBLANG_NORWEGIAN_BOKMAL = 01h shl 10
|
||||
SUBLANG_NORWEGIAN_NYNORSK = 02h shl 10
|
||||
SUBLANG_PORTUGUESE = 02h shl 10
|
||||
SUBLANG_PORTUGUESE_BRAZILIAN = 01h shl 10
|
||||
SUBLANG_SPANISH = 01h shl 10
|
||||
SUBLANG_SPANISH_MEXICAN = 02h shl 10
|
||||
SUBLANG_SPANISH_MODERN = 03h shl 10
|
||||
|
||||
; Sorting identifiers
|
||||
|
||||
SORT_DEFAULT = 0 shl 16
|
||||
SORT_JAPANESE_XJIS = 0 shl 16
|
||||
SORT_JAPANESE_UNICODE = 1 shl 16
|
||||
SORT_CHINESE_BIG5 = 0 shl 16
|
||||
SORT_CHINESE_PRCP = 0 shl 16
|
||||
SORT_CHINESE_UNICODE = 1 shl 16
|
||||
SORT_CHINESE_PRC = 2 shl 16
|
||||
SORT_CHINESE_BOPOMOFO = 3 shl 16
|
||||
SORT_KOREAN_KSC = 0 shl 16
|
||||
SORT_KOREAN_UNICODE = 1 shl 16
|
||||
SORT_GERMAN_PHONE_BOOK = 1 shl 16
|
||||
SORT_HUNGARIAN_DEFAULT = 0 shl 16
|
||||
SORT_HUNGARIAN_TECHNICAL = 1 shl 16
|
||||
|
||||
; Code pages
|
||||
|
||||
CP_ACP = 0 ; default to ANSI code page
|
||||
CP_OEMCP = 1 ; default to OEM code page
|
||||
CP_MACCP = 2 ; default to MAC code page
|
||||
CP_THREAD_ACP = 3 ; current thread's ANSI code page
|
||||
CP_SYMBOL = 42 ; SYMBOL translations
|
||||
CP_UTF7 = 65000 ; UTF-7 translation
|
||||
CP_UTF8 = 65001 ; UTF-8 translation
|
||||
|
||||
; Resource types
|
||||
|
||||
RT_CURSOR = 1
|
||||
RT_BITMAP = 2
|
||||
RT_ICON = 3
|
||||
RT_MENU = 4
|
||||
RT_DIALOG = 5
|
||||
RT_STRING = 6
|
||||
RT_FONTDIR = 7
|
||||
RT_FONT = 8
|
||||
RT_ACCELERATOR = 9
|
||||
RT_RCDATA = 10
|
||||
RT_MESSAGETABLE = 11
|
||||
RT_GROUP_CURSOR = 12
|
||||
RT_GROUP_ICON = 14
|
||||
RT_VERSION = 16
|
||||
RT_DLGINCLUDE = 17
|
||||
RT_PLUGPLAY = 19
|
||||
RT_VXD = 20
|
||||
RT_ANICURSOR = 21
|
||||
RT_ANIICON = 22
|
||||
RT_HTML = 23
|
||||
RT_MANIFEST = 24
|
||||
|
||||
; Clipboard formats
|
||||
|
||||
CF_TEXT = 001h
|
||||
CF_BITMAP = 002h
|
||||
CF_METAFILEPICT = 003h
|
||||
CF_SYLK = 004h
|
||||
CF_DIF = 005h
|
||||
CF_TIFF = 006h
|
||||
CF_OEMTEXT = 007h
|
||||
CF_DIB = 008h
|
||||
CF_PALETTE = 009h
|
||||
CF_PENDATA = 00Ah
|
||||
CF_RIFF = 00Bh
|
||||
CF_WAVE = 00Ch
|
||||
CF_UNICODETEXT = 00Dh
|
||||
CF_ENHMETAFILE = 00Eh
|
||||
CF_HDROP = 00Fh
|
||||
CF_LOCALE = 010h
|
||||
CF_OWNERDISPLAY = 080h
|
||||
CF_DSPTEXT = 081h
|
||||
CF_DSPBITMAP = 082h
|
||||
CF_DSPMETAFILEPICT = 083h
|
||||
CF_DSPENHMETAFILE = 08Eh
|
||||
CF_PRIVATEFIRST = 200h
|
||||
CF_PRIVATELAST = 2FFh
|
||||
CF_GDIOBJFIRST = 300h
|
||||
CF_GDIOBJLAST = 3FFh
|
||||
|
||||
; OS types for version info
|
||||
|
||||
VOS_UNKNOWN = 00000000h
|
||||
VOS_DOS = 00010000h
|
||||
VOS_OS216 = 00020000h
|
||||
VOS_OS232 = 00030000h
|
||||
VOS_NT = 00040000h
|
||||
VOS__BASE = 00000000h
|
||||
VOS__WINDOWS16 = 00000001h
|
||||
VOS__PM16 = 00000002h
|
||||
VOS__PM32 = 00000003h
|
||||
VOS__WINDOWS32 = 00000004h
|
||||
VOS_DOS_WINDOWS16 = 00010001h
|
||||
VOS_DOS_WINDOWS32 = 00010004h
|
||||
VOS_OS216_PM16 = 00020002h
|
||||
VOS_OS232_PM32 = 00030003h
|
||||
VOS_NT_WINDOWS32 = 00040004h
|
||||
|
||||
; File types for version info
|
||||
|
||||
VFT_UNKNOWN = 00000000h
|
||||
VFT_APP = 00000001h
|
||||
VFT_DLL = 00000002h
|
||||
VFT_DRV = 00000003h
|
||||
VFT_FONT = 00000004h
|
||||
VFT_VXD = 00000005h
|
||||
VFT_STATIC_LIB = 00000007h
|
||||
|
||||
; File subtypes for version info
|
||||
|
||||
VFT2_UNKNOWN = 00000000h
|
||||
VFT2_DRV_PRINTER = 00000001h
|
||||
VFT2_DRV_KEYBOARD = 00000002h
|
||||
VFT2_DRV_LANGUAGE = 00000003h
|
||||
VFT2_DRV_DISPLAY = 00000004h
|
||||
VFT2_DRV_MOUSE = 00000005h
|
||||
VFT2_DRV_NETWORK = 00000006h
|
||||
VFT2_DRV_SYSTEM = 00000007h
|
||||
VFT2_DRV_INSTALLABLE = 00000008h
|
||||
VFT2_DRV_SOUND = 00000009h
|
||||
VFT2_DRV_COMM = 0000000Ah
|
||||
VFT2_DRV_INPUTMETHOD = 0000000Bh
|
||||
VFT2_DRV_VERSIONED_PRINTER = 0000000Ch
|
||||
VFT2_FONT_RASTER = 00000001h
|
||||
VFT2_FONT_VECTOR = 00000002h
|
||||
VFT2_FONT_TRUETYPE = 00000003h
|
||||
|
||||
; Console control signals
|
||||
|
||||
CTRL_C_EVENT = 0
|
||||
CTRL_BREAK_EVENT = 1
|
||||
CTRL_CLOSE_EVENT = 2
|
||||
CTRL_LOGOFF_EVENT = 5
|
||||
CTRL_SHUTDOWN_EVENT = 6
|
||||
128
fasmw172/INCLUDE/EQUATES/SHELL32.INC
Normal file
128
fasmw172/INCLUDE/EQUATES/SHELL32.INC
Normal file
@@ -0,0 +1,128 @@
|
||||
|
||||
; SHELL32.DLL structures and constants
|
||||
|
||||
struct NOTIFYICONDATA
|
||||
cbSize dd ?
|
||||
hWnd dd ?
|
||||
uID dd ?
|
||||
uFlags dd ?
|
||||
uCallbackMessage dd ?
|
||||
hIcon dd ?
|
||||
szTip TCHAR 64 dup (?)
|
||||
ends
|
||||
|
||||
struct NOTIFYICONDATAA
|
||||
cbSize dd ?
|
||||
hWnd dd ?
|
||||
uID dd ?
|
||||
uFlags dd ?
|
||||
uCallbackMessage dd ?
|
||||
hIcon dd ?
|
||||
szTip db 64 dup (?)
|
||||
ends
|
||||
|
||||
struct NOTIFYICONDATAW
|
||||
cbSize dd ?
|
||||
hWnd dd ?
|
||||
uID dd ?
|
||||
uFlags dd ?
|
||||
uCallbackMessage dd ?
|
||||
hIcon dd ?
|
||||
szTip du 64 dup (?)
|
||||
ends
|
||||
|
||||
struct BROWSEINFO
|
||||
hwndOwner dd ?
|
||||
pidlRoot dd ?
|
||||
pszDisplayName dd ?
|
||||
lpszTitle dd ?
|
||||
ulFlags dd ?
|
||||
lpfn dd ?
|
||||
lParam dd ?
|
||||
iImage dd ?
|
||||
ends
|
||||
|
||||
; Taskbar icon messages
|
||||
|
||||
NIM_ADD = 0
|
||||
NIM_MODIFY = 1
|
||||
NIM_DELETE = 2
|
||||
NIM_SETFOCUS = 3
|
||||
NIM_SETVERSION = 4
|
||||
|
||||
; Taskbar icon flags
|
||||
|
||||
NIF_MESSAGE = 01h
|
||||
NIF_ICON = 02h
|
||||
NIF_TIP = 04h
|
||||
NIF_STATE = 08h
|
||||
NIF_INFO = 10h
|
||||
NIF_GUID = 20h
|
||||
|
||||
; Constant Special Item ID List
|
||||
|
||||
CSIDL_DESKTOP = 0x0000
|
||||
CSIDL_INTERNET = 0x0001
|
||||
CSIDL_PROGRAMS = 0x0002
|
||||
CSIDL_CONTROLS = 0x0003
|
||||
CSIDL_PRINTERS = 0x0004
|
||||
CSIDL_PERSONAL = 0x0005
|
||||
CSIDL_FAVORITES = 0x0006
|
||||
CSIDL_STARTUP = 0x0007
|
||||
CSIDL_RECENT = 0x0008
|
||||
CSIDL_SENDTO = 0x0009
|
||||
CSIDL_BITBUCKET = 0x000A
|
||||
CSIDL_STARTMENU = 0x000B
|
||||
CSIDL_MYDOCUMENTS = 0x000C
|
||||
CSIDL_MYMUSIC = 0x000D
|
||||
CSIDL_MYVIDEO = 0x000E
|
||||
CSIDL_DESKTOPDIRECTORY = 0x0010
|
||||
CSIDL_DRIVES = 0x0011
|
||||
CSIDL_NETWORK = 0x0012
|
||||
CSIDL_NETHOOD = 0x0013
|
||||
CSIDL_FONTS = 0x0014
|
||||
CSIDL_TEMPLATES = 0x0015
|
||||
CSIDL_COMMON_STARTMENU = 0x0016
|
||||
CSIDL_COMMON_PROGRAMS = 0x0017
|
||||
CSIDL_COMMON_STARTUP = 0x0018
|
||||
CSIDL_COMMON_DESKTOPDIRECTORY = 0x0019
|
||||
CSIDL_APPDATA = 0x001A
|
||||
CSIDL_PRINTHOOD = 0x001B
|
||||
CSIDL_LOCAL_APPDATA = 0x001C
|
||||
CSIDL_ALTSTARTUP = 0x001D
|
||||
CSIDL_COMMON_ALTSTARTUP = 0x001E
|
||||
CSIDL_COMMON_FAVORITES = 0x001F
|
||||
CSIDL_INTERNET_CACHE = 0x0020
|
||||
CSIDL_COOKIES = 0x0021
|
||||
CSIDL_HISTORY = 0x0022
|
||||
CSIDL_COMMON_APPDATA = 0x0023
|
||||
CSIDL_WINDOWS = 0x0024
|
||||
CSIDL_SYSTEM = 0x0025
|
||||
CSIDL_PROGRAM_FILES = 0x0026
|
||||
CSIDL_MYPICTURES = 0x0027
|
||||
CSIDL_PROFILE = 0x0028
|
||||
CSIDL_SYSTEMX86 = 0x0029
|
||||
CSIDL_PROGRAM_FILESX86 = 0x002A
|
||||
CSIDL_PROGRAM_FILES_COMMON = 0x002B
|
||||
CSIDL_PROGRAM_FILES_COMMONX86 = 0x002C
|
||||
CSIDL_COMMON_TEMPLATES = 0x002D
|
||||
CSIDL_COMMON_DOCUMENTS = 0x002E
|
||||
CSIDL_COMMON_ADMINTOOLS = 0x002F
|
||||
CSIDL_ADMINTOOLS = 0x0030
|
||||
CSIDL_CONNECTIONS = 0x0031
|
||||
CSIDL_COMMON_MUSIC = 0x0035
|
||||
CSIDL_COMMON_PICTURES = 0x0036
|
||||
CSIDL_COMMON_VIDEO = 0x0037
|
||||
CSIDL_RESOURCES = 0x0038
|
||||
CSIDL_RESOURCES_LOCALIZED = 0x0039
|
||||
CSIDL_COMMON_OEM_LINKS = 0x003A
|
||||
CSIDL_CDBURN_AREA = 0x003B
|
||||
CSIDL_COMPUTERSNEARME = 0x003D
|
||||
CSIDL_PROFILES = 0x003E
|
||||
CSIDL_FOLDER_MASK = 0x00FF
|
||||
CSIDL_FLAG_PER_USER_INIT = 0x0800
|
||||
CSIDL_FLAG_NO_ALIAS = 0x1000
|
||||
CSIDL_FLAG_DONT_VERIFY = 0x4000
|
||||
CSIDL_FLAG_CREATE = 0x8000
|
||||
CSIDL_FLAG_MASK = 0xFF00
|
||||
|
||||
127
fasmw172/INCLUDE/EQUATES/SHELL64.INC
Normal file
127
fasmw172/INCLUDE/EQUATES/SHELL64.INC
Normal file
@@ -0,0 +1,127 @@
|
||||
|
||||
; SHELL32.DLL structures and constants
|
||||
|
||||
struct NOTIFYICONDATA
|
||||
cbSize dd ?,?
|
||||
hWnd dq ?
|
||||
uID dd ?
|
||||
uFlags dd ?
|
||||
uCallbackMessage dd ?,?
|
||||
hIcon dq ?
|
||||
szTip TCHAR 64 dup (?)
|
||||
ends
|
||||
|
||||
struct NOTIFYICONDATAA
|
||||
cbSize dd ?,?
|
||||
hWnd dq ?
|
||||
uID dd ?
|
||||
uFlags dd ?
|
||||
uCallbackMessage dd ?,?
|
||||
hIcon dq ?
|
||||
szTip db 64 dup (?)
|
||||
ends
|
||||
|
||||
struct NOTIFYICONDATAW
|
||||
cbSize dd ?,?
|
||||
hWnd dq ?
|
||||
uID dd ?
|
||||
uFlags dd ?
|
||||
uCallbackMessage dd ?,?
|
||||
hIcon dq ?
|
||||
szTip du 64 dup (?)
|
||||
ends
|
||||
|
||||
struct BROWSEINFO
|
||||
hwndOwner dq ?
|
||||
pidlRoot dq ?
|
||||
pszDisplayName dq ?
|
||||
lpszTitle dq ?
|
||||
ulFlags dd ?,?
|
||||
lpfn dq ?
|
||||
lParam dq ?
|
||||
iImage dq ?
|
||||
ends
|
||||
|
||||
; Taskbar icon messages
|
||||
|
||||
NIM_ADD = 0
|
||||
NIM_MODIFY = 1
|
||||
NIM_DELETE = 2
|
||||
NIM_SETFOCUS = 3
|
||||
NIM_SETVERSION = 4
|
||||
|
||||
; Taskbar icon flags
|
||||
|
||||
NIF_MESSAGE = 01h
|
||||
NIF_ICON = 02h
|
||||
NIF_TIP = 04h
|
||||
NIF_STATE = 08h
|
||||
NIF_INFO = 10h
|
||||
NIF_GUID = 20h
|
||||
|
||||
; Constant Special Item ID List
|
||||
|
||||
CSIDL_DESKTOP = 0x0000
|
||||
CSIDL_INTERNET = 0x0001
|
||||
CSIDL_PROGRAMS = 0x0002
|
||||
CSIDL_CONTROLS = 0x0003
|
||||
CSIDL_PRINTERS = 0x0004
|
||||
CSIDL_PERSONAL = 0x0005
|
||||
CSIDL_FAVORITES = 0x0006
|
||||
CSIDL_STARTUP = 0x0007
|
||||
CSIDL_RECENT = 0x0008
|
||||
CSIDL_SENDTO = 0x0009
|
||||
CSIDL_BITBUCKET = 0x000A
|
||||
CSIDL_STARTMENU = 0x000B
|
||||
CSIDL_MYDOCUMENTS = 0x000C
|
||||
CSIDL_MYMUSIC = 0x000D
|
||||
CSIDL_MYVIDEO = 0x000E
|
||||
CSIDL_DESKTOPDIRECTORY = 0x0010
|
||||
CSIDL_DRIVES = 0x0011
|
||||
CSIDL_NETWORK = 0x0012
|
||||
CSIDL_NETHOOD = 0x0013
|
||||
CSIDL_FONTS = 0x0014
|
||||
CSIDL_TEMPLATES = 0x0015
|
||||
CSIDL_COMMON_STARTMENU = 0x0016
|
||||
CSIDL_COMMON_PROGRAMS = 0x0017
|
||||
CSIDL_COMMON_STARTUP = 0x0018
|
||||
CSIDL_COMMON_DESKTOPDIRECTORY = 0x0019
|
||||
CSIDL_APPDATA = 0x001A
|
||||
CSIDL_PRINTHOOD = 0x001B
|
||||
CSIDL_LOCAL_APPDATA = 0x001C
|
||||
CSIDL_ALTSTARTUP = 0x001D
|
||||
CSIDL_COMMON_ALTSTARTUP = 0x001E
|
||||
CSIDL_COMMON_FAVORITES = 0x001F
|
||||
CSIDL_INTERNET_CACHE = 0x0020
|
||||
CSIDL_COOKIES = 0x0021
|
||||
CSIDL_HISTORY = 0x0022
|
||||
CSIDL_COMMON_APPDATA = 0x0023
|
||||
CSIDL_WINDOWS = 0x0024
|
||||
CSIDL_SYSTEM = 0x0025
|
||||
CSIDL_PROGRAM_FILES = 0x0026
|
||||
CSIDL_MYPICTURES = 0x0027
|
||||
CSIDL_PROFILE = 0x0028
|
||||
CSIDL_SYSTEMX86 = 0x0029
|
||||
CSIDL_PROGRAM_FILESX86 = 0x002A
|
||||
CSIDL_PROGRAM_FILES_COMMON = 0x002B
|
||||
CSIDL_PROGRAM_FILES_COMMONX86 = 0x002C
|
||||
CSIDL_COMMON_TEMPLATES = 0x002D
|
||||
CSIDL_COMMON_DOCUMENTS = 0x002E
|
||||
CSIDL_COMMON_ADMINTOOLS = 0x002F
|
||||
CSIDL_ADMINTOOLS = 0x0030
|
||||
CSIDL_CONNECTIONS = 0x0031
|
||||
CSIDL_COMMON_MUSIC = 0x0035
|
||||
CSIDL_COMMON_PICTURES = 0x0036
|
||||
CSIDL_COMMON_VIDEO = 0x0037
|
||||
CSIDL_RESOURCES = 0x0038
|
||||
CSIDL_RESOURCES_LOCALIZED = 0x0039
|
||||
CSIDL_COMMON_OEM_LINKS = 0x003A
|
||||
CSIDL_CDBURN_AREA = 0x003B
|
||||
CSIDL_COMPUTERSNEARME = 0x003D
|
||||
CSIDL_PROFILES = 0x003E
|
||||
CSIDL_FOLDER_MASK = 0x00FF
|
||||
CSIDL_FLAG_PER_USER_INIT = 0x0800
|
||||
CSIDL_FLAG_NO_ALIAS = 0x1000
|
||||
CSIDL_FLAG_DONT_VERIFY = 0x4000
|
||||
CSIDL_FLAG_CREATE = 0x8000
|
||||
CSIDL_FLAG_MASK = 0xFF00
|
||||
1933
fasmw172/INCLUDE/EQUATES/USER32.INC
Normal file
1933
fasmw172/INCLUDE/EQUATES/USER32.INC
Normal file
File diff suppressed because it is too large
Load Diff
1935
fasmw172/INCLUDE/EQUATES/USER64.INC
Normal file
1935
fasmw172/INCLUDE/EQUATES/USER64.INC
Normal file
File diff suppressed because it is too large
Load Diff
124
fasmw172/INCLUDE/EQUATES/WSOCK32.INC
Normal file
124
fasmw172/INCLUDE/EQUATES/WSOCK32.INC
Normal file
@@ -0,0 +1,124 @@
|
||||
|
||||
; WSOCK32.DLL structures and constants
|
||||
|
||||
struct WSADATA
|
||||
wVersion dw ?
|
||||
wHighVersion dw ?
|
||||
szDescription db 256+1 dup (?)
|
||||
szSystemStatus db 128+1 dup (?)
|
||||
iMaxSockets dw ?
|
||||
iMaxUdpDg dw ?
|
||||
_padding_ db 2 dup (?)
|
||||
lpVendorInfo dd ?
|
||||
ends
|
||||
|
||||
struct hostent
|
||||
h_name dd ?
|
||||
h_aliases dd ?
|
||||
h_addrtype dw ?
|
||||
h_length dw ?
|
||||
h_addr_list dd ?
|
||||
ends
|
||||
|
||||
struct sockaddr_in
|
||||
sin_family dw ?
|
||||
sin_port dw ?
|
||||
sin_addr dd ?
|
||||
sin_zero db 8 dup (?)
|
||||
ends
|
||||
|
||||
struct sockaddr
|
||||
sa_family dw ?
|
||||
sa_data db 14 dup (?)
|
||||
ends
|
||||
|
||||
; Socket types
|
||||
|
||||
SOCK_STREAM = 1
|
||||
SOCK_DGRAM = 2
|
||||
SOCK_RAW = 3
|
||||
SOCK_RDM = 4
|
||||
SOCK_SEQPACKET = 5
|
||||
|
||||
; Address formats
|
||||
|
||||
AF_UNSPEC = 0
|
||||
AF_UNIX = 1
|
||||
AF_INET = 2
|
||||
AF_IMPLINK = 3
|
||||
AF_PUP = 4
|
||||
AF_CHAOS = 5
|
||||
AF_NS = 6
|
||||
AF_IPX = 6
|
||||
AF_ISO = 7
|
||||
AF_OSI = AF_ISO
|
||||
AF_ECMA = 8
|
||||
AF_DATAKIT = 9
|
||||
AF_CCITT = 10
|
||||
AF_SNA = 11
|
||||
AF_DECnet = 12
|
||||
AF_DLI = 13
|
||||
AF_LAT = 14
|
||||
AF_HYLINK = 15
|
||||
AF_APPLETALK = 16
|
||||
AF_NETBIOS = 17
|
||||
|
||||
; Protocol formats
|
||||
|
||||
PF_UNSPEC = 0
|
||||
PF_UNIX = 1
|
||||
PF_INET = 2
|
||||
PF_IMPLINK = 3
|
||||
PF_PUP = 4
|
||||
PF_CHAOS = 5
|
||||
PF_NS = 6
|
||||
PF_IPX = 6
|
||||
PF_ISO = 7
|
||||
PF_OSI = PF_ISO
|
||||
PF_ECMA = 8
|
||||
PF_DATAKIT = 9
|
||||
PF_CCITT = 10
|
||||
PF_SNA = 11
|
||||
PF_DECnet = 12
|
||||
PF_DLI = 13
|
||||
PF_LAT = 14
|
||||
PF_HYLINK = 15
|
||||
PF_APPLETALK = 16
|
||||
PF_NETBIOS = 17
|
||||
|
||||
; IP Ports
|
||||
|
||||
IPPORT_ECHO = 7
|
||||
IPPORT_DISCARD = 9
|
||||
IPPORT_SYSTAT = 11
|
||||
IPPORT_DAYTIME = 13
|
||||
IPPORT_NETSTAT = 15
|
||||
IPPORT_FTP = 21
|
||||
IPPORT_TELNET = 23
|
||||
IPPORT_SMTP = 25
|
||||
IPPORT_TIMESERVER = 37
|
||||
IPPORT_NAMESERVER = 42
|
||||
IPPORT_WHOIS = 43
|
||||
IPPORT_MTP = 57
|
||||
IPPORT_TFTP = 69
|
||||
IPPORT_RJE = 77
|
||||
IPPORT_FINGER = 79
|
||||
IPPORT_TTYLINK = 87
|
||||
IPPORT_SUPDUP = 95
|
||||
IPPORT_EXECSERVER = 512
|
||||
IPPORT_LOGINSERVER = 513
|
||||
IPPORT_CMDSERVER = 514
|
||||
IPPORT_EFSSERVER = 520
|
||||
IPPORT_BIFFUDP = 512
|
||||
IPPORT_WHOSERVER = 513
|
||||
IPPORT_ROUTESERVER = 520
|
||||
IPPORT_RESERVED = 1024
|
||||
|
||||
; Notifications
|
||||
|
||||
FD_READ = 01h
|
||||
FD_WRITE = 02h
|
||||
FD_OOB = 04h
|
||||
FD_ACCEPT = 08h
|
||||
FD_CONNECT = 10h
|
||||
FD_CLOSE = 20h
|
||||
53
fasmw172/INCLUDE/MACRO/COM32.INC
Normal file
53
fasmw172/INCLUDE/MACRO/COM32.INC
Normal file
@@ -0,0 +1,53 @@
|
||||
|
||||
; Macroinstructions for interfacing the COM (Component Object Model) classes
|
||||
|
||||
macro cominvk object,proc,[arg]
|
||||
{ common
|
||||
if ~ arg eq
|
||||
reverse
|
||||
pushd arg
|
||||
common
|
||||
end if
|
||||
assert defined object#.com.object ; must be a COM object
|
||||
mov eax,[object]
|
||||
push eax
|
||||
mov eax,[eax]
|
||||
call [eax+object#.#proc] }
|
||||
|
||||
macro comcall handle,interface,proc,[arg]
|
||||
{ common
|
||||
if ~ arg eq
|
||||
reverse
|
||||
pushd arg
|
||||
common
|
||||
end if
|
||||
assert defined interface#.com.interface ; must be a COM interface
|
||||
if handle eqtype eax | handle eqtype 0
|
||||
push handle
|
||||
local ..handle
|
||||
label ..handle at handle
|
||||
mov eax,[..handle]
|
||||
else
|
||||
mov eax,handle
|
||||
push eax
|
||||
mov eax,[eax]
|
||||
end if
|
||||
call [eax+interface#.#proc] }
|
||||
|
||||
macro interface name,[proc]
|
||||
{ common
|
||||
struc name \{
|
||||
match , @struct \\{ define field@struct .,name, \\}
|
||||
match no, @struct \\{ . dd ?
|
||||
virtual at 0
|
||||
forward
|
||||
.#proc dd ?
|
||||
common
|
||||
.\#\\.com.object = name#.com.interface
|
||||
end virtual \\} \}
|
||||
virtual at 0
|
||||
forward
|
||||
name#.#proc dd ?
|
||||
common
|
||||
name#.com.interface = $ shr 2
|
||||
end virtual }
|
||||
39
fasmw172/INCLUDE/MACRO/COM64.INC
Normal file
39
fasmw172/INCLUDE/MACRO/COM64.INC
Normal file
@@ -0,0 +1,39 @@
|
||||
|
||||
; Macroinstructions for interfacing the COM (Component Object Model) classes
|
||||
|
||||
macro cominvk object,proc,[arg]
|
||||
{ common
|
||||
assert defined object#.com.object ; must be a COM object
|
||||
macro call dummy
|
||||
\{ mov rax,[rcx]
|
||||
call [rax+object#.#proc] \}
|
||||
fastcall ,[object],arg
|
||||
purge call }
|
||||
|
||||
macro comcall handle,interface,proc,[arg]
|
||||
{ common
|
||||
assert defined interface#.com.interface ; must be a COM interface
|
||||
macro call dummy
|
||||
\{ mov rax,[rcx]
|
||||
call [rax+interface#.#proc] \}
|
||||
fastcall ,handle,arg
|
||||
purge call }
|
||||
|
||||
macro interface name,[proc]
|
||||
{ common
|
||||
struc name \{
|
||||
match , @struct \\{ define field@struct .,name, \\}
|
||||
match no, @struct \\{ . dq ?
|
||||
virtual at 0
|
||||
forward
|
||||
.#proc dq ?
|
||||
common
|
||||
.\#\\.com.object = name#.com.interface
|
||||
end virtual \\} \}
|
||||
virtual at 0
|
||||
forward
|
||||
name#.#proc dq ?
|
||||
common
|
||||
name#.com.interface = $ shr 3
|
||||
end virtual }
|
||||
|
||||
66
fasmw172/INCLUDE/MACRO/EXPORT.INC
Normal file
66
fasmw172/INCLUDE/MACRO/EXPORT.INC
Normal file
@@ -0,0 +1,66 @@
|
||||
|
||||
; Macroinstruction for making export section
|
||||
|
||||
macro export dllname,[label,string]
|
||||
{ common
|
||||
local module,addresses,names,ordinal,count
|
||||
count = 0
|
||||
forward
|
||||
count = count+1
|
||||
common
|
||||
dd 0,0,0,RVA module,1
|
||||
dd count,count,RVA addresses,RVA names,RVA ordinal
|
||||
addresses:
|
||||
forward
|
||||
dd RVA label
|
||||
common
|
||||
names:
|
||||
forward
|
||||
local name
|
||||
dd RVA name
|
||||
common
|
||||
ordinal: count = 0
|
||||
forward
|
||||
dw count
|
||||
count = count+1
|
||||
common
|
||||
module db dllname,0
|
||||
forward
|
||||
name db string,0
|
||||
common
|
||||
local x,y,z,str1,str2,v1,v2
|
||||
x = count shr 1
|
||||
while x > 0
|
||||
y = x
|
||||
while y < count
|
||||
z = y
|
||||
while z-x >= 0
|
||||
load v1 dword from names+z*4
|
||||
str1=($-RVA $)+v1
|
||||
load v2 dword from names+(z-x)*4
|
||||
str2=($-RVA $)+v2
|
||||
while v1 > 0
|
||||
load v1 from str1+%-1
|
||||
load v2 from str2+%-1
|
||||
if v1 <> v2
|
||||
break
|
||||
end if
|
||||
end while
|
||||
if v1<v2
|
||||
load v1 dword from names+z*4
|
||||
load v2 dword from names+(z-x)*4
|
||||
store dword v1 at names+(z-x)*4
|
||||
store dword v2 at names+z*4
|
||||
load v1 word from ordinal+z*2
|
||||
load v2 word from ordinal+(z-x)*2
|
||||
store word v1 at ordinal+(z-x)*2
|
||||
store word v2 at ordinal+z*2
|
||||
else
|
||||
break
|
||||
end if
|
||||
z = z-x
|
||||
end while
|
||||
y = y+1
|
||||
end while
|
||||
x = x shr 1
|
||||
end while }
|
||||
507
fasmw172/INCLUDE/MACRO/IF.INC
Normal file
507
fasmw172/INCLUDE/MACRO/IF.INC
Normal file
@@ -0,0 +1,507 @@
|
||||
|
||||
; Macroinstructions for HLL-style conditional operations
|
||||
|
||||
macro .if [arg]
|
||||
{
|
||||
common
|
||||
__IF equ
|
||||
local ..endif
|
||||
__ENDIF equ ..endif
|
||||
local ..else
|
||||
__ELSE equ ..else
|
||||
JNCOND __ELSE,arg
|
||||
}
|
||||
|
||||
macro .else
|
||||
{
|
||||
jmp __ENDIF
|
||||
__ELSE:
|
||||
restore __IF
|
||||
__IF equ ,
|
||||
}
|
||||
|
||||
macro .elseif [arg]
|
||||
{
|
||||
common
|
||||
jmp __ENDIF
|
||||
__ELSE:
|
||||
restore __ELSE
|
||||
local ..else
|
||||
__ELSE equ ..else
|
||||
JNCOND __ELSE,arg
|
||||
}
|
||||
|
||||
macro .endif
|
||||
{
|
||||
if __IF eq
|
||||
__ELSE:
|
||||
end if
|
||||
__ENDIF:
|
||||
restore __ELSE
|
||||
restore __ENDIF
|
||||
restore __IF
|
||||
}
|
||||
|
||||
macro .while [arg]
|
||||
{
|
||||
common
|
||||
local ..while
|
||||
__WHILE equ ..while
|
||||
local ..endw
|
||||
__ENDW equ ..endw
|
||||
__WHILE:
|
||||
JNCOND __ENDW,arg
|
||||
}
|
||||
|
||||
macro .endw
|
||||
{
|
||||
jmp __WHILE
|
||||
__ENDW:
|
||||
restore __ENDW
|
||||
restore __WHILE
|
||||
}
|
||||
|
||||
macro .repeat
|
||||
{
|
||||
local ..repeat
|
||||
__REPEAT equ ..repeat
|
||||
__REPEAT:
|
||||
}
|
||||
|
||||
macro .until [arg]
|
||||
{
|
||||
common
|
||||
JNCOND __REPEAT,arg
|
||||
restore __REPEAT
|
||||
}
|
||||
|
||||
jnne equ je
|
||||
jnna equ ja
|
||||
jnnb equ jb
|
||||
jnng equ jg
|
||||
jnnl equ jl
|
||||
jnnae equ jae
|
||||
jnnbe equ jbe
|
||||
jnnge equ jge
|
||||
jnnle equ jle
|
||||
|
||||
macro JNCOND label,v1,c,v2
|
||||
{
|
||||
match any,c
|
||||
\{
|
||||
cmp v1,v2
|
||||
jn\#c label
|
||||
\}
|
||||
match ,c
|
||||
\{
|
||||
PARSECOND parsed@cond,v1
|
||||
match cond,parsed@cond \\{ JNCONDEXPR label,cond \\}
|
||||
\}
|
||||
}
|
||||
|
||||
gt equ >
|
||||
lt equ <
|
||||
|
||||
macro PARSECOND parsed,cond
|
||||
{
|
||||
define parsed
|
||||
define neg@cond
|
||||
define status@cond
|
||||
define nest@cond
|
||||
irps symb,cond
|
||||
\{
|
||||
define symb@cond symb
|
||||
match >,symb
|
||||
\\{
|
||||
define symb@cond gt
|
||||
\\}
|
||||
match <,symb
|
||||
\\{
|
||||
define symb@cond lt
|
||||
\\}
|
||||
current@cond equ status@cond
|
||||
match ,current@cond
|
||||
\\{
|
||||
match ~,symb
|
||||
\\\{
|
||||
neg@cond equ neg@cond ~
|
||||
match ~~,neg@cond
|
||||
\\\\{
|
||||
define neg@cond
|
||||
\\\\}
|
||||
define symb@cond
|
||||
\\\}
|
||||
match (,symb
|
||||
\\\{
|
||||
parsed equ parsed neg@cond,<
|
||||
define nest@cond +
|
||||
define symb@cond
|
||||
define neg@cond
|
||||
\\\}
|
||||
match any,symb@cond
|
||||
\\\{
|
||||
parsed equ parsed neg@cond,symb@cond
|
||||
define status@cond +
|
||||
\\\}
|
||||
\\}
|
||||
match status,current@cond
|
||||
\\{
|
||||
match &,symb
|
||||
\\\{
|
||||
parsed equ parsed,&,
|
||||
define status@cond
|
||||
define symb@cond
|
||||
define neg@cond
|
||||
\\\}
|
||||
match |,symb
|
||||
\\\{
|
||||
parsed equ parsed,|,
|
||||
define status@cond
|
||||
define symb@cond
|
||||
define neg@cond
|
||||
\\\}
|
||||
match (,symb
|
||||
\\\{
|
||||
define nest@cond (
|
||||
\\\}
|
||||
match ),symb
|
||||
\\\{
|
||||
match +,nest@cond
|
||||
\\\\{
|
||||
parsed equ parsed>
|
||||
define symb@cond
|
||||
\\\\}
|
||||
restore nest@cond
|
||||
\\\}
|
||||
match any,symb@cond
|
||||
\\\{
|
||||
parsed equ parsed symb@cond
|
||||
\\\}
|
||||
\\}
|
||||
\}
|
||||
}
|
||||
|
||||
macro define_JNCONDEXPR
|
||||
{
|
||||
macro JNCONDEXPR elabel,[mod,cond,op]
|
||||
\{
|
||||
\common
|
||||
\local ..t,..f
|
||||
define t@cond ..t
|
||||
define f@cond ..f
|
||||
\forward
|
||||
match ,op
|
||||
\\{
|
||||
match ,mod \\\{ JNCONDEL elabel,<cond> \\\}
|
||||
match ~,mod \\\{ JCONDEL elabel,<cond> \\\}
|
||||
\\}
|
||||
match &:flabel:tlabel, op:f@cond:t@cond
|
||||
\\{
|
||||
match ,mod \\\{ JNCONDEL flabel,<cond> \\\}
|
||||
match ~,mod \\\{ JCONDEL flabel,<cond> \\\}
|
||||
tlabel:
|
||||
\\local ..tnew
|
||||
restore t@cond
|
||||
define t@cond ..tnew
|
||||
\\}
|
||||
match |:flabel:tlabel, op:f@cond:t@cond
|
||||
\\{
|
||||
match ,mod \\\{ JCONDEL tlabel,<cond> \\\}
|
||||
match ~,mod \\\{ JNCONDEL tlabel,<cond> \\\}
|
||||
flabel:
|
||||
\\local ..fnew
|
||||
restore f@cond
|
||||
define f@cond ..fnew
|
||||
\\}
|
||||
\common
|
||||
label f@cond at elabel
|
||||
t@cond:
|
||||
restore t@cond
|
||||
restore f@cond
|
||||
\}
|
||||
}
|
||||
|
||||
macro define_JCONDEXPR
|
||||
{
|
||||
macro JCONDEXPR elabel,[mod,cond,op]
|
||||
\{
|
||||
\common
|
||||
\local ..t,..f
|
||||
define t@cond ..t
|
||||
define f@cond ..f
|
||||
\forward
|
||||
match ,op
|
||||
\\{
|
||||
match ,mod \\\{ JCONDEL elabel,<cond> \\\}
|
||||
match ~,mod \\\{ JNCONDEL elabel,<cond> \\\}
|
||||
\\}
|
||||
match |:flabel:tlabel, op:f@cond:t@cond
|
||||
\\{
|
||||
match ,mod \\\{ JCONDEL flabel,<cond> \\\}
|
||||
match ~,mod \\\{ JNCONDEL flabel,<cond> \\\}
|
||||
tlabel:
|
||||
\\local ..tnew
|
||||
restore t@cond
|
||||
define t@cond ..tnew
|
||||
\\}
|
||||
match &:flabel:tlabel, op:f@cond:t@cond
|
||||
\\{
|
||||
match ,mod \\\{ JNCONDEL tlabel,<cond> \\\}
|
||||
match ~,mod \\\{ JCONDEL tlabel,<cond> \\\}
|
||||
flabel:
|
||||
\\local ..fnew
|
||||
restore f@cond
|
||||
define f@cond ..fnew
|
||||
\\}
|
||||
\common
|
||||
label f@cond at elabel
|
||||
t@cond:
|
||||
restore t@cond
|
||||
restore f@cond
|
||||
\}
|
||||
}
|
||||
|
||||
macro define_JNCONDEL
|
||||
{
|
||||
macro JNCONDEL label,cond
|
||||
\{
|
||||
\local COND
|
||||
match car=,cdr,:cond
|
||||
\\{
|
||||
define_JNCONDEXPR
|
||||
define_JCONDEXPR
|
||||
define_JCONDEL
|
||||
define_JNCONDEL
|
||||
JNCONDEXPR label,cond
|
||||
purge JNCONDEXPR,JCONDEXPR,JCONDEL,JNCONDEL
|
||||
define COND
|
||||
\\}
|
||||
match c,cond ; replace gt and lt
|
||||
\\{
|
||||
match =COND =signed v1>==v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jl label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =signed v1<==v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jg label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND v1>==v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jb label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND v1<==v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
ja label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND v1==v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jne label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND v1<>v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
je label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =signed v1>v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jle label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =signed v1<v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jge label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND v1>v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jbe label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND v1<v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jae label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =ZERO?, COND c
|
||||
\\\{
|
||||
jnz label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =CARRY?, COND c
|
||||
\\\{
|
||||
jnc label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =OVERFLOW?, COND c
|
||||
\\\{
|
||||
jno label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =SIGN?, COND c
|
||||
\\\{
|
||||
jns label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =PARITY?, COND c
|
||||
\\\{
|
||||
jnp label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND v, COND c
|
||||
\\\{
|
||||
if v eqtype 0
|
||||
if ~ v
|
||||
jmp label
|
||||
end if
|
||||
else if v eqtype eax
|
||||
test v,v
|
||||
jz label
|
||||
else
|
||||
cmp v,0
|
||||
je label
|
||||
end if
|
||||
\\\}
|
||||
\\}
|
||||
\}
|
||||
}
|
||||
|
||||
macro define_JCONDEL
|
||||
{
|
||||
macro JCONDEL label,cond
|
||||
\{
|
||||
\local COND
|
||||
match car=,cdr,:cond
|
||||
\\{
|
||||
define_JNCONDEXPR
|
||||
define_JCONDEXPR
|
||||
define_JCONDEL
|
||||
define_JNCONDEL
|
||||
JCONDEXPR label,cond
|
||||
purge JNCONDEXPR,JCONDEXPR,JCONDEL,JNCONDEL
|
||||
define COND
|
||||
\\}
|
||||
match c,cond ; replace gt and lt
|
||||
\\{
|
||||
match =COND =signed v1>==v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jge label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =signed v1<==v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jle label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND v1>==v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jae label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND v1<==v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jbe label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND v1==v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
je label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND v1<>v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jne label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =signed v1>v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jg label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =signed v1<v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jl label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND v1>v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
ja label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND v1<v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jb label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =ZERO?, COND c
|
||||
\\\{
|
||||
jz label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =CARRY?, COND c
|
||||
\\\{
|
||||
jc label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =OVERFLOW?, COND c
|
||||
\\\{
|
||||
jo label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =SIGN?, COND c
|
||||
\\\{
|
||||
js label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =PARITY?, COND c
|
||||
\\\{
|
||||
jp label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND v, COND c
|
||||
\\\{
|
||||
if v eqtype 0
|
||||
if v
|
||||
jmp label
|
||||
end if
|
||||
else if v eqtype eax
|
||||
test v,v
|
||||
jnz label
|
||||
else
|
||||
cmp v,0
|
||||
jne label
|
||||
end if
|
||||
\\\}
|
||||
\\}
|
||||
\}
|
||||
}
|
||||
|
||||
define_JNCONDEXPR
|
||||
define_JCONDEXPR
|
||||
define_JNCONDEL
|
||||
define_JCONDEL
|
||||
68
fasmw172/INCLUDE/MACRO/IMPORT32.INC
Normal file
68
fasmw172/INCLUDE/MACRO/IMPORT32.INC
Normal file
@@ -0,0 +1,68 @@
|
||||
|
||||
; Macroinstructions for making import section
|
||||
|
||||
macro library [name,string]
|
||||
{ common
|
||||
import.data:
|
||||
forward
|
||||
local _label
|
||||
if defined name#.redundant
|
||||
if ~ name#.redundant
|
||||
dd RVA name#.lookup,0,0,RVA _label,RVA name#.address
|
||||
end if
|
||||
end if
|
||||
name#.referred = 1
|
||||
common
|
||||
dd 0,0,0,0,0
|
||||
forward
|
||||
if defined name#.redundant
|
||||
if ~ name#.redundant
|
||||
_label db string,0
|
||||
rb RVA $ and 1
|
||||
end if
|
||||
end if }
|
||||
|
||||
macro import name,[label,string]
|
||||
{ common
|
||||
rb (- rva $) and 3
|
||||
if defined name#.referred
|
||||
name#.lookup:
|
||||
forward
|
||||
if used label
|
||||
if string eqtype ''
|
||||
local _label
|
||||
dd RVA _label
|
||||
else
|
||||
dd 80000000h + string
|
||||
end if
|
||||
end if
|
||||
common
|
||||
if $ > name#.lookup
|
||||
name#.redundant = 0
|
||||
dd 0
|
||||
else
|
||||
name#.redundant = 1
|
||||
end if
|
||||
name#.address:
|
||||
forward
|
||||
if used label
|
||||
if string eqtype ''
|
||||
label dd RVA _label
|
||||
else
|
||||
label dd 80000000h + string
|
||||
end if
|
||||
end if
|
||||
common
|
||||
if ~ name#.redundant
|
||||
dd 0
|
||||
end if
|
||||
forward
|
||||
if used label & string eqtype ''
|
||||
_label dw 0
|
||||
db string,0
|
||||
rb RVA $ and 1
|
||||
end if
|
||||
common
|
||||
end if }
|
||||
|
||||
macro api [name] {}
|
||||
68
fasmw172/INCLUDE/MACRO/IMPORT64.INC
Normal file
68
fasmw172/INCLUDE/MACRO/IMPORT64.INC
Normal file
@@ -0,0 +1,68 @@
|
||||
|
||||
; Macroinstructions for making import section (64-bit)
|
||||
|
||||
macro library [name,string]
|
||||
{ common
|
||||
import.data:
|
||||
forward
|
||||
local _label
|
||||
if defined name#.redundant
|
||||
if ~ name#.redundant
|
||||
dd RVA name#.lookup,0,0,RVA _label,RVA name#.address
|
||||
end if
|
||||
end if
|
||||
name#.referred = 1
|
||||
common
|
||||
dd 0,0,0,0,0
|
||||
forward
|
||||
if defined name#.redundant
|
||||
if ~ name#.redundant
|
||||
_label db string,0
|
||||
rb RVA $ and 1
|
||||
end if
|
||||
end if }
|
||||
|
||||
macro import name,[label,string]
|
||||
{ common
|
||||
rb (- rva $) and 7
|
||||
if defined name#.referred
|
||||
name#.lookup:
|
||||
forward
|
||||
if used label
|
||||
if string eqtype ''
|
||||
local _label
|
||||
dq RVA _label
|
||||
else
|
||||
dq 8000000000000000h + string
|
||||
end if
|
||||
end if
|
||||
common
|
||||
if $ > name#.lookup
|
||||
name#.redundant = 0
|
||||
dq 0
|
||||
else
|
||||
name#.redundant = 1
|
||||
end if
|
||||
name#.address:
|
||||
forward
|
||||
if used label
|
||||
if string eqtype ''
|
||||
label dq RVA _label
|
||||
else
|
||||
label dq 8000000000000000h + string
|
||||
end if
|
||||
end if
|
||||
common
|
||||
if ~ name#.redundant
|
||||
dq 0
|
||||
end if
|
||||
forward
|
||||
if used label & string eqtype ''
|
||||
_label dw 0
|
||||
db string,0
|
||||
rb RVA $ and 1
|
||||
end if
|
||||
common
|
||||
end if }
|
||||
|
||||
macro api [name] {}
|
||||
66
fasmw172/INCLUDE/MACRO/MASM.INC
Normal file
66
fasmw172/INCLUDE/MACRO/MASM.INC
Normal file
@@ -0,0 +1,66 @@
|
||||
|
||||
; Simulate MASM's syntax
|
||||
|
||||
struc struct
|
||||
{ struct .
|
||||
name@struct equ . }
|
||||
|
||||
struc ends
|
||||
{ match =.,name@struct \{ ends \} }
|
||||
|
||||
struc proc [params]
|
||||
{ common define@proc .,<params>
|
||||
name@proc equ . }
|
||||
|
||||
struc endp
|
||||
{ match =.,name@proc \{ endp \} }
|
||||
|
||||
macro option setting
|
||||
{ match =prologue:macro, setting \{ prologue@proc equ macro \}
|
||||
match =epilogue:macro, setting \{ epilogue@proc equ macro \} }
|
||||
|
||||
macro none procname,flag,parmbytes,localbytes,reglist { }
|
||||
|
||||
macro assume params
|
||||
{
|
||||
local expr
|
||||
define expr params
|
||||
match reg:struct, expr
|
||||
\{
|
||||
match assumed, reg\#@assumed \\{ irp name, assumed \\\{ restore name \\\} \\}
|
||||
macro label . \\{ local def
|
||||
define def .
|
||||
match =reg =at label, def \\\{ define def \\\}
|
||||
match name at,def \\\{ def@assumed reg,name,label at
|
||||
define def \\\}
|
||||
match name,def \\\{ def@assumed reg,.,: \\\} \\}
|
||||
struc db [val] \\{ \common def@assumed reg,.,<db val> \\}
|
||||
struc dw [val] \\{ \common def@assumed reg,.,<dw val> \\}
|
||||
struc dp [val] \\{ \common def@assumed reg,.,<dp val> \\}
|
||||
struc dd [val] \\{ \common def@assumed reg,.,<dd val> \\}
|
||||
struc dt [val] \\{ \common def@assumed reg,.,<dt val> \\}
|
||||
struc dq [val] \\{ \common def@assumed reg,.,<dq val> \\}
|
||||
struc rb cnt \\{ def@assumed reg,.,rb cnt \\}
|
||||
struc rw cnt \\{ def@assumed reg,.,rw cnt \\}
|
||||
struc rp cnt \\{ def@assumed reg,.,rp cnt \\}
|
||||
struc rd cnt \\{ def@assumed reg,.,rd cnt \\}
|
||||
struc rt cnt \\{ def@assumed reg,.,rt cnt \\}
|
||||
struc rq cnt \\{ def@assumed reg,.,rq cnt \\}
|
||||
reg\#@assumed equ
|
||||
virtual at reg
|
||||
reg struct
|
||||
end virtual
|
||||
purge label
|
||||
restruc db,dw,dp,dd,dt,dq
|
||||
restruc rb,rw,rp,rd,rt,rq \} }
|
||||
|
||||
macro def@assumed reg,name,def
|
||||
{ match vars, reg#@assumed \{ reg#@assumed equ reg#@assumed, \}
|
||||
reg#@assumed equ reg#@assumed name
|
||||
local ..label
|
||||
name equ ..label
|
||||
..label def }
|
||||
|
||||
struc label type { label . type }
|
||||
|
||||
struc none { label . }
|
||||
301
fasmw172/INCLUDE/MACRO/PROC32.INC
Normal file
301
fasmw172/INCLUDE/MACRO/PROC32.INC
Normal file
@@ -0,0 +1,301 @@
|
||||
|
||||
; Macroinstructions for defining and calling procedures
|
||||
|
||||
macro stdcall proc,[arg] ; directly call STDCALL procedure
|
||||
{ common
|
||||
if ~ arg eq
|
||||
reverse
|
||||
pushd arg
|
||||
common
|
||||
end if
|
||||
call proc }
|
||||
|
||||
macro invoke proc,[arg] ; indirectly call STDCALL procedure
|
||||
{ common
|
||||
if ~ arg eq
|
||||
reverse
|
||||
pushd arg
|
||||
common
|
||||
end if
|
||||
call [proc] }
|
||||
|
||||
macro ccall proc,[arg] ; directly call CDECL procedure
|
||||
{ common
|
||||
size@ccall = 0
|
||||
if ~ arg eq
|
||||
reverse
|
||||
pushd arg
|
||||
size@ccall = size@ccall+4
|
||||
common
|
||||
end if
|
||||
call proc
|
||||
if size@ccall
|
||||
add esp,size@ccall
|
||||
end if }
|
||||
|
||||
macro cinvoke proc,[arg] ; indirectly call CDECL procedure
|
||||
{ common
|
||||
size@ccall = 0
|
||||
if ~ arg eq
|
||||
reverse
|
||||
pushd arg
|
||||
size@ccall = size@ccall+4
|
||||
common
|
||||
end if
|
||||
call [proc]
|
||||
if size@ccall
|
||||
add esp,size@ccall
|
||||
end if }
|
||||
|
||||
macro proc [args] ; define procedure
|
||||
{ common
|
||||
match name params, args>
|
||||
\{ define@proc name,<params \} }
|
||||
|
||||
prologue@proc equ prologuedef
|
||||
|
||||
macro prologuedef procname,flag,parmbytes,localbytes,reglist
|
||||
{ local loc
|
||||
loc = (localbytes+3) and (not 3)
|
||||
parmbase@proc equ ebp+8
|
||||
localbase@proc equ ebp-loc
|
||||
if parmbytes | localbytes
|
||||
push ebp
|
||||
mov ebp,esp
|
||||
if localbytes
|
||||
sub esp,loc
|
||||
end if
|
||||
end if
|
||||
irps reg, reglist \{ push reg \} }
|
||||
|
||||
epilogue@proc equ epiloguedef
|
||||
|
||||
macro epiloguedef procname,flag,parmbytes,localbytes,reglist
|
||||
{ irps reg, reglist \{ reverse pop reg \}
|
||||
if parmbytes | localbytes
|
||||
leave
|
||||
end if
|
||||
if flag and 10000b
|
||||
retn
|
||||
else
|
||||
retn parmbytes
|
||||
end if }
|
||||
|
||||
close@proc equ
|
||||
|
||||
macro define@proc name,statement
|
||||
{ local params,flag,regs,parmbytes,localbytes,current
|
||||
if used name
|
||||
name:
|
||||
match =stdcall args, statement \{ params equ args
|
||||
flag = 11b \}
|
||||
match =stdcall, statement \{ params equ
|
||||
flag = 11b \}
|
||||
match =c args, statement \{ params equ args
|
||||
flag = 10001b \}
|
||||
match =c, statement \{ params equ
|
||||
flag = 10001b \}
|
||||
match =params, params \{ params equ statement
|
||||
flag = 0 \}
|
||||
match =uses reglist=,args, params \{ regs equ reglist
|
||||
params equ args \}
|
||||
match =regs =uses reglist, regs params \{ regs equ reglist
|
||||
params equ \}
|
||||
match =regs, regs \{ regs equ \}
|
||||
match prologue:reglist, prologue@proc:<regs> \{ prologue name,flag,parmbytes,localbytes,reglist \}
|
||||
virtual at parmbase@proc
|
||||
match =,args, params \{ defargs@proc args \}
|
||||
match =args@proc args, args@proc params \{ defargs@proc args \}
|
||||
parmbytes = $-(parmbase@proc)
|
||||
end virtual
|
||||
name # % = parmbytes/4
|
||||
all@vars equ
|
||||
current = 0
|
||||
macro locals
|
||||
\{ virtual at localbase@proc+current
|
||||
macro label def \\{ match . type,def> \\\{ deflocal@proc .,label,<type \\\} \\}
|
||||
struc db [val] \\{ \common deflocal@proc .,db,val \\}
|
||||
struc du [val] \\{ \common deflocal@proc .,du,val \\}
|
||||
struc dw [val] \\{ \common deflocal@proc .,dw,val \\}
|
||||
struc dp [val] \\{ \common deflocal@proc .,dp,val \\}
|
||||
struc dd [val] \\{ \common deflocal@proc .,dd,val \\}
|
||||
struc dt [val] \\{ \common deflocal@proc .,dt,val \\}
|
||||
struc dq [val] \\{ \common deflocal@proc .,dq,val \\}
|
||||
struc rb cnt \\{ deflocal@proc .,rb cnt, \\}
|
||||
struc rw cnt \\{ deflocal@proc .,rw cnt, \\}
|
||||
struc rp cnt \\{ deflocal@proc .,rp cnt, \\}
|
||||
struc rd cnt \\{ deflocal@proc .,rd cnt, \\}
|
||||
struc rt cnt \\{ deflocal@proc .,rt cnt, \\}
|
||||
struc rq cnt \\{ deflocal@proc .,rq cnt, \\} \}
|
||||
macro endl
|
||||
\{ purge label
|
||||
restruc db,du,dw,dp,dd,dt,dq
|
||||
restruc rb,rw,rp,rd,rt,rq
|
||||
current = $-(localbase@proc)
|
||||
end virtual \}
|
||||
macro ret operand
|
||||
\{ match any, operand \\{ retn operand \\}
|
||||
match , operand \\{ match epilogue:reglist, epilogue@proc:<regs> \\\{ epilogue name,flag,parmbytes,localbytes,reglist \\\} \\} \}
|
||||
macro finish@proc
|
||||
\{ localbytes = current
|
||||
match close:reglist, close@proc:<regs> \\{ close name,flag,parmbytes,localbytes,reglist \\}
|
||||
end if \} }
|
||||
|
||||
macro defargs@proc [arg]
|
||||
{ common
|
||||
if ~ arg eq
|
||||
forward
|
||||
local ..arg,current@arg
|
||||
match argname:type, arg
|
||||
\{ current@arg equ argname
|
||||
label ..arg type
|
||||
argname equ ..arg
|
||||
if qqword eq type
|
||||
dd ?,?,?,?,?,?,?,?
|
||||
else if dqword eq type
|
||||
dd ?,?,?,?
|
||||
else if tbyte eq type
|
||||
dd ?,?,?
|
||||
else if qword eq type | pword eq type
|
||||
dd ?,?
|
||||
else
|
||||
dd ?
|
||||
end if \}
|
||||
match =current@arg,current@arg
|
||||
\{ current@arg equ arg
|
||||
arg equ ..arg
|
||||
..arg dd ? \}
|
||||
common
|
||||
args@proc equ current@arg
|
||||
forward
|
||||
restore current@arg
|
||||
common
|
||||
end if }
|
||||
|
||||
macro deflocal@proc name,def,[val] { name def val }
|
||||
|
||||
macro deflocal@proc name,def,[val]
|
||||
{ common
|
||||
match vars, all@vars \{ all@vars equ all@vars, \}
|
||||
all@vars equ all@vars name
|
||||
forward
|
||||
local ..var,..tmp
|
||||
..var def val
|
||||
match =?, val \{ ..tmp equ \}
|
||||
match any =?, val \{ ..tmp equ \}
|
||||
match any (=?), val \{ ..tmp equ \}
|
||||
match =label, def \{ ..tmp equ \}
|
||||
match tmp : value, ..tmp : val
|
||||
\{ tmp: end virtual
|
||||
initlocal@proc ..var,def value
|
||||
virtual at tmp\}
|
||||
common
|
||||
match first rest, ..var, \{ name equ first \} }
|
||||
|
||||
struc label type { label . type }
|
||||
|
||||
macro initlocal@proc name,def
|
||||
{ virtual at name
|
||||
def
|
||||
size@initlocal = $ - name
|
||||
end virtual
|
||||
position@initlocal = 0
|
||||
while size@initlocal > position@initlocal
|
||||
virtual at name
|
||||
def
|
||||
if size@initlocal - position@initlocal < 2
|
||||
current@initlocal = 1
|
||||
load byte@initlocal byte from name+position@initlocal
|
||||
else if size@initlocal - position@initlocal < 4
|
||||
current@initlocal = 2
|
||||
load word@initlocal word from name+position@initlocal
|
||||
else
|
||||
current@initlocal = 4
|
||||
load dword@initlocal dword from name+position@initlocal
|
||||
end if
|
||||
end virtual
|
||||
if current@initlocal = 1
|
||||
mov byte [name+position@initlocal],byte@initlocal
|
||||
else if current@initlocal = 2
|
||||
mov word [name+position@initlocal],word@initlocal
|
||||
else
|
||||
mov dword [name+position@initlocal],dword@initlocal
|
||||
end if
|
||||
position@initlocal = position@initlocal + current@initlocal
|
||||
end while }
|
||||
|
||||
macro endp
|
||||
{ purge ret,locals,endl
|
||||
finish@proc
|
||||
purge finish@proc
|
||||
restore regs@proc
|
||||
match all,args@proc \{ restore all \}
|
||||
restore args@proc
|
||||
match all,all@vars \{ restore all \} }
|
||||
|
||||
macro local [var]
|
||||
{ common
|
||||
locals
|
||||
forward done@local equ
|
||||
match varname[count]:vartype, var
|
||||
\{ match =BYTE, vartype \\{ varname rb count
|
||||
restore done@local \\}
|
||||
match =WORD, vartype \\{ varname rw count
|
||||
restore done@local \\}
|
||||
match =DWORD, vartype \\{ varname rd count
|
||||
restore done@local \\}
|
||||
match =PWORD, vartype \\{ varname rp count
|
||||
restore done@local \\}
|
||||
match =QWORD, vartype \\{ varname rq count
|
||||
restore done@local \\}
|
||||
match =TBYTE, vartype \\{ varname rt count
|
||||
restore done@local \\}
|
||||
match =DQWORD, vartype \\{ label varname dqword
|
||||
rq count*2
|
||||
restore done@local \\}
|
||||
match =QQWORD, vartype \\{ label varname qqword
|
||||
rq count*4
|
||||
restore done@local \\}
|
||||
match =XWORD, vartype \\{ label varname xword
|
||||
rq count*2
|
||||
restore done@local \\}
|
||||
match =YWORD, vartype \\{ label varname yword
|
||||
rq count*4
|
||||
restore done@local \\}
|
||||
match , done@local \\{ virtual
|
||||
varname vartype
|
||||
end virtual
|
||||
rb count*sizeof.\#vartype
|
||||
restore done@local \\} \}
|
||||
match :varname:vartype, done@local:var
|
||||
\{ match =BYTE, vartype \\{ varname db ?
|
||||
restore done@local \\}
|
||||
match =WORD, vartype \\{ varname dw ?
|
||||
restore done@local \\}
|
||||
match =DWORD, vartype \\{ varname dd ?
|
||||
restore done@local \\}
|
||||
match =PWORD, vartype \\{ varname dp ?
|
||||
restore done@local \\}
|
||||
match =QWORD, vartype \\{ varname dq ?
|
||||
restore done@local \\}
|
||||
match =TBYTE, vartype \\{ varname dt ?
|
||||
restore done@local \\}
|
||||
match =DQWORD, vartype \\{ label varname dqword
|
||||
dq ?,?
|
||||
restore done@local \\}
|
||||
match =QQWORD, vartype \\{ label varname qqword
|
||||
dq ?,?,?,?
|
||||
restore done@local \\}
|
||||
match =XWORD, vartype \\{ label varname xword
|
||||
dq ?,?
|
||||
restore done@local \\}
|
||||
match =YWORD, vartype \\{ label varname yword
|
||||
dq ?,?,?,?
|
||||
restore done@local \\}
|
||||
match , done@local \\{ varname vartype
|
||||
restore done@local \\} \}
|
||||
match ,done@local
|
||||
\{ var
|
||||
restore done@local \}
|
||||
common
|
||||
endl }
|
||||
618
fasmw172/INCLUDE/MACRO/PROC64.INC
Normal file
618
fasmw172/INCLUDE/MACRO/PROC64.INC
Normal file
@@ -0,0 +1,618 @@
|
||||
|
||||
; Macroinstructions for defining and calling procedures (x64 version)
|
||||
|
||||
macro invoke proc,[arg]
|
||||
{ common fastcall [proc],arg }
|
||||
|
||||
macro fastcall proc,[arg]
|
||||
{ common local stackspace,argscount,counter
|
||||
if argscount < 4
|
||||
stackspace = 4*8
|
||||
else if argscount and 1
|
||||
stackspace = (argscount+1)*8
|
||||
else
|
||||
stackspace = argscount*8
|
||||
end if
|
||||
counter = 0
|
||||
if stackspace
|
||||
if defined current@frame
|
||||
if current@frame<stackspace
|
||||
current@frame = stackspace
|
||||
end if
|
||||
else
|
||||
if stackspace
|
||||
sub rsp,stackspace
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
forward
|
||||
counter = counter + 1
|
||||
define type@param
|
||||
define definition@param arg
|
||||
match =float value,definition@param
|
||||
\{ define definition@param value
|
||||
define type@param float \}
|
||||
match =addr value,definition@param
|
||||
\{ define definition@param value
|
||||
define type@param addr \}
|
||||
match any=,any,definition@param
|
||||
\{ \local ..string,..continue
|
||||
jmp ..continue
|
||||
align sizeof.TCHAR
|
||||
..string TCHAR definition@param,0
|
||||
..continue:
|
||||
define definition@param ..string
|
||||
define type@param addr \}
|
||||
match any,definition@param
|
||||
\{ match \`any,any
|
||||
\\{ \\local ..string,..continue
|
||||
jmp ..continue
|
||||
align sizeof.TCHAR
|
||||
..string TCHAR definition@param,0
|
||||
..continue:
|
||||
define definition@param ..string
|
||||
define type@param addr \\} \}
|
||||
match param,definition@param
|
||||
\{ local opcode,origin
|
||||
size@param = 0
|
||||
if param eqtype 0 | param eqtype 0f | type@param eq addr
|
||||
size@param = 8
|
||||
else if param eqtype byte 0 | param eqtype byte 0f
|
||||
match prefix value,definition@param
|
||||
\\{ if prefix eq qword
|
||||
size@param = 8
|
||||
else if prefix eq dword
|
||||
size@param = 4
|
||||
else if prefix eq word
|
||||
size@param = 2
|
||||
else if prefix eq byte
|
||||
size@param = 1
|
||||
end if \\}
|
||||
else if ~ param in <xmm0,xmm1,xmm2,xmm3,xmm4,xmm5,xmm6,xmm7,xmm8,xmm9,xmm10,xmm11,xmm12,xmm13,xmm14,xmm15>
|
||||
virtual
|
||||
origin = $
|
||||
inc param
|
||||
load opcode byte from origin
|
||||
if opcode = 67h | opcode = 41h
|
||||
load opcode byte from origin+1
|
||||
end if
|
||||
if opcode and 0F8h = 48h
|
||||
size@param = 8
|
||||
else if opcode = 66h
|
||||
size@param = 2
|
||||
else if opcode = 0FFh
|
||||
size@param = 4
|
||||
else
|
||||
size@param = 1
|
||||
end if
|
||||
end virtual
|
||||
end if
|
||||
if counter = 1
|
||||
if type@param eq float
|
||||
if ~ param eq xmm0
|
||||
if size@param = 4
|
||||
if param eqtype byte 0 | param eqtype byte 0f
|
||||
mov eax,param
|
||||
movd xmm0,eax
|
||||
else
|
||||
movd xmm0,param
|
||||
end if
|
||||
else
|
||||
if param eqtype 0 | param eqtype 0f | param eqtype byte 0 | param eqtype byte 0f
|
||||
mov rax,param
|
||||
movq xmm0,rax
|
||||
else
|
||||
movq xmm0,param
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if vararg@fastcall & ~ param eq rcx
|
||||
movq rcx,xmm0
|
||||
end if
|
||||
else if type@param eq addr
|
||||
if ~ param eq rcx
|
||||
lea rcx,[param]
|
||||
end if
|
||||
else if size@param = 8
|
||||
if ~ param eq rcx
|
||||
mov rcx,param
|
||||
end if
|
||||
else if size@param = 4
|
||||
if ~ param eq ecx
|
||||
mov ecx,param
|
||||
end if
|
||||
else if size@param = 2
|
||||
if ~ param eq cx
|
||||
mov cx,param
|
||||
end if
|
||||
else if size@param = 1
|
||||
if ~ param eq cl
|
||||
mov cl,param
|
||||
end if
|
||||
end if
|
||||
else if counter = 2
|
||||
if type@param eq float
|
||||
if ~ param eq xmm1
|
||||
if size@param = 4
|
||||
if param eqtype byte 0 | param eqtype byte 0f
|
||||
mov eax,param
|
||||
movd xmm1,eax
|
||||
else
|
||||
movd xmm1,param
|
||||
end if
|
||||
else
|
||||
if param eqtype 0 | param eqtype 0f | param eqtype byte 0 | param eqtype byte 0f
|
||||
mov rax,param
|
||||
movq xmm1,rax
|
||||
else
|
||||
movq xmm1,param
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if vararg@fastcall & ~ param eq rdx
|
||||
movq rdx,xmm1
|
||||
end if
|
||||
else if type@param eq addr
|
||||
if ~ param eq rdx
|
||||
lea rdx,[param]
|
||||
end if
|
||||
else if size@param = 8
|
||||
if ~ param eq rdx
|
||||
mov rdx,param
|
||||
end if
|
||||
else if size@param = 4
|
||||
if ~ param eq edx
|
||||
mov edx,param
|
||||
end if
|
||||
else if size@param = 2
|
||||
if ~ param eq dx
|
||||
mov dx,param
|
||||
end if
|
||||
else if size@param = 1
|
||||
if ~ param eq dl
|
||||
mov dl,param
|
||||
end if
|
||||
end if
|
||||
else if counter = 3
|
||||
if type@param eq float
|
||||
if ~ param eq xmm2
|
||||
if size@param = 4
|
||||
if param eqtype byte 0 | param eqtype byte 0f
|
||||
mov eax,param
|
||||
movd xmm2,eax
|
||||
else
|
||||
movd xmm2,param
|
||||
end if
|
||||
else
|
||||
if param eqtype 0 | param eqtype 0f | param eqtype byte 0 | param eqtype byte 0f
|
||||
mov rax,param
|
||||
movq xmm2,rax
|
||||
else
|
||||
movq xmm2,param
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if vararg@fastcall & ~ param eq r8
|
||||
movq r8,xmm2
|
||||
end if
|
||||
else if type@param eq addr
|
||||
if ~ param eq r8
|
||||
lea r8,[param]
|
||||
end if
|
||||
else if size@param = 8
|
||||
if ~ param eq r8
|
||||
mov r8,param
|
||||
end if
|
||||
else if size@param = 4
|
||||
if ~ param eq r8d
|
||||
mov r8d,param
|
||||
end if
|
||||
else if size@param = 2
|
||||
if ~ param eq r8w
|
||||
mov r8w,param
|
||||
end if
|
||||
else if size@param = 1
|
||||
if ~ param eq r8b
|
||||
mov r8b,param
|
||||
end if
|
||||
end if
|
||||
else if counter = 4
|
||||
if type@param eq float
|
||||
if ~ param eq xmm3
|
||||
if size@param = 4
|
||||
if param eqtype byte 0 | param eqtype byte 0f
|
||||
mov eax,param
|
||||
movd xmm3,eax
|
||||
else
|
||||
movd xmm3,param
|
||||
end if
|
||||
else
|
||||
if param eqtype 0 | param eqtype 0f | param eqtype byte 0 | param eqtype byte 0f
|
||||
mov rax,param
|
||||
movq xmm3,rax
|
||||
else
|
||||
movq xmm3,param
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if vararg@fastcall & ~ param eq r9
|
||||
movq r9,xmm3
|
||||
end if
|
||||
else if type@param eq addr
|
||||
if ~ param eq r9
|
||||
lea r9,[param]
|
||||
end if
|
||||
else if size@param = 8
|
||||
if ~ param eq r9
|
||||
mov r9,param
|
||||
end if
|
||||
else if size@param = 4
|
||||
if ~ param eq r9d
|
||||
mov r9d,param
|
||||
end if
|
||||
else if size@param = 2
|
||||
if ~ param eq r9w
|
||||
mov r9w,param
|
||||
end if
|
||||
else if size@param = 1
|
||||
if ~ param eq r9b
|
||||
mov r9b,param
|
||||
end if
|
||||
end if
|
||||
else
|
||||
if type@param eq addr
|
||||
lea rax,[param]
|
||||
mov [rsp+(counter-1)*8],rax
|
||||
else if param eqtype [0] | param eqtype byte [0]
|
||||
if size@param = 8
|
||||
mov rax,param
|
||||
mov [rsp+(counter-1)*8],rax
|
||||
else if size@param = 4
|
||||
mov eax,param
|
||||
mov [rsp+(counter-1)*8],eax
|
||||
else if size@param = 2
|
||||
mov ax,param
|
||||
mov [rsp+(counter-1)*8],ax
|
||||
else
|
||||
mov al,param
|
||||
mov [rsp+(counter-1)*8],al
|
||||
end if
|
||||
else if size@param = 8
|
||||
virtual
|
||||
origin = $
|
||||
mov rax,param
|
||||
load opcode byte from origin+1
|
||||
end virtual
|
||||
if opcode = 0B8h
|
||||
mov rax,param
|
||||
mov [rsp+(counter-1)*8],rax
|
||||
else
|
||||
mov qword [rsp+(counter-1)*8],param
|
||||
end if
|
||||
else if param in <xmm0,xmm1,xmm2,xmm3,xmm4,xmm5,xmm6,xmm7,xmm8,xmm9,xmm10,xmm11,xmm12,xmm13,xmm14,xmm15>
|
||||
movq [rsp+(counter-1)*8],param
|
||||
else
|
||||
mov [rsp+(counter-1)*8],param
|
||||
end if
|
||||
end if \}
|
||||
common
|
||||
argscount = counter
|
||||
call proc
|
||||
if stackspace & ~defined current@frame
|
||||
add rsp,stackspace
|
||||
end if }
|
||||
|
||||
macro proc [args]
|
||||
{ common
|
||||
match name params, args>
|
||||
\{ define@proc name,<params \} }
|
||||
|
||||
prologue@proc equ prologuedef
|
||||
|
||||
macro prologuedef procname,flag,parmbytes,localbytes,reglist
|
||||
{ local loc,fill,counter
|
||||
loc = (localbytes+15) and (not 15)
|
||||
parmbase@proc equ rbp+16
|
||||
localbase@proc equ rbp-loc
|
||||
push rbp
|
||||
mov rbp,rsp
|
||||
if loc+fill
|
||||
sub rsp,loc+fill
|
||||
end if
|
||||
counter = 0
|
||||
irps reg, reglist \{ push reg
|
||||
counter = counter+1 \}
|
||||
fill = 8*(counter and 1) }
|
||||
|
||||
epilogue@proc equ epiloguedef
|
||||
|
||||
macro epiloguedef procname,flag,parmbytes,localbytes,reglist
|
||||
{ irps reg, reglist \{ reverse pop reg \}
|
||||
leave
|
||||
retn }
|
||||
|
||||
close@proc equ
|
||||
|
||||
macro define@proc name,statement
|
||||
{ local params,flag,regs,parmbytes,localbytes,current
|
||||
if used name
|
||||
name:
|
||||
match =stdcall args, statement \{ params equ args
|
||||
flag = 11b \}
|
||||
match =stdcall, statement \{ params equ
|
||||
flag = 11b \}
|
||||
match =c args, statement \{ params equ args
|
||||
flag = 10001b \}
|
||||
match =c, statement \{ params equ
|
||||
flag = 10001b \}
|
||||
match =params, params \{ params equ statement
|
||||
flag = 10000b \}
|
||||
match =uses reglist=,args, params \{ regs equ reglist
|
||||
params equ args \}
|
||||
match =regs =uses reglist, regs params \{ regs equ reglist
|
||||
params equ \}
|
||||
match =regs, regs \{ regs equ \}
|
||||
match prologue:reglist, prologue@proc:<regs> \{ prologue name,flag,parmbytes,localbytes,reglist \}
|
||||
virtual at parmbase@proc
|
||||
match =,args, params \{ defargs@proc args \}
|
||||
match =args@proc args, args@proc params \{ defargs@proc args \}
|
||||
parmbytes = $-(parmbase@proc)
|
||||
end virtual
|
||||
name # % = parmbytes/8
|
||||
all@vars equ
|
||||
current = 0
|
||||
macro locals
|
||||
\{ virtual at localbase@proc+current
|
||||
macro label def \\{ match . type,def> \\\{ deflocal@proc .,label,<type \\\} \\}
|
||||
struc db [val] \\{ \common deflocal@proc .,db,val \\}
|
||||
struc du [val] \\{ \common deflocal@proc .,du,val \\}
|
||||
struc dw [val] \\{ \common deflocal@proc .,dw,val \\}
|
||||
struc dp [val] \\{ \common deflocal@proc .,dp,val \\}
|
||||
struc dd [val] \\{ \common deflocal@proc .,dd,val \\}
|
||||
struc dt [val] \\{ \common deflocal@proc .,dt,val \\}
|
||||
struc dq [val] \\{ \common deflocal@proc .,dq,val \\}
|
||||
struc rb cnt \\{ deflocal@proc .,rb cnt, \\}
|
||||
struc rw cnt \\{ deflocal@proc .,rw cnt, \\}
|
||||
struc rp cnt \\{ deflocal@proc .,rp cnt, \\}
|
||||
struc rd cnt \\{ deflocal@proc .,rd cnt, \\}
|
||||
struc rt cnt \\{ deflocal@proc .,rt cnt, \\}
|
||||
struc rq cnt \\{ deflocal@proc .,rq cnt, \\} \}
|
||||
macro endl
|
||||
\{ purge label
|
||||
restruc db,du,dw,dp,dd,dt,dq
|
||||
restruc rb,rw,rp,rd,rt,rq
|
||||
current = $-(localbase@proc)
|
||||
end virtual \}
|
||||
macro ret operand
|
||||
\{ match any, operand \\{ retn operand \\}
|
||||
match , operand \\{ match epilogue:reglist, epilogue@proc:<regs> \\\{ epilogue name,flag,parmbytes,localbytes,reglist \\\} \\} \}
|
||||
macro finish@proc
|
||||
\{ localbytes = current
|
||||
match close:reglist, close@proc:<regs> \\{ close name,flag,parmbytes,localbytes,reglist \\}
|
||||
end if \} }
|
||||
|
||||
macro defargs@proc [arg]
|
||||
{ common
|
||||
if ~ arg eq
|
||||
forward
|
||||
local ..arg,current@arg
|
||||
match argname:type, arg
|
||||
\{ current@arg equ argname
|
||||
label ..arg type
|
||||
argname equ ..arg
|
||||
if qqword eq type
|
||||
dq ?,?,?,?
|
||||
else if dqword eq type
|
||||
dq ?,?
|
||||
else if tbyte eq type
|
||||
dq ?,?
|
||||
else
|
||||
dq ?
|
||||
end if \}
|
||||
match =current@arg,current@arg
|
||||
\{ current@arg equ arg
|
||||
arg equ ..arg
|
||||
..arg dq ? \}
|
||||
common
|
||||
args@proc equ current@arg
|
||||
forward
|
||||
restore current@arg
|
||||
common
|
||||
end if }
|
||||
|
||||
macro deflocal@proc name,def,[val] { name def val }
|
||||
|
||||
macro deflocal@proc name,def,[val]
|
||||
{ common
|
||||
match vars, all@vars \{ all@vars equ all@vars, \}
|
||||
all@vars equ all@vars name
|
||||
forward
|
||||
local ..var,..tmp
|
||||
..var def val
|
||||
match =?, val \{ ..tmp equ \}
|
||||
match any =?, val \{ ..tmp equ \}
|
||||
match any (=?), val \{ ..tmp equ \}
|
||||
match =label, def \{ ..tmp equ \}
|
||||
match tmp : value, ..tmp : val
|
||||
\{ tmp: end virtual
|
||||
initlocal@proc ..var,def value
|
||||
virtual at tmp\}
|
||||
common
|
||||
match first rest, ..var, \{ name equ first \} }
|
||||
|
||||
struc label type { label . type }
|
||||
|
||||
macro initlocal@proc name,def
|
||||
{ virtual at name
|
||||
def
|
||||
size@initlocal = $ - name
|
||||
end virtual
|
||||
position@initlocal = 0
|
||||
while size@initlocal > position@initlocal
|
||||
virtual at name
|
||||
def
|
||||
if size@initlocal - position@initlocal < 2
|
||||
current@initlocal = 1
|
||||
load byte@initlocal byte from name+position@initlocal
|
||||
else if size@initlocal - position@initlocal < 4
|
||||
current@initlocal = 2
|
||||
load word@initlocal word from name+position@initlocal
|
||||
else if size@initlocal - position@initlocal < 8
|
||||
current@initlocal = 4
|
||||
load dword@initlocal dword from name+position@initlocal
|
||||
else
|
||||
load qword@initlocal qword from name+position@initlocal
|
||||
if ( qword@initlocal > 0 & qword@initlocal < 80000000h ) | ( qword@initlocal < 0 & qword@initlocal >= -80000000h )
|
||||
current@initlocal = 8
|
||||
else
|
||||
current@initlocal = 4
|
||||
dword@initlocal = qword@initlocal and 0FFFFFFFFh
|
||||
end if
|
||||
end if
|
||||
end virtual
|
||||
if current@initlocal = 1
|
||||
mov byte [name+position@initlocal],byte@initlocal
|
||||
else if current@initlocal = 2
|
||||
mov word [name+position@initlocal],word@initlocal
|
||||
else if current@initlocal = 4
|
||||
mov dword [name+position@initlocal],dword@initlocal
|
||||
else
|
||||
mov qword [name+position@initlocal],qword@initlocal
|
||||
end if
|
||||
position@initlocal = position@initlocal + current@initlocal
|
||||
end while }
|
||||
|
||||
macro endp
|
||||
{ purge ret,locals,endl
|
||||
finish@proc
|
||||
purge finish@proc
|
||||
restore regs@proc
|
||||
match all,args@proc \{ restore all \}
|
||||
restore args@proc
|
||||
match all,all@vars \{ restore all \} }
|
||||
|
||||
macro local [var]
|
||||
{ common
|
||||
locals
|
||||
forward done@local equ
|
||||
match varname[count]:vartype, var
|
||||
\{ match =BYTE, vartype \\{ varname rb count
|
||||
restore done@local \\}
|
||||
match =WORD, vartype \\{ varname rw count
|
||||
restore done@local \\}
|
||||
match =DWORD, vartype \\{ varname rd count
|
||||
restore done@local \\}
|
||||
match =PWORD, vartype \\{ varname rp count
|
||||
restore done@local \\}
|
||||
match =QWORD, vartype \\{ varname rq count
|
||||
restore done@local \\}
|
||||
match =TBYTE, vartype \\{ varname rt count
|
||||
restore done@local \\}
|
||||
match =DQWORD, vartype \\{ label varname dqword
|
||||
rq count*2
|
||||
restore done@local \\}
|
||||
match =QQWORD, vartype \\{ label varname qqword
|
||||
rq count*4
|
||||
restore done@local \\}
|
||||
match =XWORD, vartype \\{ label varname xword
|
||||
rq count*2
|
||||
restore done@local \\}
|
||||
match =YWORD, vartype \\{ label varname yword
|
||||
rq count*4
|
||||
restore done@local \\}
|
||||
match , done@local \\{ virtual
|
||||
varname vartype
|
||||
end virtual
|
||||
rb count*sizeof.\#vartype
|
||||
restore done@local \\} \}
|
||||
match :varname:vartype, done@local:var
|
||||
\{ match =BYTE, vartype \\{ varname db ?
|
||||
restore done@local \\}
|
||||
match =WORD, vartype \\{ varname dw ?
|
||||
restore done@local \\}
|
||||
match =DWORD, vartype \\{ varname dd ?
|
||||
restore done@local \\}
|
||||
match =PWORD, vartype \\{ varname dp ?
|
||||
restore done@local \\}
|
||||
match =QWORD, vartype \\{ varname dq ?
|
||||
restore done@local \\}
|
||||
match =TBYTE, vartype \\{ varname dt ?
|
||||
restore done@local \\}
|
||||
match =DQWORD, vartype \\{ label varname dqword
|
||||
dq ?,?
|
||||
restore done@local \\}
|
||||
match =QQWORD, vartype \\{ label varname qqword
|
||||
dq ?,?,?,?
|
||||
restore done@local \\}
|
||||
match =XWORD, vartype \\{ label varname xword
|
||||
dq ?,?
|
||||
restore done@local \\}
|
||||
match =YWORD, vartype \\{ label varname yword
|
||||
dq ?,?,?,?
|
||||
restore done@local \\}
|
||||
match , done@local \\{ varname vartype
|
||||
restore done@local \\} \}
|
||||
match ,done@local
|
||||
\{ var
|
||||
restore done@local \}
|
||||
common
|
||||
endl }
|
||||
|
||||
macro frame
|
||||
{ local size,current
|
||||
if size
|
||||
sub rsp,size
|
||||
end if
|
||||
current = 0
|
||||
current@frame equ current
|
||||
size@frame equ size }
|
||||
|
||||
macro endf
|
||||
{ size@frame = current@frame
|
||||
if size@frame
|
||||
add rsp,size@frame
|
||||
end if
|
||||
restore size@frame,current@frame }
|
||||
|
||||
macro static_rsp_prologue procname,flag,parmbytes,localbytes,reglist
|
||||
{ local counter,loc,frame,current
|
||||
counter = 0
|
||||
irps reg, reglist \{ push reg
|
||||
counter = counter+1 \}
|
||||
loc = (localbytes+7) and (not 7)
|
||||
if frame & (counter+loc shr 3+1) and 1
|
||||
loc = loc + 8
|
||||
end if
|
||||
framebytes@proc equ frame+loc
|
||||
if framebytes@proc
|
||||
sub rsp,framebytes@proc
|
||||
end if
|
||||
localbase@proc equ rsp+frame
|
||||
regsbase@proc equ rsp+frame+loc
|
||||
parmbase@proc equ rsp+frame+loc+counter*8+8
|
||||
current = 0
|
||||
current@frame equ current
|
||||
size@frame equ frame }
|
||||
|
||||
macro static_rsp_epilogue procname,flag,parmbytes,localbytes,reglist
|
||||
{ if framebytes@proc
|
||||
add rsp,framebytes@proc
|
||||
end if
|
||||
irps reg, reglist \{ reverse pop reg \}
|
||||
retn }
|
||||
|
||||
macro static_rsp_close procname,flag,parmbytes,localbytes,reglist
|
||||
{ size@frame = current@frame
|
||||
restore size@frame,current@frame }
|
||||
|
||||
stdcall fix fastcall
|
||||
|
||||
macro cinvoke proc,[arg]
|
||||
{ common ccall [proc],arg }
|
||||
|
||||
macro ccall proc,[arg]
|
||||
{ common vararg@fastcall = 1
|
||||
fastcall proc,arg
|
||||
vararg@fastcall = 0 }
|
||||
|
||||
vararg@fastcall = 0
|
||||
334
fasmw172/INCLUDE/MACRO/RESOURCE.INC
Normal file
334
fasmw172/INCLUDE/MACRO/RESOURCE.INC
Normal file
@@ -0,0 +1,334 @@
|
||||
|
||||
; Macroinstructions for making resource section
|
||||
|
||||
macro directory [type,label]
|
||||
{ common
|
||||
local max,count
|
||||
count = 0
|
||||
max = 0
|
||||
forward
|
||||
count = count + 1
|
||||
if type > max
|
||||
max = type
|
||||
end if
|
||||
common
|
||||
root@resource dd 0,%t,0,count shl 16
|
||||
repeat max
|
||||
forward
|
||||
if % = type
|
||||
dd type,80000000h+label-root@resource
|
||||
end if
|
||||
common
|
||||
end repeat }
|
||||
|
||||
macro resource dir,[id,lang,label]
|
||||
{ common
|
||||
dir:
|
||||
local min,max,count,current
|
||||
forward
|
||||
min = id
|
||||
max = id
|
||||
common
|
||||
count = 0
|
||||
forward
|
||||
count = count + 1
|
||||
if id < min
|
||||
min = id
|
||||
else if id > max
|
||||
max = id
|
||||
end if
|
||||
common
|
||||
dd 0,%t,0,count shl 16
|
||||
repeat max-min+1
|
||||
current = $
|
||||
forward
|
||||
if min+%-1 = id
|
||||
if current = $
|
||||
dd id,80000000h+label#.directory-root@resource
|
||||
end if
|
||||
end if
|
||||
common
|
||||
end repeat
|
||||
repeat max-min+1
|
||||
current = $
|
||||
forward
|
||||
if min+%-1 = id
|
||||
if current = $
|
||||
label#.directory dd 0,%t,0,10000h,lang,label-root@resource
|
||||
count = 1
|
||||
else
|
||||
dd lang,label-root@resource
|
||||
count = count + 1
|
||||
end if
|
||||
end if
|
||||
label#.resid = id
|
||||
common
|
||||
local x,y,z,v1,v2
|
||||
if count > 1
|
||||
store word count at current+0Eh
|
||||
x = count shr 1
|
||||
while x > 0
|
||||
y = x
|
||||
while y < count
|
||||
z = y
|
||||
while z-x >= 0
|
||||
load v1 dword from current+10h+z*8
|
||||
load v2 dword from current+10h+(z-x)*8
|
||||
if v1<v2
|
||||
store dword v1 at current+10h+(z-x)*8
|
||||
store dword v2 at current+10h+z*8
|
||||
load v1 dword from current+10h+z*8+4
|
||||
load v2 dword from current+10h+(z-x)*8+4
|
||||
store dword v1 at current+10h+(z-x)*8+4
|
||||
store dword v2 at current+10h+z*8+4
|
||||
else
|
||||
break
|
||||
end if
|
||||
z = z-x
|
||||
end while
|
||||
y = y+1
|
||||
end while
|
||||
x = x shr 1
|
||||
end while
|
||||
end if
|
||||
end repeat }
|
||||
|
||||
macro bitmap label,bitmap_file
|
||||
{ local data,size
|
||||
label dd RVA data,size,0,0
|
||||
data file bitmap_file:0Eh
|
||||
size = $ - data
|
||||
align 4 }
|
||||
|
||||
macro icon group,[label,icon_file]
|
||||
{ common local count
|
||||
count = 0
|
||||
forward local data,size,position
|
||||
label dd RVA data,size,0,0
|
||||
virtual at 0
|
||||
file icon_file:6,16
|
||||
load size dword from 8
|
||||
load position dword from 12
|
||||
end virtual
|
||||
data file icon_file:position,size
|
||||
count = count+1
|
||||
common local header
|
||||
align 4
|
||||
group dd RVA header,6+count*14,0,0
|
||||
header dw 0,1,count
|
||||
forward
|
||||
file icon_file:6,12
|
||||
dw label#.resid
|
||||
common
|
||||
align 4 }
|
||||
|
||||
macro cursor group,[label,cursor_file]
|
||||
{ common local count
|
||||
count = 0
|
||||
forward local data,width,height,size,position
|
||||
label dd RVA data,size+4,0,0
|
||||
virtual at 0
|
||||
file cursor_file:6,16
|
||||
load width byte from 0
|
||||
load height byte from 1
|
||||
load size dword from 8
|
||||
load position dword from 12
|
||||
end virtual
|
||||
data file cursor_file:10,4
|
||||
file cursor_file:position,size
|
||||
count = count+1
|
||||
common local header
|
||||
align 4
|
||||
group dd RVA header,6+count*14,0,0
|
||||
header dw 0,2,count
|
||||
forward
|
||||
dw width,height,1,0
|
||||
dd size+4
|
||||
dw label#.resid
|
||||
common
|
||||
align 4 }
|
||||
|
||||
macro menu label
|
||||
{ local data,size
|
||||
label dd RVA data,size,0,0
|
||||
data dw 1,4,0,0
|
||||
menu_size equ size = $ - data
|
||||
menu_level = 1 }
|
||||
|
||||
macro menuitem string,id,resinfo,status,type
|
||||
{ dd MFT_STRING or type+0,status+0,id
|
||||
dw resinfo+0
|
||||
du string,0
|
||||
align 4
|
||||
if ~ resinfo eq
|
||||
if resinfo and MFR_END
|
||||
menu_level = menu_level - 1
|
||||
end if
|
||||
if resinfo and MFR_POPUP
|
||||
menu_level = menu_level + 1
|
||||
dd 0
|
||||
end if
|
||||
end if
|
||||
if menu_level = 0
|
||||
menu_size
|
||||
end if }
|
||||
|
||||
macro menuseparator resinfo
|
||||
{ dd MFT_SEPARATOR,0,0
|
||||
dw resinfo+0,0
|
||||
if ~ resinfo eq
|
||||
if resinfo and MFR_END
|
||||
menu_level = menu_level - 1
|
||||
end if
|
||||
end if
|
||||
if menu_level = 0
|
||||
menu_size
|
||||
end if }
|
||||
|
||||
macro dialog label,title,x,y,cx,cy,style,exstyle,menu,fontname,fontsize
|
||||
{ local data,size,items
|
||||
label dd RVA data,size,0,0
|
||||
data dd style or DS_SETFONT,exstyle +0
|
||||
dw items,x,y,cx,cy
|
||||
if menu+0 <> 0
|
||||
dw 0FFFFh
|
||||
end if
|
||||
du menu+0,0,title,0
|
||||
if fontname eq
|
||||
du 8,'MS Sans Serif',0
|
||||
else
|
||||
du fontsize+0,fontname,0
|
||||
end if
|
||||
align 4
|
||||
dialog_size equ size = $ - data
|
||||
dialog_items equ items = dialog_items_counter
|
||||
dialog_items_counter = 0 }
|
||||
|
||||
macro dialogitem class,title,id,x,y,cx,cy,style,exstyle
|
||||
{ dd style or WS_CHILD,exstyle +0
|
||||
dw x,y,cx,cy,id
|
||||
if class eq 'BUTTON'
|
||||
dw 0FFFFh,80h
|
||||
else if class eq 'EDIT'
|
||||
dw 0FFFFh,81h
|
||||
else if class eq 'STATIC'
|
||||
dw 0FFFFh,82h
|
||||
else if class eq 'LISTBOX'
|
||||
dw 0FFFFh,83h
|
||||
else if class eq 'SCROLLBAR'
|
||||
dw 0FFFFh,84h
|
||||
else if class eq 'COMBOBOX'
|
||||
dw 0FFFFh,85h
|
||||
else
|
||||
du class,0
|
||||
end if
|
||||
if title eqtype 0
|
||||
dw 0FFFFh,title
|
||||
else
|
||||
du title,0
|
||||
end if
|
||||
dw 0
|
||||
align 4
|
||||
dialog_items_counter = dialog_items_counter + 1 }
|
||||
|
||||
macro enddialog
|
||||
{ dialog_items
|
||||
dialog_size }
|
||||
|
||||
macro accelerator label,[fvirt,key,cmd]
|
||||
{ common
|
||||
local data,size
|
||||
label dd RVA data,size,0,0
|
||||
data:
|
||||
accel_count = 0
|
||||
forward
|
||||
accel_count = accel_count + 1
|
||||
common
|
||||
size = accel_count * 8
|
||||
forward
|
||||
accel_count = accel_count - 1
|
||||
if accel_count = 0
|
||||
dw fvirt or 80h,key
|
||||
else
|
||||
dw fvirt,key
|
||||
end if
|
||||
dd cmd }
|
||||
|
||||
macro versioninfo label,fileos,filetype,filesubtype,lang,cp,[name,value]
|
||||
{ common
|
||||
local data,size,vivalue,visize
|
||||
label dd RVA data,size,0,0
|
||||
data dw size,visize,0
|
||||
du 'VS_VERSION_INFO',0,0
|
||||
vivalue dd 0FEEF04BDh,00010000h
|
||||
local version,count,shift,char,filever,productver
|
||||
filever = 0
|
||||
productver = 0
|
||||
forward
|
||||
if name eq 'FileVersion' | name eq 'ProductVersion'
|
||||
virtual at 0
|
||||
db value
|
||||
count = $
|
||||
version = 0
|
||||
shift = 16
|
||||
repeat count
|
||||
load char from %-1
|
||||
if char='.'
|
||||
if shift mod 32
|
||||
shift = shift-16
|
||||
else
|
||||
shift = shift+32+16
|
||||
end if
|
||||
else
|
||||
version = (version and not (0FFFFh shl shift)) or ((version shr shift and 0FFFFh)*10+char-'0') shl shift
|
||||
end if
|
||||
end repeat
|
||||
end virtual
|
||||
if name eq 'FileVersion'
|
||||
filever = version
|
||||
else if name eq 'ProductVersion'
|
||||
productver = version
|
||||
end if
|
||||
end if
|
||||
common
|
||||
dq filever,productver
|
||||
dd 0,0,fileos,filetype+0,filesubtype+0,0,0
|
||||
visize = $ - vivalue
|
||||
local sfi_data,sfi_size
|
||||
sfi_data dd sfi_size
|
||||
du 1,'StringFileInfo',0
|
||||
local str_data,str_size
|
||||
str_data dd str_size
|
||||
du 1,'040904E4',0
|
||||
forward
|
||||
local vs_data,vs_size,value_data,value_size
|
||||
align 4
|
||||
vs_data dw vs_size,value_size/2
|
||||
du 1,name,0
|
||||
align 4
|
||||
value_data du value,0
|
||||
value_size = $ - value_data
|
||||
vs_size = $ - vs_data
|
||||
common
|
||||
align 4
|
||||
str_size = $ - str_data
|
||||
sfi_size = $ - sfi_data
|
||||
local vfi_data,vfi_size,var_data,var_size
|
||||
vfi_data dd vfi_size
|
||||
du 1,'VarFileInfo',0,0
|
||||
var_data dw var_size,4
|
||||
du 0,'Translation',0,0
|
||||
dw lang,cp+0
|
||||
var_size = $ - var_data
|
||||
vfi_size = $ - vfi_data
|
||||
size = $ - data }
|
||||
|
||||
macro resdata label
|
||||
{ local data,size
|
||||
label dd RVA data,size,0,0
|
||||
data = $
|
||||
ressize equ size = $ - data }
|
||||
|
||||
macro endres
|
||||
{ ressize
|
||||
align 4 }
|
||||
221
fasmw172/INCLUDE/MACRO/STRUCT.INC
Normal file
221
fasmw172/INCLUDE/MACRO/STRUCT.INC
Normal file
@@ -0,0 +1,221 @@
|
||||
|
||||
; Macroinstructions for defining data structures
|
||||
|
||||
macro struct name
|
||||
{ virtual at 0
|
||||
define @struct
|
||||
field@struct equ name
|
||||
match child parent, name \{ restore field@struct
|
||||
field@struct equ child,fields@\#parent \}
|
||||
sub@struct equ
|
||||
struc db [val] \{ \common define field@struct .,db,<val> \}
|
||||
struc dw [val] \{ \common define field@struct .,dw,<val> \}
|
||||
struc du [val] \{ \common define field@struct .,du,<val> \}
|
||||
struc dd [val] \{ \common define field@struct .,dd,<val> \}
|
||||
struc dp [val] \{ \common define field@struct .,dp,<val> \}
|
||||
struc dq [val] \{ \common define field@struct .,dq,<val> \}
|
||||
struc dt [val] \{ \common define field@struct .,dt,<val> \}
|
||||
struc rb count \{ define field@struct .,db,count dup (?) \}
|
||||
struc rw count \{ define field@struct .,dw,count dup (?) \}
|
||||
struc rd count \{ define field@struct .,dd,count dup (?) \}
|
||||
struc rp count \{ define field@struct .,dp,count dup (?) \}
|
||||
struc rq count \{ define field@struct .,dq,count dup (?) \}
|
||||
struc rt count \{ define field@struct .,dt,count dup (?) \}
|
||||
macro db [val] \{ \common \local anonymous
|
||||
define field@struct anonymous,db,<val> \}
|
||||
macro dw [val] \{ \common \local anonymous
|
||||
define field@struct anonymous,dw,<val> \}
|
||||
macro du [val] \{ \common \local anonymous
|
||||
define field@struct anonymous,du,<val> \}
|
||||
macro dd [val] \{ \common \local anonymous
|
||||
define field@struct anonymous,dd,<val> \}
|
||||
macro dp [val] \{ \common \local anonymous
|
||||
define field@struct anonymous,dp,<val> \}
|
||||
macro dq [val] \{ \common \local anonymous
|
||||
define field@struct anonymous,dq,<val> \}
|
||||
macro dt [val] \{ \common \local anonymous
|
||||
define field@struct anonymous,dt,<val> \}
|
||||
macro rb count \{ \local anonymous
|
||||
define field@struct anonymous,db,count dup (?) \}
|
||||
macro rw count \{ \local anonymous
|
||||
define field@struct anonymous,dw,count dup (?) \}
|
||||
macro rd count \{ \local anonymous
|
||||
define field@struct anonymous,dd,count dup (?) \}
|
||||
macro rp count \{ \local anonymous
|
||||
define field@struct anonymous,dp,count dup (?) \}
|
||||
macro rq count \{ \local anonymous
|
||||
define field@struct anonymous,dq,count dup (?) \}
|
||||
macro rt count \{ \local anonymous
|
||||
define field@struct anonymous,dt,count dup (?) \}
|
||||
macro union \{ field@struct equ ,union,<
|
||||
sub@struct equ union \}
|
||||
macro struct \{ field@struct equ ,substruct,<
|
||||
sub@struct equ substruct \} }
|
||||
|
||||
macro ends
|
||||
{ match , sub@struct \{ restruc db,dw,du,dd,dp,dq,dt
|
||||
restruc rb,rw,rd,rp,rq,rt
|
||||
purge db,dw,du,dd,dp,dq,dt
|
||||
purge rb,rw,rd,rp,rq,rt
|
||||
purge union,struct
|
||||
irpv fields,field@struct \\{ restore field@struct
|
||||
\\common define fields@struct fields \\}
|
||||
match name tail,fields@struct, \\{ if $
|
||||
display 'Error: definition of ',\\`name,' contains illegal instructions.',0Dh,0Ah
|
||||
err
|
||||
end if \\}
|
||||
match name=,fields,fields@struct \\{ restore @struct
|
||||
make@struct name,fields
|
||||
define fields@\\#name fields \\}
|
||||
end virtual \}
|
||||
match any, sub@struct \{ tmp@struct equ field@struct
|
||||
restore field@struct
|
||||
field@struct equ tmp@struct> \}
|
||||
restore sub@struct }
|
||||
|
||||
macro make@struct name,[field,type,def]
|
||||
{ common
|
||||
local define
|
||||
define equ name
|
||||
forward
|
||||
local sub
|
||||
match , field \{ make@substruct type,name,sub def
|
||||
define equ define,.,sub, \}
|
||||
match any, field \{ define equ define,.#field,type,<def> \}
|
||||
common
|
||||
match fields, define \{ define@struct fields \} }
|
||||
|
||||
macro define@struct name,[field,type,def]
|
||||
{ common
|
||||
virtual
|
||||
db `name
|
||||
load initial@struct byte from 0
|
||||
if initial@struct = '.'
|
||||
display 'Error: name of structure should not begin with a dot.',0Dh,0Ah
|
||||
err
|
||||
end if
|
||||
end virtual
|
||||
local list
|
||||
list equ
|
||||
forward
|
||||
if ~ field eq .
|
||||
name#field type def
|
||||
sizeof.#name#field = $ - name#field
|
||||
else
|
||||
label name#.#type
|
||||
rb sizeof.#type
|
||||
end if
|
||||
local value
|
||||
match any, list \{ list equ list, \}
|
||||
list equ list <value>
|
||||
common
|
||||
sizeof.#name = $
|
||||
restruc name
|
||||
match values, list \{
|
||||
struc name value \\{ \\local \\..base
|
||||
match , @struct \\\{ define field@struct .,name,<values> \\\}
|
||||
match no, @struct \\\{ label \\..base
|
||||
forward
|
||||
match , value \\\\{ field type def \\\\}
|
||||
match any, value \\\\{ field type value
|
||||
if ~ field eq .
|
||||
rb sizeof.#name#field - ($-field)
|
||||
end if \\\\}
|
||||
common label . at \\..base \\\}
|
||||
\\}
|
||||
macro name value \\{
|
||||
match , @struct \\\{ \\\local anonymous
|
||||
define field@struct anonymous,name,<values> \\\}
|
||||
match no, @struct \\\{
|
||||
forward
|
||||
match , value \\\\{ type def \\\\}
|
||||
match any, value \\\\{ \\\\local ..field
|
||||
..field = $
|
||||
type value
|
||||
if ~ field eq .
|
||||
rb sizeof.#name#field - ($-..field)
|
||||
end if \\\\}
|
||||
common \\\} \\} \} }
|
||||
|
||||
macro enable@substruct
|
||||
{ macro make@substruct substruct,parent,name,[field,type,def]
|
||||
\{ \common
|
||||
\local define
|
||||
define equ parent,name
|
||||
\forward
|
||||
\local sub
|
||||
match , field \\{ match any, type \\\{ enable@substruct
|
||||
make@substruct type,parent,sub def
|
||||
purge make@substruct
|
||||
define equ define,.,sub, \\\} \\}
|
||||
match any, field \\{ define equ define,.\#field,type,<def> \\}
|
||||
\common
|
||||
match fields, define \\{ define@\#substruct fields \\} \} }
|
||||
|
||||
enable@substruct
|
||||
|
||||
macro define@union parent,name,[field,type,def]
|
||||
{ common
|
||||
virtual at parent#.#name
|
||||
forward
|
||||
if ~ field eq .
|
||||
virtual at parent#.#name
|
||||
parent#field type def
|
||||
sizeof.#parent#field = $ - parent#field
|
||||
end virtual
|
||||
if sizeof.#parent#field > $ - parent#.#name
|
||||
rb sizeof.#parent#field - ($ - parent#.#name)
|
||||
end if
|
||||
else
|
||||
virtual at parent#.#name
|
||||
label parent#.#type
|
||||
type def
|
||||
end virtual
|
||||
label name#.#type at parent#.#name
|
||||
if sizeof.#type > $ - parent#.#name
|
||||
rb sizeof.#type - ($ - parent#.#name)
|
||||
end if
|
||||
end if
|
||||
common
|
||||
sizeof.#name = $ - parent#.#name
|
||||
end virtual
|
||||
struc name [value] \{ \common
|
||||
label .\#name
|
||||
last@union equ
|
||||
forward
|
||||
match any, last@union \\{ virtual at .\#name
|
||||
field type def
|
||||
end virtual \\}
|
||||
match , last@union \\{ match , value \\\{ field type def \\\}
|
||||
match any, value \\\{ field type value \\\} \\}
|
||||
last@union equ field
|
||||
common rb sizeof.#name - ($ - .\#name) \}
|
||||
macro name [value] \{ \common \local ..anonymous
|
||||
..anonymous name value \} }
|
||||
|
||||
macro define@substruct parent,name,[field,type,def]
|
||||
{ common
|
||||
virtual at parent#.#name
|
||||
forward
|
||||
local value
|
||||
if ~ field eq .
|
||||
parent#field type def
|
||||
sizeof.#parent#field = $ - parent#field
|
||||
else
|
||||
label parent#.#type
|
||||
rb sizeof.#type
|
||||
end if
|
||||
common
|
||||
sizeof.#name = $ - parent#.#name
|
||||
end virtual
|
||||
struc name value \{
|
||||
label .\#name
|
||||
forward
|
||||
match , value \\{ field type def \\}
|
||||
match any, value \\{ field type value
|
||||
if ~ field eq .
|
||||
rb sizeof.#parent#field - ($-field)
|
||||
end if \\}
|
||||
common \}
|
||||
macro name value \{ \local ..anonymous
|
||||
..anonymous name \} }
|
||||
340
fasmw172/INCLUDE/PCOUNT/ADVAPI32.INC
Normal file
340
fasmw172/INCLUDE/PCOUNT/ADVAPI32.INC
Normal file
@@ -0,0 +1,340 @@
|
||||
|
||||
; ADVAPI32 API calls parameters' count
|
||||
|
||||
AbortSystemShutdown% = 1
|
||||
AccessCheck% = 8
|
||||
AccessCheckAndAuditAlarm% = 11
|
||||
AccessCheckByType% = 11
|
||||
AccessCheckByTypeAndAuditAlarm% = 16
|
||||
AccessCheckByTypeResultList% = 11
|
||||
AccessCheckByTypeResultListAndAuditAlarm% = 16
|
||||
AddAccessAllowedAce% = 4
|
||||
AddAccessAllowedAceEx% = 5
|
||||
AddAccessAllowedObjectAce% = 7
|
||||
AddAccessDeniedAce% = 4
|
||||
AddAccessDeniedAceEx% = 5
|
||||
AddAccessDeniedObjectAce% = 7
|
||||
AddAce% = 5
|
||||
AddAuditAccessAce% = 6
|
||||
AddAuditAccessAceEx% = 7
|
||||
AddAuditAccessObjectAce% = 9
|
||||
AdjustTokenGroups% = 6
|
||||
AdjustTokenPrivileges% = 6
|
||||
AllocateAndInitializeSid% = 11
|
||||
AllocateLocallyUniqueId% = 1
|
||||
AreAllAccessesGranted% = 2
|
||||
AreAnyAccessesGranted% = 2
|
||||
BackupEventLog% = 2
|
||||
BuildExplicitAccessWithName% = 5
|
||||
BuildImpersonateExplicitAccessWithName% = 6
|
||||
BuildImpersonateTrustee% = 2
|
||||
BuildSecurityDescriptor% = 9
|
||||
BuildTrusteeWithName% = 2
|
||||
BuildTrusteeWithSid% = 2
|
||||
CancelOverlappedAccess% = 1
|
||||
ChangeServiceConfig2% = 3
|
||||
ChangeServiceConfig% = 11
|
||||
ClearEventLog% = 2
|
||||
CloseEventLog% = 1
|
||||
CloseRaw% = 1
|
||||
CloseServiceHandle% = 1
|
||||
ControlService% = 3
|
||||
ConvertAccessToSecurityDescriptor% = 5
|
||||
ConvertSecurityDescriptorToAccess% = 7
|
||||
ConvertSecurityDescriptorToAccessNamed% = 7
|
||||
ConvertToAutoInheritPrivateObjectSecurity% = 6
|
||||
CopySid% = 3
|
||||
CreatePrivateObjectSecurity% = 6
|
||||
CreatePrivateObjectSecurityEx% = 8
|
||||
CreateProcessAsUser% = 11
|
||||
CreateRestrictedToken% = 9
|
||||
CreateService% = 13
|
||||
CryptAcquireContext% = 5
|
||||
CryptContextAddRef% = 3
|
||||
CryptCreateHash% = 5
|
||||
CryptDecrypt% = 6
|
||||
CryptDeriveKey% = 5
|
||||
CryptDestroyHash% = 1
|
||||
CryptDestroyKey% = 1
|
||||
CryptDuplicateHash% = 4
|
||||
CryptDuplicateKey% = 4
|
||||
CryptEncrypt% = 7
|
||||
CryptEnumProviderTypes% = 6
|
||||
CryptEnumProviders% = 6
|
||||
CryptExportKey% = 6
|
||||
CryptGenKey% = 4
|
||||
CryptGenRandom% = 3
|
||||
CryptGetDefaultProvider% = 5
|
||||
CryptGetHashParam% = 5
|
||||
CryptGetKeyParam% = 5
|
||||
CryptGetProvParam% = 5
|
||||
CryptGetUserKey% = 3
|
||||
CryptHashData% = 4
|
||||
CryptHashSessionKey% = 3
|
||||
CryptImportKey% = 6
|
||||
CryptReleaseContext% = 2
|
||||
CryptSetHashParam% = 4
|
||||
CryptSetKeyParam% = 4
|
||||
CryptSetProvParam% = 4
|
||||
CryptSetProvider% = 2
|
||||
CryptSetProviderEx% = 4
|
||||
CryptSignHash% = 6
|
||||
CryptVerifySignature% = 6
|
||||
DecryptFile% = 2
|
||||
DeleteAce% = 2
|
||||
DeleteService% = 1
|
||||
DeregisterEventSource% = 1
|
||||
DestroyPrivateObjectSecurity% = 1
|
||||
DuplicateToken% = 3
|
||||
DuplicateTokenEx% = 6
|
||||
ElfBackupEventLogFile% = 2
|
||||
ElfChangeNotify% = 2
|
||||
ElfClearEventLogFile% = 2
|
||||
ElfCloseEventLog% = 1
|
||||
ElfDeregisterEventSource% = 1
|
||||
ElfNumberOfRecords% = 2
|
||||
ElfOldestRecord% = 2
|
||||
ElfOpenBackupEventLog% = 3
|
||||
ElfOpenEventLog% = 3
|
||||
ElfReadEventLog% = 7
|
||||
ElfRegisterEventSource% = 3
|
||||
ElfReportEvent% = 12
|
||||
EncryptFile% = 1
|
||||
EnumDependentServices% = 6
|
||||
EnumServicesStatus% = 8
|
||||
EqualPrefixSid% = 2
|
||||
EqualSid% = 2
|
||||
FindFirstFreeAce% = 2
|
||||
FreeSid% = 1
|
||||
GetAccessPermissionsForObject% = 9
|
||||
GetAce% = 3
|
||||
GetAclInformation% = 4
|
||||
GetAuditedPermissionsFromAcl% = 4
|
||||
GetCurrentHwProfile% = 1
|
||||
GetEffectiveRightsFromAcl% = 3
|
||||
GetExplicitEntriesFromAcl% = 3
|
||||
GetFileSecurity% = 5
|
||||
GetKernelObjectSecurity% = 5
|
||||
GetLengthSid% = 1
|
||||
GetMultipleTrustee% = 1
|
||||
GetMultipleTrusteeOperation% = 1
|
||||
GetNamedSecurityInfo% = 8
|
||||
GetNamedSecurityInfoEx% = 9
|
||||
GetNumberOfEventLogRecords% = 2
|
||||
GetOldestEventLogRecord% = 2
|
||||
GetOverlappedAccessResults% = 4
|
||||
GetPrivateObjectSecurity% = 5
|
||||
GetSecurityDescriptorControl% = 3
|
||||
GetSecurityDescriptorDacl% = 4
|
||||
GetSecurityDescriptorGroup% = 3
|
||||
GetSecurityDescriptorLength% = 1
|
||||
GetSecurityDescriptorOwner% = 3
|
||||
GetSecurityDescriptorSacl% = 4
|
||||
GetSecurityInfo% = 8
|
||||
GetSecurityInfoEx% = 9
|
||||
GetServiceDisplayName% = 4
|
||||
GetServiceKeyName% = 4
|
||||
GetSidLengthRequired% = 1
|
||||
GetSidSubAuthority% = 2
|
||||
GetSidSubAuthorityCount% = 1
|
||||
GetTokenInformation% = 5
|
||||
GetTrusteeName% = 1
|
||||
GetTrusteeType% = 1
|
||||
GetUserName% = 2
|
||||
I_ScSetServiceBits% = 5
|
||||
ImpersonateLoggedOnUser% = 1
|
||||
ImpersonateNamedPipeClient% = 1
|
||||
ImpersonateSelf% = 1
|
||||
InitializeAcl% = 3
|
||||
InitializeSecurityDescriptor% = 2
|
||||
InitializeSid% = 3
|
||||
InitiateSystemShutdown% = 5
|
||||
IsTextUnicode% = 3
|
||||
IsTokenRestricted% = 1
|
||||
IsValidAcl% = 1
|
||||
IsValidSecurityDescriptor% = 1
|
||||
IsValidSid% = 1
|
||||
LockServiceDatabase% = 1
|
||||
LogonUser% = 6
|
||||
LookupAccountName% = 7
|
||||
LookupAccountSid% = 7
|
||||
LookupPrivilegeDisplayName% = 5
|
||||
LookupPrivilegeName% = 4
|
||||
LookupPrivilegeValue% = 3
|
||||
LookupSecurityDescriptorParts% = 7
|
||||
LsaAddAccountRights% = 4
|
||||
LsaAddPrivilegesToAccount% = 2
|
||||
LsaClearAuditLog% = 1
|
||||
LsaClose% = 1
|
||||
LsaCreateAccount% = 4
|
||||
LsaCreateSecret% = 4
|
||||
LsaCreateTrustedDomain% = 4
|
||||
LsaCreateTrustedDomainEx% = 5
|
||||
LsaDelete% = 1
|
||||
LsaDeleteTrustedDomain% = 2
|
||||
LsaEnumerateAccountRights% = 4
|
||||
LsaEnumerateAccounts% = 5
|
||||
LsaEnumerateAccountsWithUserRight% = 4
|
||||
LsaEnumeratePrivileges% = 5
|
||||
LsaEnumeratePrivilegesOfAccount% = 2
|
||||
LsaEnumerateTrustedDomains% = 5
|
||||
LsaEnumerateTrustedDomainsEx% = 6
|
||||
LsaFreeMemory% = 1
|
||||
LsaGetQuotasForAccount% = 2
|
||||
LsaGetSystemAccessAccount% = 2
|
||||
LsaGetUserName% = 2
|
||||
LsaICLookupNames% = 7
|
||||
LsaICLookupSids% = 7
|
||||
LsaIGetTrustedDomainAuthInfoBlobs% = 4
|
||||
LsaISetTrustedDomainAuthInfoBlobs% = 4
|
||||
LsaLookupNames% = 5
|
||||
LsaLookupPrivilegeDisplayName% = 4
|
||||
LsaLookupPrivilegeName% = 3
|
||||
LsaLookupPrivilegeValue% = 3
|
||||
LsaLookupSids% = 5
|
||||
LsaNtStatusToWinError% = 1
|
||||
LsaOpenAccount% = 4
|
||||
LsaOpenPolicy% = 4
|
||||
LsaOpenSecret% = 4
|
||||
LsaOpenTrustedDomain% = 4
|
||||
LsaQueryDomainInformationPolicy% = 3
|
||||
LsaQueryInfoTrustedDomain% = 3
|
||||
LsaQueryInformationPolicy% = 3
|
||||
LsaQueryLocalInformationPolicy% = 3
|
||||
LsaQuerySecret% = 5
|
||||
LsaQuerySecurityObject% = 3
|
||||
LsaQueryTrustedDomainInfo% = 4
|
||||
LsaQueryTrustedDomainInfoByName% = 4
|
||||
LsaRemoveAccountRights% = 5
|
||||
LsaRemovePrivilegesFromAccount% = 3
|
||||
LsaRetrievePrivateData% = 3
|
||||
LsaSetDomainInformationPolicy% = 3
|
||||
LsaSetInformationPolicy% = 3
|
||||
LsaSetInformationTrustedDomain% = 3
|
||||
LsaSetLocalInformationPolicy% = 3
|
||||
LsaSetQuotasForAccount% = 2
|
||||
LsaSetSecret% = 3
|
||||
LsaSetSecurityObject% = 3
|
||||
LsaSetSystemAccessAccount% = 2
|
||||
LsaSetTrustedDomainInfoByName% = 4
|
||||
LsaSetTrustedDomainInformation% = 4
|
||||
LsaStorePrivateData% = 3
|
||||
MakeAbsoluteSD% = 11
|
||||
MakeSelfRelativeSD% = 3
|
||||
MapGenericMask% = 2
|
||||
NotifyBootConfigStatus% = 1
|
||||
NotifyChangeEventLog% = 2
|
||||
ObjectCloseAuditAlarm% = 3
|
||||
ObjectDeleteAuditAlarm% = 3
|
||||
ObjectOpenAuditAlarm% = 12
|
||||
ObjectPrivilegeAuditAlarm% = 6
|
||||
OpenBackupEventLog% = 2
|
||||
OpenEventLog% = 2
|
||||
OpenProcessToken% = 3
|
||||
OpenRaw% = 3
|
||||
OpenSCManager% = 3
|
||||
OpenService% = 3
|
||||
OpenThreadToken% = 4
|
||||
PrivilegeCheck% = 3
|
||||
PrivilegedServiceAuditAlarm% = 5
|
||||
QueryRecoveryAgents% = 3
|
||||
QueryServiceConfig2% = 5
|
||||
QueryServiceConfig% = 4
|
||||
QueryServiceLockStatus% = 4
|
||||
QueryServiceObjectSecurity% = 5
|
||||
QueryServiceStatus% = 2
|
||||
QueryWindows31FilesMigration% = 1
|
||||
ReadEventLog% = 7
|
||||
ReadRaw% = 3
|
||||
RegCloseKey% = 1
|
||||
RegConnectRegistry% = 3
|
||||
RegCreateKey% = 3
|
||||
RegCreateKeyEx% = 9
|
||||
RegDeleteKey% = 2
|
||||
RegDeleteValue% = 2
|
||||
RegEnumKey% = 4
|
||||
RegEnumKeyEx% = 8
|
||||
RegEnumValue% = 8
|
||||
RegFlushKey% = 1
|
||||
RegGetKeySecurity% = 4
|
||||
RegLoadKey% = 3
|
||||
RegNotifyChangeKeyValue% = 5
|
||||
RegOpenKey% = 3
|
||||
RegOpenKeyEx% = 5
|
||||
RegOverridePredefKey% = 2
|
||||
RegQueryInfoKey% = 12
|
||||
RegQueryMultipleValues% = 5
|
||||
RegQueryValue% = 4
|
||||
RegQueryValueEx% = 6
|
||||
RegReplaceKey% = 4
|
||||
RegRestoreKey% = 3
|
||||
RegSaveKey% = 3
|
||||
RegSetKeySecurity% = 3
|
||||
RegSetValue% = 5
|
||||
RegSetValueEx% = 6
|
||||
RegUnLoadKey% = 2
|
||||
RegisterEventSource% = 2
|
||||
RegisterServiceCtrlHandler% = 2
|
||||
ReportEvent% = 9
|
||||
RevertToSelf% = 0
|
||||
SetAclInformation% = 4
|
||||
SetEntriesInAccessList% = 6
|
||||
SetEntriesInAcl% = 4
|
||||
SetEntriesInAuditList% = 6
|
||||
SetFileSecurity% = 3
|
||||
SetKernelObjectSecurity% = 3
|
||||
SetNamedSecurityInfo% = 7
|
||||
SetNamedSecurityInfoEx% = 9
|
||||
SetPrivateObjectSecurity% = 5
|
||||
SetPrivateObjectSecurityEx% = 6
|
||||
SetSecurityDescriptorControl% = 3
|
||||
SetSecurityDescriptorDacl% = 4
|
||||
SetSecurityDescriptorGroup% = 3
|
||||
SetSecurityDescriptorOwner% = 3
|
||||
SetSecurityDescriptorSacl% = 4
|
||||
SetSecurityInfo% = 7
|
||||
SetSecurityInfoEx% = 9
|
||||
SetServiceBits% = 4
|
||||
SetServiceObjectSecurity% = 3
|
||||
SetServiceStatus% = 2
|
||||
SetThreadToken% = 2
|
||||
SetTokenInformation% = 4
|
||||
StartService% = 3
|
||||
StartServiceCtrlDispatcher% = 1
|
||||
SynchronizeWindows31FilesAndWindowsNTRegistry% = 4
|
||||
SystemFunction001% = 3
|
||||
SystemFunction002% = 3
|
||||
SystemFunction003% = 2
|
||||
SystemFunction004% = 3
|
||||
SystemFunction005% = 3
|
||||
SystemFunction006% = 2
|
||||
SystemFunction007% = 2
|
||||
SystemFunction008% = 3
|
||||
SystemFunction009% = 3
|
||||
SystemFunction010% = 3
|
||||
SystemFunction011% = 3
|
||||
SystemFunction012% = 3
|
||||
SystemFunction013% = 3
|
||||
SystemFunction014% = 3
|
||||
SystemFunction015% = 3
|
||||
SystemFunction016% = 3
|
||||
SystemFunction017% = 3
|
||||
SystemFunction018% = 3
|
||||
SystemFunction019% = 3
|
||||
SystemFunction020% = 3
|
||||
SystemFunction021% = 3
|
||||
SystemFunction022% = 3
|
||||
SystemFunction023% = 3
|
||||
SystemFunction024% = 3
|
||||
SystemFunction025% = 3
|
||||
SystemFunction026% = 3
|
||||
SystemFunction027% = 3
|
||||
SystemFunction028% = 2
|
||||
SystemFunction029% = 2
|
||||
SystemFunction030% = 2
|
||||
SystemFunction031% = 2
|
||||
SystemFunction032% = 2
|
||||
SystemFunction033% = 2
|
||||
TrusteeAccessToObject% = 6
|
||||
UnlockServiceDatabase% = 1
|
||||
WriteRaw% = 3
|
||||
69
fasmw172/INCLUDE/PCOUNT/COMCTL32.INC
Normal file
69
fasmw172/INCLUDE/PCOUNT/COMCTL32.INC
Normal file
@@ -0,0 +1,69 @@
|
||||
|
||||
; COMCTL32 API calls parameters' count
|
||||
|
||||
CreateMappedBitmap% = 5
|
||||
CreatePropertySheetPage% = 1
|
||||
CreateStatusWindow% = 4
|
||||
CreateToolbar% = 8
|
||||
CreateToolbarEx% = 13
|
||||
CreateUpDownControl% = 12
|
||||
DestroyPropertySheetPage% = 1
|
||||
DrawInsert% = 3
|
||||
DrawStatusText% = 4
|
||||
FlatSB_EnableScrollBar% = 3
|
||||
FlatSB_GetScrollInfo% = 3
|
||||
FlatSB_GetScrollPos% = 2
|
||||
FlatSB_GetScrollProp% = 3
|
||||
FlatSB_GetScrollRange% = 4
|
||||
FlatSB_SetScrollInfo% = 4
|
||||
FlatSB_SetScrollPos% = 4
|
||||
FlatSB_SetScrollProp% = 4
|
||||
FlatSB_SetScrollRange% = 5
|
||||
FlatSB_ShowScrollBar% = 3
|
||||
GetEffectiveClientRect% = 3
|
||||
ImageList_Add% = 3
|
||||
ImageList_AddIcon% = 2
|
||||
ImageList_AddMasked% = 3
|
||||
ImageList_BeginDrag% = 4
|
||||
ImageList_Copy% = 5
|
||||
ImageList_Create% = 5
|
||||
ImageList_Destroy% = 1
|
||||
ImageList_DragEnter% = 3
|
||||
ImageList_DragLeave% = 1
|
||||
ImageList_DragMove% = 2
|
||||
ImageList_DragShowNolock% = 1
|
||||
ImageList_Draw% = 6
|
||||
ImageList_DrawEx% = 10
|
||||
ImageList_DrawIndirect% = 1
|
||||
ImageList_Duplicate% = 1
|
||||
ImageList_EndDrag% = 0
|
||||
ImageList_GetBkColor% = 1
|
||||
ImageList_GetDragImage% = 2
|
||||
ImageList_GetIcon% = 3
|
||||
ImageList_GetIconSize% = 3
|
||||
ImageList_GetImageCount% = 1
|
||||
ImageList_GetImageInfo% = 3
|
||||
ImageList_GetImageRect% = 3
|
||||
ImageList_LoadImage% = 7
|
||||
ImageList_Merge% = 6
|
||||
ImageList_Read% = 1
|
||||
ImageList_Remove% = 2
|
||||
ImageList_Replace% = 4
|
||||
ImageList_ReplaceIcon% = 3
|
||||
ImageList_SetBkColor% = 2
|
||||
ImageList_SetDragCursorImage% = 4
|
||||
ImageList_SetFilter% = 3
|
||||
ImageList_SetIconSize% = 3
|
||||
ImageList_SetImageCount% = 2
|
||||
ImageList_SetOverlayImage% = 3
|
||||
ImageList_Write% = 2
|
||||
InitCommonControls% = 0
|
||||
InitCommonControlsEx% = 1
|
||||
InitializeFlatSB% = 1
|
||||
LBItemFromPt% = 4
|
||||
MakeDragList% = 1
|
||||
MenuHelp% = 7
|
||||
PropertySheet% = 1
|
||||
ShowHideMenuCtl% = 3
|
||||
UninitializeFlatSB% = 1
|
||||
_TrackMouseEvent% = 1
|
||||
18
fasmw172/INCLUDE/PCOUNT/COMDLG32.INC
Normal file
18
fasmw172/INCLUDE/PCOUNT/COMDLG32.INC
Normal file
@@ -0,0 +1,18 @@
|
||||
|
||||
; COMDLG32 API calls parameters' count
|
||||
|
||||
ChooseColor% = 1
|
||||
ChooseFont% = 1
|
||||
CommDlgExtendedError% = 0
|
||||
FindText% = 1
|
||||
FormatCharDlgProc% = 4
|
||||
GetFileTitle% = 3
|
||||
GetOpenFileName% = 1
|
||||
GetSaveFileName% = 1
|
||||
LoadAlterBitmap% = 3
|
||||
PageSetupDlg% = 1
|
||||
PrintDlg% = 1
|
||||
ReplaceText% = 1
|
||||
WantArrows% = 4
|
||||
dwLBSubclass% = 4
|
||||
dwOKSubclass% = 4
|
||||
319
fasmw172/INCLUDE/PCOUNT/GDI32.INC
Normal file
319
fasmw172/INCLUDE/PCOUNT/GDI32.INC
Normal file
@@ -0,0 +1,319 @@
|
||||
|
||||
; GDI32 API calls parameters' count
|
||||
|
||||
AbortDoc% = 1
|
||||
AbortPath% = 1
|
||||
AddFontMemResourceEx% = 4
|
||||
AddFontResource% = 1
|
||||
AddFontResourceEx% = 3
|
||||
AngleArc% = 6
|
||||
AnimatePalette% = 4
|
||||
Arc% = 9
|
||||
ArcTo% = 9
|
||||
BeginPath% = 1
|
||||
BitBlt% = 9
|
||||
CancelDC% = 1
|
||||
CheckColorsInGamut% = 4
|
||||
ChoosePixelFormat% = 2
|
||||
Chord% = 9
|
||||
CloseEnhMetaFile% = 1
|
||||
CloseFigure% = 1
|
||||
CloseMetaFile% = 1
|
||||
ColorCorrectPalette% = 4
|
||||
ColorMatchToTarget% = 3
|
||||
CombineRgn% = 4
|
||||
CombineTransform% = 3
|
||||
CopyEnhMetaFile% = 2
|
||||
CopyMetaFile% = 2
|
||||
CreateBitmap% = 5
|
||||
CreateBitmapIndirect% = 1
|
||||
CreateBrushIndirect% = 1
|
||||
CreateColorSpace% = 1
|
||||
CreateCompatibleBitmap% = 3
|
||||
CreateCompatibleDC% = 1
|
||||
CreateDC% = 4
|
||||
CreateDIBPatternBrush% = 2
|
||||
CreateDIBPatternBrushPt% = 2
|
||||
CreateDIBSection% = 6
|
||||
CreateDIBitmap% = 6
|
||||
CreateDiscardableBitmap% = 3
|
||||
CreateEllipticRgn% = 4
|
||||
CreateEllipticRgnIndirect% = 1
|
||||
CreateEnhMetaFile% = 4
|
||||
CreateFont% = 14
|
||||
CreateFontIndirect% = 1
|
||||
CreateFontIndirectEx% = 1
|
||||
CreateHalftonePalette% = 1
|
||||
CreateHatchBrush% = 2
|
||||
CreateIC% = 4
|
||||
CreateMetaFile% = 1
|
||||
CreatePalette% = 1
|
||||
CreatePatternBrush% = 1
|
||||
CreatePen% = 3
|
||||
CreatePenIndirect% = 1
|
||||
CreatePolyPolygonRgn% = 4
|
||||
CreatePolygonRgn% = 3
|
||||
CreateRectRgn% = 4
|
||||
CreateRectRgnIndirect% = 1
|
||||
CreateRoundRectRgn% = 6
|
||||
CreateScalableFontResource% = 4
|
||||
CreateSolidBrush% = 1
|
||||
DPtoLP% = 3
|
||||
DeleteColorSpace% = 1
|
||||
DeleteDC% = 1
|
||||
DeleteEnhMetaFile% = 1
|
||||
DeleteMetaFile% = 1
|
||||
DeleteObject% = 1
|
||||
DescribePixelFormat% = 4
|
||||
DeviceCapabilitiesEx% = 6
|
||||
DrawEscape% = 4
|
||||
Ellipse% = 5
|
||||
EnableEUDC% = 1
|
||||
EndDoc% = 1
|
||||
EndPage% = 1
|
||||
EndPath% = 1
|
||||
EnumEnhMetaFile% = 5
|
||||
EnumFontFamilies% = 4
|
||||
EnumFontFamiliesEx% = 5
|
||||
EnumFonts% = 4
|
||||
EnumICMProfiles% = 3
|
||||
EnumMetaFile% = 4
|
||||
EnumObjects% = 4
|
||||
EqualRgn% = 2
|
||||
Escape% = 5
|
||||
ExcludeClipRect% = 5
|
||||
ExtCreatePen% = 5
|
||||
ExtCreateRegion% = 3
|
||||
ExtEscape% = 6
|
||||
ExtFloodFill% = 5
|
||||
ExtSelectClipRgn% = 3
|
||||
ExtTextOut% = 8
|
||||
FillPath% = 1
|
||||
FillRgn% = 3
|
||||
FixBrushOrgEx% = 4
|
||||
FlattenPath% = 1
|
||||
FloodFill% = 4
|
||||
FrameRgn% = 5
|
||||
GdiComment% = 3
|
||||
GdiDeleteSpoolFileHandle% = 1
|
||||
GdiEndDocEMF% = 1
|
||||
GdiEndPageEMF% = 2
|
||||
GdiFlush% = 0
|
||||
GdiGetBatchLimit% = 0
|
||||
GdiGetDC% = 1
|
||||
GdiGetDevmodeForPage% = 4
|
||||
GdiGetPageCount% = 1
|
||||
GdiGetPageHandle% = 3
|
||||
GdiGetSpoolFileHandle% = 3
|
||||
GdiPlayDCScript% = 6
|
||||
GdiPlayEMF% = 5
|
||||
GdiPlayJournal% = 5
|
||||
GdiPlayPageEMF% = 4
|
||||
GdiPlayPrivatePageEMF% = 3
|
||||
GdiPlayScript% = 7
|
||||
GdiResetDCEMF% = 2
|
||||
GdiSetBatchLimit% = 1
|
||||
GdiStartDocEMF% = 2
|
||||
GdiStartPageEMF% = 1
|
||||
GetArcDirection% = 1
|
||||
GetAspectRatioFilterEx% = 2
|
||||
GetBitmapBits% = 3
|
||||
GetBitmapDimensionEx% = 2
|
||||
GetBkColor% = 1
|
||||
GetBkMode% = 1
|
||||
GetBoundsRect% = 3
|
||||
GetBrushOrgEx% = 2
|
||||
GetCharABCWidths% = 4
|
||||
GetCharABCWidthsFloat% = 4
|
||||
GetCharABCWidthsI% = 5
|
||||
GetCharWidth32% = 4
|
||||
GetCharWidth% = 4
|
||||
GetCharWidthFloat% = 4
|
||||
GetCharWidthI% = 5
|
||||
GetCharacterPlacement% = 6
|
||||
GetClipBox% = 2
|
||||
GetClipRgn% = 2
|
||||
GetColorAdjustment% = 2
|
||||
GetColorSpace% = 1
|
||||
GetCurrentObject% = 2
|
||||
GetCurrentPositionEx% = 2
|
||||
GetDCBrushColor% = 1
|
||||
GetDCOrgEx% = 2
|
||||
GetDCPenColor% = 1
|
||||
GetDIBColorTable% = 4
|
||||
GetDIBits% = 7
|
||||
GetDeviceCaps% = 2
|
||||
GetDeviceGammaRamp% = 2
|
||||
GetEnhMetaFile% = 1
|
||||
GetEnhMetaFileBits% = 3
|
||||
GetEnhMetaFileDescription% = 3
|
||||
GetEnhMetaFileHeader% = 3
|
||||
GetEnhMetaFilePaletteEntries% = 3
|
||||
GetEnhMetaFilePixelFormat% = 3
|
||||
GetFontAssocStatus% = 1
|
||||
GetFontData% = 5
|
||||
GetFontLanguageInfo% = 1
|
||||
GetFontUnicodeRanges% = 2
|
||||
GetGlyphIndices% = 5
|
||||
GetGlyphOutline% = 7
|
||||
GetGraphicsMode% = 1
|
||||
GetICMProfile% = 3
|
||||
GetKerningPairs% = 3
|
||||
GetLogColorSpace% = 3
|
||||
GetMapMode% = 1
|
||||
GetMetaFile% = 1
|
||||
GetMetaFileBitsEx% = 3
|
||||
GetMetaRgn% = 2
|
||||
GetMiterLimit% = 2
|
||||
GetNearestColor% = 2
|
||||
GetNearestPaletteIndex% = 2
|
||||
GetObject% = 3
|
||||
GetObjectType% = 1
|
||||
GetOutlineTextMetrics% = 3
|
||||
GetPaletteEntries% = 4
|
||||
GetPath% = 4
|
||||
GetPixel% = 3
|
||||
GetPixelFormat% = 1
|
||||
GetPolyFillMode% = 1
|
||||
GetROP2% = 1
|
||||
GetRandomRgn% = 3
|
||||
GetRasterizerCaps% = 2
|
||||
GetRegionData% = 3
|
||||
GetRelAbs% = 2
|
||||
GetRgnBox% = 2
|
||||
GetStockObject% = 1
|
||||
GetStretchBltMode% = 1
|
||||
GetSystemPaletteEntries% = 4
|
||||
GetSystemPaletteUse% = 1
|
||||
GetTextAlign% = 1
|
||||
GetTextCharacterExtra% = 1
|
||||
GetTextCharset% = 1
|
||||
GetTextCharsetInfo% = 3
|
||||
GetTextColor% = 1
|
||||
GetTextExtentExPoint% = 7
|
||||
GetTextExtentExPointI% = 7
|
||||
GetTextExtentPoint32% = 4
|
||||
GetTextExtentPoint% = 4
|
||||
GetTextExtentPointI% = 4
|
||||
GetTextFace% = 3
|
||||
GetTextMetrics% = 2
|
||||
GetViewportExtEx% = 2
|
||||
GetViewportOrgEx% = 2
|
||||
GetWinMetaFileBits% = 5
|
||||
GetWindowExtEx% = 2
|
||||
GetWindowOrgEx% = 2
|
||||
GetWorldTransform% = 2
|
||||
IntersectClipRect% = 5
|
||||
InvertRgn% = 2
|
||||
LPtoDP% = 3
|
||||
LineDD% = 6
|
||||
LineTo% = 3
|
||||
MaskBlt% = 12
|
||||
ModifyWorldTransform% = 3
|
||||
MoveToEx% = 4
|
||||
OffsetClipRgn% = 3
|
||||
OffsetRgn% = 3
|
||||
OffsetViewportOrgEx% = 4
|
||||
OffsetWindowOrgEx% = 4
|
||||
PaintRgn% = 2
|
||||
PatBlt% = 6
|
||||
PathToRegion% = 1
|
||||
Pie% = 9
|
||||
PlayEnhMetaFile% = 3
|
||||
PlayEnhMetaFileRecord% = 4
|
||||
PlayMetaFile% = 2
|
||||
PlayMetaFileRecord% = 4
|
||||
PlgBlt% = 10
|
||||
PolyBezier% = 3
|
||||
PolyBezierTo% = 3
|
||||
PolyDraw% = 4
|
||||
PolyPatBlt% = 5
|
||||
PolyPolygon% = 4
|
||||
PolyPolyline% = 4
|
||||
PolyTextOut% = 3
|
||||
Polygon% = 3
|
||||
Polyline% = 3
|
||||
PolylineTo% = 3
|
||||
PtInRegion% = 3
|
||||
PtVisible% = 3
|
||||
RealizePalette% = 1
|
||||
RectInRegion% = 2
|
||||
RectVisible% = 2
|
||||
Rectangle% = 5
|
||||
RemoveFontMemResourceEx% = 1
|
||||
RemoveFontResource% = 1
|
||||
RemoveFontResourceEx% = 3
|
||||
ResetDC% = 2
|
||||
ResizePalette% = 2
|
||||
RestoreDC% = 2
|
||||
RoundRect% = 7
|
||||
SaveDC% = 1
|
||||
ScaleViewportExtEx% = 6
|
||||
ScaleWindowExtEx% = 6
|
||||
SelectBrushLocal% = 2
|
||||
SelectClipPath% = 2
|
||||
SelectClipRgn% = 2
|
||||
SelectFontLocal% = 2
|
||||
SelectObject% = 2
|
||||
SelectPalette% = 3
|
||||
SetAbortProc% = 2
|
||||
SetArcDirection% = 2
|
||||
SetBitmapBits% = 3
|
||||
SetBitmapDimensionEx% = 4
|
||||
SetBkColor% = 2
|
||||
SetBkMode% = 2
|
||||
SetBoundsRect% = 3
|
||||
SetBrushOrgEx% = 4
|
||||
SetColorAdjustment% = 2
|
||||
SetColorSpace% = 2
|
||||
SetDCBrushColor% = 2
|
||||
SetDCPenColor% = 2
|
||||
SetDIBColorTable% = 4
|
||||
SetDIBits% = 7
|
||||
SetDIBitsToDevice% = 12
|
||||
SetDeviceGammaRamp% = 2
|
||||
SetEnhMetaFileBits% = 2
|
||||
SetFontEnumeration% = 1
|
||||
SetGraphicsMode% = 2
|
||||
SetICMMode% = 2
|
||||
SetICMProfile% = 2
|
||||
SetMagicColors% = 3
|
||||
SetMapMode% = 2
|
||||
SetMapperFlags% = 2
|
||||
SetMetaFileBitsEx% = 2
|
||||
SetMetaRgn% = 1
|
||||
SetMiterLimit% = 3
|
||||
SetPaletteEntries% = 4
|
||||
SetPixel% = 4
|
||||
SetPixelFormat% = 3
|
||||
SetPixelV% = 4
|
||||
SetPolyFillMode% = 2
|
||||
SetROP2% = 2
|
||||
SetRectRgn% = 5
|
||||
SetRelAbs% = 2
|
||||
SetStretchBltMode% = 2
|
||||
SetSystemPaletteUse% = 2
|
||||
SetTextAlign% = 2
|
||||
SetTextCharacterExtra% = 2
|
||||
SetTextColor% = 2
|
||||
SetTextJustification% = 3
|
||||
SetViewportExtEx% = 4
|
||||
SetViewportOrgEx% = 4
|
||||
SetWinMetaFileBits% = 4
|
||||
SetWindowExtEx% = 4
|
||||
SetWindowOrgEx% = 4
|
||||
SetWorldTransform% = 2
|
||||
StartDoc% = 2
|
||||
StartPage% = 1
|
||||
StretchBlt% = 11
|
||||
StretchDIBits% = 13
|
||||
StrokeAndFillPath% = 1
|
||||
StrokePath% = 1
|
||||
SwapBuffers% = 1
|
||||
TextOut% = 5
|
||||
TranslateCharsetInfo% = 3
|
||||
UnrealizeObject% = 1
|
||||
UpdateColors% = 1
|
||||
UpdateICMRegKey% = 4
|
||||
WidenPath% = 1
|
||||
gdiPlaySpoolStream% = 6
|
||||
557
fasmw172/INCLUDE/PCOUNT/KERNEL32.INC
Normal file
557
fasmw172/INCLUDE/PCOUNT/KERNEL32.INC
Normal file
@@ -0,0 +1,557 @@
|
||||
|
||||
; KERNEL32 API calls parameters' count
|
||||
|
||||
AddAtom% = 1
|
||||
AddConsoleAlias% = 3
|
||||
AllocConsole% = 0
|
||||
AreFileApisANSI% = 0
|
||||
AssignProcessToJobObject% = 2
|
||||
BackupRead% = 7
|
||||
BackupSeek% = 6
|
||||
BackupWrite% = 7
|
||||
BaseAttachCompleteThunk% = 0
|
||||
Beep% = 2
|
||||
BeginUpdateResource% = 2
|
||||
BuildCommDCB% = 2
|
||||
BuildCommDCBAndTimeouts% = 3
|
||||
CallNamedPipe% = 7
|
||||
CancelIo% = 1
|
||||
CancelWaitableTimer% = 1
|
||||
ClearCommBreak% = 1
|
||||
ClearCommError% = 3
|
||||
CloseConsoleHandle% = 1
|
||||
CloseHandle% = 1
|
||||
CloseProfileUserMapping% = 0
|
||||
CmdBatNotification% = 1
|
||||
CommConfigDialog% = 3
|
||||
CompareFileTime% = 2
|
||||
CompareString% = 6
|
||||
ConnectNamedPipe% = 2
|
||||
ConsoleMenuControl% = 3
|
||||
ContinueDebugEvent% = 3
|
||||
ConvertDefaultLocale% = 1
|
||||
ConvertThreadToFiber% = 1
|
||||
CopyFile% = 3
|
||||
CopyFileEx% = 6
|
||||
CreateConsoleScreenBuffer% = 5
|
||||
CreateDirectory% = 2
|
||||
CreateDirectoryEx% = 3
|
||||
CreateEvent% = 4
|
||||
CreateFiber% = 3
|
||||
CreateFile% = 7
|
||||
CreateFileMapping% = 6
|
||||
CreateHardLink% = 3
|
||||
CreateIoCompletionPort% = 4
|
||||
CreateJobObject% = 2
|
||||
CreateMailslot% = 4
|
||||
CreateMutex% = 3
|
||||
CreateNamedPipe% = 8
|
||||
CreatePipe% = 4
|
||||
CreateProcess% = 10
|
||||
CreateRemoteThread% = 7
|
||||
CreateSemaphore% = 4
|
||||
CreateTapePartition% = 4
|
||||
CreateThread% = 6
|
||||
CreateToolhelp32Snapshot% = 2
|
||||
CreateVirtualBuffer% = 3
|
||||
CreateWaitableTimer% = 3
|
||||
DebugActiveProcess% = 1
|
||||
DebugBreak% = 0
|
||||
DefineDosDevice% = 3
|
||||
DeleteAtom% = 1
|
||||
DeleteCriticalSection% = 1
|
||||
DeleteFiber% = 1
|
||||
DeleteFile% = 1
|
||||
DeviceIoControl% = 8
|
||||
DisableThreadLibraryCalls% = 1
|
||||
DisconnectNamedPipe% = 1
|
||||
DosDateTimeToFileTime% = 3
|
||||
DuplicateConsoleHandle% = 4
|
||||
DuplicateHandle% = 7
|
||||
EndUpdateResource% = 2
|
||||
EnterCriticalSection% = 1
|
||||
EnumCalendarInfo% = 4
|
||||
EnumCalendarInfoEx% = 4
|
||||
EnumDateFormats% = 3
|
||||
EnumDateFormatsEx% = 3
|
||||
EnumResourceLanguages% = 5
|
||||
EnumResourceNames% = 4
|
||||
EnumResourceTypes% = 3
|
||||
EnumSystemCodePages% = 2
|
||||
EnumSystemLocales% = 2
|
||||
EnumTimeFormats% = 3
|
||||
EraseTape% = 3
|
||||
EscapeCommFunction% = 2
|
||||
ExitProcess% = 1
|
||||
ExitThread% = 1
|
||||
ExitVDM% = 2
|
||||
ExpandEnvironmentStrings% = 3
|
||||
ExpungeConsoleCommandHistory% = 1
|
||||
ExtendVirtualBuffer% = 2
|
||||
FatalAppExit% = 2
|
||||
FatalExit% = 1
|
||||
FileTimeToDosDateTime% = 3
|
||||
FileTimeToLocalFileTime% = 2
|
||||
FileTimeToSystemTime% = 2
|
||||
FillConsoleOutputAttribute% = 5
|
||||
FillConsoleOutputCharacter% = 5
|
||||
FindAtom% = 1
|
||||
FindClose% = 1
|
||||
FindCloseChangeNotification% = 1
|
||||
FindFirstChangeNotification% = 3
|
||||
FindFirstFile% = 2
|
||||
FindFirstFileEx% = 6
|
||||
FindNextChangeNotification% = 1
|
||||
FindNextFile% = 2
|
||||
FindResource% = 3
|
||||
FindResourceEx% = 4
|
||||
FlushConsoleInputBuffer% = 1
|
||||
FlushFileBuffers% = 1
|
||||
FlushInstructionCache% = 3
|
||||
FlushViewOfFile% = 2
|
||||
FoldString% = 5
|
||||
FormatMessage% = 7
|
||||
FreeConsole% = 0
|
||||
FreeEnvironmentStrings% = 1
|
||||
FreeLibrary% = 1
|
||||
FreeLibraryAndExitThread% = 2
|
||||
FreeResource% = 1
|
||||
FreeVirtualBuffer% = 1
|
||||
GenerateConsoleCtrlEvent% = 2
|
||||
GetACP% = 0
|
||||
GetAtomName% = 3
|
||||
GetBinaryType% = 2
|
||||
GetCPInfo% = 2
|
||||
GetCPInfoEx% = 3
|
||||
GetCommConfig% = 3
|
||||
GetCommMask% = 2
|
||||
GetCommModemStatus% = 2
|
||||
GetCommProperties% = 2
|
||||
GetCommState% = 2
|
||||
GetCommTimeouts% = 2
|
||||
GetCommandLine% = 0
|
||||
GetCompressedFileSize% = 2
|
||||
GetComputerName% = 2
|
||||
GetConsoleAlias% = 4
|
||||
GetConsoleAliasExes% = 2
|
||||
GetConsoleAliasExesLength% = 0
|
||||
GetConsoleAliases% = 3
|
||||
GetConsoleAliasesLength% = 1
|
||||
GetConsoleCP% = 0
|
||||
GetConsoleCommandHistory% = 3
|
||||
GetConsoleCommandHistoryLength% = 1
|
||||
GetConsoleCursorInfo% = 2
|
||||
GetConsoleDisplayMode% = 1
|
||||
GetConsoleFontInfo% = 4
|
||||
GetConsoleFontSize% = 2
|
||||
GetConsoleHardwareState% = 3
|
||||
GetConsoleInputExeName% = 2
|
||||
GetConsoleInputWaitHandle% = 0
|
||||
GetConsoleKeyboardLayoutName% = 1
|
||||
GetConsoleMode% = 2
|
||||
GetConsoleOutputCP% = 0
|
||||
GetConsoleScreenBufferInfo% = 2
|
||||
GetConsoleTitle% = 2
|
||||
GetConsoleWindow% = 0
|
||||
GetCurrencyFormat% = 6
|
||||
GetCurrentConsoleFont% = 3
|
||||
GetCurrentDirectory% = 2
|
||||
GetCurrentProcess% = 0
|
||||
GetCurrentProcessId% = 0
|
||||
GetCurrentThread% = 0
|
||||
GetCurrentThreadId% = 0
|
||||
GetDateFormat% = 6
|
||||
GetDefaultCommConfig% = 3
|
||||
GetDevicePowerState% = 1
|
||||
GetDiskFreeSpace% = 5
|
||||
GetDiskFreeSpaceEx% = 4
|
||||
GetDriveType% = 1
|
||||
GetEnvironmentStrings% = 0
|
||||
GetEnvironmentVariable% = 3
|
||||
GetExitCodeProcess% = 2
|
||||
GetExitCodeThread% = 2
|
||||
GetFileAttributes% = 1
|
||||
GetFileAttributesEx% = 3
|
||||
GetFileInformationByHandle% = 2
|
||||
GetFileSize% = 2
|
||||
GetFileTime% = 4
|
||||
GetFileType% = 1
|
||||
GetFullPathName% = 4
|
||||
GetHandleInformation% = 2
|
||||
GetLargestConsoleWindowSize% = 1
|
||||
GetLastError% = 0
|
||||
GetLocalTime% = 1
|
||||
GetLocaleInfo% = 4
|
||||
GetLogicalDriveStrings% = 2
|
||||
GetLogicalDrives% = 0
|
||||
GetLongPathName% = 3
|
||||
GetMailslotInfo% = 5
|
||||
GetModuleFileName% = 3
|
||||
GetModuleHandle% = 1
|
||||
GetNamedPipeHandleState% = 7
|
||||
GetNamedPipeInfo% = 5
|
||||
GetNextVDMCommand% = 1
|
||||
GetNumberFormat% = 6
|
||||
GetNumberOfConsoleFonts% = 0
|
||||
GetNumberOfConsoleInputEvents% = 2
|
||||
GetNumberOfConsoleMouseButtons% = 1
|
||||
GetOEMCP% = 0
|
||||
GetOverlappedResult% = 4
|
||||
GetPriorityClass% = 1
|
||||
GetPrivateProfileInt% = 4
|
||||
GetPrivateProfileSection% = 4
|
||||
GetPrivateProfileSectionNames% = 3
|
||||
GetPrivateProfileString% = 6
|
||||
GetPrivateProfileStruct% = 5
|
||||
GetProcAddress% = 2
|
||||
GetProcessAffinityMask% = 3
|
||||
GetProcessHeap% = 0
|
||||
GetProcessHeaps% = 2
|
||||
GetProcessPriorityBoost% = 2
|
||||
GetProcessShutdownParameters% = 2
|
||||
GetProcessTimes% = 5
|
||||
GetProcessVersion% = 1
|
||||
GetProcessWorkingSetSize% = 3
|
||||
GetProfileInt% = 3
|
||||
GetProfileSection% = 3
|
||||
GetProfileString% = 5
|
||||
GetQueuedCompletionStatus% = 5
|
||||
GetShortPathName% = 3
|
||||
GetStartupInfo% = 1
|
||||
GetStdHandle% = 1
|
||||
GetStringType% = 5
|
||||
GetStringTypeEx% = 5
|
||||
GetSystemDefaultLCID% = 0
|
||||
GetSystemDefaultLangID% = 0
|
||||
GetSystemDirectory% = 2
|
||||
GetSystemInfo% = 1
|
||||
GetSystemPowerStatus% = 1
|
||||
GetSystemTime% = 1
|
||||
GetSystemTimeAdjustment% = 3
|
||||
GetSystemTimeAsFileTime% = 1
|
||||
GetTapeParameters% = 4
|
||||
GetTapePosition% = 5
|
||||
GetTapeStatus% = 1
|
||||
GetTempFileName% = 4
|
||||
GetTempPath% = 2
|
||||
GetThreadContext% = 2
|
||||
GetThreadLocale% = 0
|
||||
GetThreadPriority% = 1
|
||||
GetThreadPriorityBoost% = 2
|
||||
GetThreadSelectorEntry% = 3
|
||||
GetThreadTimes% = 5
|
||||
GetTickCount% = 0
|
||||
GetTimeFormat% = 6
|
||||
GetTimeZoneInformation% = 1
|
||||
GetUserDefaultLCID% = 0
|
||||
GetUserDefaultLangID% = 0
|
||||
GetVDMCurrentDirectories% = 2
|
||||
GetVersion% = 0
|
||||
GetVersionEx% = 1
|
||||
GetVolumeInformation% = 8
|
||||
GetWindowsDirectory% = 2
|
||||
GlobalAddAtom% = 1
|
||||
GlobalAlloc% = 2
|
||||
GlobalCompact% = 1
|
||||
GlobalDeleteAtom% = 1
|
||||
GlobalFindAtom% = 1
|
||||
GlobalFix% = 1
|
||||
GlobalFlags% = 1
|
||||
GlobalFree% = 1
|
||||
GlobalGetAtomName% = 3
|
||||
GlobalHandle% = 1
|
||||
GlobalLock% = 1
|
||||
GlobalMemoryStatus% = 1
|
||||
GlobalMemoryStatusVlm% = 1
|
||||
GlobalReAlloc% = 3
|
||||
GlobalSize% = 1
|
||||
GlobalUnWire% = 1
|
||||
GlobalUnfix% = 1
|
||||
GlobalUnlock% = 1
|
||||
GlobalWire% = 1
|
||||
Heap32First% = 3
|
||||
Heap32ListFirst% = 2
|
||||
Heap32ListNext% = 2
|
||||
Heap32Next% = 1
|
||||
HeapAlloc% = 3
|
||||
HeapCompact% = 2
|
||||
HeapCreate% = 3
|
||||
HeapDestroy% = 1
|
||||
HeapExtend% = 4
|
||||
HeapFree% = 3
|
||||
HeapLock% = 1
|
||||
HeapReAlloc% = 4
|
||||
HeapSize% = 3
|
||||
HeapSummary% = 3
|
||||
HeapUnlock% = 1
|
||||
HeapUsage% = 5
|
||||
HeapValidate% = 3
|
||||
HeapWalk% = 2
|
||||
InitAtomTable% = 1
|
||||
InitializeCriticalSection% = 1
|
||||
InitializeCriticalSectionAndSpinCount% = 2
|
||||
InterlockedCompareExchange% = 3
|
||||
InterlockedDecrement% = 1
|
||||
InterlockedExchange% = 2
|
||||
InterlockedExchangeAdd% = 2
|
||||
InterlockedIncrement% = 1
|
||||
InvalidateConsoleDIBits% = 2
|
||||
IsBadCodePtr% = 1
|
||||
IsBadHugeReadPtr% = 2
|
||||
IsBadHugeWritePtr% = 2
|
||||
IsBadReadPtr% = 2
|
||||
IsBadStringPtr% = 2
|
||||
IsBadWritePtr% = 2
|
||||
IsDBCSLeadByte% = 1
|
||||
IsDBCSLeadByteEx% = 2
|
||||
IsDebuggerPresent% = 0
|
||||
IsProcessorFeaturePresent% = 1
|
||||
IsValidCodePage% = 1
|
||||
IsValidLocale% = 2
|
||||
LCMapString% = 6
|
||||
LeaveCriticalSection% = 1
|
||||
LoadLibrary% = 1
|
||||
LoadLibraryEx% = 3
|
||||
LoadModule% = 2
|
||||
LoadResource% = 2
|
||||
LocalAlloc% = 2
|
||||
LocalCompact% = 1
|
||||
LocalFileTimeToFileTime% = 2
|
||||
LocalFlags% = 1
|
||||
LocalFree% = 1
|
||||
LocalHandle% = 1
|
||||
LocalLock% = 1
|
||||
LocalReAlloc% = 3
|
||||
LocalShrink% = 2
|
||||
LocalSize% = 1
|
||||
LocalUnlock% = 1
|
||||
LockFile% = 5
|
||||
LockFileEx% = 6
|
||||
LockResource% = 1
|
||||
MapViewOfFile% = 5
|
||||
MapViewOfFileEx% = 6
|
||||
MapViewOfFileVlm% = 7
|
||||
Module32First% = 2
|
||||
Module32Next% = 2
|
||||
MoveFile% = 2
|
||||
MoveFileEx% = 3
|
||||
MoveFileWithProgress% = 5
|
||||
MulDiv% = 3
|
||||
MultiByteToWideChar% = 6
|
||||
OpenEvent% = 3
|
||||
OpenFile% = 3
|
||||
OpenFileMapping% = 3
|
||||
OpenJobObject% = 3
|
||||
OpenMutex% = 3
|
||||
OpenProcess% = 3
|
||||
OpenProfileUserMapping% = 0
|
||||
OpenSemaphore% = 3
|
||||
OpenWaitableTimer% = 3
|
||||
OutputDebugString% = 1
|
||||
PeekConsoleInput% = 4
|
||||
PeekNamedPipe% = 6
|
||||
PostQueuedCompletionStatus% = 4
|
||||
PrepareTape% = 3
|
||||
Process32First% = 2
|
||||
Process32Next% = 2
|
||||
PulseEvent% = 1
|
||||
PurgeComm% = 2
|
||||
QueryDosDevice% = 3
|
||||
QueryInformationJobObject% = 5
|
||||
QueryPerformanceCounter% = 1
|
||||
QueryPerformanceFrequency% = 1
|
||||
QueryWin31IniFilesMappedToRegistry% = 4
|
||||
QueueUserAPC% = 3
|
||||
RaiseException% = 4
|
||||
ReadConsole% = 5
|
||||
ReadConsoleInput% = 4
|
||||
ReadConsoleInputEx% = 5
|
||||
ReadConsoleOutput% = 5
|
||||
ReadConsoleOutputAttribute% = 5
|
||||
ReadConsoleOutputCharacter% = 5
|
||||
ReadFile% = 5
|
||||
ReadFileEx% = 5
|
||||
ReadFileScatter% = 5
|
||||
ReadFileVlm% = 5
|
||||
ReadProcessMemory% = 5
|
||||
ReadProcessMemoryVlm% = 5
|
||||
RegisterConsoleVDM% = 11
|
||||
RegisterWaitForInputIdle% = 1
|
||||
RegisterWowBaseHandlers% = 1
|
||||
RegisterWowExec% = 1
|
||||
ReleaseMutex% = 1
|
||||
ReleaseSemaphore% = 3
|
||||
RemoveDirectory% = 1
|
||||
RequestWakeupLatency% = 1
|
||||
ResetEvent% = 1
|
||||
ResumeThread% = 1
|
||||
RtlFillMemory% = 3
|
||||
RtlMoveMemory% = 3
|
||||
RtlUnwind% = 4
|
||||
RtlZeroMemory% = 2
|
||||
ScrollConsoleScreenBuffer% = 5
|
||||
SearchPath% = 6
|
||||
SetCommBreak% = 1
|
||||
SetCommConfig% = 3
|
||||
SetCommMask% = 2
|
||||
SetCommState% = 2
|
||||
SetCommTimeouts% = 2
|
||||
SetComputerName% = 1
|
||||
SetConsoleActiveScreenBuffer% = 1
|
||||
SetConsoleCP% = 1
|
||||
SetConsoleCommandHistoryMode% = 1
|
||||
SetConsoleCtrlHandler% = 2
|
||||
SetConsoleCursor% = 2
|
||||
SetConsoleCursorInfo% = 2
|
||||
SetConsoleCursorPosition% = 2
|
||||
SetConsoleDisplayMode% = 3
|
||||
SetConsoleFont% = 2
|
||||
SetConsoleHardwareState% = 3
|
||||
SetConsoleIcon% = 1
|
||||
SetConsoleInputExeName% = 1
|
||||
SetConsoleKeyShortcuts% = 4
|
||||
SetConsoleMaximumWindowSize% = 2
|
||||
SetConsoleMenuClose% = 1
|
||||
SetConsoleMode% = 2
|
||||
SetConsoleNumberOfCommands% = 2
|
||||
SetConsoleOutputCP% = 1
|
||||
SetConsolePalette% = 3
|
||||
SetConsoleScreenBufferSize% = 2
|
||||
SetConsoleTextAttribute% = 2
|
||||
SetConsoleTitle% = 1
|
||||
SetConsoleWindowInfo% = 3
|
||||
SetCriticalSectionSpinCount% = 2
|
||||
SetCurrentDirectory% = 1
|
||||
SetDefaultCommConfig% = 3
|
||||
SetEndOfFile% = 1
|
||||
SetEnvironmentVariable% = 2
|
||||
SetErrorMode% = 1
|
||||
SetEvent% = 1
|
||||
SetFileApisToANSI% = 0
|
||||
SetFileApisToOEM% = 0
|
||||
SetFileAttributes% = 2
|
||||
SetFilePointer% = 4
|
||||
SetFileTime% = 4
|
||||
SetHandleCount% = 1
|
||||
SetHandleInformation% = 3
|
||||
SetInformationJobObject% = 4
|
||||
SetLastConsoleEventActive% = 0
|
||||
SetLastError% = 1
|
||||
SetLocalTime% = 1
|
||||
SetLocaleInfo% = 3
|
||||
SetMailslotInfo% = 2
|
||||
SetNamedPipeHandleState% = 4
|
||||
SetPriorityClass% = 2
|
||||
SetProcessAffinityMask% = 2
|
||||
SetProcessPriorityBoost% = 2
|
||||
SetProcessShutdownParameters% = 2
|
||||
SetProcessWorkingSetSize% = 3
|
||||
SetStdHandle% = 2
|
||||
SetSystemPowerState% = 2
|
||||
SetSystemTime% = 1
|
||||
SetSystemTimeAdjustment% = 2
|
||||
SetTapeParameters% = 3
|
||||
SetTapePosition% = 6
|
||||
SetThreadAffinityMask% = 2
|
||||
SetThreadContext% = 2
|
||||
SetThreadExecutionState% = 1
|
||||
SetThreadIdealProcessor% = 2
|
||||
SetThreadLocale% = 1
|
||||
SetThreadPriority% = 2
|
||||
SetThreadPriorityBoost% = 2
|
||||
SetTimeZoneInformation% = 1
|
||||
SetUnhandledExceptionFilter% = 1
|
||||
SetVDMCurrentDirectories% = 2
|
||||
SetVolumeLabel% = 2
|
||||
SetWaitableTimer% = 6
|
||||
SetupComm% = 3
|
||||
ShowConsoleCursor% = 2
|
||||
SignalObjectAndWait% = 4
|
||||
SizeofResource% = 2
|
||||
Sleep% = 1
|
||||
SleepEx% = 2
|
||||
SuspendThread% = 1
|
||||
SwitchToFiber% = 1
|
||||
SwitchToThread% = 0
|
||||
SystemTimeToFileTime% = 2
|
||||
SystemTimeToTzSpecificLocalTime% = 3
|
||||
TerminateJobObject% = 2
|
||||
TerminateProcess% = 2
|
||||
TerminateThread% = 2
|
||||
Thread32First% = 2
|
||||
Thread32Next% = 2
|
||||
TlsAlloc% = 0
|
||||
TlsFree% = 1
|
||||
TlsGetValue% = 1
|
||||
TlsSetValue% = 2
|
||||
Toolhelp32ReadProcessMemory% = 5
|
||||
TransactNamedPipe% = 7
|
||||
TransmitCommChar% = 2
|
||||
TrimVirtualBuffer% = 1
|
||||
TryEnterCriticalSection% = 1
|
||||
UnhandledExceptionFilter% = 1
|
||||
UnlockFile% = 5
|
||||
UnlockFileEx% = 5
|
||||
UnmapViewOfFile% = 1
|
||||
UnmapViewOfFileVlm% = 1
|
||||
UpdateResource% = 6
|
||||
VDMConsoleOperation% = 2
|
||||
VDMOperationStarted% = 1
|
||||
VerLanguageName% = 3
|
||||
VerifyConsoleIoHandle% = 1
|
||||
VirtualAlloc% = 4
|
||||
VirtualAllocEx% = 5
|
||||
VirtualAllocVlm% = 6
|
||||
VirtualBufferExceptionHandler% = 3
|
||||
VirtualFree% = 3
|
||||
VirtualFreeEx% = 4
|
||||
VirtualFreeVlm% = 5
|
||||
VirtualLock% = 2
|
||||
VirtualProtect% = 4
|
||||
VirtualProtectEx% = 5
|
||||
VirtualProtectVlm% = 6
|
||||
VirtualQuery% = 3
|
||||
VirtualQueryEx% = 4
|
||||
VirtualQueryVlm% = 4
|
||||
VirtualUnlock% = 2
|
||||
WaitCommEvent% = 3
|
||||
WaitForDebugEvent% = 2
|
||||
WaitForMultipleObjects% = 4
|
||||
WaitForMultipleObjectsEx% = 5
|
||||
WaitForSingleObject% = 2
|
||||
WaitForSingleObjectEx% = 3
|
||||
WaitNamedPipe% = 2
|
||||
WideCharToMultiByte% = 8
|
||||
WinExec% = 2
|
||||
WriteConsole% = 5
|
||||
WriteConsoleInput% = 4
|
||||
WriteConsoleInputVDM% = 4
|
||||
WriteConsoleOutput% = 5
|
||||
WriteConsoleOutputAttribute% = 5
|
||||
WriteConsoleOutputCharacter% = 5
|
||||
WriteFile% = 5
|
||||
WriteFileEx% = 5
|
||||
WriteFileGather% = 5
|
||||
WriteFileVlm% = 5
|
||||
WritePrivateProfileSection% = 3
|
||||
WritePrivateProfileString% = 4
|
||||
WritePrivateProfileStruct% = 5
|
||||
WriteProcessMemory% = 5
|
||||
WriteProcessMemoryVlm% = 5
|
||||
WriteProfileSection% = 2
|
||||
WriteProfileString% = 3
|
||||
WriteTapemark% = 4
|
||||
_hread% = 3
|
||||
_hwrite% = 3
|
||||
_lclose% = 1
|
||||
_lcreat% = 2
|
||||
_llseek% = 3
|
||||
_lopen% = 2
|
||||
_lread% = 3
|
||||
_lwrite% = 3
|
||||
lstrcat% = 2
|
||||
lstrcmp% = 2
|
||||
lstrcmpi% = 2
|
||||
lstrcpy% = 2
|
||||
lstrcpyn% = 3
|
||||
lstrlen% = 1
|
||||
73
fasmw172/INCLUDE/PCOUNT/SHELL32.INC
Normal file
73
fasmw172/INCLUDE/PCOUNT/SHELL32.INC
Normal file
@@ -0,0 +1,73 @@
|
||||
|
||||
; SHELL32 API calls parameters' count
|
||||
|
||||
CheckEscapes% = 2
|
||||
DoEnvironmentSubst% = 2
|
||||
DragAcceptFiles% = 2
|
||||
DragFinish% = 1
|
||||
DragQueryFile% = 4
|
||||
DragQueryPoint% = 2
|
||||
DuplicateIcon% = 2
|
||||
ExtractAssociatedIcon% = 3
|
||||
ExtractAssociatedIconEx% = 4
|
||||
ExtractIcon% = 3
|
||||
ExtractIconEx% = 5
|
||||
ExtractIconResInfo% = 5
|
||||
FindExeDlgProc% = 4
|
||||
FindExecutable% = 3
|
||||
FreeIconList% = 2
|
||||
InternalExtractIconList% = 3
|
||||
RealShellExecute% = 10
|
||||
RealShellExecuteEx% = 11
|
||||
RegenerateUserEnvironment% = 2
|
||||
SHAddToRecentDocs% = 2
|
||||
SHAppBarMessage% = 2
|
||||
SHBrowseForFolder% = 1
|
||||
SHChangeNotify% = 4
|
||||
SHEmptyRecycleBin% = 3
|
||||
SHFileOperation% = 1
|
||||
SHFormatDrive% = 4
|
||||
SHFreeNameMappings% = 1
|
||||
SHGetDataFromIDList% = 5
|
||||
SHGetDesktopFolder% = 1
|
||||
SHGetDiskFreeSpace% = 4
|
||||
SHGetFileInfo% = 5
|
||||
SHGetInstanceExplorer% = 1
|
||||
SHGetMalloc% = 1
|
||||
SHGetNewLinkInfo% = 5
|
||||
SHGetPathFromIDList% = 2
|
||||
SHGetSettings% = 2
|
||||
SHGetSpecialFolderLocation% = 3
|
||||
SHGetSpecialFolderPath% = 4
|
||||
SHInvokePrinterCommand% = 5
|
||||
SHLoadInProc% = 1
|
||||
SHQueryRecycleBin% = 2
|
||||
SHUpdateRecycleBinIcon% = 0
|
||||
SheChangeDir% = 1
|
||||
SheChangeDirEx% = 1
|
||||
SheFullPath% = 3
|
||||
SheGetCurDrive% = 0
|
||||
SheGetDir% = 2
|
||||
SheRemoveQuotes% = 1
|
||||
SheSetCurDrive% = 1
|
||||
SheShortenPath% = 2
|
||||
ShellAbout% = 4
|
||||
ShellExecute% = 6
|
||||
ShellExecuteEx% = 1
|
||||
ShellHookProc% = 3
|
||||
Shell_NotifyIcon% = 2
|
||||
StrChr% = 2
|
||||
StrChrI% = 2
|
||||
StrCmpN% = 3
|
||||
StrCmpNI% = 3
|
||||
StrCpyN% = 3
|
||||
StrNCmp% = 3
|
||||
StrNCmpI% = 3
|
||||
StrNCpy% = 3
|
||||
StrRChr% = 3
|
||||
StrRChrI% = 3
|
||||
StrRStr% = 3
|
||||
StrRStrI% = 3
|
||||
StrStr% = 2
|
||||
StrStrI% = 2
|
||||
WOWShellExecute% = 7
|
||||
477
fasmw172/INCLUDE/PCOUNT/USER32.INC
Normal file
477
fasmw172/INCLUDE/PCOUNT/USER32.INC
Normal file
@@ -0,0 +1,477 @@
|
||||
|
||||
; USER32 API calls parameters' count
|
||||
|
||||
ActivateKeyboardLayout% = 2
|
||||
AdjustWindowRect% = 3
|
||||
AdjustWindowRectEx% = 4
|
||||
AnimateWindow% = 3
|
||||
AnyPopup% = 0
|
||||
AppendMenu% = 4
|
||||
ArrangeIconicWindows% = 1
|
||||
AttachThreadInput% = 3
|
||||
BeginDeferWindowPos% = 1
|
||||
BeginPaint% = 2
|
||||
BlockInput% = 1
|
||||
BringWindowToTop% = 1
|
||||
BroadcastSystemMessage% = 5
|
||||
CallMsgFilter% = 2
|
||||
CallNextHookEx% = 4
|
||||
CallWindowProc% = 5
|
||||
CascadeChildWindows% = 2
|
||||
CascadeWindows% = 5
|
||||
ChangeClipboardChain% = 2
|
||||
ChangeDisplaySettings% = 2
|
||||
ChangeDisplaySettingsEx% = 5
|
||||
ChangeMenu% = 5
|
||||
CharLower% = 1
|
||||
CharLowerBuff% = 2
|
||||
CharNext% = 1
|
||||
CharNextEx% = 3
|
||||
CharPrev% = 2
|
||||
CharPrevEx% = 4
|
||||
CharToOem% = 2
|
||||
CharToOemBuff% = 3
|
||||
CharUpper% = 1
|
||||
CharUpperBuff% = 2
|
||||
CheckDlgButton% = 3
|
||||
CheckMenuItem% = 3
|
||||
CheckMenuRadioItem% = 5
|
||||
CheckRadioButton% = 4
|
||||
ChildWindowFromPoint% = 3
|
||||
ChildWindowFromPointEx% = 4
|
||||
ClientToScreen% = 2
|
||||
ClipCursor% = 1
|
||||
CloseClipboard% = 0
|
||||
CloseDesktop% = 1
|
||||
CloseWindow% = 1
|
||||
CloseWindowStation% = 1
|
||||
CopyAcceleratorTable% = 3
|
||||
CopyIcon% = 1
|
||||
CopyImage% = 5
|
||||
CopyRect% = 2
|
||||
CountClipboardFormats% = 0
|
||||
CreateAcceleratorTable% = 2
|
||||
CreateCaret% = 4
|
||||
CreateCursor% = 7
|
||||
CreateDesktop% = 6
|
||||
CreateDialogIndirectParam% = 5
|
||||
CreateDialogParam% = 5
|
||||
CreateIcon% = 7
|
||||
CreateIconFromResource% = 4
|
||||
CreateIconFromResourceEx% = 7
|
||||
CreateIconIndirect% = 1
|
||||
CreateMDIWindow% = 10
|
||||
CreateMenu% = 0
|
||||
CreatePopupMenu% = 0
|
||||
CreateWindowEx% = 12
|
||||
CreateWindowStation% = 4
|
||||
DdeAbandonTransaction% = 3
|
||||
DdeAccessData% = 2
|
||||
DdeAddData% = 4
|
||||
DdeClientTransaction% = 8
|
||||
DdeCmpStringHandles% = 2
|
||||
DdeConnect% = 4
|
||||
DdeConnectList% = 5
|
||||
DdeCreateDataHandle% = 7
|
||||
DdeCreateStringHandle% = 3
|
||||
DdeDisconnect% = 1
|
||||
DdeDisconnectList% = 1
|
||||
DdeEnableCallback% = 3
|
||||
DdeFreeDataHandle% = 1
|
||||
DdeFreeStringHandle% = 2
|
||||
DdeGetData% = 4
|
||||
DdeGetLastError% = 1
|
||||
DdeGetQualityOfService% = 3
|
||||
DdeImpersonateClient% = 1
|
||||
DdeInitialize% = 4
|
||||
DdeKeepStringHandle% = 2
|
||||
DdeNameService% = 4
|
||||
DdePostAdvise% = 3
|
||||
DdeQueryConvInfo% = 3
|
||||
DdeQueryNextServer% = 2
|
||||
DdeQueryString% = 5
|
||||
DdeReconnect% = 1
|
||||
DdeSetQualityOfService% = 3
|
||||
DdeSetUserHandle% = 3
|
||||
DdeUnaccessData% = 1
|
||||
DdeUninitialize% = 1
|
||||
DefDlgProc% = 4
|
||||
DefFrameProc% = 5
|
||||
DefMDIChildProc% = 4
|
||||
DefWindowProc% = 4
|
||||
DeferWindowPos% = 8
|
||||
DeleteMenu% = 3
|
||||
DestroyAcceleratorTable% = 1
|
||||
DestroyCaret% = 0
|
||||
DestroyCursor% = 1
|
||||
DestroyIcon% = 1
|
||||
DestroyMenu% = 1
|
||||
DestroyWindow% = 1
|
||||
DialogBoxIndirectParam% = 5
|
||||
DialogBoxParam% = 5
|
||||
DispatchMessage% = 1
|
||||
DlgDirList% = 5
|
||||
DlgDirListComboBox% = 5
|
||||
DlgDirSelectComboBoxEx% = 4
|
||||
DlgDirSelectEx% = 4
|
||||
DragDetect% = 3
|
||||
DragObject% = 5
|
||||
DrawAnimatedRects% = 4
|
||||
DrawCaption% = 4
|
||||
DrawEdge% = 4
|
||||
DrawFocusRect% = 2
|
||||
DrawFrame% = 4
|
||||
DrawFrameControl% = 4
|
||||
DrawIcon% = 4
|
||||
DrawIconEx% = 9
|
||||
DrawMenuBar% = 1
|
||||
DrawState% = 10
|
||||
DrawText% = 5
|
||||
DrawTextEx% = 6
|
||||
EditWndProc% = 4
|
||||
EmptyClipboard% = 0
|
||||
EnableMenuItem% = 3
|
||||
EnableScrollBar% = 3
|
||||
EnableWindow% = 2
|
||||
EndDeferWindowPos% = 1
|
||||
EndDialog% = 2
|
||||
EndMenu% = 0
|
||||
EndPaint% = 2
|
||||
EnumChildWindows% = 3
|
||||
EnumClipboardFormats% = 1
|
||||
EnumDesktopWindows% = 3
|
||||
EnumDesktops% = 3
|
||||
EnumDisplayMonitors% = 4
|
||||
EnumDisplaySettings% = 3
|
||||
EnumDisplaySettingsEx% = 4
|
||||
EnumProps% = 2
|
||||
EnumPropsEx% = 3
|
||||
EnumThreadWindows% = 3
|
||||
EnumWindowStations% = 2
|
||||
EnumWindows% = 2
|
||||
EqualRect% = 2
|
||||
ExcludeUpdateRgn% = 2
|
||||
ExitWindowsEx% = 2
|
||||
FillRect% = 3
|
||||
FindWindow% = 2
|
||||
FindWindowEx% = 4
|
||||
FlashWindow% = 2
|
||||
FrameRect% = 3
|
||||
FreeDDElParam% = 2
|
||||
GetActiveWindow% = 0
|
||||
GetAltTabInfo% = 5
|
||||
GetAncestor% = 2
|
||||
GetAsyncKeyState% = 1
|
||||
GetCapture% = 0
|
||||
GetCaretBlinkTime% = 0
|
||||
GetCaretPos% = 1
|
||||
GetClassInfo% = 3
|
||||
GetClassInfoEx% = 3
|
||||
GetClassLong% = 2
|
||||
GetClassName% = 3
|
||||
GetClassWord% = 2
|
||||
GetClientRect% = 2
|
||||
GetClipCursor% = 1
|
||||
GetClipboardData% = 1
|
||||
GetClipboardFormatName% = 3
|
||||
GetClipboardSequenceNumber% = 0
|
||||
GetClipboardViewer% = 0
|
||||
GetComboBoxInfo% = 2
|
||||
GetCursor% = 0
|
||||
GetCursorInfo% = 1
|
||||
GetCursorPos% = 1
|
||||
GetDC% = 1
|
||||
GetDCEx% = 3
|
||||
GetDesktopWindow% = 0
|
||||
GetDialogBaseUnits% = 0
|
||||
GetDlgCtrlID% = 1
|
||||
GetDlgItem% = 2
|
||||
GetDlgItemInt% = 4
|
||||
GetDlgItemText% = 4
|
||||
GetDoubleClickTime% = 0
|
||||
GetFocus% = 0
|
||||
GetForegroundWindow% = 0
|
||||
GetGUIThreadInfo% = 2
|
||||
GetGuiResources% = 2
|
||||
GetIconInfo% = 2
|
||||
GetInputDesktop% = 0
|
||||
GetInputState% = 0
|
||||
GetKBCodePage% = 0
|
||||
GetKeyNameText% = 3
|
||||
GetKeyState% = 1
|
||||
GetKeyboardLayout% = 1
|
||||
GetKeyboardLayoutList% = 2
|
||||
GetKeyboardLayoutName% = 1
|
||||
GetKeyboardState% = 1
|
||||
GetKeyboardType% = 1
|
||||
GetLastActivePopup% = 1
|
||||
GetLastInputInfo% = 1
|
||||
GetListBoxInfo% = 1
|
||||
GetMenu% = 1
|
||||
GetMenuBarInfo% = 4
|
||||
GetMenuCheckMarkDimensions% = 0
|
||||
GetMenuContextHelpId% = 1
|
||||
GetMenuDefaultItem% = 3
|
||||
GetMenuInfo% = 2
|
||||
GetMenuItemCount% = 1
|
||||
GetMenuItemID% = 2
|
||||
GetMenuItemInfo% = 4
|
||||
GetMenuItemRect% = 4
|
||||
GetMenuState% = 3
|
||||
GetMenuString% = 5
|
||||
GetMessage% = 4
|
||||
GetMessageExtraInfo% = 0
|
||||
GetMessagePos% = 0
|
||||
GetMessageTime% = 0
|
||||
GetMonitorInfo% = 2
|
||||
GetMouseMovePoints% = 5
|
||||
GetNextDlgGroupItem% = 3
|
||||
GetNextDlgTabItem% = 3
|
||||
GetOpenClipboardWindow% = 0
|
||||
GetParent% = 1
|
||||
GetPriorityClipboardFormat% = 2
|
||||
GetProcessWindowStation% = 0
|
||||
GetProp% = 2
|
||||
GetQueueStatus% = 1
|
||||
GetScrollBarInfo% = 3
|
||||
GetScrollInfo% = 3
|
||||
GetScrollPos% = 2
|
||||
GetScrollRange% = 4
|
||||
GetShellWindow% = 0
|
||||
GetSubMenu% = 2
|
||||
GetSysColor% = 1
|
||||
GetSysColorBrush% = 1
|
||||
GetSystemMenu% = 2
|
||||
GetSystemMetrics% = 1
|
||||
GetTabbedTextExtent% = 5
|
||||
GetThreadDesktop% = 1
|
||||
GetTitleBarInfo% = 2
|
||||
GetTopWindow% = 1
|
||||
GetUpdateRect% = 3
|
||||
GetUpdateRgn% = 3
|
||||
GetUserObjectInformation% = 5
|
||||
GetUserObjectSecurity% = 5
|
||||
GetWindow% = 2
|
||||
GetWindowContextHelpId% = 1
|
||||
GetWindowDC% = 1
|
||||
GetWindowInfo% = 2
|
||||
GetWindowLong% = 2
|
||||
GetWindowModuleFileName% = 3
|
||||
GetWindowPlacement% = 2
|
||||
GetWindowRect% = 2
|
||||
GetWindowRgn% = 2
|
||||
GetWindowText% = 3
|
||||
GetWindowTextLength% = 1
|
||||
GetWindowThreadProcessId% = 2
|
||||
GetWindowWord% = 2
|
||||
GrayString% = 9
|
||||
HideCaret% = 1
|
||||
HiliteMenuItem% = 4
|
||||
IMPGetIME% = 2
|
||||
IMPQueryIME% = 1
|
||||
IMPSetIME% = 2
|
||||
ImpersonateDdeClientWindow% = 2
|
||||
InSendMessage% = 0
|
||||
InSendMessageEx% = 1
|
||||
InflateRect% = 3
|
||||
InsertMenu% = 5
|
||||
InsertMenuItem% = 4
|
||||
IntersectRect% = 3
|
||||
InvalidateRect% = 3
|
||||
InvalidateRgn% = 3
|
||||
InvertRect% = 2
|
||||
IsCharAlpha% = 1
|
||||
IsCharAlphaNumeric% = 1
|
||||
IsCharLower% = 1
|
||||
IsCharUpper% = 1
|
||||
IsChild% = 2
|
||||
IsClipboardFormatAvailable% = 1
|
||||
IsDialogMessage% = 2
|
||||
IsDlgButtonChecked% = 2
|
||||
IsIconic% = 1
|
||||
IsMenu% = 1
|
||||
IsRectEmpty% = 1
|
||||
IsWindow% = 1
|
||||
IsWindowEnabled% = 1
|
||||
IsWindowUnicode% = 1
|
||||
IsWindowVisible% = 1
|
||||
IsZoomed% = 1
|
||||
KillSystemTimer% = 2
|
||||
KillTimer% = 2
|
||||
LoadAccelerators% = 2
|
||||
LoadBitmap% = 2
|
||||
LoadCursor% = 2
|
||||
LoadCursorFromFile% = 1
|
||||
LoadIcon% = 2
|
||||
LoadImage% = 6
|
||||
LoadKeyboardLayout% = 2
|
||||
LoadMenu% = 2
|
||||
LoadMenuIndirect% = 1
|
||||
LoadString% = 4
|
||||
LockWindowUpdate% = 1
|
||||
LockWorkStation% = 0
|
||||
LookupIconIdFromDirectory% = 2
|
||||
LookupIconIdFromDirectoryEx% = 5
|
||||
MapDialogRect% = 2
|
||||
MapVirtualKey% = 2
|
||||
MapVirtualKeyEx% = 3
|
||||
MapWindowPoints% = 4
|
||||
MenuItemFromPoint% = 4
|
||||
MessageBeep% = 1
|
||||
MessageBox% = 4
|
||||
MessageBoxEx% = 5
|
||||
MessageBoxIndirect% = 1
|
||||
ModifyMenu% = 5
|
||||
MonitorFromPoint% = 3
|
||||
MonitorFromRect% = 2
|
||||
MonitorFromWindow% = 2
|
||||
MoveWindow% = 6
|
||||
MsgWaitForMultipleObjects% = 5
|
||||
MsgWaitForMultipleObjectsEx% = 5
|
||||
NotifyWinEvent% = 4
|
||||
OemKeyScan% = 1
|
||||
OemToChar% = 2
|
||||
OemToCharBuff% = 3
|
||||
OffsetRect% = 3
|
||||
OpenClipboard% = 1
|
||||
OpenDesktop% = 4
|
||||
OpenIcon% = 1
|
||||
OpenInputDesktop% = 3
|
||||
OpenWindowStation% = 3
|
||||
PackDDElParam% = 3
|
||||
PaintDesktop% = 1
|
||||
PeekMessage% = 5
|
||||
PostMessage% = 4
|
||||
PostQuitMessage% = 1
|
||||
PostThreadMessage% = 4
|
||||
PtInRect% = 3
|
||||
RealChildWindowFromPoint% = 3
|
||||
RealGetWindowClass% = 3
|
||||
RedrawWindow% = 4
|
||||
RegisterClass% = 1
|
||||
RegisterClassEx% = 1
|
||||
RegisterClipboardFormat% = 1
|
||||
RegisterDeviceNotification% = 3
|
||||
RegisterHotKey% = 4
|
||||
RegisterWindowMessage% = 1
|
||||
ReleaseCapture% = 0
|
||||
ReleaseDC% = 2
|
||||
RemoveMenu% = 3
|
||||
RemoveProp% = 2
|
||||
ReplyMessage% = 1
|
||||
ReuseDDElParam% = 5
|
||||
ScreenToClient% = 2
|
||||
ScrollChildren% = 3
|
||||
ScrollDC% = 7
|
||||
ScrollWindow% = 5
|
||||
ScrollWindowEx% = 8
|
||||
SendDlgItemMessage% = 5
|
||||
SendIMEMessageEx% = 2
|
||||
SendInput% = 3
|
||||
SendMessage% = 4
|
||||
SendMessageCallback% = 6
|
||||
SendMessageTimeout% = 7
|
||||
SendNotifyMessage% = 4
|
||||
SetActiveWindow% = 1
|
||||
SetCapture% = 1
|
||||
SetCaretBlinkTime% = 1
|
||||
SetCaretPos% = 2
|
||||
SetClassLong% = 3
|
||||
SetClassWord% = 3
|
||||
SetClipboardData% = 2
|
||||
SetClipboardViewer% = 1
|
||||
SetCursor% = 1
|
||||
SetCursorPos% = 2
|
||||
SetDebugErrorLevel% = 1
|
||||
SetDeskWallpaper% = 1
|
||||
SetDlgItemInt% = 4
|
||||
SetDlgItemText% = 3
|
||||
SetDoubleClickTime% = 1
|
||||
SetFocus% = 1
|
||||
SetForegroundWindow% = 1
|
||||
SetKeyboardState% = 1
|
||||
SetLastErrorEx% = 2
|
||||
SetMenu% = 2
|
||||
SetMenuContextHelpId% = 2
|
||||
SetMenuDefaultItem% = 3
|
||||
SetMenuInfo% = 2
|
||||
SetMenuItemBitmaps% = 5
|
||||
SetMenuItemInfo% = 4
|
||||
SetMessageExtraInfo% = 1
|
||||
SetMessageQueue% = 1
|
||||
SetParent% = 2
|
||||
SetProcessWindowStation% = 1
|
||||
SetProp% = 3
|
||||
SetRect% = 5
|
||||
SetRectEmpty% = 1
|
||||
SetScrollInfo% = 4
|
||||
SetScrollPos% = 4
|
||||
SetScrollRange% = 5
|
||||
SetShellWindow% = 1
|
||||
SetSysColors% = 3
|
||||
SetSystemCursor% = 2
|
||||
SetSystemMenu% = 2
|
||||
SetSystemTimer% = 4
|
||||
SetThreadDesktop% = 1
|
||||
SetTimer% = 4
|
||||
SetUserObjectInformation% = 4
|
||||
SetUserObjectSecurity% = 3
|
||||
SetWinEventHook% = 7
|
||||
SetWindowContextHelpId% = 2
|
||||
SetWindowLong% = 3
|
||||
SetWindowPlacement% = 2
|
||||
SetWindowPos% = 7
|
||||
SetWindowRgn% = 3
|
||||
SetWindowText% = 2
|
||||
SetWindowWord% = 3
|
||||
SetWindowsHook% = 2
|
||||
SetWindowsHookEx% = 4
|
||||
ShowCaret% = 1
|
||||
ShowCursor% = 1
|
||||
ShowOwnedPopups% = 2
|
||||
ShowScrollBar% = 3
|
||||
ShowWindow% = 2
|
||||
ShowWindowAsync% = 2
|
||||
SubtractRect% = 3
|
||||
SwapMouseButton% = 1
|
||||
SwitchDesktop% = 1
|
||||
SystemParametersInfo% = 4
|
||||
TabbedTextOut% = 8
|
||||
TileChildWindows% = 2
|
||||
TileWindows% = 5
|
||||
ToAscii% = 5
|
||||
ToAsciiEx% = 6
|
||||
ToUnicode% = 6
|
||||
ToUnicodeEx% = 7
|
||||
TrackMouseEvent% = 1
|
||||
TrackPopupMenu% = 7
|
||||
TrackPopupMenuEx% = 6
|
||||
TranslateAccelerator% = 3
|
||||
TranslateMDISysAccel% = 2
|
||||
TranslateMessage% = 1
|
||||
UnhookWinEvent% = 1
|
||||
UnhookWindowsHook% = 2
|
||||
UnhookWindowsHookEx% = 1
|
||||
UnionRect% = 3
|
||||
UnloadKeyboardLayout% = 1
|
||||
UnpackDDElParam% = 4
|
||||
UnregisterClass% = 2
|
||||
UnregisterDeviceNotification% = 1
|
||||
UnregisterHotKey% = 2
|
||||
UpdateWindow% = 1
|
||||
UserHandleGrantAccess% = 2
|
||||
ValidateRect% = 2
|
||||
ValidateRgn% = 2
|
||||
VkKeyScan% = 1
|
||||
VkKeyScanEx% = 2
|
||||
WINNLSEnableIME% = 2
|
||||
WINNLSGetEnableStatus% = 1
|
||||
WINNLSGetIMEHotkey% = 1
|
||||
WaitForInputIdle% = 2
|
||||
WaitMessage% = 0
|
||||
WinHelp% = 4
|
||||
WindowFromDC% = 1
|
||||
WindowFromPoint% = 2
|
||||
keybd_event% = 4
|
||||
mouse_event% = 5
|
||||
wvsprintf% = 3
|
||||
70
fasmw172/INCLUDE/PCOUNT/WSOCK32.INC
Normal file
70
fasmw172/INCLUDE/PCOUNT/WSOCK32.INC
Normal file
@@ -0,0 +1,70 @@
|
||||
|
||||
; WSOCK32 API calls parameters' count
|
||||
|
||||
AcceptEx% = 8
|
||||
EnumProtocols% = 3
|
||||
GetAcceptExSockaddrs% = 8
|
||||
GetAddressByName% = 10
|
||||
GetNameByType% = 3
|
||||
GetService% = 7
|
||||
GetTypeByName% = 2
|
||||
MigrateWinsockConfiguration% = 3
|
||||
NPLoadNameSpaces% = 3
|
||||
SetService% = 6
|
||||
TransmitFile% = 7
|
||||
WEP% = 0
|
||||
WSAAsyncGetHostByAddr% = 7
|
||||
WSAAsyncGetHostByName% = 5
|
||||
WSAAsyncGetProtoByName% = 5
|
||||
WSAAsyncGetProtoByNumber% = 5
|
||||
WSAAsyncGetServByName% = 6
|
||||
WSAAsyncGetServByPort% = 6
|
||||
WSACancelAsyncRequest% = 4
|
||||
WSACancelBlockingCall% = 0
|
||||
WSACleanup% = 0
|
||||
WSAGetLastError% = 0
|
||||
WSAIsBlocking% = 0
|
||||
WSARecvEx% = 4
|
||||
WSASetBlockingHook% = 1
|
||||
WSASetLastError% = 1
|
||||
WSAStartup% = 2
|
||||
WSAUnhookBlockingHook% = 0
|
||||
__WSAFDIsSet% = 2
|
||||
accept% = 3
|
||||
bind% = 3
|
||||
closesocket% = 1
|
||||
connect% = 3
|
||||
dn_expand% = 5
|
||||
gethostbyaddr% = 3
|
||||
gethostbyname% = 1
|
||||
gethostname% = 2
|
||||
getnetbyname% = 1
|
||||
getpeername% = 3
|
||||
getprotobyname% = 1
|
||||
getprotobynumber% = 1
|
||||
getservbyname% = 2
|
||||
getservbyport% = 2
|
||||
getsockname% = 3
|
||||
getsockopt% = 5
|
||||
htonl% = 1
|
||||
htons% = 1
|
||||
inet_addr% = 1
|
||||
inet_network% = 1
|
||||
inet_ntoa% = 1
|
||||
ioctlsocket% = 3
|
||||
listen% = 2
|
||||
ntohl% = 1
|
||||
ntohs% = 1
|
||||
rcmd% = 6
|
||||
recv% = 4
|
||||
recvfrom% = 6
|
||||
rexec% = 6
|
||||
rresvport% = 1
|
||||
s_perror% = 2
|
||||
select% = 5
|
||||
send% = 4
|
||||
sendto% = 6
|
||||
sethostname% = 2
|
||||
setsockopt% = 5
|
||||
shutdown% = 2
|
||||
socket% = 3
|
||||
25
fasmw172/INCLUDE/WIN32A.INC
Normal file
25
fasmw172/INCLUDE/WIN32A.INC
Normal file
@@ -0,0 +1,25 @@
|
||||
|
||||
; Win32 programming headers (ASCII)
|
||||
|
||||
include 'macro/struct.inc'
|
||||
include 'macro/proc32.inc'
|
||||
include 'macro/com32.inc'
|
||||
include 'macro/import32.inc'
|
||||
include 'macro/export.inc'
|
||||
include 'macro/resource.inc'
|
||||
|
||||
struc TCHAR [val] { common match any, val \{ . db val \}
|
||||
match , val \{ . db ? \} }
|
||||
sizeof.TCHAR = 1
|
||||
|
||||
include 'equates/kernel32.inc'
|
||||
include 'equates/user32.inc'
|
||||
include 'equates/gdi32.inc'
|
||||
include 'equates/comctl32.inc'
|
||||
include 'equates/comdlg32.inc'
|
||||
include 'equates/shell32.inc'
|
||||
include 'equates/wsock32.inc'
|
||||
|
||||
macro api [name] { if used name
|
||||
label name dword at name#A
|
||||
end if }
|
||||
172
fasmw172/INCLUDE/WIN32AX.INC
Normal file
172
fasmw172/INCLUDE/WIN32AX.INC
Normal file
@@ -0,0 +1,172 @@
|
||||
|
||||
; Extended Win32 programming headers (ASCII)
|
||||
|
||||
include 'win32a.inc'
|
||||
|
||||
include 'macro/if.inc'
|
||||
|
||||
macro allow_nesting
|
||||
{ macro pushd value
|
||||
\{ match ,value \\{
|
||||
pushx equ \\}
|
||||
match =pushx =invoke proc,pushx value \\{
|
||||
allow_nesting
|
||||
invoke proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx =stdcall proc,pushx value \\{
|
||||
allow_nesting
|
||||
stdcall proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx =cinvoke proc,pushx value \\{
|
||||
allow_nesting
|
||||
cinvoke proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx =ccall proc,pushx value \\{
|
||||
allow_nesting
|
||||
ccall proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx,pushx \\{
|
||||
pushd <value>
|
||||
pushx equ \\}
|
||||
restore pushx \}
|
||||
macro invoke proc,[arg]
|
||||
\{ \reverse pushd <arg>
|
||||
\common call [proc] \}
|
||||
macro stdcall proc,[arg]
|
||||
\{ \reverse pushd <arg>
|
||||
\common call proc \}
|
||||
macro cinvoke proc,[arg]
|
||||
\{ \common \local size
|
||||
size = 0
|
||||
if ~ arg eq
|
||||
\reverse pushd <arg>
|
||||
size = size+4
|
||||
match =double any,arg \\{ size = size+4 \\}
|
||||
\common end if
|
||||
call [proc]
|
||||
if size
|
||||
add esp,size
|
||||
end if \}
|
||||
macro ccall proc,[arg]
|
||||
\{ \common \local size
|
||||
size = 0
|
||||
if ~ arg eq
|
||||
\reverse pushd <arg>
|
||||
size = size+4
|
||||
match =double any,arg \\{ size = size+4 \\}
|
||||
\common end if
|
||||
call proc
|
||||
if size
|
||||
add esp,size
|
||||
end if \} }
|
||||
|
||||
macro pushd value
|
||||
{ match first=,more, value \{ \local ..continue
|
||||
call ..continue
|
||||
db value,0
|
||||
..continue:
|
||||
pushd equ \}
|
||||
match pushd =addr var,pushd value \{ \local ..opcode,..address
|
||||
if +var relativeto 0 | +var relativeto $
|
||||
push var
|
||||
else
|
||||
lea edx,[var]
|
||||
push edx
|
||||
end if
|
||||
pushd equ \}
|
||||
match pushd =double [var],pushd value \{
|
||||
push dword [var+4]
|
||||
push dword [var]
|
||||
pushd equ \}
|
||||
match pushd =double =ptr var,pushd value \{
|
||||
push dword [var+4]
|
||||
push dword [var]
|
||||
pushd equ \}
|
||||
match pushd =double num,pushd value \{ \local ..high,..low
|
||||
virtual at 0
|
||||
dq num
|
||||
load ..low dword from 0
|
||||
load ..high dword from 4
|
||||
end virtual
|
||||
push ..high
|
||||
push ..low
|
||||
pushd equ \}
|
||||
match pushd,pushd \{ \local ..continue
|
||||
if value eqtype ''
|
||||
call ..continue
|
||||
db value,0
|
||||
..continue:
|
||||
else
|
||||
push value
|
||||
end if
|
||||
pushd equ \}
|
||||
restore pushd }
|
||||
|
||||
allow_nesting
|
||||
|
||||
macro import lib,[functions]
|
||||
{ common macro import_#lib \{ import lib,functions \} }
|
||||
|
||||
macro api [functions]
|
||||
{ common macro all_api \{ all_api
|
||||
api functions \} }
|
||||
macro all_api {}
|
||||
|
||||
include 'api/kernel32.inc'
|
||||
include 'api/user32.inc'
|
||||
include 'api/gdi32.inc'
|
||||
include 'api/advapi32.inc'
|
||||
include 'api/comctl32.inc'
|
||||
include 'api/comdlg32.inc'
|
||||
include 'api/shell32.inc'
|
||||
include 'api/wsock32.inc'
|
||||
|
||||
purge import,api
|
||||
|
||||
macro .data { section '.data' data readable writeable }
|
||||
|
||||
macro .code { section '.text' code readable executable }
|
||||
|
||||
macro .end label
|
||||
{
|
||||
entry label
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel32,'KERNEL32.DLL',\
|
||||
user32,'USER32.DLL',\
|
||||
gdi32,'GDI32.DLL',\
|
||||
advapi32,'ADVAPI32.DLL',\
|
||||
comctl32,'COMCTL32.DLL',\
|
||||
comdlg32,'COMDLG32.DLL',\
|
||||
shell32,'SHELL32.DLL',\
|
||||
wsock32,'WSOCK32.DLL'
|
||||
|
||||
import_kernel32
|
||||
import_user32
|
||||
import_gdi32
|
||||
import_advapi32
|
||||
import_comctl32
|
||||
import_comdlg32
|
||||
import_shell32
|
||||
import_wsock32
|
||||
|
||||
all_api
|
||||
}
|
||||
|
||||
virtual at 0
|
||||
xchg eax,eax
|
||||
detected_16bit = $-1
|
||||
end virtual
|
||||
|
||||
if detected_16bit
|
||||
format PE GUI 4.0
|
||||
end if
|
||||
199
fasmw172/INCLUDE/WIN32AXP.INC
Normal file
199
fasmw172/INCLUDE/WIN32AXP.INC
Normal file
@@ -0,0 +1,199 @@
|
||||
|
||||
; Extended Win32 programming headers with parameters count checking (ASCII)
|
||||
|
||||
include 'win32a.inc'
|
||||
|
||||
include 'macro/if.inc'
|
||||
|
||||
macro allow_nesting
|
||||
{ macro pushd value
|
||||
\{ match ,value \\{
|
||||
pushx equ \\}
|
||||
match =pushx =invoke proc,pushx value \\{
|
||||
allow_nesting
|
||||
invoke proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx =stdcall proc,pushx value \\{
|
||||
allow_nesting
|
||||
stdcall proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx =cinvoke proc,pushx value \\{
|
||||
allow_nesting
|
||||
cinvoke proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx =ccall proc,pushx value \\{
|
||||
allow_nesting
|
||||
ccall proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx,pushx \\{
|
||||
pushd <value>
|
||||
pushx equ \\}
|
||||
restore pushx \}
|
||||
macro invoke proc,[arg]
|
||||
\{ \common count@stdcall = 0
|
||||
if ~ arg eq
|
||||
\forward count@stdcall = count@stdcall+1
|
||||
match =double value, arg \\{ count@stdcall = count@stdcall+1 \\}
|
||||
\common end if
|
||||
if proc eqtype 0 & defined proc \# % & count@stdcall <> proc \# %
|
||||
display "Error: invalid count of parameters for ",\`proc,".",0Dh,0Ah
|
||||
assert 0
|
||||
end if
|
||||
\reverse pushd <arg>
|
||||
\common call [proc] \}
|
||||
macro stdcall proc,[arg]
|
||||
\{ \common count@stdcall = 0
|
||||
if ~ arg eq
|
||||
\forward count@stdcall = count@stdcall+1
|
||||
match =double value, arg \\{ count@stdcall = count@stdcall+1 \\}
|
||||
\common end if
|
||||
if proc eqtype 0 & defined proc \# % & count@stdcall <> proc \# %
|
||||
display "Error: invalid count of parameters for ",\`proc,".",0Dh,0Ah
|
||||
assert 0
|
||||
end if
|
||||
\reverse pushd <arg>
|
||||
\common call proc \}
|
||||
macro cinvoke proc,[arg]
|
||||
\{ \common \local size
|
||||
size = 0
|
||||
if ~ arg eq
|
||||
\reverse pushd <arg>
|
||||
size = size+4
|
||||
match =double any,arg \\{ size = size+4 \\}
|
||||
\common end if
|
||||
call [proc]
|
||||
if size
|
||||
add esp,size
|
||||
end if \}
|
||||
macro ccall proc,[arg]
|
||||
\{ \common \local size
|
||||
size = 0
|
||||
if ~ arg eq
|
||||
\reverse pushd <arg>
|
||||
size = size+4
|
||||
match =double any,arg \\{ size = size+4 \\}
|
||||
\common end if
|
||||
call proc
|
||||
if size
|
||||
add esp,size
|
||||
end if \} }
|
||||
|
||||
macro pushd value
|
||||
{ match first=,more, value \{ \local ..continue
|
||||
call ..continue
|
||||
db value,0
|
||||
..continue:
|
||||
pushd equ \}
|
||||
match pushd =addr var,pushd value \{ \local ..opcode,..address
|
||||
if +var relativeto 0 | +var relativeto $
|
||||
push var
|
||||
else
|
||||
lea edx,[var]
|
||||
push edx
|
||||
end if
|
||||
pushd equ \}
|
||||
match pushd =double [var],pushd value \{
|
||||
push dword [var+4]
|
||||
push dword [var]
|
||||
pushd equ \}
|
||||
match pushd =double =ptr var,pushd value \{
|
||||
push dword [var+4]
|
||||
push dword [var]
|
||||
pushd equ \}
|
||||
match pushd =double num,pushd value \{ \local ..high,..low
|
||||
virtual at 0
|
||||
dq num
|
||||
load ..low dword from 0
|
||||
load ..high dword from 4
|
||||
end virtual
|
||||
push ..high
|
||||
push ..low
|
||||
pushd equ \}
|
||||
match pushd,pushd \{ \local ..continue
|
||||
if value eqtype ''
|
||||
call ..continue
|
||||
db value,0
|
||||
..continue:
|
||||
else
|
||||
push value
|
||||
end if
|
||||
pushd equ \}
|
||||
restore pushd }
|
||||
|
||||
allow_nesting
|
||||
|
||||
include 'pcount/kernel32.inc'
|
||||
include 'pcount/user32.inc'
|
||||
include 'pcount/gdi32.inc'
|
||||
include 'pcount/advapi32.inc'
|
||||
include 'pcount/comctl32.inc'
|
||||
include 'pcount/comdlg32.inc'
|
||||
include 'pcount/shell32.inc'
|
||||
include 'pcount/wsock32.inc'
|
||||
|
||||
macro import lib,[functions]
|
||||
{ common macro import_#lib \{ import lib,functions \} }
|
||||
|
||||
macro api [functions]
|
||||
{ common macro all_api \{ all_api
|
||||
api functions \} }
|
||||
macro all_api {}
|
||||
|
||||
include 'api/kernel32.inc'
|
||||
include 'api/user32.inc'
|
||||
include 'api/gdi32.inc'
|
||||
include 'api/advapi32.inc'
|
||||
include 'api/comctl32.inc'
|
||||
include 'api/comdlg32.inc'
|
||||
include 'api/shell32.inc'
|
||||
include 'api/wsock32.inc'
|
||||
|
||||
purge import,api
|
||||
|
||||
macro .data { section '.data' data readable writeable }
|
||||
|
||||
macro .code { section '.text' code readable executable }
|
||||
|
||||
macro .end label
|
||||
{
|
||||
entry label
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel32,'KERNEL32.DLL',\
|
||||
user32,'USER32.DLL',\
|
||||
gdi32,'GDI32.DLL',\
|
||||
advapi32,'ADVAPI32.DLL',\
|
||||
comctl32,'COMCTL32.DLL',\
|
||||
comdlg32,'COMDLG32.DLL',\
|
||||
shell32,'SHELL32.DLL',\
|
||||
wsock32,'WSOCK32.DLL'
|
||||
|
||||
import_kernel32
|
||||
import_user32
|
||||
import_gdi32
|
||||
import_advapi32
|
||||
import_comctl32
|
||||
import_comdlg32
|
||||
import_shell32
|
||||
import_wsock32
|
||||
|
||||
all_api
|
||||
}
|
||||
|
||||
virtual at 0
|
||||
xchg eax,eax
|
||||
detected_16bit = $-1
|
||||
end virtual
|
||||
|
||||
if detected_16bit
|
||||
format PE GUI 4.0
|
||||
end if
|
||||
25
fasmw172/INCLUDE/WIN32W.INC
Normal file
25
fasmw172/INCLUDE/WIN32W.INC
Normal file
@@ -0,0 +1,25 @@
|
||||
|
||||
; Win32 programming headers (WideChar)
|
||||
|
||||
include 'macro/struct.inc'
|
||||
include 'macro/proc32.inc'
|
||||
include 'macro/com32.inc'
|
||||
include 'macro/import32.inc'
|
||||
include 'macro/export.inc'
|
||||
include 'macro/resource.inc'
|
||||
|
||||
struc TCHAR [val] { common match any, val \{ . du val \}
|
||||
match , val \{ . du ? \} }
|
||||
sizeof.TCHAR = 2
|
||||
|
||||
include 'equates/kernel32.inc'
|
||||
include 'equates/user32.inc'
|
||||
include 'equates/gdi32.inc'
|
||||
include 'equates/comctl32.inc'
|
||||
include 'equates/comdlg32.inc'
|
||||
include 'equates/shell32.inc'
|
||||
include 'equates/wsock32.inc'
|
||||
|
||||
macro api [name] { if used name
|
||||
label name dword at name#W
|
||||
end if }
|
||||
174
fasmw172/INCLUDE/WIN32WX.INC
Normal file
174
fasmw172/INCLUDE/WIN32WX.INC
Normal file
@@ -0,0 +1,174 @@
|
||||
|
||||
; Extended Win32 programming headers (WideChar)
|
||||
|
||||
include 'win32w.inc'
|
||||
|
||||
include 'macro/if.inc'
|
||||
|
||||
macro allow_nesting
|
||||
{ macro pushd value
|
||||
\{ match ,value \\{
|
||||
pushx equ \\}
|
||||
match =pushx =invoke proc,pushx value \\{
|
||||
allow_nesting
|
||||
invoke proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx =stdcall proc,pushx value \\{
|
||||
allow_nesting
|
||||
stdcall proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx =cinvoke proc,pushx value \\{
|
||||
allow_nesting
|
||||
cinvoke proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx =ccall proc,pushx value \\{
|
||||
allow_nesting
|
||||
ccall proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx,pushx \\{
|
||||
pushd <value>
|
||||
pushx equ \\}
|
||||
restore pushx \}
|
||||
macro invoke proc,[arg]
|
||||
\{ \reverse pushd <arg>
|
||||
\common call [proc] \}
|
||||
macro stdcall proc,[arg]
|
||||
\{ \reverse pushd <arg>
|
||||
\common call proc \}
|
||||
macro cinvoke proc,[arg]
|
||||
\{ \common \local size
|
||||
size = 0
|
||||
if ~ arg eq
|
||||
\reverse pushd <arg>
|
||||
size = size+4
|
||||
match =double any,arg \\{ size = size+4 \\}
|
||||
\common end if
|
||||
call [proc]
|
||||
if size
|
||||
add esp,size
|
||||
end if \}
|
||||
macro ccall proc,[arg]
|
||||
\{ \common \local size
|
||||
size = 0
|
||||
if ~ arg eq
|
||||
\reverse pushd <arg>
|
||||
size = size+4
|
||||
match =double any,arg \\{ size = size+4 \\}
|
||||
\common end if
|
||||
call proc
|
||||
if size
|
||||
add esp,size
|
||||
end if \} }
|
||||
|
||||
macro pushd value
|
||||
{ match first=,more, value \{ \local ..continue
|
||||
times 1 - (rva $ and 1) nop
|
||||
call ..continue
|
||||
du value,0
|
||||
..continue:
|
||||
pushd equ \}
|
||||
match pushd =addr var,pushd value \{ \local ..opcode,..address
|
||||
if +var relativeto 0 | +var relativeto $
|
||||
push var
|
||||
else
|
||||
lea edx,[var]
|
||||
push edx
|
||||
end if
|
||||
pushd equ \}
|
||||
match pushd =double [var],pushd value \{
|
||||
push dword [var+4]
|
||||
push dword [var]
|
||||
pushd equ \}
|
||||
match pushd =double =ptr var,pushd value \{
|
||||
push dword [var+4]
|
||||
push dword [var]
|
||||
pushd equ \}
|
||||
match pushd =double num,pushd value \{ \local ..high,..low
|
||||
virtual at 0
|
||||
dq num
|
||||
load ..low dword from 0
|
||||
load ..high dword from 4
|
||||
end virtual
|
||||
push ..high
|
||||
push ..low
|
||||
pushd equ \}
|
||||
match pushd,pushd \{ \local ..continue
|
||||
if value eqtype ''
|
||||
times 1 - (rva $ and 1) nop
|
||||
call ..continue
|
||||
du value,0
|
||||
..continue:
|
||||
else
|
||||
push value
|
||||
end if
|
||||
pushd equ \}
|
||||
restore pushd }
|
||||
|
||||
allow_nesting
|
||||
|
||||
macro import lib,[functions]
|
||||
{ common macro import_#lib \{ import lib,functions \} }
|
||||
|
||||
macro api [functions]
|
||||
{ common macro all_api \{ all_api
|
||||
api functions \} }
|
||||
macro all_api {}
|
||||
|
||||
include 'api/kernel32.inc'
|
||||
include 'api/user32.inc'
|
||||
include 'api/gdi32.inc'
|
||||
include 'api/advapi32.inc'
|
||||
include 'api/comctl32.inc'
|
||||
include 'api/comdlg32.inc'
|
||||
include 'api/shell32.inc'
|
||||
include 'api/wsock32.inc'
|
||||
|
||||
purge import,api
|
||||
|
||||
macro .data { section '.data' data readable writeable }
|
||||
|
||||
macro .code { section '.text' code readable executable }
|
||||
|
||||
macro .end label
|
||||
{
|
||||
entry label
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel32,'KERNEL32.DLL',\
|
||||
user32,'USER32.DLL',\
|
||||
gdi32,'GDI32.DLL',\
|
||||
advapi32,'ADVAPI32.DLL',\
|
||||
comctl32,'COMCTL32.DLL',\
|
||||
comdlg32,'COMDLG32.DLL',\
|
||||
shell32,'SHELL32.DLL',\
|
||||
wsock32,'WSOCK32.DLL'
|
||||
|
||||
import_kernel32
|
||||
import_user32
|
||||
import_gdi32
|
||||
import_advapi32
|
||||
import_comctl32
|
||||
import_comdlg32
|
||||
import_shell32
|
||||
import_wsock32
|
||||
|
||||
all_api
|
||||
}
|
||||
|
||||
virtual at 0
|
||||
xchg eax,eax
|
||||
detected_16bit = $-1
|
||||
end virtual
|
||||
|
||||
if detected_16bit
|
||||
format PE GUI 4.0
|
||||
end if
|
||||
201
fasmw172/INCLUDE/WIN32WXP.INC
Normal file
201
fasmw172/INCLUDE/WIN32WXP.INC
Normal file
@@ -0,0 +1,201 @@
|
||||
|
||||
; Extended Win32 programming headers with parameters count checking (WideChar)
|
||||
|
||||
include 'win32w.inc'
|
||||
|
||||
include 'macro/if.inc'
|
||||
|
||||
macro allow_nesting
|
||||
{ macro pushd value
|
||||
\{ match ,value \\{
|
||||
pushx equ \\}
|
||||
match =pushx =invoke proc,pushx value \\{
|
||||
allow_nesting
|
||||
invoke proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx =stdcall proc,pushx value \\{
|
||||
allow_nesting
|
||||
stdcall proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx =cinvoke proc,pushx value \\{
|
||||
allow_nesting
|
||||
cinvoke proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx =ccall proc,pushx value \\{
|
||||
allow_nesting
|
||||
ccall proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx,pushx \\{
|
||||
pushd <value>
|
||||
pushx equ \\}
|
||||
restore pushx \}
|
||||
macro invoke proc,[arg]
|
||||
\{ \common count@stdcall = 0
|
||||
if ~ arg eq
|
||||
\forward count@stdcall = count@stdcall+1
|
||||
match =double value, arg \\{ count@stdcall = count@stdcall+1 \\}
|
||||
\common end if
|
||||
if proc eqtype 0 & defined proc \# % & count@stdcall <> proc \# %
|
||||
display "Error: invalid count of parameters for ",\`proc,".",0Dh,0Ah
|
||||
assert 0
|
||||
end if
|
||||
\reverse pushd <arg>
|
||||
\common call [proc] \}
|
||||
macro stdcall proc,[arg]
|
||||
\{ \common count@stdcall = 0
|
||||
if ~ arg eq
|
||||
\forward count@stdcall = count@stdcall+1
|
||||
match =double value, arg \\{ count@stdcall = count@stdcall+1 \\}
|
||||
\common end if
|
||||
if proc eqtype 0 & defined proc \# % & count@stdcall <> proc \# %
|
||||
display "Error: invalid count of parameters for ",\`proc,".",0Dh,0Ah
|
||||
assert 0
|
||||
end if
|
||||
\reverse pushd <arg>
|
||||
\common call proc \}
|
||||
macro cinvoke proc,[arg]
|
||||
\{ \common \local size
|
||||
size = 0
|
||||
if ~ arg eq
|
||||
\reverse pushd <arg>
|
||||
size = size+4
|
||||
match =double any,arg \\{ size = size+4 \\}
|
||||
\common end if
|
||||
call [proc]
|
||||
if size
|
||||
add esp,size
|
||||
end if \}
|
||||
macro ccall proc,[arg]
|
||||
\{ \common \local size
|
||||
size = 0
|
||||
if ~ arg eq
|
||||
\reverse pushd <arg>
|
||||
size = size+4
|
||||
match =double any,arg \\{ size = size+4 \\}
|
||||
\common end if
|
||||
call proc
|
||||
if size
|
||||
add esp,size
|
||||
end if \} }
|
||||
|
||||
macro pushd value
|
||||
{ match first=,more, value \{ \local ..continue
|
||||
times 1 - (rva $ and 1) nop
|
||||
call ..continue
|
||||
du value,0
|
||||
..continue:
|
||||
pushd equ \}
|
||||
match pushd =addr var,pushd value \{ \local ..opcode,..address
|
||||
if +var relativeto 0 | +var relativeto $
|
||||
push var
|
||||
else
|
||||
lea edx,[var]
|
||||
push edx
|
||||
end if
|
||||
pushd equ \}
|
||||
match pushd =double [var],pushd value \{
|
||||
push dword [var+4]
|
||||
push dword [var]
|
||||
pushd equ \}
|
||||
match pushd =double =ptr var,pushd value \{
|
||||
push dword [var+4]
|
||||
push dword [var]
|
||||
pushd equ \}
|
||||
match pushd =double num,pushd value \{ \local ..high,..low
|
||||
virtual at 0
|
||||
dq num
|
||||
load ..low dword from 0
|
||||
load ..high dword from 4
|
||||
end virtual
|
||||
push ..high
|
||||
push ..low
|
||||
pushd equ \}
|
||||
match pushd,pushd \{ \local ..continue
|
||||
if value eqtype ''
|
||||
times 1 - (rva $ and 1) nop
|
||||
call ..continue
|
||||
du value,0
|
||||
..continue:
|
||||
else
|
||||
push value
|
||||
end if
|
||||
pushd equ \}
|
||||
restore pushd }
|
||||
|
||||
allow_nesting
|
||||
|
||||
include 'pcount/kernel32.inc'
|
||||
include 'pcount/user32.inc'
|
||||
include 'pcount/gdi32.inc'
|
||||
include 'pcount/advapi32.inc'
|
||||
include 'pcount/comctl32.inc'
|
||||
include 'pcount/comdlg32.inc'
|
||||
include 'pcount/shell32.inc'
|
||||
include 'pcount/wsock32.inc'
|
||||
|
||||
macro import lib,[functions]
|
||||
{ common macro import_#lib \{ import lib,functions \} }
|
||||
|
||||
macro api [functions]
|
||||
{ common macro all_api \{ all_api
|
||||
api functions \} }
|
||||
macro all_api {}
|
||||
|
||||
include 'api/kernel32.inc'
|
||||
include 'api/user32.inc'
|
||||
include 'api/gdi32.inc'
|
||||
include 'api/advapi32.inc'
|
||||
include 'api/comctl32.inc'
|
||||
include 'api/comdlg32.inc'
|
||||
include 'api/shell32.inc'
|
||||
include 'api/wsock32.inc'
|
||||
|
||||
purge import,api
|
||||
|
||||
macro .data { section '.data' data readable writeable }
|
||||
|
||||
macro .code { section '.text' code readable executable }
|
||||
|
||||
macro .end label
|
||||
{
|
||||
entry label
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel32,'KERNEL32.DLL',\
|
||||
user32,'USER32.DLL',\
|
||||
gdi32,'GDI32.DLL',\
|
||||
advapi32,'ADVAPI32.DLL',\
|
||||
comctl32,'COMCTL32.DLL',\
|
||||
comdlg32,'COMDLG32.DLL',\
|
||||
shell32,'SHELL32.DLL',\
|
||||
wsock32,'WSOCK32.DLL'
|
||||
|
||||
import_kernel32
|
||||
import_user32
|
||||
import_gdi32
|
||||
import_advapi32
|
||||
import_comctl32
|
||||
import_comdlg32
|
||||
import_shell32
|
||||
import_wsock32
|
||||
|
||||
all_api
|
||||
}
|
||||
|
||||
virtual at 0
|
||||
xchg eax,eax
|
||||
detected_16bit = $-1
|
||||
end virtual
|
||||
|
||||
if detected_16bit
|
||||
format PE GUI 4.0
|
||||
end if
|
||||
25
fasmw172/INCLUDE/WIN64A.INC
Normal file
25
fasmw172/INCLUDE/WIN64A.INC
Normal file
@@ -0,0 +1,25 @@
|
||||
|
||||
; Win64 programming headers (ASCII)
|
||||
|
||||
include 'macro/struct.inc'
|
||||
include 'macro/proc64.inc'
|
||||
include 'macro/com64.inc'
|
||||
include 'macro/import64.inc'
|
||||
include 'macro/export.inc'
|
||||
include 'macro/resource.inc'
|
||||
|
||||
struc TCHAR [val] { common match any, val \{ . db val \}
|
||||
match , val \{ . db ? \} }
|
||||
sizeof.TCHAR = 1
|
||||
|
||||
include 'equates/kernel64.inc'
|
||||
include 'equates/user64.inc'
|
||||
include 'equates/gdi64.inc'
|
||||
include 'equates/comctl64.inc'
|
||||
include 'equates/comdlg64.inc'
|
||||
include 'equates/shell64.inc'
|
||||
|
||||
macro api [name] { if used name
|
||||
label name qword at name#A
|
||||
end if }
|
||||
|
||||
205
fasmw172/INCLUDE/WIN64AX.INC
Normal file
205
fasmw172/INCLUDE/WIN64AX.INC
Normal file
@@ -0,0 +1,205 @@
|
||||
|
||||
; Extended Win64 programming headers (ASCII)
|
||||
|
||||
include 'win64a.inc'
|
||||
|
||||
include 'macro/if.inc'
|
||||
|
||||
macro allow_nesting
|
||||
{ macro invoke proc,[arg]
|
||||
\{ \common fastcall [proc],arg \}
|
||||
macro fastcall proc,[arg]
|
||||
\{ \common \local list,counter,flags,outer_frame,nested_frame,..close_nest
|
||||
match =current@frame,current@frame \\{
|
||||
frame
|
||||
define outer_frame \\}
|
||||
define counter
|
||||
define list
|
||||
flags = 0
|
||||
\forward \local param,nested,isfloat,..next
|
||||
match any,counter \\{ list equ list, \\}
|
||||
counter equ counter+1
|
||||
define param arg
|
||||
define nested
|
||||
isfloat = 0
|
||||
match =invoke statement,param \\{
|
||||
nested equ param
|
||||
define param \\}
|
||||
match =fastcall statement,param \\{
|
||||
nested equ param
|
||||
define param \\}
|
||||
match =float =invoke statement,param \\{
|
||||
define nested invoke statement
|
||||
define param
|
||||
isfloat = 1 \\}
|
||||
match =float =fastcall statement,param \\{
|
||||
define nested fastcall statement
|
||||
define param
|
||||
isfloat = 1 \\}
|
||||
match statement,nested \\{
|
||||
match =nested_frame,nested_frame \\\{
|
||||
frame
|
||||
define nested_frame \\\}
|
||||
allow_nesting
|
||||
statement
|
||||
purge invoke_fastcall
|
||||
if counter > 4
|
||||
if isfloat
|
||||
movq [rsp+size@frame+(counter-1)*8],xmm0
|
||||
else
|
||||
mov [rsp+size@frame+(counter-1)*8],rax
|
||||
end if
|
||||
else
|
||||
flags = flags or 1 shl (counter-1)
|
||||
if isfloat
|
||||
flags = flags or 1 shl (4+counter-1)
|
||||
end if
|
||||
if ..close_nest > ..next
|
||||
if float
|
||||
movq [rsp+size@frame+(counter-1)*8],xmm0
|
||||
else
|
||||
mov [rsp+size@frame+(counter-1)*8],rax
|
||||
end if
|
||||
else
|
||||
flags = flags or 1 shl (8+counter-1)
|
||||
end if
|
||||
end if
|
||||
..next: \\}
|
||||
list equ list <param>
|
||||
\common ..close_nest:
|
||||
match ,nested_frame \\{ endf \\}
|
||||
if flags and 1
|
||||
if flags and 1 shl 4
|
||||
if ~ flags and 1 shl 8
|
||||
movq xmm0,[rsp]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl 8
|
||||
mov rcx,rax
|
||||
else
|
||||
mov rcx,[rsp]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if flags and 1 shl 1
|
||||
if flags and 1 shl (4+1)
|
||||
if flags and 1 shl (8+1)
|
||||
movq xmm1,xmm0
|
||||
else
|
||||
movq xmm1,[rsp+8]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl (8+1)
|
||||
mov rdx,rax
|
||||
else
|
||||
mov rdx,[rsp+8]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if flags and 1 shl 2
|
||||
if flags and 1 shl (4+2)
|
||||
if flags and 1 shl (8+2)
|
||||
movq xmm2,xmm0
|
||||
else
|
||||
movq xmm2,[rsp+2*8]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl (8+2)
|
||||
mov r8,rax
|
||||
else
|
||||
mov r8,[rsp+2*8]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if flags and 1 shl 3
|
||||
if flags and 1 shl (4+3)
|
||||
if flags and 1 shl (8+3)
|
||||
movq xmm3,xmm0
|
||||
else
|
||||
movq xmm3,[rsp+3*8]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl (8+3)
|
||||
mov r9,rax
|
||||
else
|
||||
mov r9,[rsp+3*8]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
match args,list \\{ fastcall proc,args \\}
|
||||
match ,list \\{ fastcall proc \\}
|
||||
match ,outer_frame \\{ endf \\} \} }
|
||||
|
||||
allow_nesting
|
||||
|
||||
macro import lib,[functions]
|
||||
{ common macro import_#lib \{ import lib,functions \} }
|
||||
|
||||
macro api [functions]
|
||||
{ common macro all_api \{ all_api
|
||||
api functions \} }
|
||||
macro all_api {}
|
||||
|
||||
include 'api/kernel32.inc'
|
||||
include 'api/user32.inc'
|
||||
include 'api/gdi32.inc'
|
||||
include 'api/advapi32.inc'
|
||||
include 'api/comctl32.inc'
|
||||
include 'api/comdlg32.inc'
|
||||
include 'api/shell32.inc'
|
||||
include 'api/wsock32.inc'
|
||||
|
||||
purge import,api
|
||||
|
||||
macro .data { section '.data' data readable writeable }
|
||||
|
||||
macro .code {
|
||||
section '.text' code readable executable
|
||||
entry $
|
||||
sub rsp,8
|
||||
local main,code
|
||||
entry equ main
|
||||
if main <> code
|
||||
jmp main
|
||||
end if
|
||||
code: }
|
||||
|
||||
macro .end value
|
||||
{
|
||||
label entry at value
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel32,'KERNEL32.DLL',\
|
||||
user32,'USER32.DLL',\
|
||||
gdi32,'GDI32.DLL',\
|
||||
advapi32,'ADVAPI32.DLL',\
|
||||
comctl32,'COMCTL32.DLL',\
|
||||
comdlg32,'COMDLG32.DLL',\
|
||||
shell32,'SHELL32.DLL',\
|
||||
wsock32,'WSOCK32.DLL'
|
||||
|
||||
import_kernel32
|
||||
import_user32
|
||||
import_gdi32
|
||||
import_advapi32
|
||||
import_comctl32
|
||||
import_comdlg32
|
||||
import_shell32
|
||||
import_wsock32
|
||||
|
||||
all_api
|
||||
}
|
||||
|
||||
virtual at 0
|
||||
inc ax
|
||||
if $=1
|
||||
detected_16bit = 1
|
||||
else
|
||||
detected_16bit = 0
|
||||
end if
|
||||
end virtual
|
||||
|
||||
if detected_16bit
|
||||
format PE64 GUI 5.0
|
||||
end if
|
||||
221
fasmw172/INCLUDE/WIN64AXP.INC
Normal file
221
fasmw172/INCLUDE/WIN64AXP.INC
Normal file
@@ -0,0 +1,221 @@
|
||||
|
||||
; Extended Win64 programming headers with parameters count checking (ASCII)
|
||||
|
||||
include 'win64a.inc'
|
||||
|
||||
include 'macro/if.inc'
|
||||
|
||||
macro allow_nesting
|
||||
{ macro invoke proc,[arg]
|
||||
\{ \common fastcall [proc],arg \}
|
||||
macro fastcall proc,[arg]
|
||||
\{ \common \local list,counter,flags,outer_frame,nested_frame,..close_nest
|
||||
match =current@frame,current@frame \\{
|
||||
frame
|
||||
define outer_frame \\}
|
||||
define counter
|
||||
define list
|
||||
flags = 0
|
||||
\forward \local param,nested,isfloat,..next
|
||||
match any,counter \\{ list equ list, \\}
|
||||
counter equ counter+1
|
||||
define param arg
|
||||
define nested
|
||||
isfloat = 0
|
||||
match =invoke statement,param \\{
|
||||
nested equ param
|
||||
define param \\}
|
||||
match =fastcall statement,param \\{
|
||||
nested equ param
|
||||
define param \\}
|
||||
match =float =invoke statement,param \\{
|
||||
define nested invoke statement
|
||||
define param
|
||||
isfloat = 1 \\}
|
||||
match =float =fastcall statement,param \\{
|
||||
define nested fastcall statement
|
||||
define param
|
||||
isfloat = 1 \\}
|
||||
match statement,nested \\{
|
||||
match =nested_frame,nested_frame \\\{
|
||||
frame
|
||||
define nested_frame \\\}
|
||||
allow_nesting
|
||||
statement
|
||||
purge invoke_fastcall
|
||||
if counter > 4
|
||||
if isfloat
|
||||
movq [rsp+size@frame+(counter-1)*8],xmm0
|
||||
else
|
||||
mov [rsp+size@frame+(counter-1)*8],rax
|
||||
end if
|
||||
else
|
||||
flags = flags or 1 shl (counter-1)
|
||||
if isfloat
|
||||
flags = flags or 1 shl (4+counter-1)
|
||||
end if
|
||||
if ..close_nest > ..next
|
||||
if float
|
||||
movq [rsp+size@frame+(counter-1)*8],xmm0
|
||||
else
|
||||
mov [rsp+size@frame+(counter-1)*8],rax
|
||||
end if
|
||||
else
|
||||
flags = flags or 1 shl (8+counter-1)
|
||||
end if
|
||||
end if
|
||||
..next: \\}
|
||||
match any,param \\{ list equ list <param> \\}
|
||||
\common ..close_nest:
|
||||
match ,nested_frame \\{ endf \\}
|
||||
if flags and 1
|
||||
if flags and 1 shl 4
|
||||
if ~ flags and 1 shl 8
|
||||
movq xmm0,[rsp]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl 8
|
||||
mov rcx,rax
|
||||
else
|
||||
mov rcx,[rsp]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if flags and 1 shl 1
|
||||
if flags and 1 shl (4+1)
|
||||
if flags and 1 shl (8+1)
|
||||
movq xmm1,xmm0
|
||||
else
|
||||
movq xmm1,[rsp+8]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl (8+1)
|
||||
mov rdx,rax
|
||||
else
|
||||
mov rdx,[rsp+8]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if flags and 1 shl 2
|
||||
if flags and 1 shl (4+2)
|
||||
if flags and 1 shl (8+2)
|
||||
movq xmm2,xmm0
|
||||
else
|
||||
movq xmm2,[rsp+2*8]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl (8+2)
|
||||
mov r8,rax
|
||||
else
|
||||
mov r8,[rsp+2*8]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if flags and 1 shl 3
|
||||
if flags and 1 shl (4+3)
|
||||
if flags and 1 shl (8+3)
|
||||
movq xmm3,xmm0
|
||||
else
|
||||
movq xmm3,[rsp+3*8]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl (8+3)
|
||||
mov r9,rax
|
||||
else
|
||||
mov r9,[rsp+3*8]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
match args,list \\{ fastcall proc,args \\}
|
||||
match ,list \\{ fastcall proc
|
||||
define counter 0 \\}
|
||||
match ,outer_frame \\{ endf \\}
|
||||
proc@paramcheck equ proc
|
||||
match [name],proc \\{ define proc@paramcheck name \\}
|
||||
match name,proc@paramcheck \\{ if name eqtype 0 & defined name \\# % & counter <> name \\# %
|
||||
display "Error: invalid count of parameters for ",\\`name,".",0Dh,0Ah
|
||||
assert 0
|
||||
end if \\} \} }
|
||||
|
||||
allow_nesting
|
||||
|
||||
include 'pcount/kernel32.inc'
|
||||
include 'pcount/user32.inc'
|
||||
include 'pcount/gdi32.inc'
|
||||
include 'pcount/advapi32.inc'
|
||||
include 'pcount/comctl32.inc'
|
||||
include 'pcount/comdlg32.inc'
|
||||
include 'pcount/shell32.inc'
|
||||
include 'pcount/wsock32.inc'
|
||||
|
||||
macro import lib,[functions]
|
||||
{ common macro import_#lib \{ import lib,functions \} }
|
||||
|
||||
macro api [functions]
|
||||
{ common macro all_api \{ all_api
|
||||
api functions \} }
|
||||
macro all_api {}
|
||||
|
||||
include 'api/kernel32.inc'
|
||||
include 'api/user32.inc'
|
||||
include 'api/gdi32.inc'
|
||||
include 'api/advapi32.inc'
|
||||
include 'api/comctl32.inc'
|
||||
include 'api/comdlg32.inc'
|
||||
include 'api/shell32.inc'
|
||||
include 'api/wsock32.inc'
|
||||
|
||||
purge import,api
|
||||
|
||||
macro .data { section '.data' data readable writeable }
|
||||
|
||||
macro .code {
|
||||
section '.text' code readable executable
|
||||
entry $
|
||||
sub rsp,8
|
||||
local main,code
|
||||
entry equ main
|
||||
if main <> code
|
||||
jmp main
|
||||
end if
|
||||
code: }
|
||||
|
||||
macro .end value
|
||||
{
|
||||
label entry at value
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel32,'KERNEL32.DLL',\
|
||||
user32,'USER32.DLL',\
|
||||
gdi32,'GDI32.DLL',\
|
||||
advapi32,'ADVAPI32.DLL',\
|
||||
comctl32,'COMCTL32.DLL',\
|
||||
comdlg32,'COMDLG32.DLL',\
|
||||
shell32,'SHELL32.DLL',\
|
||||
wsock32,'WSOCK32.DLL'
|
||||
|
||||
import_kernel32
|
||||
import_user32
|
||||
import_gdi32
|
||||
import_advapi32
|
||||
import_comctl32
|
||||
import_comdlg32
|
||||
import_shell32
|
||||
import_wsock32
|
||||
|
||||
all_api
|
||||
}
|
||||
|
||||
virtual at 0
|
||||
inc ax
|
||||
if $=1
|
||||
detected_16bit = 1
|
||||
else
|
||||
detected_16bit = 0
|
||||
end if
|
||||
end virtual
|
||||
|
||||
if detected_16bit
|
||||
format PE64 GUI 5.0
|
||||
end if
|
||||
24
fasmw172/INCLUDE/WIN64W.INC
Normal file
24
fasmw172/INCLUDE/WIN64W.INC
Normal file
@@ -0,0 +1,24 @@
|
||||
|
||||
; Win64 programming headers (WideChar)
|
||||
|
||||
include 'macro/struct.inc'
|
||||
include 'macro/proc64.inc'
|
||||
include 'macro/com64.inc'
|
||||
include 'macro/import64.inc'
|
||||
include 'macro/export.inc'
|
||||
include 'macro/resource.inc'
|
||||
|
||||
struc TCHAR [val] { common match any, val \{ . du val \}
|
||||
match , val \{ . du ? \} }
|
||||
sizeof.TCHAR = 2
|
||||
|
||||
include 'equates/kernel64.inc'
|
||||
include 'equates/user64.inc'
|
||||
include 'equates/gdi64.inc'
|
||||
include 'equates/comctl64.inc'
|
||||
include 'equates/comdlg64.inc'
|
||||
include 'equates/shell64.inc'
|
||||
|
||||
macro api [name] { if used name
|
||||
label name qword at name#W
|
||||
end if }
|
||||
204
fasmw172/INCLUDE/WIN64WX.INC
Normal file
204
fasmw172/INCLUDE/WIN64WX.INC
Normal file
@@ -0,0 +1,204 @@
|
||||
|
||||
; Extended Win64 programming headers (WideChar)
|
||||
|
||||
include 'win64w.inc'
|
||||
|
||||
include 'macro/if.inc'
|
||||
|
||||
macro allow_nesting
|
||||
{ macro invoke proc,[arg]
|
||||
\{ \common fastcall [proc],arg \}
|
||||
macro fastcall proc,[arg]
|
||||
\{ \common \local list,counter,flags,outer_frame,nested_frame,..close_nest
|
||||
match =current@frame,current@frame \\{
|
||||
frame
|
||||
define outer_frame \\}
|
||||
define counter
|
||||
define list
|
||||
flags = 0
|
||||
\forward \local param,nested,isfloat,..next
|
||||
match any,counter \\{ list equ list, \\}
|
||||
counter equ counter+1
|
||||
define param arg
|
||||
define nested
|
||||
isfloat = 0
|
||||
match =invoke statement,param \\{
|
||||
nested equ param
|
||||
define param \\}
|
||||
match =fastcall statement,param \\{
|
||||
nested equ param
|
||||
define param \\}
|
||||
match =float =invoke statement,param \\{
|
||||
define nested invoke statement
|
||||
define param
|
||||
isfloat = 1 \\}
|
||||
match =float =fastcall statement,param \\{
|
||||
define nested fastcall statement
|
||||
define param
|
||||
isfloat = 1 \\}
|
||||
match statement,nested \\{
|
||||
match =nested_frame,nested_frame \\\{
|
||||
frame
|
||||
define nested_frame \\\}
|
||||
allow_nesting
|
||||
statement
|
||||
purge invoke_fastcall
|
||||
if counter > 4
|
||||
if isfloat
|
||||
movq [rsp+size@frame+(counter-1)*8],xmm0
|
||||
else
|
||||
mov [rsp+size@frame+(counter-1)*8],rax
|
||||
end if
|
||||
else
|
||||
flags = flags or 1 shl (counter-1)
|
||||
if isfloat
|
||||
flags = flags or 1 shl (4+counter-1)
|
||||
end if
|
||||
if ..close_nest > ..next
|
||||
if float
|
||||
movq [rsp+size@frame+(counter-1)*8],xmm0
|
||||
else
|
||||
mov [rsp+size@frame+(counter-1)*8],rax
|
||||
end if
|
||||
else
|
||||
flags = flags or 1 shl (8+counter-1)
|
||||
end if
|
||||
end if
|
||||
..next: \\}
|
||||
list equ list <param>
|
||||
\common ..close_nest:
|
||||
match ,nested_frame \\{ endf \\}
|
||||
if flags and 1
|
||||
if flags and 1 shl 4
|
||||
if ~ flags and 1 shl 8
|
||||
movq xmm0,[rsp]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl 8
|
||||
mov rcx,rax
|
||||
else
|
||||
mov rcx,[rsp]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if flags and 1 shl 1
|
||||
if flags and 1 shl (4+1)
|
||||
if flags and 1 shl (8+1)
|
||||
movq xmm1,xmm0
|
||||
else
|
||||
movq xmm1,[rsp+8]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl (8+1)
|
||||
mov rdx,rax
|
||||
else
|
||||
mov rdx,[rsp+8]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if flags and 1 shl 2
|
||||
if flags and 1 shl (4+2)
|
||||
if flags and 1 shl (8+2)
|
||||
movq xmm2,xmm0
|
||||
else
|
||||
movq xmm2,[rsp+2*8]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl (8+2)
|
||||
mov r8,rax
|
||||
else
|
||||
mov r8,[rsp+2*8]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if flags and 1 shl 3
|
||||
if flags and 1 shl (4+3)
|
||||
if flags and 1 shl (8+3)
|
||||
movq xmm3,xmm0
|
||||
else
|
||||
movq xmm3,[rsp+3*8]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl (8+3)
|
||||
mov r9,rax
|
||||
else
|
||||
mov r9,[rsp+3*8]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
match args,list \\{ fastcall proc,args \\}
|
||||
match ,list \\{ fastcall proc \\}
|
||||
match ,outer_frame \\{ endf \\} \} }
|
||||
|
||||
allow_nesting
|
||||
|
||||
macro import lib,[functions]
|
||||
{ common macro import_#lib \{ import lib,functions \} }
|
||||
|
||||
macro api [functions]
|
||||
{ common macro all_api \{ all_api
|
||||
api functions \} }
|
||||
macro all_api {}
|
||||
|
||||
include 'api/kernel32.inc'
|
||||
include 'api/user32.inc'
|
||||
include 'api/gdi32.inc'
|
||||
include 'api/advapi32.inc'
|
||||
include 'api/comctl32.inc'
|
||||
include 'api/comdlg32.inc'
|
||||
include 'api/shell32.inc'
|
||||
include 'api/wsock32.inc'
|
||||
|
||||
purge import,api
|
||||
|
||||
macro .data { section '.data' data readable writeable }
|
||||
macro .code {
|
||||
section '.text' code readable executable
|
||||
entry $
|
||||
sub rsp,8
|
||||
local main,code
|
||||
entry equ main
|
||||
if main <> code
|
||||
jmp main
|
||||
end if
|
||||
code: }
|
||||
|
||||
macro .end value
|
||||
{
|
||||
label entry at value
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel32,'KERNEL32.DLL',\
|
||||
user32,'USER32.DLL',\
|
||||
gdi32,'GDI32.DLL',\
|
||||
advapi32,'ADVAPI32.DLL',\
|
||||
comctl32,'COMCTL32.DLL',\
|
||||
comdlg32,'COMDLG32.DLL',\
|
||||
shell32,'SHELL32.DLL',\
|
||||
wsock32,'WSOCK32.DLL'
|
||||
|
||||
import_kernel32
|
||||
import_user32
|
||||
import_gdi32
|
||||
import_advapi32
|
||||
import_comctl32
|
||||
import_comdlg32
|
||||
import_shell32
|
||||
import_wsock32
|
||||
|
||||
all_api
|
||||
}
|
||||
|
||||
virtual at 0
|
||||
inc ax
|
||||
if $=1
|
||||
detected_16bit = 1
|
||||
else
|
||||
detected_16bit = 0
|
||||
end if
|
||||
end virtual
|
||||
|
||||
if detected_16bit
|
||||
format PE64 GUI 5.0
|
||||
end if
|
||||
221
fasmw172/INCLUDE/WIN64WXP.INC
Normal file
221
fasmw172/INCLUDE/WIN64WXP.INC
Normal file
@@ -0,0 +1,221 @@
|
||||
|
||||
; Extended Win64 programming headers with parameters count checking (WideChar)
|
||||
|
||||
include 'win64w.inc'
|
||||
|
||||
include 'macro/if.inc'
|
||||
|
||||
macro allow_nesting
|
||||
{ macro invoke proc,[arg]
|
||||
\{ \common fastcall [proc],arg \}
|
||||
macro fastcall proc,[arg]
|
||||
\{ \common \local list,counter,flags,outer_frame,nested_frame,..close_nest
|
||||
match =current@frame,current@frame \\{
|
||||
frame
|
||||
define outer_frame \\}
|
||||
define counter
|
||||
define list
|
||||
flags = 0
|
||||
\forward \local param,nested,isfloat,..next
|
||||
match any,counter \\{ list equ list, \\}
|
||||
counter equ counter+1
|
||||
define param arg
|
||||
define nested
|
||||
isfloat = 0
|
||||
match =invoke statement,param \\{
|
||||
nested equ param
|
||||
define param \\}
|
||||
match =fastcall statement,param \\{
|
||||
nested equ param
|
||||
define param \\}
|
||||
match =float =invoke statement,param \\{
|
||||
define nested invoke statement
|
||||
define param
|
||||
isfloat = 1 \\}
|
||||
match =float =fastcall statement,param \\{
|
||||
define nested fastcall statement
|
||||
define param
|
||||
isfloat = 1 \\}
|
||||
match statement,nested \\{
|
||||
match =nested_frame,nested_frame \\\{
|
||||
frame
|
||||
define nested_frame \\\}
|
||||
allow_nesting
|
||||
statement
|
||||
purge invoke_fastcall
|
||||
if counter > 4
|
||||
if isfloat
|
||||
movq [rsp+size@frame+(counter-1)*8],xmm0
|
||||
else
|
||||
mov [rsp+size@frame+(counter-1)*8],rax
|
||||
end if
|
||||
else
|
||||
flags = flags or 1 shl (counter-1)
|
||||
if isfloat
|
||||
flags = flags or 1 shl (4+counter-1)
|
||||
end if
|
||||
if ..close_nest > ..next
|
||||
if float
|
||||
movq [rsp+size@frame+(counter-1)*8],xmm0
|
||||
else
|
||||
mov [rsp+size@frame+(counter-1)*8],rax
|
||||
end if
|
||||
else
|
||||
flags = flags or 1 shl (8+counter-1)
|
||||
end if
|
||||
end if
|
||||
..next: \\}
|
||||
match any,param \\{ list equ list <param> \\}
|
||||
\common ..close_nest:
|
||||
match ,nested_frame \\{ endf \\}
|
||||
if flags and 1
|
||||
if flags and 1 shl 4
|
||||
if ~ flags and 1 shl 8
|
||||
movq xmm0,[rsp]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl 8
|
||||
mov rcx,rax
|
||||
else
|
||||
mov rcx,[rsp]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if flags and 1 shl 1
|
||||
if flags and 1 shl (4+1)
|
||||
if flags and 1 shl (8+1)
|
||||
movq xmm1,xmm0
|
||||
else
|
||||
movq xmm1,[rsp+8]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl (8+1)
|
||||
mov rdx,rax
|
||||
else
|
||||
mov rdx,[rsp+8]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if flags and 1 shl 2
|
||||
if flags and 1 shl (4+2)
|
||||
if flags and 1 shl (8+2)
|
||||
movq xmm2,xmm0
|
||||
else
|
||||
movq xmm2,[rsp+2*8]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl (8+2)
|
||||
mov r8,rax
|
||||
else
|
||||
mov r8,[rsp+2*8]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if flags and 1 shl 3
|
||||
if flags and 1 shl (4+3)
|
||||
if flags and 1 shl (8+3)
|
||||
movq xmm3,xmm0
|
||||
else
|
||||
movq xmm3,[rsp+3*8]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl (8+3)
|
||||
mov r9,rax
|
||||
else
|
||||
mov r9,[rsp+3*8]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
match args,list \\{ fastcall proc,args \\}
|
||||
match ,list \\{ fastcall proc
|
||||
define counter 0 \\}
|
||||
match ,outer_frame \\{ endf \\}
|
||||
proc@paramcheck equ proc
|
||||
match [name],proc \\{ define proc@paramcheck name \\}
|
||||
match name,proc@paramcheck \\{ if name eqtype 0 & defined name \\# % & counter <> name \\# %
|
||||
display "Error: invalid count of parameters for ",\\`name,".",0Dh,0Ah
|
||||
assert 0
|
||||
end if \\} \} }
|
||||
|
||||
allow_nesting
|
||||
|
||||
include 'pcount/kernel32.inc'
|
||||
include 'pcount/user32.inc'
|
||||
include 'pcount/gdi32.inc'
|
||||
include 'pcount/advapi32.inc'
|
||||
include 'pcount/comctl32.inc'
|
||||
include 'pcount/comdlg32.inc'
|
||||
include 'pcount/shell32.inc'
|
||||
include 'pcount/wsock32.inc'
|
||||
|
||||
macro import lib,[functions]
|
||||
{ common macro import_#lib \{ import lib,functions \} }
|
||||
|
||||
macro api [functions]
|
||||
{ common macro all_api \{ all_api
|
||||
api functions \} }
|
||||
macro all_api {}
|
||||
|
||||
include 'api/kernel32.inc'
|
||||
include 'api/user32.inc'
|
||||
include 'api/gdi32.inc'
|
||||
include 'api/advapi32.inc'
|
||||
include 'api/comctl32.inc'
|
||||
include 'api/comdlg32.inc'
|
||||
include 'api/shell32.inc'
|
||||
include 'api/wsock32.inc'
|
||||
|
||||
purge import,api
|
||||
|
||||
macro .data { section '.data' data readable writeable }
|
||||
|
||||
macro .code {
|
||||
section '.text' code readable executable
|
||||
entry $
|
||||
sub rsp,8
|
||||
local main,code
|
||||
entry equ main
|
||||
if main <> code
|
||||
jmp main
|
||||
end if
|
||||
code: }
|
||||
|
||||
macro .end value
|
||||
{
|
||||
label entry at value
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel32,'KERNEL32.DLL',\
|
||||
user32,'USER32.DLL',\
|
||||
gdi32,'GDI32.DLL',\
|
||||
advapi32,'ADVAPI32.DLL',\
|
||||
comctl32,'COMCTL32.DLL',\
|
||||
comdlg32,'COMDLG32.DLL',\
|
||||
shell32,'SHELL32.DLL',\
|
||||
wsock32,'WSOCK32.DLL'
|
||||
|
||||
import_kernel32
|
||||
import_user32
|
||||
import_gdi32
|
||||
import_advapi32
|
||||
import_comctl32
|
||||
import_comdlg32
|
||||
import_shell32
|
||||
import_wsock32
|
||||
|
||||
all_api
|
||||
}
|
||||
|
||||
virtual at 0
|
||||
inc ax
|
||||
if $=1
|
||||
detected_16bit = 1
|
||||
else
|
||||
detected_16bit = 0
|
||||
end if
|
||||
end virtual
|
||||
|
||||
if detected_16bit
|
||||
format PE64 GUI 5.0
|
||||
end if
|
||||
37
fasmw172/LICENSE.TXT
Normal file
37
fasmw172/LICENSE.TXT
Normal file
@@ -0,0 +1,37 @@
|
||||
|
||||
flat assembler version 1.72
|
||||
Copyright (c) 1999-2017, Tomasz Grysztar.
|
||||
All rights reserved.
|
||||
|
||||
This program is free for commercial and non-commercial use as long as
|
||||
the following conditions are adhered to.
|
||||
|
||||
Copyright remains Tomasz Grysztar, and as such any Copyright notices
|
||||
in the code are not to be removed.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
|
||||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
The licence and distribution terms for any publically available
|
||||
version or derivative of this code cannot be changed. i.e. this code
|
||||
cannot simply be copied and put under another distribution licence
|
||||
(including the GNU Public Licence).
|
||||
2038
fasmw172/SOURCE/ASSEMBLE.INC
Normal file
2038
fasmw172/SOURCE/ASSEMBLE.INC
Normal file
File diff suppressed because it is too large
Load Diff
3370
fasmw172/SOURCE/AVX.INC
Normal file
3370
fasmw172/SOURCE/AVX.INC
Normal file
File diff suppressed because it is too large
Load Diff
108
fasmw172/SOURCE/DOS/DPMI.INC
Normal file
108
fasmw172/SOURCE/DOS/DPMI.INC
Normal file
@@ -0,0 +1,108 @@
|
||||
|
||||
; flat assembler interface for DOS
|
||||
; Copyright (c) 1999-2017, Tomasz Grysztar.
|
||||
; All rights reserved.
|
||||
|
||||
init_dpmi_memory:
|
||||
mov ax,500h ; get free memory information
|
||||
mov edi,[buffer_address]
|
||||
int 31h
|
||||
mov ebx,[edi]
|
||||
allocate_dpmi_memory:
|
||||
mov edx,[memory_setting]
|
||||
shl edx,10
|
||||
jz dpmi_memory_size_ok
|
||||
cmp ebx,edx
|
||||
jbe dpmi_memory_size_ok
|
||||
mov ebx,edx
|
||||
dpmi_memory_size_ok:
|
||||
mov [memory_end],ebx
|
||||
mov ecx,ebx
|
||||
shr ebx,16
|
||||
mov ax,501h
|
||||
int 31h
|
||||
jnc dpmi_memory_ok
|
||||
mov ebx,[memory_end]
|
||||
shr ebx,1
|
||||
cmp ebx,4000h
|
||||
jb out_of_memory
|
||||
jmp allocate_dpmi_memory
|
||||
dpmi_memory_ok:
|
||||
shl ebx,16
|
||||
mov bx,cx
|
||||
sub ebx,[program_base]
|
||||
jc out_of_memory
|
||||
mov [memory_start],ebx
|
||||
add [memory_end],ebx
|
||||
mov ax,100h ; get free conventional memory size
|
||||
mov bx,-1
|
||||
int 31h
|
||||
movzx ecx,bx
|
||||
shl ecx,4
|
||||
jecxz no_conventional_memory
|
||||
mov ax,100h ; allocate all conventional memory
|
||||
int 31h
|
||||
movzx edi,ax
|
||||
shl edi,4
|
||||
sub edi,[program_base]
|
||||
jc no_conventional_memory
|
||||
mov [additional_memory],edi
|
||||
mov [additional_memory_end],edi
|
||||
add [additional_memory_end],ecx
|
||||
mov eax,[memory_end]
|
||||
sub eax,[memory_start]
|
||||
shr eax,2
|
||||
cmp eax,ecx
|
||||
ja no_conventional_memory
|
||||
ret
|
||||
no_conventional_memory:
|
||||
mov eax,[memory_end]
|
||||
mov ebx,[memory_start]
|
||||
sub eax,ebx
|
||||
shr eax,2
|
||||
mov [additional_memory],ebx
|
||||
add ebx,eax
|
||||
mov [additional_memory_end],ebx
|
||||
mov [memory_start],ebx
|
||||
ret
|
||||
|
||||
dpmi_dos_int:
|
||||
mov [real_mode_segment],main
|
||||
simulate_real_mode:
|
||||
push 0 ; SS:SP (DPMI will allocate stack)
|
||||
push 0 ; CS:IP (ignored)
|
||||
push 0
|
||||
push [real_mode_segment] ; DS
|
||||
push [real_mode_segment] ; ES
|
||||
stc
|
||||
pushfw
|
||||
push eax
|
||||
push ecx
|
||||
push edx
|
||||
push ebx
|
||||
push 0
|
||||
push ebp
|
||||
push esi
|
||||
push edi
|
||||
mov ax,300h
|
||||
mov bx,21h
|
||||
xor cx,cx
|
||||
mov edi,esp
|
||||
push es ss
|
||||
pop es
|
||||
int 31h
|
||||
pop es
|
||||
mov edi,[esp]
|
||||
mov esi,[esp+4]
|
||||
mov ebp,[esp+8]
|
||||
mov ebx,[esp+10h]
|
||||
mov edx,[esp+14h]
|
||||
mov ecx,[esp+18h]
|
||||
mov ah,[esp+20h]
|
||||
add esp,32h
|
||||
sahf
|
||||
mov eax,[esp-32h+1Ch]
|
||||
ret
|
||||
dpmi_dos_int_with_buffer:
|
||||
mov [real_mode_segment],buffer
|
||||
jmp simulate_real_mode
|
||||
435
fasmw172/SOURCE/DOS/FASM.ASM
Normal file
435
fasmw172/SOURCE/DOS/FASM.ASM
Normal file
@@ -0,0 +1,435 @@
|
||||
|
||||
; flat assembler interface for DOS
|
||||
; Copyright (c) 1999-2017, Tomasz Grysztar.
|
||||
; All rights reserved.
|
||||
|
||||
format MZ
|
||||
heap 0
|
||||
stack 8000h
|
||||
entry main:start
|
||||
|
||||
include 'modes.inc'
|
||||
|
||||
segment main use16
|
||||
|
||||
start:
|
||||
|
||||
mov ax,ds
|
||||
mov dx,[2Ch]
|
||||
push cs cs
|
||||
pop ds es
|
||||
mov [psp_segment],ax
|
||||
mov [environment_segment],dx
|
||||
|
||||
mov dx,_logo
|
||||
mov ah,9
|
||||
int 21h
|
||||
|
||||
cld
|
||||
|
||||
call go32
|
||||
use32
|
||||
|
||||
call get_params
|
||||
jc information
|
||||
|
||||
call init_memory
|
||||
|
||||
mov esi,_memory_prefix
|
||||
call display_string
|
||||
mov eax,[memory_end]
|
||||
sub eax,[memory_start]
|
||||
add eax,[additional_memory_end]
|
||||
sub eax,[additional_memory]
|
||||
shr eax,10
|
||||
call display_number
|
||||
mov esi,_memory_suffix
|
||||
call display_string
|
||||
|
||||
xor ah,ah
|
||||
int 1Ah
|
||||
mov ax,cx
|
||||
shl eax,16
|
||||
mov ax,dx
|
||||
mov [start_time],eax
|
||||
|
||||
cmp [mode],dpmi
|
||||
je compile
|
||||
jmp main+(first_segment shr 4):first_gate-first_segment
|
||||
|
||||
compile:
|
||||
and [preprocessing_done],0
|
||||
call preprocessor
|
||||
or [preprocessing_done],-1
|
||||
call parser
|
||||
call assembler
|
||||
call formatter
|
||||
|
||||
finish:
|
||||
call display_user_messages
|
||||
movzx eax,[current_pass]
|
||||
inc eax
|
||||
call display_number
|
||||
mov esi,_passes_suffix
|
||||
call display_string
|
||||
xor ah,ah
|
||||
int 1Ah
|
||||
mov ax,cx
|
||||
shl eax,16
|
||||
mov ax,dx
|
||||
sub eax,[start_time]
|
||||
mov ebx,100
|
||||
mul ebx
|
||||
mov ebx,182
|
||||
div ebx
|
||||
or eax,eax
|
||||
jz display_bytes_count
|
||||
xor edx,edx
|
||||
mov ebx,10
|
||||
div ebx
|
||||
push edx
|
||||
call display_number
|
||||
mov ah,2
|
||||
mov dl,'.'
|
||||
int 21h
|
||||
pop eax
|
||||
call display_number
|
||||
mov esi,_seconds_suffix
|
||||
call display_string
|
||||
display_bytes_count:
|
||||
mov eax,[written_size]
|
||||
call display_number
|
||||
mov esi,_bytes_suffix
|
||||
call display_string
|
||||
xor al,al
|
||||
jmp exit_program
|
||||
|
||||
information:
|
||||
mov esi,_usage
|
||||
call display_string
|
||||
mov al,1
|
||||
jmp exit_program
|
||||
|
||||
get_params:
|
||||
mov [input_file],0
|
||||
mov [output_file],0
|
||||
mov [symbols_file],0
|
||||
mov [memory_setting],0
|
||||
mov [passes_limit],100
|
||||
mov [definitions_pointer],predefinitions
|
||||
push ds
|
||||
mov ds,[psp_segment]
|
||||
mov esi,81h
|
||||
mov edi,params
|
||||
find_param:
|
||||
lodsb
|
||||
cmp al,20h
|
||||
je find_param
|
||||
cmp al,'-'
|
||||
je option_param
|
||||
cmp al,0Dh
|
||||
je all_params
|
||||
or al,al
|
||||
jz all_params
|
||||
cmp [es:input_file],0
|
||||
jne get_output_file
|
||||
mov [es:input_file],edi
|
||||
jmp process_param
|
||||
get_output_file:
|
||||
cmp [es:output_file],0
|
||||
jne bad_params
|
||||
mov [es:output_file],edi
|
||||
process_param:
|
||||
cmp al,22h
|
||||
je string_param
|
||||
copy_param:
|
||||
stosb
|
||||
lodsb
|
||||
cmp al,20h
|
||||
je param_end
|
||||
cmp al,0Dh
|
||||
je param_end
|
||||
or al,al
|
||||
jz param_end
|
||||
jmp copy_param
|
||||
string_param:
|
||||
lodsb
|
||||
cmp al,22h
|
||||
je string_param_end
|
||||
cmp al,0Dh
|
||||
je param_end
|
||||
or al,al
|
||||
jz param_end
|
||||
stosb
|
||||
jmp string_param
|
||||
option_param:
|
||||
lodsb
|
||||
cmp al,'m'
|
||||
je memory_option
|
||||
cmp al,'M'
|
||||
je memory_option
|
||||
cmp al,'p'
|
||||
je passes_option
|
||||
cmp al,'P'
|
||||
je passes_option
|
||||
cmp al,'d'
|
||||
je definition_option
|
||||
cmp al,'D'
|
||||
je definition_option
|
||||
cmp al,'s'
|
||||
je symbols_option
|
||||
cmp al,'S'
|
||||
je symbols_option
|
||||
invalid_option:
|
||||
pop ds
|
||||
stc
|
||||
ret
|
||||
get_option_value:
|
||||
xor eax,eax
|
||||
mov edx,eax
|
||||
get_option_digit:
|
||||
lodsb
|
||||
cmp al,20h
|
||||
je option_value_ok
|
||||
cmp al,0Dh
|
||||
je option_value_ok
|
||||
or al,al
|
||||
jz option_value_ok
|
||||
sub al,30h
|
||||
jc bad_params_value
|
||||
cmp al,9
|
||||
ja bad_params_value
|
||||
imul edx,10
|
||||
jo bad_params_value
|
||||
add edx,eax
|
||||
jc bad_params_value
|
||||
jmp get_option_digit
|
||||
option_value_ok:
|
||||
dec esi
|
||||
clc
|
||||
ret
|
||||
bad_params_value:
|
||||
stc
|
||||
ret
|
||||
memory_option:
|
||||
lodsb
|
||||
cmp al,20h
|
||||
je memory_option
|
||||
cmp al,0Dh
|
||||
je invalid_option
|
||||
or al,al
|
||||
jz invalid_option
|
||||
dec esi
|
||||
call get_option_value
|
||||
jc invalid_option
|
||||
or edx,edx
|
||||
jz invalid_option
|
||||
cmp edx,1 shl (32-10)
|
||||
jae invalid_option
|
||||
mov [es:memory_setting],edx
|
||||
jmp find_param
|
||||
passes_option:
|
||||
lodsb
|
||||
cmp al,20h
|
||||
je passes_option
|
||||
cmp al,0Dh
|
||||
je invalid_option
|
||||
or al,al
|
||||
jz invalid_option
|
||||
dec esi
|
||||
call get_option_value
|
||||
jc bad_params
|
||||
or edx,edx
|
||||
jz invalid_option
|
||||
cmp edx,10000h
|
||||
ja invalid_option
|
||||
mov [es:passes_limit],dx
|
||||
jmp find_param
|
||||
definition_option:
|
||||
lodsb
|
||||
cmp al,20h
|
||||
je definition_option
|
||||
cmp al,0Dh
|
||||
je bad_params
|
||||
or al,al
|
||||
jz bad_params
|
||||
dec esi
|
||||
push edi
|
||||
mov edi,[es:definitions_pointer]
|
||||
call convert_definition_option
|
||||
mov [es:definitions_pointer],edi
|
||||
pop edi
|
||||
jc invalid_option
|
||||
jmp find_param
|
||||
symbols_option:
|
||||
mov [es:symbols_file],edi
|
||||
find_symbols_file_name:
|
||||
lodsb
|
||||
cmp al,20h
|
||||
jne process_param
|
||||
jmp find_symbols_file_name
|
||||
param_end:
|
||||
dec esi
|
||||
string_param_end:
|
||||
xor al,al
|
||||
stosb
|
||||
jmp find_param
|
||||
all_params:
|
||||
xor al,al
|
||||
stosb
|
||||
pop ds
|
||||
cmp [input_file],0
|
||||
je no_input_file
|
||||
mov eax,[definitions_pointer]
|
||||
mov byte [eax],0
|
||||
mov [initial_definitions],predefinitions
|
||||
clc
|
||||
ret
|
||||
bad_params:
|
||||
pop ds
|
||||
no_input_file:
|
||||
stc
|
||||
ret
|
||||
convert_definition_option:
|
||||
mov ecx,edi
|
||||
xor al,al
|
||||
stosb
|
||||
copy_definition_name:
|
||||
lodsb
|
||||
cmp al,'='
|
||||
je copy_definition_value
|
||||
cmp al,20h
|
||||
je bad_definition_option
|
||||
cmp al,0Dh
|
||||
je bad_definition_option
|
||||
or al,al
|
||||
jz bad_definition_option
|
||||
stosb
|
||||
inc byte [es:ecx]
|
||||
jnz copy_definition_name
|
||||
bad_definition_option:
|
||||
stc
|
||||
ret
|
||||
copy_definition_value:
|
||||
lodsb
|
||||
cmp al,20h
|
||||
je definition_value_end
|
||||
cmp al,0Dh
|
||||
je definition_value_end
|
||||
or al,al
|
||||
jz definition_value_end
|
||||
cmp al,'\'
|
||||
jne definition_value_character
|
||||
cmp byte [esi],20h
|
||||
jne definition_value_character
|
||||
lodsb
|
||||
definition_value_character:
|
||||
stosb
|
||||
jmp copy_definition_value
|
||||
definition_value_end:
|
||||
dec esi
|
||||
xor al,al
|
||||
stosb
|
||||
clc
|
||||
ret
|
||||
|
||||
include '..\version.inc'
|
||||
|
||||
_logo db 'flat assembler version ',VERSION_STRING,24h
|
||||
_copyright db 'Copyright (c) 1999-2017, Tomasz Grysztar',0Dh,0Ah,0
|
||||
|
||||
_usage db 0Dh,0Ah
|
||||
db 'usage: fasm <source> [output]',0Dh,0Ah
|
||||
db 'optional settings:',0Dh,0Ah
|
||||
db ' -m <limit> set the limit in kilobytes for the available memory',0Dh,0Ah
|
||||
db ' -p <limit> set the maximum allowed number of passes',0Dh,0Ah
|
||||
db ' -d <name>=<value> define symbolic variable',0Dh,0Ah
|
||||
db ' -s <file> dump symbolic information for debugging',0Dh,0Ah
|
||||
db 0
|
||||
_memory_prefix db ' (',0
|
||||
_memory_suffix db ' kilobytes memory)',0Dh,0Ah,0
|
||||
_passes_suffix db ' passes, ',0
|
||||
_seconds_suffix db ' seconds, ',0
|
||||
_bytes_suffix db ' bytes.',0Dh,0Ah,0
|
||||
|
||||
error_prefix db 'error: ',0
|
||||
error_suffix db '.'
|
||||
cr_lf db 0Dh,0Ah,0
|
||||
line_number_start db ' [',0
|
||||
line_data_start db ':',0Dh,0Ah,0
|
||||
preprocessed_instruction_prefix db 'processed: ',0
|
||||
|
||||
include 'dpmi.inc'
|
||||
|
||||
align 16
|
||||
first_segment:
|
||||
|
||||
include '..\preproce.inc'
|
||||
include '..\parser.inc'
|
||||
include '..\exprpars.inc'
|
||||
|
||||
align 16
|
||||
second_segment:
|
||||
|
||||
include '..\exprcalc.inc'
|
||||
include '..\errors.inc'
|
||||
include '..\symbdump.inc'
|
||||
|
||||
include 'system.inc'
|
||||
|
||||
first_gate:
|
||||
and [preprocessing_done],0
|
||||
call preprocessor
|
||||
or [preprocessing_done],-1
|
||||
call parser
|
||||
jmp main+(second_segment shr 4):second_gate-second_segment
|
||||
first_segment_top = $ - first_segment
|
||||
|
||||
include '..\assemble.inc'
|
||||
include '..\formats.inc'
|
||||
include '..\x86_64.inc'
|
||||
include '..\avx.inc'
|
||||
|
||||
second_gate:
|
||||
call assembler
|
||||
call formatter
|
||||
jmp main:finish
|
||||
|
||||
second_segment_top = $ - second_segment
|
||||
|
||||
if first_segment_top>=10000h | second_segment_top>=10000h
|
||||
if UNREAL_ENABLED>0
|
||||
UNREAL_ENABLED = -1
|
||||
else
|
||||
UNREAL_ENABLED = 0
|
||||
end if
|
||||
else
|
||||
if UNREAL_ENABLED<0
|
||||
UNREAL_ENABLED = -1
|
||||
else
|
||||
UNREAL_ENABLED = 1
|
||||
end if
|
||||
end if
|
||||
|
||||
include '..\tables.inc'
|
||||
include '..\messages.inc'
|
||||
|
||||
align 4
|
||||
|
||||
include '..\variable.inc'
|
||||
|
||||
memory_setting dd ?
|
||||
start_time dd ?
|
||||
definitions_pointer dd ?
|
||||
params rb 100h
|
||||
predefinitions rb 100h
|
||||
|
||||
mode dw ?
|
||||
real_mode_segment dw ?
|
||||
displayed_count dd ?
|
||||
last_displayed rb 2
|
||||
preprocessing_done db ?
|
||||
|
||||
segment buffer
|
||||
|
||||
rb 1000h
|
||||
539
fasmw172/SOURCE/DOS/MODES.INC
Normal file
539
fasmw172/SOURCE/DOS/MODES.INC
Normal file
@@ -0,0 +1,539 @@
|
||||
|
||||
; flat assembler interface for DOS
|
||||
; Copyright (c) 1999-2017, Tomasz Grysztar.
|
||||
; All rights reserved.
|
||||
|
||||
segment modes use16
|
||||
|
||||
real32:
|
||||
mov ax,7202h
|
||||
push ax
|
||||
popf
|
||||
pushf
|
||||
pop bx
|
||||
cmp ax,bx
|
||||
je processor_ok
|
||||
call init_error
|
||||
db 'required 80386 or better',24h
|
||||
processor_ok:
|
||||
mov eax,ds
|
||||
shl eax,4
|
||||
mov [program_base],eax
|
||||
mov eax,buffer
|
||||
shl eax,4
|
||||
sub eax,[program_base]
|
||||
mov [buffer_address],eax
|
||||
|
||||
if UNREAL_ENABLED>0
|
||||
|
||||
smsw ax
|
||||
test al,1
|
||||
jnz dpmi
|
||||
mov eax,cs ; calculate linear address of GDT
|
||||
shl eax,4
|
||||
or dword [cs:real32_GDT+10],eax
|
||||
or dword [cs:real16_GDT+10],eax
|
||||
add [cs:real32_GDT_address],eax
|
||||
add [cs:real16_GDT_address],eax
|
||||
cli
|
||||
lgdt [cs:real32_GDTR]
|
||||
mov eax,cr0
|
||||
or al,1
|
||||
mov cr0,eax
|
||||
jmp 1 shl 3:test_pm32
|
||||
no_rm32:
|
||||
sti
|
||||
jmp dpmi
|
||||
test_pm32:
|
||||
use32
|
||||
mov eax,cr0
|
||||
and al,not 1
|
||||
mov cr0,eax
|
||||
mov ebx,0FFFFh
|
||||
jmp modes:test_rm32
|
||||
test_rm32:
|
||||
inc ebx
|
||||
jz short no_rm32
|
||||
lgdt [cs:real16_GDTR]
|
||||
mov eax,cr0
|
||||
or al,1
|
||||
mov cr0,eax
|
||||
jmp 1 shl 3:test_pm16
|
||||
test_pm16:
|
||||
use16
|
||||
mov eax,cr0
|
||||
and al,not 1
|
||||
mov cr0,eax
|
||||
jmp modes:test_rm16
|
||||
test_rm16:
|
||||
sti
|
||||
mov bx,(400h+(100h*interrupt.size)) shr 4
|
||||
mov ah,48h
|
||||
int 21h
|
||||
jc not_enough_memory
|
||||
push ds es
|
||||
mov es,ax
|
||||
push cs
|
||||
pop ds
|
||||
movzx eax,ax
|
||||
shl eax,4
|
||||
mov [real32_IDT_base],eax
|
||||
mov dx,100h
|
||||
xor bx,bx
|
||||
mov di,400h
|
||||
init_interrupts:
|
||||
mov si,interrupt
|
||||
mov [si+interrupt.vector],bx
|
||||
mov word [es:bx],di
|
||||
mov word [es:bx+2],es
|
||||
mov cx,interrupt.size
|
||||
rep movsb
|
||||
add bx,4
|
||||
dec dx
|
||||
jnz init_interrupts
|
||||
pop es ds
|
||||
call modes:switch_real32
|
||||
use32
|
||||
mov [mode],real32
|
||||
retfw
|
||||
use16
|
||||
|
||||
switch_real32:
|
||||
pushfw
|
||||
push eax
|
||||
push word ds
|
||||
push word es
|
||||
push word fs
|
||||
push word gs
|
||||
cli
|
||||
mov eax,ss
|
||||
mov cr3,eax
|
||||
lgdt [cs:real32_GDTR]
|
||||
mov eax,cr0 ; switch to protected mode
|
||||
or al,1
|
||||
mov cr0,eax
|
||||
jmp 1 shl 3:pm32_start
|
||||
pm32_start:
|
||||
use32
|
||||
mov ax,2 shl 3 ; load 32-bit data descriptor
|
||||
mov ds,ax ; to all data segment registers
|
||||
mov es,ax
|
||||
mov fs,ax
|
||||
mov gs,ax
|
||||
mov ss,ax
|
||||
mov eax,cr0 ; switch back to real mode
|
||||
and al,not 1
|
||||
mov cr0,eax
|
||||
jmp modes:pm32_end
|
||||
pm32_end:
|
||||
mov eax,cr3
|
||||
mov ss,ax
|
||||
lidt [cs:real32_IDTR]
|
||||
pop word gs
|
||||
pop word fs
|
||||
pop word es
|
||||
pop word ds
|
||||
pop eax
|
||||
popfw
|
||||
retfw
|
||||
|
||||
switch_real16:
|
||||
pushfw
|
||||
push eax
|
||||
cli
|
||||
lgdt [cs:real16_GDTR]
|
||||
mov eax,cr0 ; switch to protected mode
|
||||
or al,1
|
||||
mov cr0,eax
|
||||
jmp 1 shl 3:pm16_start
|
||||
pm16_start:
|
||||
use16
|
||||
mov eax,cr0 ; switch back to real mode
|
||||
and al,not 1
|
||||
mov cr0,eax
|
||||
jmp modes:pm16_end
|
||||
pm16_end:
|
||||
lidt [cs:real16_IDTR]
|
||||
pop eax
|
||||
popfw
|
||||
retfd
|
||||
use32
|
||||
|
||||
interrupt:
|
||||
call modes:switch_real16
|
||||
use16
|
||||
movzx esp,sp
|
||||
push word [esp+4]
|
||||
push cs
|
||||
call .real16
|
||||
pushfw
|
||||
pop word [esp+4]
|
||||
call modes:switch_real32
|
||||
use32
|
||||
iretw
|
||||
.real16:
|
||||
use16
|
||||
push eax
|
||||
push ds
|
||||
xor ax,ax
|
||||
mov ds,ax
|
||||
mov eax,[word 0]
|
||||
label .vector word at $-2-interrupt
|
||||
pop ds
|
||||
xchg eax,[esp]
|
||||
retfw
|
||||
.size = $-interrupt
|
||||
|
||||
label real32_GDTR pword
|
||||
real32_GDT_limit dw 3*8-1 ; limit of GDT
|
||||
real32_GDT_address dd real32_GDT ; linear address of GDT
|
||||
real32_GDT rw 4 ; null descriptor
|
||||
dw 0FFFFh,0,9A00h,0CFh ; 32-bit code descriptor
|
||||
dw 0FFFFh,0,9200h,08Fh ; 4 GB data descriptor
|
||||
label real16_GDTR pword
|
||||
real16_GDT_limit dw 2*8-1 ; limit of GDT
|
||||
real16_GDT_address dd real16_GDT ; linear address of GDT
|
||||
real16_GDT rw 4 ; null descriptor
|
||||
dw 0FFFFh,0,9A00h,0 ; 16-bit code descriptor
|
||||
|
||||
label real32_IDTR pword
|
||||
real32_IDT_limit dw 3FFh
|
||||
real32_IDT_base dd ?
|
||||
label real16_IDTR pword
|
||||
real16_IDT_limit dw 3FFh
|
||||
real16_IDT_base dd 0
|
||||
|
||||
end if
|
||||
|
||||
dpmi:
|
||||
mov ax,1687h
|
||||
int 2Fh
|
||||
or ax,ax ; DPMI installed?
|
||||
jnz no_dpmi
|
||||
test bl,1 ; 32-bit programs supported?
|
||||
jz no_dpmi
|
||||
mov word [cs:mode_switch],di
|
||||
mov word [cs:mode_switch+2],es
|
||||
mov bx,si ; allocate memory for DPMI data
|
||||
mov ah,48h
|
||||
int 21h
|
||||
jc not_enough_memory
|
||||
mov ds,[environment_segment]
|
||||
mov es,ax
|
||||
mov ax,1
|
||||
call far [cs:mode_switch] ; switch to protected mode
|
||||
jc no_dpmi
|
||||
mov cx,1
|
||||
xor ax,ax
|
||||
int 31h ; allocate descriptor for code
|
||||
mov si,ax
|
||||
xor ax,ax
|
||||
int 31h ; allocate descriptor for data
|
||||
mov di,ax
|
||||
mov dx,cs
|
||||
lar cx,dx
|
||||
shr cx,8
|
||||
or cx,0C000h
|
||||
mov bx,si
|
||||
mov ax,9
|
||||
int 31h ; set code descriptor access rights
|
||||
mov dx,ds
|
||||
lar cx,dx
|
||||
shr cx,8
|
||||
or cx,0C000h
|
||||
mov bx,di
|
||||
int 31h ; set data descriptor access rights
|
||||
mov ecx,main
|
||||
shl ecx,4
|
||||
mov dx,cx
|
||||
shr ecx,16
|
||||
mov ax,7
|
||||
int 31h ; set data descriptor base address
|
||||
movzx ecx,word [esp+2]
|
||||
shl ecx,4
|
||||
mov dx,cx
|
||||
shr ecx,16
|
||||
mov bx,si
|
||||
int 31h ; set code descriptor base address
|
||||
mov cx,0FFFFh
|
||||
mov dx,0FFFFh
|
||||
mov ax,8 ; set segment limit to 4 GB
|
||||
int 31h
|
||||
mov bx,di
|
||||
int 31h
|
||||
mov ax,ds
|
||||
mov ds,di
|
||||
mov [psp_segment],es
|
||||
mov [environment_segment],ax
|
||||
mov es,di
|
||||
mov [mode],dpmi
|
||||
pop ebx
|
||||
movzx ebx,bx
|
||||
push esi
|
||||
push ebx
|
||||
retfd
|
||||
|
||||
init_error:
|
||||
push cs
|
||||
pop ds
|
||||
mov dx,init_error_prefix
|
||||
mov ah,9
|
||||
int 21h
|
||||
pop dx
|
||||
int 21h
|
||||
mov dx,init_error_suffix
|
||||
int 21h
|
||||
mov ax,04CFFh
|
||||
int 21h
|
||||
|
||||
init_error_prefix db 0Dh,0Ah,'error: ',24h
|
||||
init_error_suffix db '.',0Dh,0Ah,24h
|
||||
|
||||
mode_switch dd ?
|
||||
|
||||
not_enough_memory:
|
||||
call init_error
|
||||
db 'not enough conventional memory',24h
|
||||
|
||||
if UNREAL_ENABLED>0
|
||||
|
||||
no_dpmi:
|
||||
smsw ax
|
||||
test al,1
|
||||
jz no_real32
|
||||
call init_error
|
||||
db 'system is in protected mode without 32-bit DPMI services',24h
|
||||
no_real32:
|
||||
call init_error
|
||||
db 'processor is not able to enter 32-bit real mode',24h
|
||||
|
||||
else
|
||||
|
||||
no_dpmi:
|
||||
call init_error
|
||||
db 'no 32-bit DPMI services are available',24h
|
||||
|
||||
end if
|
||||
|
||||
use32
|
||||
|
||||
if UNREAL_ENABLED>0
|
||||
|
||||
init_real32_memory:
|
||||
mov ax,4300h ; check for XMS
|
||||
int 2Fh
|
||||
cmp al,80h ; XMS present?
|
||||
je xms_init
|
||||
mov ax,0E801h ; check for large free extended memory
|
||||
int 15h
|
||||
jnc large_raw_memory
|
||||
mov ah,88h ; how much extended memory free?
|
||||
int 15h
|
||||
or ax,ax
|
||||
jz no_extended_memory
|
||||
movzx eax,ax ; convert AX kilobytes to pointer
|
||||
shl eax,10
|
||||
jmp use_raw_memory
|
||||
large_raw_memory:
|
||||
movzx ecx,cx
|
||||
shl ecx,10
|
||||
movzx edx,dx
|
||||
shl edx,16
|
||||
mov eax,ecx
|
||||
add eax,edx
|
||||
use_raw_memory:
|
||||
add eax,100000h
|
||||
sub eax,[program_base]
|
||||
mov [memory_end],eax
|
||||
push ds
|
||||
push 0 ; DS := 0
|
||||
pop ds
|
||||
call enable_a20 ; enable A20
|
||||
call test_a20 ; is A20 enabled?
|
||||
jz a20_ok
|
||||
pop ds
|
||||
jmp no_extended_memory
|
||||
a20_ok:
|
||||
lds bx,dword [4*19h]
|
||||
mov eax,100000h ; initial free extended memory base
|
||||
cmp dword [bx+12h],'VDIS' ; VDISK memory allocation?
|
||||
jne short no_vdisk ; if present, get base of free memory
|
||||
mov eax,dword [bx+2Ch] ; get first free extended memory byte
|
||||
add eax,0Fh ; align on paragraph
|
||||
and eax,0FFFFF0h ; address is only 24bit
|
||||
no_vdisk:
|
||||
push 0FFFFh ; DS := FFFFh for ext mem addressing
|
||||
pop ds
|
||||
cmp dword [13h],'VDIS' ; VDISK memory allocation?
|
||||
jne short vdisk_ok ; if present, get base of free memory
|
||||
movzx ebx,word [2Eh] ; get first free kilobyte
|
||||
shl ebx,10
|
||||
cmp eax,ebx ; pick larger of 2 addresses
|
||||
ja short vdisk_ok
|
||||
mov eax,ebx
|
||||
vdisk_ok:
|
||||
pop ds
|
||||
sub eax,[program_base]
|
||||
mov [memory_start],eax
|
||||
mov edx,[memory_setting]
|
||||
shl edx,10
|
||||
jz extended_memory_ok
|
||||
mov eax,[memory_end]
|
||||
sub eax,[memory_start]
|
||||
sub eax,edx
|
||||
jbe extended_memory_ok
|
||||
sub [memory_end],eax
|
||||
jmp extended_memory_ok
|
||||
enable_a20:
|
||||
call test_a20 ; is A20 already enabled?
|
||||
jz a20_enabled ; if yes, done
|
||||
in al,92h ; PS/2 A20 enable
|
||||
or al,2
|
||||
out 92h,al
|
||||
call test_a20 ; is A20 enabled?
|
||||
jz a20_enabled ; if yes, done
|
||||
call kb_wait ; AT A20 enable
|
||||
jnz a20_enabled
|
||||
mov al,0D1h
|
||||
out 64h,al
|
||||
call kb_wait
|
||||
jnz a20_enabled
|
||||
mov al,0DFh
|
||||
out 60h,al
|
||||
call kb_wait
|
||||
a20_enabled:
|
||||
retn
|
||||
kb_wait: ; wait for safe to write to 8042
|
||||
xor cx,cx
|
||||
.loop:
|
||||
in al,64h ; read 8042 status
|
||||
test al,2 ; buffer full?
|
||||
loopnz .loop ; if yes, loop
|
||||
retn
|
||||
test_a20: ; test for enabled A20
|
||||
mov al,[0] ; get byte from 0:0
|
||||
mov ah,al ; preserve old byte
|
||||
not al ; modify byte
|
||||
xchg al,[100000h] ; put modified byte to 0FFFFh:10h
|
||||
cmp ah,[0] ; set zero if byte at 0:0 not modified
|
||||
mov [100000h],al ; restore byte at 0FFFFh:10h
|
||||
retn ; return, zero if A20 enabled
|
||||
xms_init:
|
||||
push es
|
||||
mov ax,4310h ; get XMS driver address
|
||||
int 2Fh
|
||||
mov word [cs:xms_proc],bx ; store XMS driver address
|
||||
mov word [cs:xms_proc+2],es
|
||||
pop es
|
||||
mov ah,3 ; enable A20
|
||||
call call_xms
|
||||
cmp ax,1 ; error enabling A20?
|
||||
jne no_extended_memory
|
||||
mov ah,88h ; get free extended memory size (XMS 3.0)
|
||||
xor bl,bl
|
||||
call call_xms
|
||||
or bl,bl
|
||||
jz xms_large_init
|
||||
mov ah,8 ; get free extended memory size
|
||||
xor bl,bl
|
||||
call call_xms
|
||||
or bl,bl
|
||||
jnz no_extended_memory
|
||||
mov dx,ax
|
||||
movzx eax,ax
|
||||
shl eax,10
|
||||
mov [memory_end],eax
|
||||
mov ah,9 ; allocate largest memory block
|
||||
xms_allocate:
|
||||
mov ecx,[memory_setting]
|
||||
shl ecx,10
|
||||
jz xms_size_ok
|
||||
cmp ecx,[memory_end]
|
||||
jae xms_size_ok
|
||||
mov [memory_end],ecx
|
||||
mov edx,[memory_setting]
|
||||
xms_size_ok:
|
||||
call call_xms
|
||||
mov [cs:xms_handle],dx
|
||||
cmp ax,1
|
||||
jne no_extended_memory
|
||||
mov ah,0Ch ; lock extended memory block
|
||||
call call_xms
|
||||
cmp ax,1
|
||||
jne no_extended_memory
|
||||
shl edx,16
|
||||
mov dx,bx
|
||||
sub edx,[program_base]
|
||||
mov [memory_start],edx ; store memory block address
|
||||
add [memory_end],edx
|
||||
jmp extended_memory_ok
|
||||
xms_large_init:
|
||||
mov edx,eax
|
||||
shl eax,10
|
||||
mov [memory_end],eax
|
||||
mov ah,89h ; allocate largest memory block (XMS 3.0)
|
||||
jmp xms_allocate
|
||||
call_xms:
|
||||
call modes:switch_real16
|
||||
use16
|
||||
call far dword [cs:xms_proc]
|
||||
call modes:switch_real32
|
||||
use32
|
||||
retn
|
||||
no_extended_memory:
|
||||
xor eax,eax
|
||||
mov [memory_start],eax
|
||||
extended_memory_ok:
|
||||
mov ah,48h ; get free conventional memory size
|
||||
mov bx,-1
|
||||
int 21h
|
||||
movzx ecx,bx
|
||||
shl ecx,4
|
||||
mov ah,48h ; allocate all conventional memory
|
||||
int 21h
|
||||
movzx edi,ax
|
||||
shl edi,4
|
||||
sub edi,[program_base]
|
||||
mov [additional_memory],edi
|
||||
mov [additional_memory_end],edi
|
||||
add [additional_memory_end],ecx
|
||||
cmp [memory_start],0
|
||||
je only_conventional_memory
|
||||
mov eax,[memory_end]
|
||||
sub eax,[memory_start]
|
||||
shr eax,2
|
||||
cmp eax,ecx
|
||||
jbe real32_memory_ok
|
||||
mov eax,[memory_end]
|
||||
mov ebx,[memory_start]
|
||||
sub eax,ebx
|
||||
shr eax,2
|
||||
mov [additional_memory],ebx
|
||||
add ebx,eax
|
||||
mov [additional_memory_end],ebx
|
||||
mov [memory_start],ebx
|
||||
real32_memory_ok:
|
||||
retf
|
||||
only_conventional_memory:
|
||||
shr ecx,2 ; use part of conventional memory
|
||||
add edi,ecx ; as a substitute for extended memory
|
||||
mov [memory_start],edi
|
||||
xchg [additional_memory_end],edi
|
||||
mov [memory_end],edi
|
||||
retf
|
||||
|
||||
free_real32_memory:
|
||||
cmp [cs:xms_handle],0
|
||||
je no_xms
|
||||
mov ah,0Dh ; unlock extended memory block
|
||||
mov dx,[cs:xms_handle]
|
||||
call call_xms
|
||||
mov ah,0Ah ; free extended memory block
|
||||
call call_xms
|
||||
no_xms:
|
||||
retf
|
||||
|
||||
xms_proc dd ? ; XMS driver pointer
|
||||
xms_handle dw ? ; handle of XMS memory block
|
||||
|
||||
end if
|
||||
600
fasmw172/SOURCE/DOS/SYSTEM.INC
Normal file
600
fasmw172/SOURCE/DOS/SYSTEM.INC
Normal file
@@ -0,0 +1,600 @@
|
||||
|
||||
; flat assembler interface for DOS
|
||||
; Copyright (c) 1999-2017, Tomasz Grysztar.
|
||||
; All rights reserved.
|
||||
|
||||
go32:
|
||||
use16
|
||||
call modes:real32
|
||||
use32
|
||||
retw
|
||||
|
||||
program_base dd ?
|
||||
buffer_address dd ?
|
||||
psp_segment dw ?
|
||||
environment_segment dw ?
|
||||
|
||||
if UNREAL_ENABLED>0
|
||||
|
||||
init_memory:
|
||||
mov [stack_limit],0
|
||||
cmp [mode],dpmi
|
||||
je init_dpmi_memory
|
||||
call modes:init_real32_memory
|
||||
ret
|
||||
dos_int:
|
||||
cmp [mode],dpmi
|
||||
je dpmi_dos_int
|
||||
stc
|
||||
int 21h
|
||||
ret
|
||||
dos_int_with_buffer:
|
||||
cmp [mode],dpmi
|
||||
je dpmi_dos_int_with_buffer
|
||||
push ds buffer
|
||||
pop ds
|
||||
stc
|
||||
int 21h
|
||||
pop ds
|
||||
ret
|
||||
exit_program:
|
||||
cmp [mode],dpmi
|
||||
je exit_state_ok
|
||||
push eax
|
||||
call modes:free_real32_memory
|
||||
pop eax
|
||||
exit_state_ok:
|
||||
mov ah,4Ch
|
||||
int 21h
|
||||
|
||||
else
|
||||
|
||||
init_memory:
|
||||
mov [stack_limit],0
|
||||
jmp init_dpmi_memory
|
||||
dos_int:
|
||||
jmp dpmi_dos_int
|
||||
dos_int_with_buffer:
|
||||
jmp dpmi_dos_int_with_buffer
|
||||
exit_program:
|
||||
mov ah,4Ch
|
||||
int 21h
|
||||
|
||||
end if
|
||||
|
||||
get_environment_variable:
|
||||
mov ebx,esi
|
||||
push ds
|
||||
mov ds,[environment_segment]
|
||||
xor esi,esi
|
||||
compare_variable_names:
|
||||
mov edx,ebx
|
||||
compare_character:
|
||||
lodsb
|
||||
mov ah,[es:edx]
|
||||
inc edx
|
||||
cmp al,'='
|
||||
je end_of_variable_name
|
||||
or ah,ah
|
||||
jz next_variable
|
||||
sub ah,al
|
||||
jz compare_character
|
||||
cmp ah,20h
|
||||
jne next_variable
|
||||
cmp al,41h
|
||||
jb next_variable
|
||||
cmp al,5Ah
|
||||
jna compare_character
|
||||
next_variable:
|
||||
lodsb
|
||||
or al,al
|
||||
jnz next_variable
|
||||
cmp byte [esi],0
|
||||
jne compare_variable_names
|
||||
pop ds
|
||||
ret
|
||||
end_of_variable_name:
|
||||
or ah,ah
|
||||
jnz next_variable
|
||||
copy_variable_value:
|
||||
lodsb
|
||||
cmp edi,[es:memory_end]
|
||||
jae out_of_memory
|
||||
stosb
|
||||
or al,al
|
||||
jnz copy_variable_value
|
||||
dec edi
|
||||
pop ds
|
||||
ret
|
||||
|
||||
open:
|
||||
push esi edi
|
||||
call adapt_path
|
||||
mov ax,716Ch
|
||||
mov bx,100000b
|
||||
mov dx,1
|
||||
xor cx,cx
|
||||
xor si,si
|
||||
call dos_int_with_buffer
|
||||
jnc open_done
|
||||
cmp ax,7100h
|
||||
je old_open
|
||||
stc
|
||||
jmp open_done
|
||||
old_open:
|
||||
mov ax,3D00h
|
||||
xor dx,dx
|
||||
call dos_int_with_buffer
|
||||
open_done:
|
||||
mov bx,ax
|
||||
pop edi esi
|
||||
ret
|
||||
adapt_path:
|
||||
mov esi,edx
|
||||
mov edi,[buffer_address]
|
||||
copy_path:
|
||||
lodsb
|
||||
cmp al,'/'
|
||||
jne path_char_ok
|
||||
mov al,'\'
|
||||
path_char_ok:
|
||||
stosb
|
||||
or al,al
|
||||
jnz copy_path
|
||||
ret
|
||||
create:
|
||||
push esi edi
|
||||
call adapt_path
|
||||
mov ax,716Ch
|
||||
mov bx,100001b
|
||||
mov dx,10010b
|
||||
xor cx,cx
|
||||
xor si,si
|
||||
xor di,di
|
||||
call dos_int_with_buffer
|
||||
jnc create_done
|
||||
cmp ax,7100h
|
||||
je old_create
|
||||
stc
|
||||
jmp create_done
|
||||
old_create:
|
||||
mov ah,3Ch
|
||||
xor cx,cx
|
||||
xor dx,dx
|
||||
call dos_int_with_buffer
|
||||
create_done:
|
||||
mov bx,ax
|
||||
pop edi esi
|
||||
ret
|
||||
write:
|
||||
push edx esi edi ebp
|
||||
mov ebp,ecx
|
||||
mov esi,edx
|
||||
.loop:
|
||||
mov ecx,1000h
|
||||
sub ebp,1000h
|
||||
jnc .write
|
||||
add ebp,1000h
|
||||
mov ecx,ebp
|
||||
xor ebp,ebp
|
||||
.write:
|
||||
push ecx
|
||||
mov edi,[buffer_address]
|
||||
shr ecx,2
|
||||
rep movsd
|
||||
mov ecx,[esp]
|
||||
and ecx,11b
|
||||
rep movsb
|
||||
pop ecx
|
||||
mov ah,40h
|
||||
xor dx,dx
|
||||
call dos_int_with_buffer
|
||||
or ebp,ebp
|
||||
jnz .loop
|
||||
pop ebp edi esi edx
|
||||
ret
|
||||
read:
|
||||
push edx esi edi ebp
|
||||
mov ebp,ecx
|
||||
mov edi,edx
|
||||
.loop:
|
||||
mov ecx,1000h
|
||||
sub ebp,1000h
|
||||
jnc .read
|
||||
add ebp,1000h
|
||||
mov ecx,ebp
|
||||
xor ebp,ebp
|
||||
.read:
|
||||
push ecx
|
||||
mov ah,3Fh
|
||||
xor dx,dx
|
||||
call dos_int_with_buffer
|
||||
cmp ax,cx
|
||||
jne .eof
|
||||
mov esi,[buffer_address]
|
||||
mov ecx,[esp]
|
||||
shr ecx,2
|
||||
rep movsd
|
||||
pop ecx
|
||||
and ecx,11b
|
||||
rep movsb
|
||||
or ebp,ebp
|
||||
jnz .loop
|
||||
.exit:
|
||||
pop ebp edi esi edx
|
||||
ret
|
||||
.eof:
|
||||
pop ecx
|
||||
stc
|
||||
jmp .exit
|
||||
close:
|
||||
mov ah,3Eh
|
||||
int 21h
|
||||
ret
|
||||
lseek:
|
||||
mov ah,42h
|
||||
mov ecx,edx
|
||||
shr ecx,16
|
||||
int 21h
|
||||
pushf
|
||||
shl edx,16
|
||||
popf
|
||||
mov dx,ax
|
||||
mov eax,edx
|
||||
ret
|
||||
|
||||
display_string:
|
||||
lods byte [esi]
|
||||
or al,al
|
||||
jz string_end
|
||||
mov dl,al
|
||||
mov ah,2
|
||||
int 21h
|
||||
jmp display_string
|
||||
string_end:
|
||||
ret
|
||||
display_number:
|
||||
push ebx
|
||||
mov ecx,1000000000
|
||||
xor edx,edx
|
||||
xor bl,bl
|
||||
display_loop:
|
||||
div ecx
|
||||
push edx
|
||||
cmp ecx,1
|
||||
je display_digit
|
||||
or bl,bl
|
||||
jnz display_digit
|
||||
or al,al
|
||||
jz digit_ok
|
||||
not bl
|
||||
display_digit:
|
||||
mov dl,al
|
||||
add dl,30h
|
||||
mov ah,2
|
||||
int 21h
|
||||
digit_ok:
|
||||
mov eax,ecx
|
||||
xor edx,edx
|
||||
mov ecx,10
|
||||
div ecx
|
||||
mov ecx,eax
|
||||
pop eax
|
||||
or ecx,ecx
|
||||
jnz display_loop
|
||||
pop ebx
|
||||
ret
|
||||
|
||||
display_user_messages:
|
||||
mov [displayed_count],0
|
||||
call show_display_buffer
|
||||
cmp [displayed_count],1
|
||||
jb line_break_ok
|
||||
je make_line_break
|
||||
mov ax,word [last_displayed]
|
||||
cmp ax,0A0Dh
|
||||
je line_break_ok
|
||||
cmp ax,0D0Ah
|
||||
je line_break_ok
|
||||
make_line_break:
|
||||
mov ah,2
|
||||
mov dl,0Dh
|
||||
int 21h
|
||||
mov dl,0Ah
|
||||
int 21h
|
||||
line_break_ok:
|
||||
ret
|
||||
display_block:
|
||||
add [displayed_count],ecx
|
||||
cmp ecx,1
|
||||
ja take_last_two_characters
|
||||
jb display_character
|
||||
mov al,[last_displayed+1]
|
||||
mov ah,[esi]
|
||||
mov word [last_displayed],ax
|
||||
jmp display_character
|
||||
take_last_two_characters:
|
||||
mov ax,[esi+ecx-2]
|
||||
mov word [last_displayed],ax
|
||||
display_character:
|
||||
lods byte [esi]
|
||||
mov dl,al
|
||||
mov ah,2
|
||||
int 21h
|
||||
loopd display_character
|
||||
ret
|
||||
|
||||
fatal_error:
|
||||
mov esi,error_prefix
|
||||
call display_string
|
||||
pop esi
|
||||
call display_string
|
||||
mov esi,error_suffix
|
||||
call display_string
|
||||
mov al,0FFh
|
||||
jmp exit_program
|
||||
assembler_error:
|
||||
call display_user_messages
|
||||
mov ebx,[current_line]
|
||||
test ebx,ebx
|
||||
jz display_error_message
|
||||
pushd 0
|
||||
get_error_lines:
|
||||
mov eax,[ebx]
|
||||
cmp byte [eax],0
|
||||
je get_next_error_line
|
||||
push ebx
|
||||
test byte [ebx+7],80h
|
||||
jz display_error_line
|
||||
mov edx,ebx
|
||||
find_definition_origin:
|
||||
mov edx,[edx+12]
|
||||
test byte [edx+7],80h
|
||||
jnz find_definition_origin
|
||||
push edx
|
||||
get_next_error_line:
|
||||
mov ebx,[ebx+8]
|
||||
jmp get_error_lines
|
||||
display_error_line:
|
||||
mov esi,[ebx]
|
||||
call display_string
|
||||
mov esi,line_number_start
|
||||
call display_string
|
||||
mov eax,[ebx+4]
|
||||
and eax,7FFFFFFFh
|
||||
call display_number
|
||||
mov dl,']'
|
||||
mov ah,2
|
||||
int 21h
|
||||
pop esi
|
||||
cmp ebx,esi
|
||||
je line_number_ok
|
||||
mov dl,20h
|
||||
mov ah,2
|
||||
int 21h
|
||||
push esi
|
||||
mov esi,[esi]
|
||||
movzx ecx,byte [esi]
|
||||
inc esi
|
||||
call display_block
|
||||
mov esi,line_number_start
|
||||
call display_string
|
||||
pop esi
|
||||
mov eax,[esi+4]
|
||||
and eax,7FFFFFFFh
|
||||
call display_number
|
||||
mov dl,']'
|
||||
mov ah,2
|
||||
int 21h
|
||||
line_number_ok:
|
||||
mov esi,line_data_start
|
||||
call display_string
|
||||
mov esi,ebx
|
||||
mov edx,[esi]
|
||||
call open
|
||||
mov al,2
|
||||
xor edx,edx
|
||||
call lseek
|
||||
mov edx,[esi+8]
|
||||
sub eax,edx
|
||||
jz line_data_displayed
|
||||
mov [counter],eax
|
||||
xor al,al
|
||||
call lseek
|
||||
mov esi,[additional_memory]
|
||||
read_line_data:
|
||||
mov ecx,100h
|
||||
cmp ecx,[counter]
|
||||
jbe bytes_count_ok
|
||||
mov ecx,[counter]
|
||||
bytes_count_ok:
|
||||
sub [counter],ecx
|
||||
lea eax,[esi+ecx]
|
||||
cmp eax,[additional_memory_end]
|
||||
ja out_of_memory
|
||||
push ecx
|
||||
mov edx,esi
|
||||
call read
|
||||
pop ecx
|
||||
get_line_data:
|
||||
mov al,[esi]
|
||||
cmp al,0Ah
|
||||
je display_line_data
|
||||
cmp al,0Dh
|
||||
je display_line_data
|
||||
cmp al,1Ah
|
||||
je display_line_data
|
||||
or al,al
|
||||
jz display_line_data
|
||||
inc esi
|
||||
loop get_line_data
|
||||
cmp [counter],0
|
||||
ja read_line_data
|
||||
display_line_data:
|
||||
call close
|
||||
mov ecx,esi
|
||||
mov esi,[additional_memory]
|
||||
sub ecx,esi
|
||||
call display_block
|
||||
line_data_displayed:
|
||||
mov esi,cr_lf
|
||||
call display_string
|
||||
pop ebx
|
||||
or ebx,ebx
|
||||
jnz display_error_line
|
||||
cmp [preprocessing_done],0
|
||||
je display_error_message
|
||||
mov esi,preprocessed_instruction_prefix
|
||||
call display_string
|
||||
mov esi,[current_line]
|
||||
add esi,16
|
||||
mov edi,[additional_memory]
|
||||
xor dl,dl
|
||||
convert_instruction:
|
||||
lodsb
|
||||
cmp al,1Ah
|
||||
je copy_symbol
|
||||
cmp al,22h
|
||||
je copy_symbol
|
||||
cmp al,3Bh
|
||||
je instruction_converted
|
||||
stosb
|
||||
or al,al
|
||||
jz instruction_converted
|
||||
xor dl,dl
|
||||
jmp convert_instruction
|
||||
copy_symbol:
|
||||
or dl,dl
|
||||
jz space_ok
|
||||
mov byte [edi],20h
|
||||
inc edi
|
||||
space_ok:
|
||||
cmp al,22h
|
||||
je quoted
|
||||
lodsb
|
||||
movzx ecx,al
|
||||
rep movsb
|
||||
or dl,-1
|
||||
jmp convert_instruction
|
||||
quoted:
|
||||
mov al,27h
|
||||
stosb
|
||||
lodsd
|
||||
mov ecx,eax
|
||||
jecxz quoted_copied
|
||||
copy_quoted:
|
||||
lodsb
|
||||
stosb
|
||||
cmp al,27h
|
||||
jne quote_ok
|
||||
stosb
|
||||
quote_ok:
|
||||
loop copy_quoted
|
||||
quoted_copied:
|
||||
mov al,27h
|
||||
stosb
|
||||
or dl,-1
|
||||
jmp convert_instruction
|
||||
instruction_converted:
|
||||
xor al,al
|
||||
stosb
|
||||
mov esi,[additional_memory]
|
||||
call display_string
|
||||
mov esi,cr_lf
|
||||
call display_string
|
||||
display_error_message:
|
||||
mov esi,error_prefix
|
||||
call display_string
|
||||
pop esi
|
||||
call display_string
|
||||
mov esi,error_suffix
|
||||
call display_string
|
||||
mov al,2
|
||||
jmp exit_program
|
||||
|
||||
make_timestamp:
|
||||
mov ah,2Ah
|
||||
int 21h
|
||||
push dx cx
|
||||
movzx ecx,cx
|
||||
mov eax,ecx
|
||||
sub eax,1970
|
||||
mov ebx,365
|
||||
mul ebx
|
||||
mov ebp,eax
|
||||
mov eax,ecx
|
||||
sub eax,1969
|
||||
shr eax,2
|
||||
add ebp,eax
|
||||
mov eax,ecx
|
||||
sub eax,1901
|
||||
mov ebx,100
|
||||
div ebx
|
||||
sub ebp,eax
|
||||
mov eax,ecx
|
||||
xor edx,edx
|
||||
sub eax,1601
|
||||
mov ebx,400
|
||||
div ebx
|
||||
add ebp,eax
|
||||
movzx ecx,byte [esp+3]
|
||||
mov eax,ecx
|
||||
dec eax
|
||||
mov ebx,30
|
||||
mul ebx
|
||||
add ebp,eax
|
||||
cmp ecx,8
|
||||
jbe months_correction
|
||||
mov eax,ecx
|
||||
sub eax,7
|
||||
shr eax,1
|
||||
add ebp,eax
|
||||
mov ecx,8
|
||||
months_correction:
|
||||
mov eax,ecx
|
||||
shr eax,1
|
||||
add ebp,eax
|
||||
cmp ecx,2
|
||||
pop cx
|
||||
jbe day_correction_ok
|
||||
sub ebp,2
|
||||
test ecx,11b
|
||||
jnz day_correction_ok
|
||||
xor edx,edx
|
||||
mov eax,ecx
|
||||
mov ebx,100
|
||||
div ebx
|
||||
or edx,edx
|
||||
jnz day_correction
|
||||
mov eax,ecx
|
||||
mov ebx,400
|
||||
div ebx
|
||||
or edx,edx
|
||||
jnz day_correction_ok
|
||||
day_correction:
|
||||
inc ebp
|
||||
day_correction_ok:
|
||||
pop dx
|
||||
movzx eax,dl
|
||||
dec eax
|
||||
add eax,ebp
|
||||
mov ebx,24
|
||||
mul ebx
|
||||
push eax
|
||||
mov ah,2Ch
|
||||
int 21h
|
||||
pop eax
|
||||
push dx
|
||||
movzx ebx,ch
|
||||
add eax,ebx
|
||||
mov ebx,60
|
||||
mul ebx
|
||||
movzx ebx,cl
|
||||
add eax,ebx
|
||||
mov ebx,60
|
||||
mul ebx
|
||||
pop bx
|
||||
movzx ebx,bh
|
||||
add eax,ebx
|
||||
adc edx,0
|
||||
ret
|
||||
194
fasmw172/SOURCE/ERRORS.INC
Normal file
194
fasmw172/SOURCE/ERRORS.INC
Normal file
@@ -0,0 +1,194 @@
|
||||
|
||||
; flat assembler core
|
||||
; Copyright (c) 1999-2017, Tomasz Grysztar.
|
||||
; All rights reserved.
|
||||
|
||||
out_of_memory:
|
||||
push _out_of_memory
|
||||
jmp fatal_error
|
||||
stack_overflow:
|
||||
push _stack_overflow
|
||||
jmp fatal_error
|
||||
main_file_not_found:
|
||||
push _main_file_not_found
|
||||
jmp fatal_error
|
||||
write_failed:
|
||||
push _write_failed
|
||||
jmp fatal_error
|
||||
|
||||
unexpected_end_of_file:
|
||||
push _unexpected_end_of_file
|
||||
jmp general_error
|
||||
code_cannot_be_generated:
|
||||
push _code_cannot_be_generated
|
||||
jmp general_error
|
||||
format_limitations_exceeded:
|
||||
push _format_limitations_exceeded
|
||||
jmp general_error
|
||||
invalid_definition:
|
||||
push _invalid_definition
|
||||
general_error:
|
||||
cmp [symbols_file],0
|
||||
je fatal_error
|
||||
call dump_preprocessed_source
|
||||
jmp fatal_error
|
||||
|
||||
file_not_found:
|
||||
push _file_not_found
|
||||
jmp error_with_source
|
||||
error_reading_file:
|
||||
push _error_reading_file
|
||||
jmp error_with_source
|
||||
invalid_file_format:
|
||||
push _invalid_file_format
|
||||
jmp error_with_source
|
||||
invalid_macro_arguments:
|
||||
push _invalid_macro_arguments
|
||||
jmp error_with_source
|
||||
incomplete_macro:
|
||||
push _incomplete_macro
|
||||
jmp error_with_source
|
||||
unexpected_characters:
|
||||
push _unexpected_characters
|
||||
jmp error_with_source
|
||||
invalid_argument:
|
||||
push _invalid_argument
|
||||
jmp error_with_source
|
||||
illegal_instruction:
|
||||
push _illegal_instruction
|
||||
jmp error_with_source
|
||||
invalid_operand:
|
||||
push _invalid_operand
|
||||
jmp error_with_source
|
||||
invalid_operand_size:
|
||||
push _invalid_operand_size
|
||||
jmp error_with_source
|
||||
operand_size_not_specified:
|
||||
push _operand_size_not_specified
|
||||
jmp error_with_source
|
||||
operand_sizes_do_not_match:
|
||||
push _operand_sizes_do_not_match
|
||||
jmp error_with_source
|
||||
invalid_address_size:
|
||||
push _invalid_address_size
|
||||
jmp error_with_source
|
||||
address_sizes_do_not_agree:
|
||||
push _address_sizes_do_not_agree
|
||||
jmp error_with_source
|
||||
disallowed_combination_of_registers:
|
||||
push _disallowed_combination_of_registers
|
||||
jmp error_with_source
|
||||
long_immediate_not_encodable:
|
||||
push _long_immediate_not_encodable
|
||||
jmp error_with_source
|
||||
relative_jump_out_of_range:
|
||||
push _relative_jump_out_of_range
|
||||
jmp error_with_source
|
||||
invalid_expression:
|
||||
push _invalid_expression
|
||||
jmp error_with_source
|
||||
invalid_address:
|
||||
push _invalid_address
|
||||
jmp error_with_source
|
||||
invalid_value:
|
||||
push _invalid_value
|
||||
jmp error_with_source
|
||||
value_out_of_range:
|
||||
push _value_out_of_range
|
||||
jmp error_with_source
|
||||
undefined_symbol:
|
||||
mov edi,message
|
||||
mov esi,_undefined_symbol
|
||||
call copy_asciiz
|
||||
push message
|
||||
cmp [error_info],0
|
||||
je error_with_source
|
||||
mov esi,[error_info]
|
||||
mov esi,[esi+24]
|
||||
or esi,esi
|
||||
jz error_with_source
|
||||
mov byte [edi-1],20h
|
||||
call write_quoted_symbol_name
|
||||
jmp error_with_source
|
||||
copy_asciiz:
|
||||
lods byte [esi]
|
||||
stos byte [edi]
|
||||
test al,al
|
||||
jnz copy_asciiz
|
||||
ret
|
||||
write_quoted_symbol_name:
|
||||
mov al,27h
|
||||
stosb
|
||||
movzx ecx,byte [esi-1]
|
||||
rep movs byte [edi],[esi]
|
||||
mov ax,27h
|
||||
stosw
|
||||
ret
|
||||
symbol_out_of_scope:
|
||||
mov edi,message
|
||||
mov esi,_symbol_out_of_scope_1
|
||||
call copy_asciiz
|
||||
cmp [error_info],0
|
||||
je finish_symbol_out_of_scope_message
|
||||
mov esi,[error_info]
|
||||
mov esi,[esi+24]
|
||||
or esi,esi
|
||||
jz finish_symbol_out_of_scope_message
|
||||
mov byte [edi-1],20h
|
||||
call write_quoted_symbol_name
|
||||
finish_symbol_out_of_scope_message:
|
||||
mov byte [edi-1],20h
|
||||
mov esi,_symbol_out_of_scope_2
|
||||
call copy_asciiz
|
||||
push message
|
||||
jmp error_with_source
|
||||
invalid_use_of_symbol:
|
||||
push _invalid_use_of_symbol
|
||||
jmp error_with_source
|
||||
name_too_long:
|
||||
push _name_too_long
|
||||
jmp error_with_source
|
||||
invalid_name:
|
||||
push _invalid_name
|
||||
jmp error_with_source
|
||||
reserved_word_used_as_symbol:
|
||||
push _reserved_word_used_as_symbol
|
||||
jmp error_with_source
|
||||
symbol_already_defined:
|
||||
push _symbol_already_defined
|
||||
jmp error_with_source
|
||||
missing_end_quote:
|
||||
push _missing_end_quote
|
||||
jmp error_with_source
|
||||
missing_end_directive:
|
||||
push _missing_end_directive
|
||||
jmp error_with_source
|
||||
unexpected_instruction:
|
||||
push _unexpected_instruction
|
||||
jmp error_with_source
|
||||
extra_characters_on_line:
|
||||
push _extra_characters_on_line
|
||||
jmp error_with_source
|
||||
section_not_aligned_enough:
|
||||
push _section_not_aligned_enough
|
||||
jmp error_with_source
|
||||
setting_already_specified:
|
||||
push _setting_already_specified
|
||||
jmp error_with_source
|
||||
data_already_defined:
|
||||
push _data_already_defined
|
||||
jmp error_with_source
|
||||
too_many_repeats:
|
||||
push _too_many_repeats
|
||||
jmp error_with_source
|
||||
assertion_failed:
|
||||
push _assertion_failed
|
||||
jmp error_with_source
|
||||
invoked_error:
|
||||
push _invoked_error
|
||||
error_with_source:
|
||||
cmp [symbols_file],0
|
||||
je assembler_error
|
||||
call dump_preprocessed_source
|
||||
call restore_preprocessed_source
|
||||
jmp assembler_error
|
||||
2227
fasmw172/SOURCE/EXPRCALC.INC
Normal file
2227
fasmw172/SOURCE/EXPRCALC.INC
Normal file
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user