Initall commit
This commit is contained in:
84
.gitignore
vendored
Normal file
84
.gitignore
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
# Uncomment these types if you want even more clean repository. But be careful.
|
||||
# Uncomment these types if you want even more clean repository. But be careful.
|
||||
# It can make harm to an existing project source. Read explanations below.
|
||||
#
|
||||
# Resource files are binaries containing manifest, project icon and version info.
|
||||
# They can not be viewed as text or compared by diff-tools. Consider replacing them with .rc files.
|
||||
#*.res
|
||||
#
|
||||
# Type library file (binary). In old Delphi versions it should be stored.
|
||||
# Since Delphi 2009 it is produced from .ridl file and can safely be ignored.
|
||||
#*.tlb
|
||||
#
|
||||
# Diagram Portfolio file. Used by the diagram editor up to Delphi 7.
|
||||
# Uncomment this if you are not using diagrams or use newer Delphi version.
|
||||
#*.ddp
|
||||
#
|
||||
# Visual LiveBindings file. Added in Delphi XE2.
|
||||
# Uncomment this if you are not using LiveBindings Designer.
|
||||
#*.vlb
|
||||
#
|
||||
# Deployment Manager configuration file for your project. Added in Delphi XE2.
|
||||
# Uncomment this if it is not mobile development and you do not use remote debug feature.
|
||||
#*.deployproj
|
||||
#
|
||||
# C++ object files produced when C/C++ Output file generation is configured.
|
||||
# Uncomment this if you are not using external objects (zlib library for example).
|
||||
#*.obj
|
||||
#
|
||||
|
||||
# Delphi compiler-generated binaries (safe to delete)
|
||||
*.exe
|
||||
*.dll
|
||||
*.bpl
|
||||
*.bpi
|
||||
*.dcp
|
||||
*.so
|
||||
*.apk
|
||||
*.drc
|
||||
*.map
|
||||
*.dres
|
||||
*.rsm
|
||||
*.tds
|
||||
*.dcu
|
||||
*.lib
|
||||
*.a
|
||||
*.o
|
||||
*.ocx
|
||||
Temp/
|
||||
*.tmp
|
||||
|
||||
*.res
|
||||
|
||||
# Delphi autogenerated files (duplicated info)
|
||||
*.cfg
|
||||
*.hpp
|
||||
*Resource.rc
|
||||
|
||||
# Delphi local files (user-specific info)
|
||||
*.local
|
||||
*.identcache
|
||||
*.projdata
|
||||
*.tvsconfig
|
||||
*.dsk
|
||||
|
||||
# Delphi history and backups
|
||||
__history/
|
||||
__recovery/
|
||||
*.~*
|
||||
|
||||
# Castalia statistics file (since XE7 Castalia is distributed with Delphi)
|
||||
*.stat
|
||||
|
||||
#FPC
|
||||
backup/
|
||||
*.compiled
|
||||
*.ppu
|
||||
*.o
|
||||
*.or
|
||||
FPCTests/*.ico
|
||||
*.ini
|
||||
|
||||
Tests/Win32
|
||||
!FasmDll/*
|
||||
!FasmDll/DEMO/*
|
||||
79
FPCTests/fpcunitproject1.lpi
Normal file
79
FPCTests/fpcunitproject1.lpi
Normal file
@@ -0,0 +1,79 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<CONFIG>
|
||||
<ProjectOptions>
|
||||
<Version Value="10"/>
|
||||
<PathDelim Value="\"/>
|
||||
<General>
|
||||
<SessionStorage Value="InProjectDir"/>
|
||||
<MainUnit Value="0"/>
|
||||
<Title Value="fpcunitproject1"/>
|
||||
<ResourceType Value="res"/>
|
||||
<UseXPManifest Value="True"/>
|
||||
<Icon Value="0"/>
|
||||
</General>
|
||||
<i18n>
|
||||
<EnableI18N LFM="False"/>
|
||||
</i18n>
|
||||
<VersionInfo>
|
||||
<StringTable ProductVersion=""/>
|
||||
</VersionInfo>
|
||||
<BuildModes Count="1">
|
||||
<Item1 Name="Default" Default="True"/>
|
||||
</BuildModes>
|
||||
<PublishOptions>
|
||||
<Version Value="2"/>
|
||||
</PublishOptions>
|
||||
<RunParams>
|
||||
<local>
|
||||
<FormatVersion Value="1"/>
|
||||
</local>
|
||||
</RunParams>
|
||||
<RequiredPackages Count="3">
|
||||
<Item1>
|
||||
<PackageName Value="fpcunittestrunner"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<PackageName Value="LCL"/>
|
||||
</Item2>
|
||||
<Item3>
|
||||
<PackageName Value="FCL"/>
|
||||
</Item3>
|
||||
</RequiredPackages>
|
||||
<Units Count="3">
|
||||
<Unit0>
|
||||
<Filename Value="fpcunitproject1.lpr"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
</Unit0>
|
||||
<Unit1>
|
||||
<Filename Value="testcase1.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="TestCase1"/>
|
||||
</Unit1>
|
||||
<Unit2>
|
||||
<Filename Value="..\Source\Fasm4Delphi.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
</Unit2>
|
||||
</Units>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
<Version Value="11"/>
|
||||
<PathDelim Value="\"/>
|
||||
<SearchPaths>
|
||||
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||
<OtherUnitFiles Value="..\Source"/>
|
||||
</SearchPaths>
|
||||
</CompilerOptions>
|
||||
<Debugging>
|
||||
<Exceptions Count="3">
|
||||
<Item1>
|
||||
<Name Value="EAbort"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<Name Value="ECodetoolError"/>
|
||||
</Item2>
|
||||
<Item3>
|
||||
<Name Value="EFOpenError"/>
|
||||
</Item3>
|
||||
</Exceptions>
|
||||
</Debugging>
|
||||
</CONFIG>
|
||||
13
FPCTests/fpcunitproject1.lpr
Normal file
13
FPCTests/fpcunitproject1.lpr
Normal file
@@ -0,0 +1,13 @@
|
||||
program fpcunitproject1;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
uses
|
||||
Interfaces, Forms, GuiTestRunner, fpcunittestrunner, TestCase1;
|
||||
|
||||
begin
|
||||
Application.Initialize;
|
||||
Application.CreateForm(TGuiTestRunner, TestRunner);
|
||||
Application.Run;
|
||||
end.
|
||||
|
||||
40
FPCTests/fpcunitproject1.lps
Normal file
40
FPCTests/fpcunitproject1.lps
Normal file
@@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<CONFIG>
|
||||
<ProjectSession>
|
||||
<PathDelim Value="\"/>
|
||||
<Version Value="10"/>
|
||||
<BuildModes Active="Default"/>
|
||||
<Units Count="3">
|
||||
<Unit0>
|
||||
<Filename Value="fpcunitproject1.lpr"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<EditorIndex Value="-1"/>
|
||||
<CursorPos X="66" Y="6"/>
|
||||
<UsageCount Value="20"/>
|
||||
</Unit0>
|
||||
<Unit1>
|
||||
<Filename Value="testcase1.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="TestCase1"/>
|
||||
<IsVisibleTab Value="True"/>
|
||||
<EditorIndex Value="-1"/>
|
||||
<TopLine Value="21"/>
|
||||
<CursorPos X="62" Y="41"/>
|
||||
<UsageCount Value="20"/>
|
||||
</Unit1>
|
||||
<Unit2>
|
||||
<Filename Value="..\Source\Fasm4Delphi.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<EditorIndex Value="-1"/>
|
||||
<WindowIndex Value="-1"/>
|
||||
<TopLine Value="-1"/>
|
||||
<CursorPos X="-1" Y="-1"/>
|
||||
<UsageCount Value="20"/>
|
||||
</Unit2>
|
||||
</Units>
|
||||
<General>
|
||||
<ActiveWindowIndexAtStart Value="-1"/>
|
||||
</General>
|
||||
<JumpHistory HistoryIndex="-1"/>
|
||||
</ProjectSession>
|
||||
</CONFIG>
|
||||
51
FPCTests/testcase1.pas
Normal file
51
FPCTests/testcase1.pas
Normal file
@@ -0,0 +1,51 @@
|
||||
unit TestCase1;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, fpcunit, testutils, testregistry,Fasm4Delphi;
|
||||
|
||||
type
|
||||
|
||||
TTestCase1= class(TTestCase)
|
||||
published
|
||||
procedure TestHookUp;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
const
|
||||
CompliterMemSize=$10000;
|
||||
|
||||
var
|
||||
CompliterMem:PFASM_STATE;
|
||||
|
||||
procedure TTestCase1.TestHookUp;
|
||||
begin
|
||||
if fasm_AssembleFile('..\Tests\Test1.asm',CompliterMem,CompliterMemSize)<>FASM_OK then
|
||||
Fail('Error in test1:'+sLineBreak+
|
||||
'Condition: '+CompliterMem^.condition.ToString+sLineBreak+
|
||||
'Error Code: '+CompliterMem^.error_code.ToString);
|
||||
if fasm_Assemble('add eax,0',CompliterMem,CompliterMemSize)<>FASM_OK then
|
||||
writeln('Error in test2:'+sLineBreak+
|
||||
'Condition: '+CompliterMem^.condition.ToString+sLineBreak+
|
||||
'Error Code: '+CompliterMem^.error_code.ToString);
|
||||
if fasm_AssembleFile('..\FasmDll\FASM.ASH',CompliterMem,CompliterMemSize)=FASM_OK then
|
||||
Fail('Error in test3:'+sLineBreak+
|
||||
'FASM is compiling something that it is can not compile at all.');
|
||||
if fasm_Assemble('call -100',CompliterMem,CompliterMemSize)<>FASM_OK then
|
||||
Fail('Error in test4:'+sLineBreak+
|
||||
'Condition: '+CompliterMem^.condition.ToString+sLineBreak+
|
||||
'Error Code: '+CompliterMem^.error_code.ToString);
|
||||
end;
|
||||
|
||||
|
||||
|
||||
initialization
|
||||
LoadFASM('..\FasmDll\FASM.DLL');
|
||||
GetMem(CompliterMem,CompliterMemSize);
|
||||
RegisterTest(TTestCase1);
|
||||
end.
|
||||
|
||||
1
Fasm4Delphi
Submodule
1
Fasm4Delphi
Submodule
Submodule Fasm4Delphi added at 9dea543a8c
8
LICENSE
Normal file
8
LICENSE
Normal file
@@ -0,0 +1,8 @@
|
||||
MIT License
|
||||
Copyright (c) 2018 Artem Gavrilov,Vladislav Utkin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
5
README.md
Normal file
5
README.md
Normal file
@@ -0,0 +1,5 @@
|
||||
Universal Fasm Util with FPC compability.
|
||||
|
||||
Can use Fasm4Delphi as front-end.
|
||||
|
||||
Donate: https://money.yandex.ru/to/410014959153552
|
||||
276
Source/FasmOnDelphi.pas
Normal file
276
Source/FasmOnDelphi.pas
Normal file
@@ -0,0 +1,276 @@
|
||||
unit FasmOnDelphi platform;
|
||||
|
||||
{Delphi Translation&Tests:Artyom Gavrilov,Vlad Untkin.
|
||||
Donate:https://money.yandex.ru/to/410014959153552}
|
||||
|
||||
interface
|
||||
|
||||
{$Define USEFasm4Delphi}
|
||||
{$IFNDEF WIN32}
|
||||
{$UNDEF USEFasm4Delphi}
|
||||
{$ENDIF}
|
||||
|
||||
{$Define USEIOUtils}
|
||||
{$IFDEF DCC}
|
||||
{$IF CompilerVersion<23.0}
|
||||
{$UNDEF USEIOUtils}
|
||||
{$ENDIF}
|
||||
{$ELSE}
|
||||
{$UNDEF USEIOUtils}
|
||||
{$ENDIF}
|
||||
|
||||
uses
|
||||
System.SysUtils,
|
||||
{$IFDEF USEFasm4Delphi}Fasm4Delphi,{$ENDIF}
|
||||
{$IFDEF USEIOUtils}System.IOUtils{$ENDIF},Windows;
|
||||
|
||||
{$IFNDEF USEFasm4Delphi}
|
||||
type
|
||||
TFasmVersion=packed record
|
||||
V1,V2:word;
|
||||
end;
|
||||
|
||||
const
|
||||
//General errors and conditions
|
||||
FASM_OK =0;//FASM_STATE points to output
|
||||
FASM_WORKING =1;
|
||||
FASM_ERROR =2;//FASM_STATE contains error code
|
||||
FASM_INVALID_PARAMETER =-1;
|
||||
FASM_OUT_OF_MEMORY =-2;
|
||||
FASM_STACK_OVERFLOW =-3;
|
||||
FASM_SOURCE_NOT_FOUND =-4;
|
||||
FASM_UNEXPECTED_END_OF_SOURCE =-5;
|
||||
FASM_CANNOT_GENERATE_CODE =-6;
|
||||
FASM_FORMAT_LIMITATIONS_EXCEDDED =-7;
|
||||
FASM_WRITE_FAILED =-8;
|
||||
FASM_INVALID_DEFINITION =-9;
|
||||
|
||||
//Error codes for FASM_ERROR condition
|
||||
FASMERR_FILE_NOT_FOUND =-101;
|
||||
FASMERR_ERROR_READING_FILE =-102;
|
||||
FASMERR_INVALID_FILE_FORMAT =-103;
|
||||
FASMERR_INVALID_MACRO_ARGUMENTS =-104;
|
||||
FASMERR_INCOMPLETE_MACRO =-105;
|
||||
FASMERR_UNEXPECTED_CHARACTERS =-106;
|
||||
FASMERR_INVALID_ARGUMENT =-107;
|
||||
FASMERR_ILLEGAL_INSTRUCTION =-108;
|
||||
FASMERR_INVALID_OPERAND =-109;
|
||||
FASMERR_INVALID_OPERAND_SIZE =-110;
|
||||
FASMERR_OPERAND_SIZE_NOT_SPECIFIED =-111;
|
||||
FASMERR_OPERAND_SIZES_DO_NOT_MATCH =-112;
|
||||
FASMERR_INVALID_ADDRESS_SIZE =-113;
|
||||
FASMERR_ADDRESS_SIZES_DO_NOT_AGREE =-114;
|
||||
FASMERR_DISALLOWED_COMBINATION_OF_REGISTERS =-115;
|
||||
FASMERR_LONG_IMMEDIATE_NOT_ENCODABLE =-116;
|
||||
FASMERR_RELATIVE_JUMP_OUT_OF_RANGE =-117;
|
||||
FASMERR_INVALID_EXPRESSION =-118;
|
||||
FASMERR_INVALID_ADDRESS =-119;
|
||||
FASMERR_INVALID_VALUE =-120;
|
||||
FASMERR_VALUE_OUT_OF_RANGE =-121;
|
||||
FASMERR_UNDEFINED_SYMBOL =-122;
|
||||
FASMERR_INVALID_USE_OF_SYMBOL =-123;
|
||||
FASMERR_NAME_TOO_LONG =-124;
|
||||
FASMERR_INVALID_NAME =-125;
|
||||
FASMERR_RESERVED_WORD_USED_AS_SYMBOL =-126;
|
||||
FASMERR_SYMBOL_ALREADY_DEFINED =-127;
|
||||
FASMERR_MISSING_END_QUOTE =-128;
|
||||
FASMERR_MISSING_END_DIRECTIVE =-129;
|
||||
FASMERR_UNEXPECTED_INSTRUCTION =-130;
|
||||
FASMERR_EXTRA_CHARACTERS_ON_LINE =-131;
|
||||
FASMERR_SECTION_NOT_ALIGNED_ENOUGH =-132;
|
||||
FASMERR_SETTING_ALREADY_SPECIFIED =-133;
|
||||
FASMERR_DATA_ALREADY_DEFINED =-134;
|
||||
FASMERR_TOO_MANY_REPEATS =-135;
|
||||
FASMERR_SYMBOL_OUT_OF_SCOPE =-136;
|
||||
FASMERR_USER_ERROR =-140;
|
||||
FASMERR_ASSERTION_FAILED =-141;
|
||||
{$ENDIF}
|
||||
|
||||
type
|
||||
TFasmError=FASMERR_ASSERTION_FAILED ..FASM_ERROR;
|
||||
TFasmOutPut=record
|
||||
Error:TFasmError;
|
||||
OutStr:string;
|
||||
end;
|
||||
TFasmOut=record
|
||||
OutData:Pointer;
|
||||
sb:integer;
|
||||
OutPut:TFasmOutPut;
|
||||
end;
|
||||
|
||||
const
|
||||
FASMPath='fasm';
|
||||
|
||||
function FasmVersion:TFasmVersion;
|
||||
function FasmAssemble(const Source:AnsiString;cbMemorySize:cardinal;nPassesLimit:word=100):TFasmOut;
|
||||
{function FasmAssembleToFile(const Source,OutFile:AnsiString;cbMemorySize:cardinal;nPassesLimit:word=100):TFasmOutPut;
|
||||
function FasmAssembleFile(const Source:AnsiString;cbMemorySize:cardinal;nPassesLimit:word=100):TFasmOut;
|
||||
function FasmAssembleFileToFile(const Source,OutFile:AnsiString;cbMemorySize:cardinal;nPassesLimit:word=100):TFasmOutPut;{}
|
||||
|
||||
procedure OpenFASM(Location:string=FASMPath;AsDll:boolean=false);
|
||||
procedure SetFasmTemp(Path:string);
|
||||
|
||||
implementation
|
||||
|
||||
var
|
||||
FasmLocation:string='FASM';
|
||||
FasmTemp:string;
|
||||
IsDll:boolean=false;
|
||||
|
||||
function RunFasm(Command:string):string;
|
||||
var
|
||||
StartupInfo:TStartupInfo;
|
||||
ProcessInformation:TProcessInformation;
|
||||
OutPut:THandle;
|
||||
n:DWORD;
|
||||
Buff:AnsiChar;
|
||||
SecAtrtrs:TSecurityAttributes;
|
||||
begin
|
||||
SecAtrtrs.nLength:=SizeOf(TSecurityAttributes);
|
||||
SecAtrtrs.lpSecurityDescriptor:=nil;
|
||||
SecAtrtrs.bInheritHandle:=true;
|
||||
ZeroMemory(@StartupInfo,SizeOf(StartupInfo));
|
||||
StartupInfo.cb:=SizeOf(StartupInfo);
|
||||
StartupInfo.dwFlags:=STARTF_USESTDHANDLES;
|
||||
Createpipe(OutPut,StartupInfo.hStdOutput,@SecAtrtrs,0);
|
||||
if not CreateProcess(nil,PChar('"'+FasmLocation+'" '+Command),nil,nil,true,NORMAL_PRIORITY_CLASS,nil,nil,StartupInfo,ProcessInformation)then
|
||||
RaiseLastOSError;
|
||||
WaitForSingleObject(ProcessInformation.hProcess,INFINITE);
|
||||
Result:='';
|
||||
while PeekNamedPipe(OutPut,@Buff,1,nil,@n,nil) do
|
||||
if n<>0 then
|
||||
begin
|
||||
ReadFile(OutPut,Buff,1,n,nil);
|
||||
Result:=Result+Buff;
|
||||
end
|
||||
else
|
||||
break;
|
||||
CloseHandle(OutPut);
|
||||
CloseHandle(StartupInfo.hStdOutput);
|
||||
CloseHandle(ProcessInformation.hThread);
|
||||
CloseHandle(ProcessInformation.hProcess);
|
||||
end;
|
||||
|
||||
function FasmVersion:TFasmVersion;
|
||||
const
|
||||
preverstr='version ';
|
||||
var
|
||||
s:string;
|
||||
i:integer;
|
||||
begin
|
||||
{$IFDEF USEFasm4Delphi}
|
||||
if IsDll then
|
||||
Result:=fasm_GetVersion
|
||||
else
|
||||
begin
|
||||
{$ENDIF}
|
||||
s:=RunFasm('');
|
||||
i:=Pos(preverstr,s)+length(preverstr);
|
||||
Result.V1:=0;
|
||||
while s[i]<>'.' do
|
||||
begin
|
||||
Result.V1:=Result.V1*10+ord(s[i])-ord('0');
|
||||
inc(i);
|
||||
end;
|
||||
inc(i);
|
||||
Result.V2:=0;
|
||||
while(s[i]>='0')and(s[i]<='9')do
|
||||
begin
|
||||
Result.V2:=Result.V2*10+ord(s[i])-ord('0');
|
||||
inc(i);
|
||||
end;
|
||||
{$IFDEF USEFasm4Delphi}
|
||||
end;
|
||||
{$ENDIF}
|
||||
end;
|
||||
|
||||
function FasmAssemble(const Source:AnsiString;cbMemorySize:cardinal;nPassesLimit:word=100):TFasmOut;
|
||||
{$IFDEF USEFasm4Delphi}
|
||||
var
|
||||
Mem:PFASM_STATE;
|
||||
hDisp,hOut:THandle;
|
||||
n:DWORD;
|
||||
Buff:AnsiChar;
|
||||
SecAtrtrs:TSecurityAttributes;
|
||||
{$ENDIF}
|
||||
begin
|
||||
{$IFDEF USEFasm4Delphi}
|
||||
if IsDll then
|
||||
begin
|
||||
SecAtrtrs.nLength:=SizeOf(TSecurityAttributes);
|
||||
SecAtrtrs.lpSecurityDescriptor:=nil;
|
||||
SecAtrtrs.bInheritHandle:=true;
|
||||
CreatePipe(hOut,hDisp,@SecAtrtrs,0);
|
||||
GetMem(Mem,cbMemorySize);
|
||||
Result.OutPut.Error:=fasm_Assemble(PAnsiChar(Source),Mem,cbMemorySize,nPassesLimit,hDisp);
|
||||
if Result.OutPut.Error=FASM_OK then
|
||||
begin
|
||||
|
||||
end;
|
||||
FreeMem(Mem);
|
||||
Result.OutPut.OutStr:='';
|
||||
while PeekNamedPipe(hOut,@Buff,1,nil,@n,nil) do
|
||||
if n<>0 then
|
||||
begin
|
||||
ReadFile(hOut,Buff,1,n,nil);
|
||||
Result.OutPut.OutStr:=Result.OutPut.OutStr+Buff;
|
||||
end
|
||||
else
|
||||
break;
|
||||
CloseHandle(hOut);
|
||||
CloseHandle(hDisp);
|
||||
end
|
||||
else
|
||||
begin
|
||||
{$ENDIF}
|
||||
{$IFDEF USEFasm4Delphi}
|
||||
end;
|
||||
{$ENDIF}
|
||||
end;
|
||||
|
||||
procedure OpenFASM(Location:string=FASMPath;AsDll:boolean=false);
|
||||
begin
|
||||
{$IFDEF USEFasm4Delphi}
|
||||
if IsDll then
|
||||
FreeFASM;
|
||||
IsDll:=AsDll;
|
||||
if AsDll then
|
||||
LoadFASM(Location);
|
||||
FasmLocation:=Location;
|
||||
{$ELSE}
|
||||
if not AsDll then
|
||||
FasmLocation:=Location;
|
||||
{$ENDIF}
|
||||
end;
|
||||
|
||||
procedure SetFasmTemp(Path:string);
|
||||
begin
|
||||
FasmTemp:=Path;
|
||||
end;
|
||||
|
||||
{$IFDEF FPC}{$IFDEF WINDOWS}
|
||||
var
|
||||
Len:Integer;
|
||||
{$ENDIF}{$ENDIF}
|
||||
initialization
|
||||
{$IFDEF FPC}
|
||||
{$IFDEF WINDOWS}
|
||||
begin
|
||||
SetLength(Result,MAX_PATH);
|
||||
Len:=GetTempPath(MAX_PATH,PChar(FasmTemp));
|
||||
if Len<>0 then
|
||||
begin
|
||||
Len:=GetLongPathName(PChar(FasmTemp),nil,0);
|
||||
GetLongPathName(PChar(FasmTemp),PChar(FasmTemp),Len);
|
||||
SetLength(FasmTemp,Len-1);
|
||||
end
|
||||
else
|
||||
FasmTemp:='';
|
||||
end;
|
||||
{$ELSE}
|
||||
FasmTemp:='/tmp';
|
||||
{$ENDIF}
|
||||
{$ELSE}
|
||||
FasmTemp:=TPath.GetTempPath;
|
||||
{$ENDIF}
|
||||
end.
|
||||
2
Tests/Test1.asm
Normal file
2
Tests/Test1.asm
Normal file
@@ -0,0 +1,2 @@
|
||||
a db 0
|
||||
cmp [a],0
|
||||
61
Tests/Tester.dpr
Normal file
61
Tests/Tester.dpr
Normal file
@@ -0,0 +1,61 @@
|
||||
program Tester;
|
||||
|
||||
{$IFNDEF TESTINSIGHT}
|
||||
{$APPTYPE CONSOLE}
|
||||
{$ENDIF}{$STRONGLINKTYPES ON}
|
||||
uses
|
||||
System.SysUtils,
|
||||
{$IFDEF TESTINSIGHT}
|
||||
TestInsight.DUnitX,
|
||||
{$ENDIF }
|
||||
DUnitX.Loggers.Console,
|
||||
DUnitX.Loggers.Xml.NUnit,
|
||||
DUnitX.TestFramework,
|
||||
TesterMain in 'TesterMain.pas',
|
||||
FasmOnDelphi in '..\Source\FasmOnDelphi.pas',
|
||||
Fasm4Delphi in '..\Fasm4Delphi\Source\Fasm4Delphi.pas';
|
||||
|
||||
var
|
||||
runner : ITestRunner;
|
||||
results : IRunResults;
|
||||
logger : ITestLogger;
|
||||
nunitLogger : ITestLogger;
|
||||
begin
|
||||
{$IFDEF TESTINSIGHT}
|
||||
TestInsight.DUnitX.RunRegisteredTests;
|
||||
exit;
|
||||
{$ENDIF}
|
||||
try
|
||||
//Check command line options, will exit if invalid
|
||||
TDUnitX.CheckCommandLine;
|
||||
//Create the test runner
|
||||
runner := TDUnitX.CreateRunner;
|
||||
//Tell the runner to use RTTI to find Fixtures
|
||||
runner.UseRTTI := True;
|
||||
//tell the runner how we will log things
|
||||
//Log to the console window
|
||||
logger := TDUnitXConsoleLogger.Create(true);
|
||||
runner.AddLogger(logger);
|
||||
//Generate an NUnit compatible XML File
|
||||
nunitLogger := TDUnitXXMLNUnitFileLogger.Create(TDUnitX.Options.XMLOutputFile);
|
||||
runner.AddLogger(nunitLogger);
|
||||
runner.FailsOnNoAsserts := False; //When true, Assertions must be made during tests;
|
||||
|
||||
//Run tests
|
||||
results := runner.Execute;
|
||||
if not results.AllPassed then
|
||||
System.ExitCode := EXIT_ERRORS;
|
||||
|
||||
{$IFNDEF CI}
|
||||
//We don't want this happening when running under CI.
|
||||
if TDUnitX.Options.ExitBehavior = TDUnitXExitBehavior.Pause then
|
||||
begin
|
||||
System.Write('Done.. press <Enter> key to quit.');
|
||||
System.Readln;
|
||||
end;
|
||||
{$ENDIF}
|
||||
except
|
||||
on E: Exception do
|
||||
System.Writeln(E.ClassName, ': ', E.Message);
|
||||
end;
|
||||
end.
|
||||
565
Tests/Tester.dproj
Normal file
565
Tests/Tester.dproj
Normal file
@@ -0,0 +1,565 @@
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ProjectGuid>{4DB29771-5426-49E7-B0D8-B77F95D4EDCE}</ProjectGuid>
|
||||
<ProjectVersion>18.3</ProjectVersion>
|
||||
<FrameworkType>None</FrameworkType>
|
||||
<MainSource>Tester.dpr</MainSource>
|
||||
<Base>True</Base>
|
||||
<Config Condition="'$(Config)'==''">Debug</Config>
|
||||
<Platform Condition="'$(Platform)'==''">Win32</Platform>
|
||||
<TargetedPlatforms>3</TargetedPlatforms>
|
||||
<AppType>Console</AppType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="('$(Platform)'=='Android' and '$(Base)'=='true') or '$(Base_Android)'!=''">
|
||||
<Base_Android>true</Base_Android>
|
||||
<CfgParent>Base</CfgParent>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="('$(Platform)'=='iOSDevice32' and '$(Base)'=='true') or '$(Base_iOSDevice32)'!=''">
|
||||
<Base_iOSDevice32>true</Base_iOSDevice32>
|
||||
<CfgParent>Base</CfgParent>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="('$(Platform)'=='iOSDevice64' and '$(Base)'=='true') or '$(Base_iOSDevice64)'!=''">
|
||||
<Base_iOSDevice64>true</Base_iOSDevice64>
|
||||
<CfgParent>Base</CfgParent>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="('$(Platform)'=='iOSSimulator' and '$(Base)'=='true') or '$(Base_iOSSimulator)'!=''">
|
||||
<Base_iOSSimulator>true</Base_iOSSimulator>
|
||||
<CfgParent>Base</CfgParent>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="('$(Platform)'=='OSX32' and '$(Base)'=='true') or '$(Base_OSX32)'!=''">
|
||||
<Base_OSX32>true</Base_OSX32>
|
||||
<CfgParent>Base</CfgParent>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
|
||||
<Base_Win32>true</Base_Win32>
|
||||
<CfgParent>Base</CfgParent>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''">
|
||||
<Base_Win64>true</Base_Win64>
|
||||
<CfgParent>Base</CfgParent>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_1)'!=''">
|
||||
<Cfg_1>true</Cfg_1>
|
||||
<CfgParent>Base</CfgParent>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''">
|
||||
<Cfg_1_Win32>true</Cfg_1_Win32>
|
||||
<CfgParent>Cfg_1</CfgParent>
|
||||
<Cfg_1>true</Cfg_1>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''">
|
||||
<Cfg_2>true</Cfg_2>
|
||||
<CfgParent>Base</CfgParent>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Base)'!=''">
|
||||
<DCC_DcuOutput>.\$(Platform)\$(Config)</DCC_DcuOutput>
|
||||
<DCC_ExeOutput>.\$(Platform)\$(Config)</DCC_ExeOutput>
|
||||
<DCC_E>false</DCC_E>
|
||||
<DCC_N>false</DCC_N>
|
||||
<DCC_S>false</DCC_S>
|
||||
<DCC_F>false</DCC_F>
|
||||
<DCC_K>false</DCC_K>
|
||||
<DCC_UsePackage>RESTComponents;emsclientfiredac;FireDACIBDriver;emsclient;FireDACCommon;RESTBackendComponents;soapserver;CloudService;FireDACCommonDriver;inet;FireDAC;FireDACSqliteDriver;soaprtl;soapmidas;$(DCC_UsePackage)</DCC_UsePackage>
|
||||
<DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)</DCC_Namespace>
|
||||
<UsingDelphiRTL>true</UsingDelphiRTL>
|
||||
<Icon_MainIcon>$(BDS)\bin\delphi_PROJECTICON.ico</Icon_MainIcon>
|
||||
<Icns_MainIcns>$(BDS)\bin\delphi_PROJECTICNS.icns</Icns_MainIcns>
|
||||
<DCC_UnitSearchPath>$(DUnitX);$(DCC_UnitSearchPath)</DCC_UnitSearchPath>
|
||||
<SanitizedProjectName>Tester</SanitizedProjectName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Base_Android)'!=''">
|
||||
<DCC_UsePackage>DBXSqliteDriver;DBXInterBaseDriver;DataSnapFireDAC;tethering;bindcompfmx;FmxTeeUI;fmx;FireDACDBXDriver;dbexpress;IndyCore;dsnap;DataSnapCommon;bindengine;DataSnapClient;bindcompdbx;IndyIPCommon;IndyIPServer;IndySystem;fmxFireDAC;ibmonitor;FMXTee;DbxCommonDriver;ibxpress;xmlrtl;DataSnapNativeClient;ibxbindings;rtl;FireDACDSDriver;DbxClientDriver;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;$(DCC_UsePackage)</DCC_UsePackage>
|
||||
<EnabledSysJars>android-support-v4.dex.jar;cloud-messaging.dex.jar;fmx.dex.jar;google-analytics-v2.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar;google-play-services.dex.jar</EnabledSysJars>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Base_iOSDevice32)'!=''">
|
||||
<DCC_UsePackage>DBXSqliteDriver;DBXInterBaseDriver;DataSnapFireDAC;tethering;bindcompfmx;FmxTeeUI;fmx;FireDACDBXDriver;dbexpress;IndyCore;dsnap;DataSnapCommon;bindengine;DataSnapClient;bindcompdbx;IndyIPCommon;IndyIPServer;IndySystem;fmxFireDAC;ibmonitor;FMXTee;DbxCommonDriver;ibxpress;xmlrtl;DataSnapNativeClient;ibxbindings;rtl;FireDACDSDriver;DbxClientDriver;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;fmxase;$(DCC_UsePackage)</DCC_UsePackage>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Base_iOSDevice64)'!=''">
|
||||
<DCC_UsePackage>DBXSqliteDriver;DBXInterBaseDriver;DataSnapFireDAC;tethering;bindcompfmx;FmxTeeUI;fmx;FireDACDBXDriver;dbexpress;IndyCore;dsnap;DataSnapCommon;bindengine;DataSnapClient;bindcompdbx;IndyIPCommon;IndyIPServer;IndySystem;fmxFireDAC;ibmonitor;FMXTee;DbxCommonDriver;ibxpress;xmlrtl;DataSnapNativeClient;ibxbindings;rtl;FireDACDSDriver;DbxClientDriver;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;fmxase;$(DCC_UsePackage)</DCC_UsePackage>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Base_iOSSimulator)'!=''">
|
||||
<DCC_UsePackage>DBXSqliteDriver;DBXInterBaseDriver;DataSnapFireDAC;tethering;bindcompfmx;FmxTeeUI;fmx;FireDACDBXDriver;dbexpress;IndyCore;dsnap;DataSnapCommon;bindengine;DataSnapClient;bindcompdbx;IndyIPCommon;IndyIPServer;IndySystem;fmxFireDAC;ibmonitor;FMXTee;DbxCommonDriver;ibxpress;xmlrtl;DataSnapNativeClient;ibxbindings;rtl;FireDACDSDriver;DbxClientDriver;CustomIPTransport;bindcomp;IndyIPClient;dbxcds;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;fmxase;$(DCC_UsePackage)</DCC_UsePackage>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Base_OSX32)'!=''">
|
||||
<DCC_UsePackage>DBXSqliteDriver;DataSnapServerMidas;DBXInterBaseDriver;DataSnapFireDAC;tethering;FireDACMSSQLDriver;bindcompfmx;DBXOracleDriver;inetdb;FmxTeeUI;emsedge;fmx;fmxdae;FireDACDBXDriver;dbexpress;IndyCore;dsnap;DataSnapCommon;bindengine;DBXMySQLDriver;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;DataSnapClient;bindcompdbx;IndyIPCommon;IndyIPServer;IndySystem;fmxFireDAC;emshosting;FireDACPgDriver;ibmonitor;FireDACASADriver;FireDACTDataDriver;FMXTee;DbxCommonDriver;ibxpress;DataSnapServer;xmlrtl;DataSnapNativeClient;fmxobj;ibxbindings;rtl;FireDACDSDriver;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;bindcomp;DBXInformixDriver;IndyIPClient;dbxcds;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;inetdbxpress;FireDACMongoDBDriver;IndyProtocols;fmxase;$(DCC_UsePackage)</DCC_UsePackage>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Base_Win32)'!=''">
|
||||
<DCC_UsePackage>DBXSqliteDriver;DataSnapServerMidas;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;DataSnapFireDAC;svnui;tethering;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;svn;Intraweb;DBXOracleDriver;inetdb;RaizeComponentsVcl;FmxTeeUI;emsedge;RaizeComponentsVclDb;fmx;fmxdae;vclib;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;DataSnapCommon;DataSnapConnectors;VCLRESTComponents;vclie;bindengine;DBXMySQLDriver;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;DataSnapClient;bindcompdbx;IndyIPCommon;vcl;DBXSybaseASEDriver;IndyIPServer;IndySystem;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;TeeDB;emshosting;FireDACPgDriver;ibmonitor;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;FMXTee;DbxCommonDriver;ibxpress;Tee;DataSnapServer;xmlrtl;DataSnapNativeClient;fmxobj;vclwinx;ibxbindings;rtl;FireDACDSDriver;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;vcldsnap;CodeSiteExpressPkg;bindcomp;appanalytics;DBXInformixDriver;IndyIPClient;bindcompvcl;TeeUI;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;inetdbxpress;FireDACMongoDBDriver;IndyProtocols;fmxase;$(DCC_UsePackage)</DCC_UsePackage>
|
||||
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
|
||||
<BT_BuildType>Debug</BT_BuildType>
|
||||
<VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
|
||||
<VerInfo_Locale>1033</VerInfo_Locale>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Base_Win64)'!=''">
|
||||
<VerInfo_Locale>1033</VerInfo_Locale>
|
||||
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace)</DCC_Namespace>
|
||||
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
|
||||
<DCC_UsePackage>DBXSqliteDriver;DataSnapServerMidas;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;DataSnapFireDAC;tethering;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;Intraweb;DBXOracleDriver;inetdb;RaizeComponentsVcl;FmxTeeUI;emsedge;RaizeComponentsVclDb;fmx;fmxdae;vclib;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;DataSnapCommon;DataSnapConnectors;VCLRESTComponents;vclie;bindengine;DBXMySQLDriver;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;DataSnapClient;bindcompdbx;IndyIPCommon;vcl;DBXSybaseASEDriver;IndyIPServer;IndySystem;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;TeeDB;emshosting;FireDACPgDriver;ibmonitor;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;FMXTee;DbxCommonDriver;ibxpress;Tee;DataSnapServer;xmlrtl;DataSnapNativeClient;fmxobj;vclwinx;ibxbindings;rtl;FireDACDSDriver;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;vcldsnap;bindcomp;appanalytics;DBXInformixDriver;IndyIPClient;bindcompvcl;TeeUI;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;inetdbxpress;FireDACMongoDBDriver;IndyProtocols;fmxase;$(DCC_UsePackage)</DCC_UsePackage>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Cfg_1)'!=''">
|
||||
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
|
||||
<DCC_DebugDCUs>true</DCC_DebugDCUs>
|
||||
<DCC_Optimize>false</DCC_Optimize>
|
||||
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
|
||||
<DCC_DebugInfoInExe>true</DCC_DebugInfoInExe>
|
||||
<DCC_RemoteDebug>true</DCC_RemoteDebug>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
|
||||
<DCC_RemoteDebug>false</DCC_RemoteDebug>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Cfg_2)'!=''">
|
||||
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
|
||||
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
|
||||
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
|
||||
<DCC_DebugInformation>0</DCC_DebugInformation>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<DelphiCompile Include="$(MainSource)">
|
||||
<MainSource>MainSource</MainSource>
|
||||
</DelphiCompile>
|
||||
<DCCReference Include="TesterMain.pas"/>
|
||||
<DCCReference Include="..\Source\FasmOnDelphi.pas"/>
|
||||
<DCCReference Include="..\Fasm4Delphi\Source\Fasm4Delphi.pas"/>
|
||||
<BuildConfiguration Include="Release">
|
||||
<Key>Cfg_2</Key>
|
||||
<CfgParent>Base</CfgParent>
|
||||
</BuildConfiguration>
|
||||
<BuildConfiguration Include="Base">
|
||||
<Key>Base</Key>
|
||||
</BuildConfiguration>
|
||||
<BuildConfiguration Include="Debug">
|
||||
<Key>Cfg_1</Key>
|
||||
<CfgParent>Base</CfgParent>
|
||||
</BuildConfiguration>
|
||||
</ItemGroup>
|
||||
<ProjectExtensions>
|
||||
<Borland.Personality>Delphi.Personality.12</Borland.Personality>
|
||||
<Borland.ProjectType>Console</Borland.ProjectType>
|
||||
<BorlandProject>
|
||||
<Delphi.Personality>
|
||||
<Source>
|
||||
<Source Name="MainSource">Tester.dpr</Source>
|
||||
</Source>
|
||||
</Delphi.Personality>
|
||||
<Deployment Version="1">
|
||||
<DeployFile LocalName="$(BDS)\Redist\iossimulator\libPCRE.dylib" Class="DependencyModule">
|
||||
<Platform Name="iOSSimulator">
|
||||
<Overwrite>true</Overwrite>
|
||||
</Platform>
|
||||
</DeployFile>
|
||||
<DeployFile LocalName="$(BDS)\Redist\osx32\libcgunwind.1.0.dylib" Class="DependencyModule">
|
||||
<Platform Name="OSX32">
|
||||
<Overwrite>true</Overwrite>
|
||||
</Platform>
|
||||
</DeployFile>
|
||||
<DeployFile LocalName="Win32\Debug\Tester.exe" Configuration="Debug" Class="ProjectOutput">
|
||||
<Platform Name="Win32">
|
||||
<RemoteName>Tester.exe</RemoteName>
|
||||
<Overwrite>true</Overwrite>
|
||||
</Platform>
|
||||
</DeployFile>
|
||||
<DeployFile LocalName="$(BDS)\Redist\osx32\libcgsqlite3.dylib" Class="DependencyModule">
|
||||
<Platform Name="OSX32">
|
||||
<Overwrite>true</Overwrite>
|
||||
</Platform>
|
||||
</DeployFile>
|
||||
<DeployFile LocalName="$(BDS)\Redist\iossim32\libcgunwind.1.0.dylib" Class="DependencyModule">
|
||||
<Platform Name="iOSSimulator">
|
||||
<Overwrite>true</Overwrite>
|
||||
</Platform>
|
||||
</DeployFile>
|
||||
<DeployFile LocalName="$(BDS)\Redist\iossimulator\libcgunwind.1.0.dylib" Class="DependencyModule">
|
||||
<Platform Name="iOSSimulator">
|
||||
<Overwrite>true</Overwrite>
|
||||
</Platform>
|
||||
</DeployFile>
|
||||
<DeployClass Name="Android_SplashImage470">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-normal</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="DependencyModule">
|
||||
<Platform Name="OSX32">
|
||||
<Operation>1</Operation>
|
||||
<Extensions>.dylib</Extensions>
|
||||
</Platform>
|
||||
<Platform Name="Win32">
|
||||
<Operation>0</Operation>
|
||||
<Extensions>.dll;.bpl</Extensions>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Required="true" Name="DependencyPackage">
|
||||
<Platform Name="iOSDevice64">
|
||||
<Operation>1</Operation>
|
||||
<Extensions>.dylib</Extensions>
|
||||
</Platform>
|
||||
<Platform Name="Win32">
|
||||
<Operation>0</Operation>
|
||||
<Extensions>.bpl</Extensions>
|
||||
</Platform>
|
||||
<Platform Name="OSX32">
|
||||
<Operation>1</Operation>
|
||||
<Extensions>.dylib</Extensions>
|
||||
</Platform>
|
||||
<Platform Name="iOSSimulator">
|
||||
<Operation>1</Operation>
|
||||
<Extensions>.dylib</Extensions>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice32">
|
||||
<Operation>1</Operation>
|
||||
<Extensions>.dylib</Extensions>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="iPad_Launch2048">
|
||||
<Platform Name="iOSDevice64">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSSimulator">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice32">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="ProjectiOSDeviceDebug">
|
||||
<Platform Name="iOSDevice64">
|
||||
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice32">
|
||||
<RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="AndroidLibnativeMipsFile">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>library\lib\mips</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="ProjectOSXInfoPList"/>
|
||||
<DeployClass Name="AndroidGDBServer">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="ProjectiOSResource">
|
||||
<Platform Name="iOSDevice64">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSSimulator">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice32">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="ProjectOSXEntitlements"/>
|
||||
<DeployClass Name="iPhone_Launch640">
|
||||
<Platform Name="iOSDevice64">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSSimulator">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice32">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_SplashImage960">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-xlarge</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_LauncherIcon96">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-xhdpi</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_LauncherIcon144">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-xxhdpi</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="iPhone_Launch320">
|
||||
<Platform Name="iOSDevice64">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSSimulator">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice32">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="UWP_DelphiLogo150">
|
||||
<Platform Name="Win64">
|
||||
<RemoteDir>Assets</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Win32">
|
||||
<RemoteDir>Assets</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="AndroidSplashImageDef">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="UWP_DelphiLogo44">
|
||||
<Platform Name="Win64">
|
||||
<RemoteDir>Assets</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Win32">
|
||||
<RemoteDir>Assets</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="AndroidLibnativeX86File">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>library\lib\x86</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="DebugSymbols">
|
||||
<Platform Name="OSX32">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSSimulator">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Win32">
|
||||
<Operation>0</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="DependencyFramework">
|
||||
<Platform Name="OSX32">
|
||||
<Operation>1</Operation>
|
||||
<Extensions>.framework</Extensions>
|
||||
</Platform>
|
||||
<Platform Name="Win32">
|
||||
<Operation>0</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_SplashImage426">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-small</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="ProjectiOSEntitlements"/>
|
||||
<DeployClass Name="AdditionalDebugSymbols">
|
||||
<Platform Name="OSX32">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Win32">
|
||||
<RemoteDir>Contents\MacOS</RemoteDir>
|
||||
<Operation>0</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="AndroidClassesDexFile">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>classes</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="ProjectiOSInfoPList"/>
|
||||
<DeployClass Name="iPad_Launch1024">
|
||||
<Platform Name="iOSDevice64">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSSimulator">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice32">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="AndroidServiceOutput">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_DefaultAppIcon">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="ProjectiOSDeviceResourceRules"/>
|
||||
<DeployClass Name="ProjectOSXResource">
|
||||
<Platform Name="OSX32">
|
||||
<RemoteDir>Contents\Resources</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="iPad_Launch768">
|
||||
<Platform Name="iOSDevice64">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSSimulator">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice32">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="AndroidLibnativeArmeabiFile">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>library\lib\armeabi</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Required="true" Name="ProjectOutput">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>library\lib\armeabi-v7a</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice64">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Win32">
|
||||
<Operation>0</Operation>
|
||||
</Platform>
|
||||
<Platform Name="OSX32">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSSimulator">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice32">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_SplashImage640">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-large</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="File">
|
||||
<Platform Name="Android">
|
||||
<Operation>0</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice64">
|
||||
<Operation>0</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Win32">
|
||||
<Operation>0</Operation>
|
||||
</Platform>
|
||||
<Platform Name="OSX32">
|
||||
<Operation>0</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSSimulator">
|
||||
<Operation>0</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice32">
|
||||
<Operation>0</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="iPhone_Launch640x1136">
|
||||
<Platform Name="iOSDevice64">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSSimulator">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice32">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="AndroidSplashStyles">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\values</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_LauncherIcon36">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-ldpi</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="iPad_Launch1536">
|
||||
<Platform Name="iOSDevice64">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSSimulator">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="iOSDevice32">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_LauncherIcon48">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-mdpi</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="Android_LauncherIcon72">
|
||||
<Platform Name="Android">
|
||||
<RemoteDir>res\drawable-hdpi</RemoteDir>
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="ProjectAndroidManifest">
|
||||
<Platform Name="Android">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<DeployClass Name="ProjectUWPManifest">
|
||||
<Platform Name="Win64">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
<Platform Name="Win32">
|
||||
<Operation>1</Operation>
|
||||
</Platform>
|
||||
</DeployClass>
|
||||
<ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
|
||||
<ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
|
||||
<ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
|
||||
<ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
|
||||
<ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
|
||||
<ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
|
||||
<ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
|
||||
<ProjectRoot Platform="OSX32" Name="$(PROJECTNAME)"/>
|
||||
</Deployment>
|
||||
<Platforms>
|
||||
<Platform value="Android">False</Platform>
|
||||
<Platform value="iOSDevice32">False</Platform>
|
||||
<Platform value="iOSDevice64">False</Platform>
|
||||
<Platform value="iOSSimulator">False</Platform>
|
||||
<Platform value="OSX32">False</Platform>
|
||||
<Platform value="Win32">True</Platform>
|
||||
<Platform value="Win64">True</Platform>
|
||||
</Platforms>
|
||||
</BorlandProject>
|
||||
<ProjectFileVersion>12</ProjectFileVersion>
|
||||
</ProjectExtensions>
|
||||
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
|
||||
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
|
||||
<Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/>
|
||||
</Project>
|
||||
79
Tests/TesterMain.pas
Normal file
79
Tests/TesterMain.pas
Normal file
@@ -0,0 +1,79 @@
|
||||
unit TesterMain;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
DUnitX.TestFramework,Fasm4Delphi,FasmOnDelphi,SysUtils;
|
||||
|
||||
type
|
||||
[TestFixture]
|
||||
TMyTestObject = class(TObject)
|
||||
public
|
||||
[Setup]
|
||||
procedure Setup;
|
||||
[TearDown]
|
||||
procedure TearDown;
|
||||
[Test]
|
||||
procedure Test1;
|
||||
[Test]
|
||||
procedure Test2;
|
||||
[Test]
|
||||
procedure Test3;
|
||||
[Test]
|
||||
procedure Test4;
|
||||
end;
|
||||
|
||||
const
|
||||
CompliterMemSize=$10000;
|
||||
|
||||
var
|
||||
CompliterMem:PFASM_STATE;
|
||||
|
||||
implementation
|
||||
|
||||
procedure TMyTestObject.Setup;
|
||||
begin
|
||||
end;
|
||||
|
||||
procedure TMyTestObject.TearDown;
|
||||
begin
|
||||
end;
|
||||
|
||||
procedure TMyTestObject.Test1;
|
||||
begin
|
||||
if fasm_AssembleFile('..\..\Test1.ASM',CompliterMem,CompliterMemSize)<>FASM_OK then
|
||||
raise Exception.Create('Condition: '+CompliterMem^.condition.ToString+sLineBreak+
|
||||
'Error Code: '+CompliterMem^.error_code.ToString+sLineBreak);
|
||||
end;
|
||||
|
||||
procedure TMyTestObject.Test2;
|
||||
var
|
||||
Res:TFasmOut;
|
||||
begin
|
||||
Res:=FasmAssemble('add eax,',CompliterMemSize);
|
||||
raise Exception.Create('Answ: '+Res.OutPut.OutStr+sLineBreak);
|
||||
//'Error Code:'+CompliterMem^.error_code.ToString+sLineBreak);
|
||||
if Res.OutPut.Error<>FASM_OK then
|
||||
raise Exception.Create('Condition: '+CompliterMem^.condition.ToString+sLineBreak+
|
||||
'Error Code: '+CompliterMem^.error_code.ToString+sLineBreak);
|
||||
end;
|
||||
|
||||
procedure TMyTestObject.Test3;
|
||||
begin
|
||||
if fasm_AssembleFile('..\..\..\FasmDll\FASM.ASH',CompliterMem,CompliterMemSize)=FASM_OK then
|
||||
raise Exception.Create('FASM is compiling something that it is can not compile at all.');
|
||||
end;
|
||||
|
||||
procedure TMyTestObject.Test4;
|
||||
begin
|
||||
if fasm_Assemble('call -100',CompliterMem,CompliterMemSize)<>FASM_OK then
|
||||
raise Exception.Create('Condition: '+CompliterMem^.condition.ToString+sLineBreak+
|
||||
'Error Code: '+CompliterMem^.error_code.ToString+sLineBreak);
|
||||
end;
|
||||
|
||||
initialization
|
||||
TDUnitX.RegisterTestFixture(TMyTestObject);
|
||||
OpenFASM('..\..\..\Fasm4Delphi\FasmDll\FASM.DLL',true);
|
||||
//OpenFASM('..\..\..\fasmw172\FASM.EXE');
|
||||
GetMem(CompliterMem,CompliterMemSize);
|
||||
end.
|
||||
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
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user