├── .gitattributes ├── .gitignore ├── Bin └── .gitignore ├── Dcu └── .gitignore ├── Delphinus.Info.json ├── Delphinus.Install.json ├── Demos ├── BPL │ ├── Demo.dpr │ ├── Demo.dproj │ └── Demo.res ├── FMX │ ├── Demo.dpr │ ├── Demo.dproj │ ├── Demo.res │ ├── MainFrm.fmx │ └── MainFrm.pas ├── FPC │ ├── Demo.ico │ ├── Demo.lpi │ ├── Demo.lpr │ ├── Demo.res │ ├── MainFrm.lfm │ └── MainFrm.pas ├── IE │ ├── Dll.bdsproj │ ├── Dll.cfg │ ├── Dll.dpr │ ├── Dll.res │ ├── Exe.bdsproj │ ├── Exe.cfg │ ├── Exe.dpr │ ├── Exe.res │ ├── IE.bdsgroup │ ├── MainFrm.dfm │ └── MainFrm.pas ├── VCL │ ├── Demo.bdsproj │ ├── Demo.cfg │ ├── Demo.dpr │ ├── Demo.dproj │ ├── Demo.res │ ├── MainFrm.dfm │ └── MainFrm.pas └── XP │ ├── Demo.dpr │ ├── Demo.dproj │ ├── Demo.res │ ├── MainFrm.dfm │ ├── MainFrm.pas │ └── XPCmpatibilityTweak.pas ├── Doc └── Logo.png ├── LICENSE ├── README.md ├── README.zh-CN.md └── Source ├── HookIntfs.pas ├── HookUtils.32.inc ├── HookUtils.64.inc └── HookUtils.pas /.gitattributes: -------------------------------------------------------------------------------- 1 | *.bdsproj linguist-language=Pascal 2 | *.cer linguist-language=Pascal 3 | *.cfg linguist-language=Pascal 4 | *.exe linguist-language=Pascal 5 | *.inc linguist-language=Pascal 6 | *.res linguist-language=Pascal 7 | *.txt linguist-language=Pascal 8 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Uncomment these types if you want even more clean repository. But be careful. 2 | # It can make harm to an existing project source. Read explanations below. 3 | # 4 | # Resource files are binaries containing manifest, project icon and version info. 5 | # They can not be viewed as text or compared by diff-tools. Consider replacing them with .rc files. 6 | #*.res 7 | # 8 | # Type library file (binary). In old Delphi versions it should be stored. 9 | # Since Delphi 2009 it is produced from .ridl file and can safely be ignored. 10 | #*.tlb 11 | # 12 | # Diagram Portfolio file. Used by the diagram editor up to Delphi 7. 13 | # Uncomment this if you are not using diagrams or use newer Delphi version. 14 | #*.ddp 15 | # 16 | # Visual LiveBindings file. Added in Delphi XE2. 17 | # Uncomment this if you are not using LiveBindings Designer. 18 | #*.vlb 19 | # 20 | # Deployment Manager configuration file for your project. Added in Delphi XE2. 21 | # Uncomment this if it is not mobile development and you do not use remote debug feature. 22 | #*.deployproj 23 | # 24 | # C++ object files produced when C/C++ Output file generation is configured. 25 | # Uncomment this if you are not using external objects (zlib library for example). 26 | #*.obj 27 | # 28 | 29 | # Delphi compiler-generated binaries (safe to delete) 30 | *.exe 31 | *.dll 32 | *.bpl 33 | *.bpi 34 | *.dcp 35 | *.so 36 | *.apk 37 | *.drc 38 | *.map 39 | *.dres 40 | *.rsm 41 | *.tds 42 | *.dcu 43 | *.lib 44 | *.a 45 | *.o 46 | *.ocx 47 | 48 | # Delphi autogenerated files (duplicated info) 49 | *.cfg 50 | *.hpp 51 | *Resource.rc 52 | 53 | # Delphi local files (user-specific info) 54 | *.local 55 | *.identcache 56 | *.projdata 57 | *.tvsconfig 58 | *.dsk 59 | 60 | # Delphi history and backups 61 | __history/ 62 | __recovery/ 63 | *.~* 64 | 65 | # Castalia statistics file (since XE7 Castalia is distributed with Delphi) 66 | *.stat 67 | 68 | # Boss dependency manager vendor folder https://github.com/HashLoad/boss 69 | modules/ 70 | -------------------------------------------------------------------------------- /Bin/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delphilite/DelphiHookUtils/496ccbf3f7621878dce99c02077dc29254aca2b5/Bin/.gitignore -------------------------------------------------------------------------------- /Dcu/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delphilite/DelphiHookUtils/496ccbf3f7621878dce99c02077dc29254aca2b5/Dcu/.gitignore -------------------------------------------------------------------------------- /Delphinus.Info.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "{DE08E400-269C-49BC-997A-739F390A358A}", 3 | "name": "DelphiHookUtils", 4 | "picture": "Doc\\Logo.png", 5 | "license_type": "MPL-2.0", 6 | "license_file": "License", 7 | "platforms": "Win32;Win64", 8 | "first_version": "1.0.0", 9 | "package_compiler_min": 15, 10 | "compiler_min": 15 11 | } -------------------------------------------------------------------------------- /Delphinus.Install.json: -------------------------------------------------------------------------------- 1 | { 2 | "search_pathes": [ 3 | { 4 | "pathes": "Source", 5 | "platforms": "Win32;Win64" 6 | } 7 | ], 8 | "browsing_pathes": [ 9 | { 10 | "pathes": "Source", 11 | "platforms": "Win32;Win64" 12 | } 13 | ], 14 | "source_folders": [ 15 | { 16 | "folder": "Source", 17 | "base": "", 18 | "recursive": true, 19 | "filter": "*;*.*" 20 | } 21 | ], 22 | "projects": [ 23 | { 24 | "project": "Demos\\VCL\\Demo.dproj", 25 | "compiler_min": 15 26 | } 27 | ] 28 | } -------------------------------------------------------------------------------- /Demos/BPL/Demo.dpr: -------------------------------------------------------------------------------- 1 | program Demo; 2 | 3 | {$IF CompilerVersion >= 21.0} 4 | {$WEAKLINKRTTI ON} 5 | {$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])} 6 | {$IFEND} 7 | 8 | uses 9 | Forms, 10 | 11 | HookUtils in '..\..\Source\HookUtils.pas', 12 | HookIntfs in '..\..\Source\HookIntfs.pas', 13 | 14 | MainFrm in '..\VCL\MainFrm.pas' {MainForm}; 15 | 16 | {$R *.res} 17 | 18 | begin 19 | Application.Initialize; 20 | Application.CreateForm(TMainForm, MainForm); 21 | Application.Run; 22 | end. 23 | -------------------------------------------------------------------------------- /Demos/BPL/Demo.dproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {58563B04-68D3-47BF-A8FF-5A781C480F37} 4 | 18.4 5 | VCL 6 | Demo.dpr 7 | True 8 | Debug 9 | Win64 10 | 3 11 | Application 12 | 13 | 14 | true 15 | 16 | 17 | true 18 | Base 19 | true 20 | 21 | 22 | true 23 | Base 24 | true 25 | 26 | 27 | true 28 | Base 29 | true 30 | 31 | 32 | true 33 | Cfg_1 34 | true 35 | true 36 | 37 | 38 | true 39 | Cfg_1 40 | true 41 | true 42 | 43 | 44 | true 45 | Base 46 | true 47 | 48 | 49 | true 50 | Cfg_2 51 | true 52 | true 53 | 54 | 55 | true 56 | Cfg_2 57 | true 58 | true 59 | 60 | 61 | None 62 | CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= 63 | 2052 64 | System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace) 65 | $(BDS)\bin\delphi_PROJECTICON.ico 66 | rtl;vcl;$(DCC_UsePackage) 67 | ..\..\Dcu 68 | ..\..\Bin 69 | Demo 70 | true 71 | 72 | 73 | true 74 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) 75 | 1033 76 | $(BDS)\bin\default_app.manifest 77 | true 78 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png 79 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png 80 | 81 | 82 | true 83 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace) 84 | 1033 85 | $(BDS)\bin\default_app.manifest 86 | true 87 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png 88 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png 89 | 90 | 91 | None 92 | true 93 | DEBUG;$(DCC_Define) 94 | false 95 | true 96 | true 97 | true 98 | 99 | 100 | true 101 | false 102 | Debug 103 | 1033 104 | true 105 | 106 | 107 | true 108 | 1033 109 | Debug 110 | true 111 | 112 | 113 | false 114 | RELEASE;$(DCC_Define) 115 | 0 116 | 0 117 | 118 | 119 | true 120 | $(BDS)\bin\default_app.manifest 121 | 1033 122 | true 123 | 124 | 125 | true 126 | 1033 127 | $(BDS)\bin\default_app.manifest 128 | true 129 | 130 | 131 | 132 | MainSource 133 | 134 | 135 | 136 | 137 |
MainForm
138 |
139 | 140 | Cfg_2 141 | Base 142 | 143 | 144 | Base 145 | 146 | 147 | Cfg_1 148 | Base 149 | 150 |
151 | 152 | Delphi.Personality.12 153 | 154 | 155 | 156 | 157 | False 158 | False 159 | 1 160 | 0 161 | 0 162 | 0 163 | False 164 | False 165 | False 166 | False 167 | False 168 | 2052 169 | 936 170 | 171 | 172 | 173 | 174 | 1.0.0.0 175 | 176 | 177 | 178 | 179 | 180 | 1.0.0.0 181 | 182 | 183 | 184 | Demo.dpr 185 | 186 | 187 | 188 | 189 | 190 | True 191 | True 192 | 193 | 194 | 12 195 | 196 | 197 | 198 | 199 |
200 | -------------------------------------------------------------------------------- /Demos/BPL/Demo.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delphilite/DelphiHookUtils/496ccbf3f7621878dce99c02077dc29254aca2b5/Demos/BPL/Demo.res -------------------------------------------------------------------------------- /Demos/FMX/Demo.dpr: -------------------------------------------------------------------------------- 1 | program Demo; 2 | 3 | {$IF CompilerVersion >= 21.0} 4 | {$WEAKLINKRTTI ON} 5 | {$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])} 6 | {$IFEND} 7 | 8 | uses 9 | System.StartUpCopy, 10 | FMX.Forms, 11 | 12 | HookUtils in '..\..\Source\HookUtils.pas', 13 | HookIntfs in '..\..\Source\HookIntfs.pas', 14 | 15 | MainFrm in 'MainFrm.pas' {MainForm}; 16 | 17 | {$R *.res} 18 | 19 | begin 20 | Application.Initialize; 21 | Application.CreateForm(TMainForm, MainForm); 22 | Application.Run; 23 | end. 24 | -------------------------------------------------------------------------------- /Demos/FMX/Demo.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delphilite/DelphiHookUtils/496ccbf3f7621878dce99c02077dc29254aca2b5/Demos/FMX/Demo.res -------------------------------------------------------------------------------- /Demos/FMX/MainFrm.fmx: -------------------------------------------------------------------------------- 1 | object MainForm: TMainForm 2 | Left = 0 3 | Top = 0 4 | Caption = 'Form1' 5 | ClientHeight = 260 6 | ClientWidth = 424 7 | FormFactor.Width = 320 8 | FormFactor.Height = 480 9 | FormFactor.Devices = [Desktop] 10 | DesignerMasterStyle = 0 11 | object cbHookObject: TCheckBox 12 | Position.X = 112.000000000000000000 13 | Position.Y = 160.000000000000000000 14 | Size.Width = 200.000000000000000000 15 | Size.Height = 17.000000000000000000 16 | Size.PlatformDefault = False 17 | TabOrder = 1 18 | Text = 'Hook Method' 19 | OnClick = cbHookObjectClick 20 | Left = 112 21 | Top = 160 22 | end 23 | object btnTestObject: TButton 24 | Position.X = 114.000000000000000000 25 | Position.Y = 123.000000000000000000 26 | Size.Width = 100.000000000000000000 27 | Size.Height = 22.000000000000000000 28 | Size.PlatformDefault = False 29 | TabOrder = 2 30 | Text = 'Test Method' 31 | OnClick = btnTestObjectClick 32 | end 33 | end 34 | -------------------------------------------------------------------------------- /Demos/FMX/MainFrm.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delphilite/DelphiHookUtils/496ccbf3f7621878dce99c02077dc29254aca2b5/Demos/FMX/MainFrm.pas -------------------------------------------------------------------------------- /Demos/FPC/Demo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delphilite/DelphiHookUtils/496ccbf3f7621878dce99c02077dc29254aca2b5/Demos/FPC/Demo.ico -------------------------------------------------------------------------------- /Demos/FPC/Demo.lpi: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | <Scaled Value="True"/> 10 | <ResourceType Value="res"/> 11 | <UseXPManifest Value="True"/> 12 | <XPManifest> 13 | <DpiAware Value="True"/> 14 | </XPManifest> 15 | <Icon Value="0"/> 16 | </General> 17 | <BuildModes> 18 | <Item Name="Default" Default="True"/> 19 | </BuildModes> 20 | <PublishOptions> 21 | <Version Value="2"/> 22 | <UseFileFilters Value="True"/> 23 | </PublishOptions> 24 | <RunParams> 25 | <FormatVersion Value="2"/> 26 | </RunParams> 27 | <RequiredPackages> 28 | <Item> 29 | <PackageName Value="LCL"/> 30 | </Item> 31 | </RequiredPackages> 32 | <Units> 33 | <Unit> 34 | <Filename Value="Demo.lpr"/> 35 | <IsPartOfProject Value="True"/> 36 | </Unit> 37 | <Unit> 38 | <Filename Value="MainFrm.pas"/> 39 | <IsPartOfProject Value="True"/> 40 | <ComponentName Value="Form1"/> 41 | <ResourceBaseClass Value="Form"/> 42 | </Unit> 43 | <Unit> 44 | <Filename Value="..\..\Source\HookUtils.pas"/> 45 | <IsPartOfProject Value="True"/> 46 | </Unit> 47 | <Unit> 48 | <Filename Value="..\..\Source\HookIntfs.pas"/> 49 | <IsPartOfProject Value="True"/> 50 | </Unit> 51 | </Units> 52 | </ProjectOptions> 53 | <CompilerOptions> 54 | <Version Value="11"/> 55 | <PathDelim Value="\"/> 56 | <Target> 57 | <Filename Value="..\..\Bin\$(TargetCPU)-$(TargetOS)\Demo"/> 58 | </Target> 59 | <SearchPaths> 60 | <IncludeFiles Value="$(ProjOutDir)"/> 61 | <UnitOutputDirectory Value="..\..\Dcu\$(TargetCPU)-$(TargetOS)"/> 62 | </SearchPaths> 63 | <Linking> 64 | <Debugging> 65 | <DebugInfoType Value="dsDwarf3"/> 66 | </Debugging> 67 | <Options> 68 | <Win32> 69 | <GraphicApplication Value="True"/> 70 | </Win32> 71 | </Options> 72 | </Linking> 73 | </CompilerOptions> 74 | <Debugging> 75 | <Exceptions> 76 | <Item> 77 | <Name Value="EAbort"/> 78 | </Item> 79 | <Item> 80 | <Name Value="ECodetoolError"/> 81 | </Item> 82 | <Item> 83 | <Name Value="EFOpenError"/> 84 | </Item> 85 | </Exceptions> 86 | </Debugging> 87 | </CONFIG> 88 | -------------------------------------------------------------------------------- /Demos/FPC/Demo.lpr: -------------------------------------------------------------------------------- 1 | program Demo; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | uses 6 | {$IFDEF UNIX} 7 | cthreads, 8 | {$ENDIF} 9 | {$IFDEF HASAMIGA} 10 | athreads, 11 | {$ENDIF} 12 | Interfaces, // this includes the LCL widgetset 13 | 14 | HookUtils in '..\..\Source\HookUtils.pas', 15 | HookIntfs in '..\..\Source\HookIntfs.pas', 16 | 17 | Forms, MainFrm 18 | { you can add units after this }; 19 | 20 | {$R *.res} 21 | 22 | begin 23 | RequireDerivedFormResource:=True; 24 | Application.Scaled:=True; 25 | Application.Initialize; 26 | Application.CreateForm(TMainForm, MainForm); 27 | Application.Run; 28 | end. 29 | -------------------------------------------------------------------------------- /Demos/FPC/Demo.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delphilite/DelphiHookUtils/496ccbf3f7621878dce99c02077dc29254aca2b5/Demos/FPC/Demo.res -------------------------------------------------------------------------------- /Demos/FPC/MainFrm.lfm: -------------------------------------------------------------------------------- 1 | object MainForm: TMainForm 2 | Left = 460 3 | Top = 265 4 | Caption = 'MainForm' 5 | ClientHeight = 260 6 | ClientWidth = 424 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | Position = poScreenCenter 15 | OnCreate = FormCreate 16 | OnDestroy = FormDestroy 17 | PixelsPerInch = 96 18 | TextHeight = 13 19 | object cbHookAPI: TCheckBox 20 | Left = 112 21 | Top = 84 22 | Width = 200 23 | Height = 17 24 | Caption = 'Hook Windows API' 25 | TabOrder = 0 26 | OnClick = cbHookAPIClick 27 | end 28 | object cbHookCOM: TCheckBox 29 | Left = 112 30 | Top = 121 31 | Width = 200 32 | Height = 17 33 | Caption = 'Hook COM' 34 | TabOrder = 1 35 | OnClick = cbHookCOMClick 36 | end 37 | object cbHookObject: TCheckBox 38 | Left = 112 39 | Top = 160 40 | Width = 200 41 | Height = 17 42 | Caption = 'Hook Method' 43 | TabOrder = 2 44 | OnClick = cbHookObjectClick 45 | end 46 | end 47 | -------------------------------------------------------------------------------- /Demos/FPC/MainFrm.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delphilite/DelphiHookUtils/496ccbf3f7621878dce99c02077dc29254aca2b5/Demos/FPC/MainFrm.pas -------------------------------------------------------------------------------- /Demos/IE/Dll.bdsproj: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="utf-8"?> 2 | <BorlandProject> 3 | <PersonalityInfo> 4 | <Option> 5 | <Option Name="Personality">Delphi.Personality</Option> 6 | <Option Name="ProjectType">VCLApplication</Option> 7 | <Option Name="Version">1.0</Option> 8 | <Option Name="GUID">{EE375E44-8AA6-49A3-A370-D877D8A9008A}</Option> 9 | </Option> 10 | </PersonalityInfo> 11 | <Delphi.Personality> 12 | <Source> 13 | <Source Name="MainSource">Dll.dpr</Source> 14 | </Source> 15 | <FileVersion> 16 | <FileVersion Name="Version">7.0</FileVersion> 17 | </FileVersion> 18 | <Compiler> 19 | <Compiler Name="A">8</Compiler> 20 | <Compiler Name="B">0</Compiler> 21 | <Compiler Name="C">1</Compiler> 22 | <Compiler Name="D">1</Compiler> 23 | <Compiler Name="E">0</Compiler> 24 | <Compiler Name="F">0</Compiler> 25 | <Compiler Name="G">1</Compiler> 26 | <Compiler Name="H">1</Compiler> 27 | <Compiler Name="I">1</Compiler> 28 | <Compiler Name="J">0</Compiler> 29 | <Compiler Name="K">0</Compiler> 30 | <Compiler Name="L">1</Compiler> 31 | <Compiler Name="M">0</Compiler> 32 | <Compiler Name="N">1</Compiler> 33 | <Compiler Name="O">1</Compiler> 34 | <Compiler Name="P">1</Compiler> 35 | <Compiler Name="Q">0</Compiler> 36 | <Compiler Name="R">0</Compiler> 37 | <Compiler Name="S">0</Compiler> 38 | <Compiler Name="T">0</Compiler> 39 | <Compiler Name="U">0</Compiler> 40 | <Compiler Name="V">1</Compiler> 41 | <Compiler Name="W">0</Compiler> 42 | <Compiler Name="X">1</Compiler> 43 | <Compiler Name="Y">1</Compiler> 44 | <Compiler Name="Z">1</Compiler> 45 | <Compiler Name="ShowHints">True</Compiler> 46 | <Compiler Name="ShowWarnings">True</Compiler> 47 | <Compiler Name="UnitAliases">WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;</Compiler> 48 | <Compiler Name="NamespacePrefix"></Compiler> 49 | <Compiler Name="GenerateDocumentation">False</Compiler> 50 | <Compiler Name="DefaultNamespace"></Compiler> 51 | <Compiler Name="SymbolDeprecated">True</Compiler> 52 | <Compiler Name="SymbolLibrary">True</Compiler> 53 | <Compiler Name="SymbolPlatform">True</Compiler> 54 | <Compiler Name="SymbolExperimental">True</Compiler> 55 | <Compiler Name="UnitLibrary">True</Compiler> 56 | <Compiler Name="UnitPlatform">True</Compiler> 57 | <Compiler Name="UnitDeprecated">True</Compiler> 58 | <Compiler Name="UnitExperimental">True</Compiler> 59 | <Compiler Name="HResultCompat">True</Compiler> 60 | <Compiler Name="HidingMember">True</Compiler> 61 | <Compiler Name="HiddenVirtual">True</Compiler> 62 | <Compiler Name="Garbage">True</Compiler> 63 | <Compiler Name="BoundsError">True</Compiler> 64 | <Compiler Name="ZeroNilCompat">True</Compiler> 65 | <Compiler Name="StringConstTruncated">True</Compiler> 66 | <Compiler Name="ForLoopVarVarPar">True</Compiler> 67 | <Compiler Name="TypedConstVarPar">True</Compiler> 68 | <Compiler Name="AsgToTypedConst">True</Compiler> 69 | <Compiler Name="CaseLabelRange">True</Compiler> 70 | <Compiler Name="ForVariable">True</Compiler> 71 | <Compiler Name="ConstructingAbstract">True</Compiler> 72 | <Compiler Name="ComparisonFalse">True</Compiler> 73 | <Compiler Name="ComparisonTrue">True</Compiler> 74 | <Compiler Name="ComparingSignedUnsigned">True</Compiler> 75 | <Compiler Name="CombiningSignedUnsigned">True</Compiler> 76 | <Compiler Name="UnsupportedConstruct">True</Compiler> 77 | <Compiler Name="FileOpen">True</Compiler> 78 | <Compiler Name="FileOpenUnitSrc">True</Compiler> 79 | <Compiler Name="BadGlobalSymbol">True</Compiler> 80 | <Compiler Name="DuplicateConstructorDestructor">True</Compiler> 81 | <Compiler Name="InvalidDirective">True</Compiler> 82 | <Compiler Name="PackageNoLink">True</Compiler> 83 | <Compiler Name="PackageThreadVar">True</Compiler> 84 | <Compiler Name="ImplicitImport">True</Compiler> 85 | <Compiler Name="HPPEMITIgnored">True</Compiler> 86 | <Compiler Name="NoRetVal">True</Compiler> 87 | <Compiler Name="UseBeforeDef">True</Compiler> 88 | <Compiler Name="ForLoopVarUndef">True</Compiler> 89 | <Compiler Name="UnitNameMismatch">True</Compiler> 90 | <Compiler Name="NoCFGFileFound">True</Compiler> 91 | <Compiler Name="ImplicitVariants">True</Compiler> 92 | <Compiler Name="UnicodeToLocale">True</Compiler> 93 | <Compiler Name="LocaleToUnicode">True</Compiler> 94 | <Compiler Name="ImagebaseMultiple">True</Compiler> 95 | <Compiler Name="SuspiciousTypecast">True</Compiler> 96 | <Compiler Name="PrivatePropAccessor">True</Compiler> 97 | <Compiler Name="UnsafeType">False</Compiler> 98 | <Compiler Name="UnsafeCode">False</Compiler> 99 | <Compiler Name="UnsafeCast">False</Compiler> 100 | <Compiler Name="OptionTruncated">True</Compiler> 101 | <Compiler Name="WideCharReduced">True</Compiler> 102 | <Compiler Name="DuplicatesIgnored">True</Compiler> 103 | <Compiler Name="UnitInitSeq">True</Compiler> 104 | <Compiler Name="LocalPInvoke">True</Compiler> 105 | <Compiler Name="MessageDirective">True</Compiler> 106 | <Compiler Name="TypeInfoImplicitlyAdded">True</Compiler> 107 | <Compiler Name="XMLWhitespaceNotAllowed">True</Compiler> 108 | <Compiler Name="XMLUnknownEntity">True</Compiler> 109 | <Compiler Name="XMLInvalidNameStart">True</Compiler> 110 | <Compiler Name="XMLInvalidName">True</Compiler> 111 | <Compiler Name="XMLExpectedCharacter">True</Compiler> 112 | <Compiler Name="XMLCRefNoResolve">True</Compiler> 113 | <Compiler Name="XMLNoParm">True</Compiler> 114 | <Compiler Name="XMLNoMatchingParm">True</Compiler> 115 | <Compiler Name="CodePage"></Compiler> 116 | </Compiler> 117 | <Linker> 118 | <Linker Name="MapFile">0</Linker> 119 | <Linker Name="OutputObjs">0</Linker> 120 | <Linker Name="GenerateHpps">False</Linker> 121 | <Linker Name="ConsoleApp">1</Linker> 122 | <Linker Name="DebugInfo">False</Linker> 123 | <Linker Name="RemoteSymbols">False</Linker> 124 | <Linker Name="GenerateDRC">False</Linker> 125 | <Linker Name="MinStackSize">16384</Linker> 126 | <Linker Name="MaxStackSize">1048576</Linker> 127 | <Linker Name="ImageBase">4194304</Linker> 128 | <Linker Name="ExeDescription"></Linker> 129 | </Linker> 130 | <Directories> 131 | <Directories Name="OutputDir">..\..\Bin</Directories> 132 | <Directories Name="UnitOutputDir">..\..\Dcu</Directories> 133 | <Directories Name="PackageDLLOutputDir"></Directories> 134 | <Directories Name="PackageDCPOutputDir"></Directories> 135 | <Directories Name="SearchPath">..\..\Source</Directories> 136 | <Directories Name="Packages">rtl;vcl</Directories> 137 | <Directories Name="Conditionals"></Directories> 138 | <Directories Name="DebugSourceDirs"></Directories> 139 | <Directories Name="UsePackages">False</Directories> 140 | </Directories> 141 | <Parameters> 142 | <Parameters Name="RunParams"></Parameters> 143 | <Parameters Name="HostApplication">..\..\Bin\Exe.exe</Parameters> 144 | <Parameters Name="Launcher"></Parameters> 145 | <Parameters Name="UseLauncher">False</Parameters> 146 | <Parameters Name="DebugCWD">..\..\Bin</Parameters> 147 | <Parameters Name="Debug Symbols Search Path"></Parameters> 148 | <Parameters Name="LoadAllSymbols">True</Parameters> 149 | <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> 150 | </Parameters> 151 | <Signing> 152 | <Signing Name="SignAssembly">False</Signing> 153 | </Signing> 154 | <VersionInfo> 155 | <VersionInfo Name="IncludeVerInfo">False</VersionInfo> 156 | <VersionInfo Name="AutoIncBuild">False</VersionInfo> 157 | <VersionInfo Name="MajorVer">1</VersionInfo> 158 | <VersionInfo Name="MinorVer">0</VersionInfo> 159 | <VersionInfo Name="Release">0</VersionInfo> 160 | <VersionInfo Name="Build">0</VersionInfo> 161 | <VersionInfo Name="Debug">False</VersionInfo> 162 | <VersionInfo Name="PreRelease">False</VersionInfo> 163 | <VersionInfo Name="Special">False</VersionInfo> 164 | <VersionInfo Name="Private">False</VersionInfo> 165 | <VersionInfo Name="DLL">False</VersionInfo> 166 | <VersionInfo Name="Locale">2052</VersionInfo> 167 | <VersionInfo Name="CodePage">936</VersionInfo> 168 | </VersionInfo> 169 | <VersionInfoKeys> 170 | <VersionInfoKeys Name="CompanyName"></VersionInfoKeys> 171 | <VersionInfoKeys Name="FileDescription"></VersionInfoKeys> 172 | <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> 173 | <VersionInfoKeys Name="InternalName"></VersionInfoKeys> 174 | <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys> 175 | <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys> 176 | <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys> 177 | <VersionInfoKeys Name="ProductName"></VersionInfoKeys> 178 | <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> 179 | <VersionInfoKeys Name="Comments"></VersionInfoKeys> 180 | </VersionInfoKeys> 181 | <buildevents/> 182 | </Delphi.Personality> 183 | </BorlandProject> 184 | -------------------------------------------------------------------------------- /Demos/IE/Dll.cfg: -------------------------------------------------------------------------------- 1 | -$A8 2 | -$B- 3 | -$C+ 4 | -$D+ 5 | -$E- 6 | -$F- 7 | -$G+ 8 | -$H+ 9 | -$I+ 10 | -$J- 11 | -$K- 12 | -$L+ 13 | -$M- 14 | -$N+ 15 | -$O+ 16 | -$P+ 17 | -$Q- 18 | -$R- 19 | -$S- 20 | -$T- 21 | -$U- 22 | -$V+ 23 | -$W- 24 | -$X+ 25 | -$YD 26 | -$Z1 27 | -cg 28 | -AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; 29 | -H+ 30 | -W+ 31 | -M 32 | -$M16384,1048576 33 | -K$00400000 34 | -E"..\..\Bin" 35 | -N0"..\..\Dcu" 36 | -LE"C:\Users\Public\Documents\RAD Studio\5.0\Bpl" 37 | -LN"C:\Users\Public\Documents\RAD Studio\5.0\Dcp" 38 | -U"..\..\Source" 39 | -O"..\..\Source" 40 | -I"..\..\Source" 41 | -R"..\..\Source" 42 | -------------------------------------------------------------------------------- /Demos/IE/Dll.dpr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delphilite/DelphiHookUtils/496ccbf3f7621878dce99c02077dc29254aca2b5/Demos/IE/Dll.dpr -------------------------------------------------------------------------------- /Demos/IE/Dll.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delphilite/DelphiHookUtils/496ccbf3f7621878dce99c02077dc29254aca2b5/Demos/IE/Dll.res -------------------------------------------------------------------------------- /Demos/IE/Exe.bdsproj: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="utf-8"?> 2 | <BorlandProject> 3 | <PersonalityInfo> 4 | <Option> 5 | <Option Name="Personality">Delphi.Personality</Option> 6 | <Option Name="ProjectType"></Option> 7 | <Option Name="Version">1.0</Option> 8 | <Option Name="GUID">{B02A77E3-EE03-42D3-82B1-D45CD620E6B6}</Option> 9 | </Option> 10 | </PersonalityInfo> 11 | <Delphi.Personality> 12 | <Source> 13 | <Source Name="MainSource">Exe.dpr</Source> 14 | </Source> 15 | <FileVersion> 16 | <FileVersion Name="Version">7.0</FileVersion> 17 | </FileVersion> 18 | <Compiler> 19 | <Compiler Name="A">8</Compiler> 20 | <Compiler Name="B">0</Compiler> 21 | <Compiler Name="C">1</Compiler> 22 | <Compiler Name="D">1</Compiler> 23 | <Compiler Name="E">0</Compiler> 24 | <Compiler Name="F">0</Compiler> 25 | <Compiler Name="G">1</Compiler> 26 | <Compiler Name="H">1</Compiler> 27 | <Compiler Name="I">1</Compiler> 28 | <Compiler Name="J">0</Compiler> 29 | <Compiler Name="K">0</Compiler> 30 | <Compiler Name="L">1</Compiler> 31 | <Compiler Name="M">0</Compiler> 32 | <Compiler Name="N">1</Compiler> 33 | <Compiler Name="O">1</Compiler> 34 | <Compiler Name="P">1</Compiler> 35 | <Compiler Name="Q">0</Compiler> 36 | <Compiler Name="R">0</Compiler> 37 | <Compiler Name="S">0</Compiler> 38 | <Compiler Name="T">0</Compiler> 39 | <Compiler Name="U">0</Compiler> 40 | <Compiler Name="V">1</Compiler> 41 | <Compiler Name="W">0</Compiler> 42 | <Compiler Name="X">1</Compiler> 43 | <Compiler Name="Y">1</Compiler> 44 | <Compiler Name="Z">1</Compiler> 45 | <Compiler Name="ShowHints">True</Compiler> 46 | <Compiler Name="ShowWarnings">True</Compiler> 47 | <Compiler Name="UnitAliases">WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;</Compiler> 48 | <Compiler Name="NamespacePrefix"></Compiler> 49 | <Compiler Name="GenerateDocumentation">False</Compiler> 50 | <Compiler Name="DefaultNamespace"></Compiler> 51 | <Compiler Name="SymbolDeprecated">True</Compiler> 52 | <Compiler Name="SymbolLibrary">True</Compiler> 53 | <Compiler Name="SymbolPlatform">True</Compiler> 54 | <Compiler Name="SymbolExperimental">True</Compiler> 55 | <Compiler Name="UnitLibrary">True</Compiler> 56 | <Compiler Name="UnitPlatform">True</Compiler> 57 | <Compiler Name="UnitDeprecated">True</Compiler> 58 | <Compiler Name="UnitExperimental">True</Compiler> 59 | <Compiler Name="HResultCompat">True</Compiler> 60 | <Compiler Name="HidingMember">True</Compiler> 61 | <Compiler Name="HiddenVirtual">True</Compiler> 62 | <Compiler Name="Garbage">True</Compiler> 63 | <Compiler Name="BoundsError">True</Compiler> 64 | <Compiler Name="ZeroNilCompat">True</Compiler> 65 | <Compiler Name="StringConstTruncated">True</Compiler> 66 | <Compiler Name="ForLoopVarVarPar">True</Compiler> 67 | <Compiler Name="TypedConstVarPar">True</Compiler> 68 | <Compiler Name="AsgToTypedConst">True</Compiler> 69 | <Compiler Name="CaseLabelRange">True</Compiler> 70 | <Compiler Name="ForVariable">True</Compiler> 71 | <Compiler Name="ConstructingAbstract">True</Compiler> 72 | <Compiler Name="ComparisonFalse">True</Compiler> 73 | <Compiler Name="ComparisonTrue">True</Compiler> 74 | <Compiler Name="ComparingSignedUnsigned">True</Compiler> 75 | <Compiler Name="CombiningSignedUnsigned">True</Compiler> 76 | <Compiler Name="UnsupportedConstruct">True</Compiler> 77 | <Compiler Name="FileOpen">True</Compiler> 78 | <Compiler Name="FileOpenUnitSrc">True</Compiler> 79 | <Compiler Name="BadGlobalSymbol">True</Compiler> 80 | <Compiler Name="DuplicateConstructorDestructor">True</Compiler> 81 | <Compiler Name="InvalidDirective">True</Compiler> 82 | <Compiler Name="PackageNoLink">True</Compiler> 83 | <Compiler Name="PackageThreadVar">True</Compiler> 84 | <Compiler Name="ImplicitImport">True</Compiler> 85 | <Compiler Name="HPPEMITIgnored">True</Compiler> 86 | <Compiler Name="NoRetVal">True</Compiler> 87 | <Compiler Name="UseBeforeDef">True</Compiler> 88 | <Compiler Name="ForLoopVarUndef">True</Compiler> 89 | <Compiler Name="UnitNameMismatch">True</Compiler> 90 | <Compiler Name="NoCFGFileFound">True</Compiler> 91 | <Compiler Name="ImplicitVariants">True</Compiler> 92 | <Compiler Name="UnicodeToLocale">True</Compiler> 93 | <Compiler Name="LocaleToUnicode">True</Compiler> 94 | <Compiler Name="ImagebaseMultiple">True</Compiler> 95 | <Compiler Name="SuspiciousTypecast">True</Compiler> 96 | <Compiler Name="PrivatePropAccessor">True</Compiler> 97 | <Compiler Name="UnsafeType">False</Compiler> 98 | <Compiler Name="UnsafeCode">False</Compiler> 99 | <Compiler Name="UnsafeCast">False</Compiler> 100 | <Compiler Name="OptionTruncated">True</Compiler> 101 | <Compiler Name="WideCharReduced">True</Compiler> 102 | <Compiler Name="DuplicatesIgnored">True</Compiler> 103 | <Compiler Name="UnitInitSeq">True</Compiler> 104 | <Compiler Name="LocalPInvoke">True</Compiler> 105 | <Compiler Name="MessageDirective">True</Compiler> 106 | <Compiler Name="TypeInfoImplicitlyAdded">True</Compiler> 107 | <Compiler Name="XMLWhitespaceNotAllowed">True</Compiler> 108 | <Compiler Name="XMLUnknownEntity">True</Compiler> 109 | <Compiler Name="XMLInvalidNameStart">True</Compiler> 110 | <Compiler Name="XMLInvalidName">True</Compiler> 111 | <Compiler Name="XMLExpectedCharacter">True</Compiler> 112 | <Compiler Name="XMLCRefNoResolve">True</Compiler> 113 | <Compiler Name="XMLNoParm">True</Compiler> 114 | <Compiler Name="XMLNoMatchingParm">True</Compiler> 115 | <Compiler Name="CodePage"></Compiler> 116 | </Compiler> 117 | <Linker> 118 | <Linker Name="MapFile">0</Linker> 119 | <Linker Name="OutputObjs">0</Linker> 120 | <Linker Name="GenerateHpps">False</Linker> 121 | <Linker Name="ConsoleApp">1</Linker> 122 | <Linker Name="DebugInfo">False</Linker> 123 | <Linker Name="RemoteSymbols">False</Linker> 124 | <Linker Name="GenerateDRC">False</Linker> 125 | <Linker Name="MinStackSize">16384</Linker> 126 | <Linker Name="MaxStackSize">1048576</Linker> 127 | <Linker Name="ImageBase">4194304</Linker> 128 | <Linker Name="ExeDescription"></Linker> 129 | </Linker> 130 | <Directories> 131 | <Directories Name="OutputDir">..\..\Bin</Directories> 132 | <Directories Name="UnitOutputDir">..\..\Dcu</Directories> 133 | <Directories Name="PackageDLLOutputDir"></Directories> 134 | <Directories Name="PackageDCPOutputDir"></Directories> 135 | <Directories Name="SearchPath">..\..\Source</Directories> 136 | <Directories Name="Packages">rtl;vcl</Directories> 137 | <Directories Name="Conditionals"></Directories> 138 | <Directories Name="DebugSourceDirs"></Directories> 139 | <Directories Name="UsePackages">False</Directories> 140 | </Directories> 141 | <Parameters> 142 | <Parameters Name="RunParams"></Parameters> 143 | <Parameters Name="HostApplication"></Parameters> 144 | <Parameters Name="Launcher"></Parameters> 145 | <Parameters Name="UseLauncher">False</Parameters> 146 | <Parameters Name="DebugCWD"></Parameters> 147 | <Parameters Name="Debug Symbols Search Path"></Parameters> 148 | <Parameters Name="LoadAllSymbols">True</Parameters> 149 | <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> 150 | </Parameters> 151 | <Signing> 152 | <Signing Name="SignAssembly">False</Signing> 153 | </Signing> 154 | <VersionInfo> 155 | <VersionInfo Name="IncludeVerInfo">False</VersionInfo> 156 | <VersionInfo Name="AutoIncBuild">False</VersionInfo> 157 | <VersionInfo Name="MajorVer">1</VersionInfo> 158 | <VersionInfo Name="MinorVer">0</VersionInfo> 159 | <VersionInfo Name="Release">0</VersionInfo> 160 | <VersionInfo Name="Build">0</VersionInfo> 161 | <VersionInfo Name="Debug">False</VersionInfo> 162 | <VersionInfo Name="PreRelease">False</VersionInfo> 163 | <VersionInfo Name="Special">False</VersionInfo> 164 | <VersionInfo Name="Private">False</VersionInfo> 165 | <VersionInfo Name="DLL">False</VersionInfo> 166 | <VersionInfo Name="Locale">2052</VersionInfo> 167 | <VersionInfo Name="CodePage">936</VersionInfo> 168 | </VersionInfo> 169 | <VersionInfoKeys> 170 | <VersionInfoKeys Name="CompanyName"></VersionInfoKeys> 171 | <VersionInfoKeys Name="FileDescription"></VersionInfoKeys> 172 | <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> 173 | <VersionInfoKeys Name="InternalName"></VersionInfoKeys> 174 | <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys> 175 | <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys> 176 | <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys> 177 | <VersionInfoKeys Name="ProductName"></VersionInfoKeys> 178 | <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> 179 | <VersionInfoKeys Name="Comments"></VersionInfoKeys> 180 | </VersionInfoKeys> 181 | <buildevents/> 182 | </Delphi.Personality> 183 | </BorlandProject> 184 | -------------------------------------------------------------------------------- /Demos/IE/Exe.cfg: -------------------------------------------------------------------------------- 1 | -$A8 2 | -$B- 3 | -$C+ 4 | -$D+ 5 | -$E- 6 | -$F- 7 | -$G+ 8 | -$H+ 9 | -$I+ 10 | -$J- 11 | -$K- 12 | -$L+ 13 | -$M- 14 | -$N+ 15 | -$O+ 16 | -$P+ 17 | -$Q- 18 | -$R- 19 | -$S- 20 | -$T- 21 | -$U- 22 | -$V+ 23 | -$W- 24 | -$X+ 25 | -$YD 26 | -$Z1 27 | -cg 28 | -AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; 29 | -H+ 30 | -W+ 31 | -M 32 | -$M16384,1048576 33 | -K$00400000 34 | -E"..\..\Bin" 35 | -N0"..\..\Dcu" 36 | -LE"C:\Users\Public\Documents\RAD Studio\5.0\Bpl" 37 | -LN"C:\Users\Public\Documents\RAD Studio\5.0\Dcp" 38 | -U"..\..\Source" 39 | -O"..\..\Source" 40 | -I"..\..\Source" 41 | -R"..\..\Source" 42 | -------------------------------------------------------------------------------- /Demos/IE/Exe.dpr: -------------------------------------------------------------------------------- 1 | program Exe; 2 | 3 | uses 4 | Forms, 5 | MainFrm in 'MainFrm.pas' {MainForm}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TMainForm, MainForm); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /Demos/IE/Exe.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delphilite/DelphiHookUtils/496ccbf3f7621878dce99c02077dc29254aca2b5/Demos/IE/Exe.res -------------------------------------------------------------------------------- /Demos/IE/IE.bdsgroup: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="utf-8"?> 2 | <BorlandProject> 3 | <PersonalityInfo> 4 | <Option> 5 | <Option Name="Personality">Default.Personality</Option> 6 | <Option Name="ProjectType"></Option> 7 | <Option Name="Version">1.0</Option> 8 | <Option Name="GUID">{74A80963-C1EC-4EC2-BA80-4AE023AE7131}</Option> 9 | </Option> 10 | </PersonalityInfo> 11 | <Default.Personality> 12 | <Projects> 13 | <Projects Name="Dll.dll">Dll.bdsproj</Projects> 14 | <Projects Name="Exe.exe">Exe.bdsproj</Projects> 15 | <Projects Name="Targets">Dll.dll Exe.exe</Projects> 16 | </Projects> 17 | <Dependencies/> 18 | </Default.Personality> 19 | </BorlandProject> 20 | -------------------------------------------------------------------------------- /Demos/IE/MainFrm.dfm: -------------------------------------------------------------------------------- 1 | object MainForm: TMainForm 2 | Left = 0 3 | Top = 0 4 | Caption = 'MainForm' 5 | ClientHeight = 299 6 | ClientWidth = 635 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | OnCreate = FormCreate 15 | OnShow = FormShow 16 | PixelsPerInch = 96 17 | TextHeight = 13 18 | end 19 | -------------------------------------------------------------------------------- /Demos/IE/MainFrm.pas: -------------------------------------------------------------------------------- 1 | unit MainFrm; 2 | 3 | interface 4 | 5 | uses 6 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 7 | Dialogs, SHDocVw; 8 | 9 | type 10 | TMainForm = class(TForm) 11 | procedure FormCreate(Sender: TObject); 12 | procedure FormShow(Sender: TObject); 13 | private 14 | FWebBrowser: TWebBrowser; 15 | end; 16 | 17 | var 18 | MainForm: TMainForm; 19 | 20 | implementation 21 | 22 | {$R *.dfm} 23 | 24 | { TMainForm } 25 | 26 | procedure TMainForm.FormCreate(Sender: TObject); 27 | begin 28 | LoadLibrary('Dll.dll'); 29 | end; 30 | 31 | procedure TMainForm.FormShow(Sender: TObject); 32 | begin 33 | FWebBrowser := TWebBrowser.Create(Self); 34 | TWinControl(FWebBrowser).Parent := Self; 35 | FWebBrowser.Align := alClient; 36 | FWebBrowser.Navigate('www.baidu.com'); 37 | end; 38 | 39 | end. 40 | -------------------------------------------------------------------------------- /Demos/VCL/Demo.bdsproj: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="utf-8"?> 2 | <BorlandProject> 3 | <PersonalityInfo> 4 | <Option> 5 | <Option Name="Personality">Delphi.Personality</Option> 6 | <Option Name="ProjectType">VCLApplication</Option> 7 | <Option Name="Version">1.0</Option> 8 | <Option Name="GUID">{22C91469-C47A-4589-892B-43EDA332712E}</Option> 9 | </Option> 10 | </PersonalityInfo> 11 | <Delphi.Personality> 12 | <Source> 13 | <Source Name="MainSource">Demo.dpr</Source> 14 | </Source> 15 | <FileVersion> 16 | <FileVersion Name="Version">7.0</FileVersion> 17 | </FileVersion> 18 | <Compiler> 19 | <Compiler Name="A">8</Compiler> 20 | <Compiler Name="B">0</Compiler> 21 | <Compiler Name="C">1</Compiler> 22 | <Compiler Name="D">1</Compiler> 23 | <Compiler Name="E">0</Compiler> 24 | <Compiler Name="F">0</Compiler> 25 | <Compiler Name="G">1</Compiler> 26 | <Compiler Name="H">1</Compiler> 27 | <Compiler Name="I">1</Compiler> 28 | <Compiler Name="J">0</Compiler> 29 | <Compiler Name="K">0</Compiler> 30 | <Compiler Name="L">1</Compiler> 31 | <Compiler Name="M">0</Compiler> 32 | <Compiler Name="N">1</Compiler> 33 | <Compiler Name="O">1</Compiler> 34 | <Compiler Name="P">1</Compiler> 35 | <Compiler Name="Q">0</Compiler> 36 | <Compiler Name="R">0</Compiler> 37 | <Compiler Name="S">0</Compiler> 38 | <Compiler Name="T">0</Compiler> 39 | <Compiler Name="U">0</Compiler> 40 | <Compiler Name="V">1</Compiler> 41 | <Compiler Name="W">0</Compiler> 42 | <Compiler Name="X">1</Compiler> 43 | <Compiler Name="Y">1</Compiler> 44 | <Compiler Name="Z">1</Compiler> 45 | <Compiler Name="ShowHints">True</Compiler> 46 | <Compiler Name="ShowWarnings">True</Compiler> 47 | <Compiler Name="UnitAliases">WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;</Compiler> 48 | <Compiler Name="NamespacePrefix"></Compiler> 49 | <Compiler Name="GenerateDocumentation">False</Compiler> 50 | <Compiler Name="DefaultNamespace"></Compiler> 51 | <Compiler Name="SymbolDeprecated">True</Compiler> 52 | <Compiler Name="SymbolLibrary">True</Compiler> 53 | <Compiler Name="SymbolPlatform">True</Compiler> 54 | <Compiler Name="SymbolExperimental">True</Compiler> 55 | <Compiler Name="UnitLibrary">True</Compiler> 56 | <Compiler Name="UnitPlatform">True</Compiler> 57 | <Compiler Name="UnitDeprecated">True</Compiler> 58 | <Compiler Name="UnitExperimental">True</Compiler> 59 | <Compiler Name="HResultCompat">True</Compiler> 60 | <Compiler Name="HidingMember">True</Compiler> 61 | <Compiler Name="HiddenVirtual">True</Compiler> 62 | <Compiler Name="Garbage">True</Compiler> 63 | <Compiler Name="BoundsError">True</Compiler> 64 | <Compiler Name="ZeroNilCompat">True</Compiler> 65 | <Compiler Name="StringConstTruncated">True</Compiler> 66 | <Compiler Name="ForLoopVarVarPar">True</Compiler> 67 | <Compiler Name="TypedConstVarPar">True</Compiler> 68 | <Compiler Name="AsgToTypedConst">True</Compiler> 69 | <Compiler Name="CaseLabelRange">True</Compiler> 70 | <Compiler Name="ForVariable">True</Compiler> 71 | <Compiler Name="ConstructingAbstract">True</Compiler> 72 | <Compiler Name="ComparisonFalse">True</Compiler> 73 | <Compiler Name="ComparisonTrue">True</Compiler> 74 | <Compiler Name="ComparingSignedUnsigned">True</Compiler> 75 | <Compiler Name="CombiningSignedUnsigned">True</Compiler> 76 | <Compiler Name="UnsupportedConstruct">True</Compiler> 77 | <Compiler Name="FileOpen">True</Compiler> 78 | <Compiler Name="FileOpenUnitSrc">True</Compiler> 79 | <Compiler Name="BadGlobalSymbol">True</Compiler> 80 | <Compiler Name="DuplicateConstructorDestructor">True</Compiler> 81 | <Compiler Name="InvalidDirective">True</Compiler> 82 | <Compiler Name="PackageNoLink">True</Compiler> 83 | <Compiler Name="PackageThreadVar">True</Compiler> 84 | <Compiler Name="ImplicitImport">True</Compiler> 85 | <Compiler Name="HPPEMITIgnored">True</Compiler> 86 | <Compiler Name="NoRetVal">True</Compiler> 87 | <Compiler Name="UseBeforeDef">True</Compiler> 88 | <Compiler Name="ForLoopVarUndef">True</Compiler> 89 | <Compiler Name="UnitNameMismatch">True</Compiler> 90 | <Compiler Name="NoCFGFileFound">True</Compiler> 91 | <Compiler Name="ImplicitVariants">True</Compiler> 92 | <Compiler Name="UnicodeToLocale">True</Compiler> 93 | <Compiler Name="LocaleToUnicode">True</Compiler> 94 | <Compiler Name="ImagebaseMultiple">True</Compiler> 95 | <Compiler Name="SuspiciousTypecast">True</Compiler> 96 | <Compiler Name="PrivatePropAccessor">True</Compiler> 97 | <Compiler Name="UnsafeType">False</Compiler> 98 | <Compiler Name="UnsafeCode">False</Compiler> 99 | <Compiler Name="UnsafeCast">False</Compiler> 100 | <Compiler Name="OptionTruncated">True</Compiler> 101 | <Compiler Name="WideCharReduced">True</Compiler> 102 | <Compiler Name="DuplicatesIgnored">True</Compiler> 103 | <Compiler Name="UnitInitSeq">True</Compiler> 104 | <Compiler Name="LocalPInvoke">True</Compiler> 105 | <Compiler Name="MessageDirective">True</Compiler> 106 | <Compiler Name="TypeInfoImplicitlyAdded">True</Compiler> 107 | <Compiler Name="XMLWhitespaceNotAllowed">True</Compiler> 108 | <Compiler Name="XMLUnknownEntity">True</Compiler> 109 | <Compiler Name="XMLInvalidNameStart">True</Compiler> 110 | <Compiler Name="XMLInvalidName">True</Compiler> 111 | <Compiler Name="XMLExpectedCharacter">True</Compiler> 112 | <Compiler Name="XMLCRefNoResolve">True</Compiler> 113 | <Compiler Name="XMLNoParm">True</Compiler> 114 | <Compiler Name="XMLNoMatchingParm">True</Compiler> 115 | <Compiler Name="CodePage"></Compiler> 116 | </Compiler> 117 | <Linker> 118 | <Linker Name="MapFile">0</Linker> 119 | <Linker Name="OutputObjs">0</Linker> 120 | <Linker Name="GenerateHpps">False</Linker> 121 | <Linker Name="ConsoleApp">1</Linker> 122 | <Linker Name="DebugInfo">False</Linker> 123 | <Linker Name="RemoteSymbols">False</Linker> 124 | <Linker Name="GenerateDRC">False</Linker> 125 | <Linker Name="MinStackSize">16384</Linker> 126 | <Linker Name="MaxStackSize">1048576</Linker> 127 | <Linker Name="ImageBase">4194304</Linker> 128 | <Linker Name="ExeDescription"></Linker> 129 | </Linker> 130 | <Directories> 131 | <Directories Name="OutputDir">..\..\Bin</Directories> 132 | <Directories Name="UnitOutputDir">..\..\Dcu</Directories> 133 | <Directories Name="PackageDLLOutputDir"></Directories> 134 | <Directories Name="PackageDCPOutputDir"></Directories> 135 | <Directories Name="SearchPath"></Directories> 136 | <Directories Name="Packages"></Directories> 137 | <Directories Name="Conditionals"></Directories> 138 | <Directories Name="DebugSourceDirs"></Directories> 139 | <Directories Name="UsePackages">False</Directories> 140 | </Directories> 141 | <Parameters> 142 | <Parameters Name="RunParams"></Parameters> 143 | <Parameters Name="HostApplication"></Parameters> 144 | <Parameters Name="Launcher"></Parameters> 145 | <Parameters Name="UseLauncher">False</Parameters> 146 | <Parameters Name="DebugCWD"></Parameters> 147 | <Parameters Name="Debug Symbols Search Path"></Parameters> 148 | <Parameters Name="LoadAllSymbols">True</Parameters> 149 | <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> 150 | </Parameters> 151 | <Signing> 152 | <Signing Name="SignAssembly">False</Signing> 153 | </Signing> 154 | <VersionInfo> 155 | <VersionInfo Name="IncludeVerInfo">True</VersionInfo> 156 | <VersionInfo Name="AutoIncBuild">False</VersionInfo> 157 | <VersionInfo Name="MajorVer">1</VersionInfo> 158 | <VersionInfo Name="MinorVer">0</VersionInfo> 159 | <VersionInfo Name="Release">0</VersionInfo> 160 | <VersionInfo Name="Build">0</VersionInfo> 161 | <VersionInfo Name="Debug">False</VersionInfo> 162 | <VersionInfo Name="PreRelease">False</VersionInfo> 163 | <VersionInfo Name="Special">False</VersionInfo> 164 | <VersionInfo Name="Private">False</VersionInfo> 165 | <VersionInfo Name="DLL">False</VersionInfo> 166 | <VersionInfo Name="Locale">1033</VersionInfo> 167 | <VersionInfo Name="CodePage">1252</VersionInfo> 168 | </VersionInfo> 169 | <VersionInfoKeys> 170 | <VersionInfoKeys Name="CompanyName"></VersionInfoKeys> 171 | <VersionInfoKeys Name="FileDescription"></VersionInfoKeys> 172 | <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> 173 | <VersionInfoKeys Name="InternalName"></VersionInfoKeys> 174 | <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys> 175 | <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys> 176 | <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys> 177 | <VersionInfoKeys Name="ProductName"></VersionInfoKeys> 178 | <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> 179 | <VersionInfoKeys Name="Comments"></VersionInfoKeys> 180 | </VersionInfoKeys> 181 | <buildevents/> 182 | </Delphi.Personality> 183 | </BorlandProject> 184 | -------------------------------------------------------------------------------- /Demos/VCL/Demo.cfg: -------------------------------------------------------------------------------- 1 | -$A8 2 | -$B- 3 | -$C+ 4 | -$D+ 5 | -$E- 6 | -$F- 7 | -$G+ 8 | -$H+ 9 | -$I+ 10 | -$J- 11 | -$K- 12 | -$L+ 13 | -$M- 14 | -$N+ 15 | -$O+ 16 | -$P+ 17 | -$Q- 18 | -$R- 19 | -$S- 20 | -$T- 21 | -$U- 22 | -$V+ 23 | -$W- 24 | -$X+ 25 | -$YD 26 | -$Z1 27 | -cg 28 | -AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; 29 | -H+ 30 | -W+ 31 | -M 32 | -$M16384,1048576 33 | -K$00400000 34 | -E"..\..\Bin" 35 | -N0"..\..\Dcu" 36 | -LE"C:\Users\Public\Documents\RAD Studio\5.0\Bpl" 37 | -LN"C:\Users\Public\Documents\RAD Studio\5.0\Dcp" 38 | -------------------------------------------------------------------------------- /Demos/VCL/Demo.dpr: -------------------------------------------------------------------------------- 1 | program Demo; 2 | 3 | {$IF CompilerVersion >= 21.0} 4 | {$WEAKLINKRTTI ON} 5 | {$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])} 6 | {$IFEND} 7 | 8 | uses 9 | Forms, 10 | 11 | HookUtils in '..\..\Source\HookUtils.pas', 12 | HookIntfs in '..\..\Source\HookIntfs.pas', 13 | 14 | MainFrm in 'MainFrm.pas' {MainForm}; 15 | 16 | {$R *.res} 17 | 18 | begin 19 | Application.Initialize; 20 | Application.CreateForm(TMainForm, MainForm); 21 | Application.Run; 22 | end. 23 | -------------------------------------------------------------------------------- /Demos/VCL/Demo.dproj: -------------------------------------------------------------------------------- 1 |  <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 2 | <PropertyGroup> 3 | <ProjectGuid>{58563B04-68D3-47BF-A8FF-5A781C480F37}</ProjectGuid> 4 | <ProjectVersion>13.4</ProjectVersion> 5 | <FrameworkType>VCL</FrameworkType> 6 | <MainSource>Demo.dpr</MainSource> 7 | <Base>True</Base> 8 | <Config Condition="'$(Config)'==''">Debug</Config> 9 | <Platform Condition="'$(Platform)'==''">Win32</Platform> 10 | <TargetedPlatforms>3</TargetedPlatforms> 11 | <AppType>Application</AppType> 12 | </PropertyGroup> 13 | <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> 14 | <Base>true</Base> 15 | </PropertyGroup> 16 | <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''"> 17 | <Base_Win64>true</Base_Win64> 18 | <CfgParent>Base</CfgParent> 19 | <Base>true</Base> 20 | </PropertyGroup> 21 | <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> 22 | <Base_Win32>true</Base_Win32> 23 | <CfgParent>Base</CfgParent> 24 | <Base>true</Base> 25 | </PropertyGroup> 26 | <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_1)'!=''"> 27 | <Cfg_1>true</Cfg_1> 28 | <CfgParent>Base</CfgParent> 29 | <Base>true</Base> 30 | </PropertyGroup> 31 | <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win64)'!=''"> 32 | <Cfg_1_Win64>true</Cfg_1_Win64> 33 | <CfgParent>Cfg_1</CfgParent> 34 | <Cfg_1>true</Cfg_1> 35 | <Base>true</Base> 36 | </PropertyGroup> 37 | <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''"> 38 | <Cfg_1_Win32>true</Cfg_1_Win32> 39 | <CfgParent>Cfg_1</CfgParent> 40 | <Cfg_1>true</Cfg_1> 41 | <Base>true</Base> 42 | </PropertyGroup> 43 | <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''"> 44 | <Cfg_2>true</Cfg_2> 45 | <CfgParent>Base</CfgParent> 46 | <Base>true</Base> 47 | </PropertyGroup> 48 | <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''"> 49 | <Cfg_2_Win32>true</Cfg_2_Win32> 50 | <CfgParent>Cfg_2</CfgParent> 51 | <Cfg_2>true</Cfg_2> 52 | <Base>true</Base> 53 | </PropertyGroup> 54 | <PropertyGroup Condition="'$(Base)'!=''"> 55 | <Manifest_File>None</Manifest_File> 56 | <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> 57 | <VerInfo_Locale>2052</VerInfo_Locale> 58 | <DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace)</DCC_Namespace> 59 | <Icon_MainIcon>$(BDS)\bin\delphi_PROJECTICON.ico</Icon_MainIcon> 60 | <DCC_UsePackage>bindcompfmx;CustomIPTransport;fmx;dsnap;rtl;dbrtl;fmxase;bindcomp;inetdb;inet;fmxobj;xmlrtl;inetdbxpress;fmxdae;bindengine;soaprtl;$(DCC_UsePackage)</DCC_UsePackage> 61 | <DCC_DcuOutput>..\..\Dcu</DCC_DcuOutput> 62 | <DCC_ExeOutput>..\..\Bin</DCC_ExeOutput> 63 | </PropertyGroup> 64 | <PropertyGroup Condition="'$(Base_Win64)'!=''"> 65 | <DCC_UsePackage>bindcompvcl;vclie;websnap;VclSmp;vcl;dsnapcon;vclx;webdsnap;vclimg;vclactnband;adortl;vcldb;$(DCC_UsePackage)</DCC_UsePackage> 66 | <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> 67 | <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace)</DCC_Namespace> 68 | <VerInfo_Locale>1033</VerInfo_Locale> 69 | <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File> 70 | <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> 71 | </PropertyGroup> 72 | <PropertyGroup Condition="'$(Base_Win32)'!=''"> 73 | <DCC_UsePackage>bindcompvcl;vclie;websnap;vclribbon;VclSmp;vcl;inetdbbde;dsnapcon;vclx;webdsnap;vclimg;fmi;vclactnband;adortl;vcldb;$(DCC_UsePackage)</DCC_UsePackage> 74 | <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> 75 | <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> 76 | <VerInfo_Locale>1033</VerInfo_Locale> 77 | <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File> 78 | <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> 79 | </PropertyGroup> 80 | <PropertyGroup Condition="'$(Cfg_1)'!=''"> 81 | <Manifest_File>None</Manifest_File> 82 | <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> 83 | <DCC_DebugDCUs>true</DCC_DebugDCUs> 84 | <VerInfo_Locale>2052</VerInfo_Locale> 85 | <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> 86 | <DCC_Optimize>false</DCC_Optimize> 87 | <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> 88 | <DCC_DebugInfoInExe>true</DCC_DebugInfoInExe> 89 | <DCC_RemoteDebug>true</DCC_RemoteDebug> 90 | </PropertyGroup> 91 | <PropertyGroup Condition="'$(Cfg_1_Win64)'!=''"> 92 | <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> 93 | <VerInfo_Locale>1033</VerInfo_Locale> 94 | </PropertyGroup> 95 | <PropertyGroup Condition="'$(Cfg_1_Win32)'!=''"> 96 | <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> 97 | <DCC_RemoteDebug>false</DCC_RemoteDebug> 98 | </PropertyGroup> 99 | <PropertyGroup Condition="'$(Cfg_2)'!=''"> 100 | <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> 101 | <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> 102 | <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> 103 | <DCC_DebugInformation>false</DCC_DebugInformation> 104 | </PropertyGroup> 105 | <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''"> 106 | <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> 107 | <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File> 108 | <VerInfo_Locale>1033</VerInfo_Locale> 109 | </PropertyGroup> 110 | <ItemGroup> 111 | <DelphiCompile Include="$(MainSource)"> 112 | <MainSource>MainSource</MainSource> 113 | </DelphiCompile> 114 | <DCCReference Include="..\..\Source\HookUtils.pas"/> 115 | <DCCReference Include="..\..\Source\HookIntfs.pas"/> 116 | <DCCReference Include="MainFrm.pas"> 117 | <Form>MainForm</Form> 118 | </DCCReference> 119 | <BuildConfiguration Include="Release"> 120 | <Key>Cfg_2</Key> 121 | <CfgParent>Base</CfgParent> 122 | </BuildConfiguration> 123 | <BuildConfiguration Include="Base"> 124 | <Key>Base</Key> 125 | </BuildConfiguration> 126 | <BuildConfiguration Include="Debug"> 127 | <Key>Cfg_1</Key> 128 | <CfgParent>Base</CfgParent> 129 | </BuildConfiguration> 130 | </ItemGroup> 131 | <ProjectExtensions> 132 | <Borland.Personality>Delphi.Personality.12</Borland.Personality> 133 | <Borland.ProjectType/> 134 | <BorlandProject> 135 | <Delphi.Personality> 136 | <VersionInfo> 137 | <VersionInfo Name="IncludeVerInfo">False</VersionInfo> 138 | <VersionInfo Name="AutoIncBuild">False</VersionInfo> 139 | <VersionInfo Name="MajorVer">1</VersionInfo> 140 | <VersionInfo Name="MinorVer">0</VersionInfo> 141 | <VersionInfo Name="Release">0</VersionInfo> 142 | <VersionInfo Name="Build">0</VersionInfo> 143 | <VersionInfo Name="Debug">False</VersionInfo> 144 | <VersionInfo Name="PreRelease">False</VersionInfo> 145 | <VersionInfo Name="Special">False</VersionInfo> 146 | <VersionInfo Name="Private">False</VersionInfo> 147 | <VersionInfo Name="DLL">False</VersionInfo> 148 | <VersionInfo Name="Locale">2052</VersionInfo> 149 | <VersionInfo Name="CodePage">936</VersionInfo> 150 | </VersionInfo> 151 | <VersionInfoKeys> 152 | <VersionInfoKeys Name="CompanyName"/> 153 | <VersionInfoKeys Name="FileDescription"/> 154 | <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> 155 | <VersionInfoKeys Name="InternalName"/> 156 | <VersionInfoKeys Name="LegalCopyright"/> 157 | <VersionInfoKeys Name="LegalTrademarks"/> 158 | <VersionInfoKeys Name="OriginalFilename"/> 159 | <VersionInfoKeys Name="ProductName"/> 160 | <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> 161 | <VersionInfoKeys Name="Comments"/> 162 | </VersionInfoKeys> 163 | <Source> 164 | <Source Name="MainSource">Demo.dpr</Source> 165 | </Source> 166 | <Excluded_Packages/> 167 | </Delphi.Personality> 168 | <Deployment/> 169 | <Platforms> 170 | <Platform value="Win64">True</Platform> 171 | <Platform value="Win32">True</Platform> 172 | </Platforms> 173 | </BorlandProject> 174 | <ProjectFileVersion>12</ProjectFileVersion> 175 | </ProjectExtensions> 176 | <Import Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')" Project="$(BDS)\Bin\CodeGear.Delphi.Targets"/> 177 | <Import Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')" Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj"/> 178 | </Project> 179 | -------------------------------------------------------------------------------- /Demos/VCL/Demo.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delphilite/DelphiHookUtils/496ccbf3f7621878dce99c02077dc29254aca2b5/Demos/VCL/Demo.res -------------------------------------------------------------------------------- /Demos/VCL/MainFrm.dfm: -------------------------------------------------------------------------------- 1 | object MainForm: TMainForm 2 | Left = 460 3 | Top = 265 4 | Caption = 'MainForm' 5 | ClientHeight = 260 6 | ClientWidth = 424 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | Position = poScreenCenter 15 | OnCreate = FormCreate 16 | OnDestroy = FormDestroy 17 | PixelsPerInch = 96 18 | TextHeight = 13 19 | object cbHookAPI: TCheckBox 20 | Left = 112 21 | Top = 84 22 | Width = 200 23 | Height = 17 24 | Caption = 'Hook Windows API' 25 | TabOrder = 0 26 | OnClick = cbHookAPIClick 27 | end 28 | object cbHookCOM: TCheckBox 29 | Left = 112 30 | Top = 121 31 | Width = 200 32 | Height = 17 33 | Caption = 'Hook COM' 34 | TabOrder = 1 35 | OnClick = cbHookCOMClick 36 | end 37 | object cbHookObject: TCheckBox 38 | Left = 112 39 | Top = 160 40 | Width = 200 41 | Height = 17 42 | Caption = 'Hook Method' 43 | TabOrder = 2 44 | OnClick = cbHookObjectClick 45 | end 46 | end 47 | -------------------------------------------------------------------------------- /Demos/VCL/MainFrm.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delphilite/DelphiHookUtils/496ccbf3f7621878dce99c02077dc29254aca2b5/Demos/VCL/MainFrm.pas -------------------------------------------------------------------------------- /Demos/XP/Demo.dpr: -------------------------------------------------------------------------------- 1 | program Demo; 2 | 3 | {$IF CompilerVersion >= 21.0} 4 | {$WEAKLINKRTTI ON} 5 | {$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])} 6 | {$IFEND} 7 | 8 | uses 9 | System.SysUtils, 10 | 11 | HookUtils in '..\..\Source\HookUtils.pas', 12 | HookIntfs in '..\..\Source\HookIntfs.pas', 13 | 14 | XPCmpatibilityTweak in 'XPCmpatibilityTweak.pas', 15 | 16 | Vcl.Forms, 17 | 18 | MainFrm in 'MainFrm.pas' {MainForm}; 19 | 20 | {$R *.res} 21 | 22 | {$SETPEOSVERSION 5.0} 23 | {$SETPESUBSYSVERSION 5.0} { for Windows XP } 24 | 25 | begin 26 | Application.Initialize; 27 | Application.MainFormOnTaskbar := True; 28 | Application.CreateForm(TMainForm, MainForm); 29 | Application.Run; 30 | end. 31 | -------------------------------------------------------------------------------- /Demos/XP/Demo.dproj: -------------------------------------------------------------------------------- 1 | <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 2 | <PropertyGroup> 3 | <ProjectGuid>{4CCBD917-AAAD-4972-811A-5C787CDBACC4}</ProjectGuid> 4 | <ProjectVersion>19.3</ProjectVersion> 5 | <FrameworkType>VCL</FrameworkType> 6 | <Base>True</Base> 7 | <Config Condition="'$(Config)'==''">Debug</Config> 8 | <Platform Condition="'$(Platform)'==''">Win32</Platform> 9 | <TargetedPlatforms>3</TargetedPlatforms> 10 | <AppType>Application</AppType> 11 | <MainSource>Demo.dpr</MainSource> 12 | </PropertyGroup> 13 | <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> 14 | <Base>true</Base> 15 | </PropertyGroup> 16 | <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> 17 | <Base_Win32>true</Base_Win32> 18 | <CfgParent>Base</CfgParent> 19 | <Base>true</Base> 20 | </PropertyGroup> 21 | <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''"> 22 | <Base_Win64>true</Base_Win64> 23 | <CfgParent>Base</CfgParent> 24 | <Base>true</Base> 25 | </PropertyGroup> 26 | <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_1)'!=''"> 27 | <Cfg_1>true</Cfg_1> 28 | <CfgParent>Base</CfgParent> 29 | <Base>true</Base> 30 | </PropertyGroup> 31 | <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''"> 32 | <Cfg_1_Win32>true</Cfg_1_Win32> 33 | <CfgParent>Cfg_1</CfgParent> 34 | <Cfg_1>true</Cfg_1> 35 | <Base>true</Base> 36 | </PropertyGroup> 37 | <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win64)'!=''"> 38 | <Cfg_1_Win64>true</Cfg_1_Win64> 39 | <CfgParent>Cfg_1</CfgParent> 40 | <Cfg_1>true</Cfg_1> 41 | <Base>true</Base> 42 | </PropertyGroup> 43 | <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''"> 44 | <Cfg_2>true</Cfg_2> 45 | <CfgParent>Base</CfgParent> 46 | <Base>true</Base> 47 | </PropertyGroup> 48 | <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''"> 49 | <Cfg_2_Win32>true</Cfg_2_Win32> 50 | <CfgParent>Cfg_2</CfgParent> 51 | <Cfg_2>true</Cfg_2> 52 | <Base>true</Base> 53 | </PropertyGroup> 54 | <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win64)'!=''"> 55 | <Cfg_2_Win64>true</Cfg_2_Win64> 56 | <CfgParent>Cfg_2</CfgParent> 57 | <Cfg_2>true</Cfg_2> 58 | <Base>true</Base> 59 | </PropertyGroup> 60 | <PropertyGroup Condition="'$(Base)'!=''"> 61 | <DCC_DcuOutput>..\..\Dcu\$(Platform)\$(Config)</DCC_DcuOutput> 62 | <DCC_ExeOutput>..\..\Bin\$(Platform)\$(Config)</DCC_ExeOutput> 63 | <DCC_E>false</DCC_E> 64 | <DCC_N>false</DCC_N> 65 | <DCC_S>false</DCC_S> 66 | <DCC_F>false</DCC_F> 67 | <DCC_K>false</DCC_K> 68 | <DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace)</DCC_Namespace> 69 | <Icon_MainIcon>$(BDS)\bin\delphi_PROJECTICON.ico</Icon_MainIcon> 70 | <UWP_DelphiLogo44>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png</UWP_DelphiLogo44> 71 | <UWP_DelphiLogo150>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png</UWP_DelphiLogo150> 72 | <SanitizedProjectName>Demo</SanitizedProjectName> 73 | <VerInfo_Locale>2052</VerInfo_Locale> 74 | <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> 75 | </PropertyGroup> 76 | <PropertyGroup Condition="'$(Base_Win32)'!=''"> 77 | <DCC_UsePackage>DataSnapServer;vclwinx;emshosting;fmx;DbxCommonDriver;vclie;bindengine;VCLRESTComponents;FireDACCommonODBC;DBXMSSQLDriver;IndyIPCommon;emsclient;FireDACCommonDriver;appanalytics;IndyProtocols;vclx;dbxcds;vcledge;IndyIPClient;bindcompvclwinx;FmxTeeUI;emsedge;bindcompfmx;DBXFirebirdDriver;inetdb;ibmonitor;FireDACSqliteDriver;DbxClientDriver;FireDACASADriver;Tee;soapmidas;vclactnband;TeeUI;fmxFireDAC;dbexpress;FireDACInfxDriver;DBXMySQLDriver;VclSmp;inet;DataSnapCommon;fmxase;vcltouch;DBXOdbcDriver;dbrtl;FireDACOracleDriver;FireDACDBXDriver;fmxdae;TeeDB;FireDACMSAccDriver;CustomIPTransport;FireDACMSSQLDriver;DataSnapIndy10ServerTransport;DataSnapConnectors;vcldsnap;DBXInterBaseDriver;FireDACMongoDBDriver;IndySystem;FireDACTDataDriver;vcldb;ibxbindings;vclFireDAC;bindcomp;FireDACCommon;DataSnapServerMidas;FireDACODBCDriver;emsserverresource;IndyCore;RESTBackendComponents;bindcompdbx;rtl;FireDACMySQLDriver;FireDACADSDriver;RESTComponents;DBXSqliteDriver;vcl;adortl;dsnapxml;IndyIPServer;DataSnapClient;DataSnapProviderClient;dsnapcon;DBXSybaseASEDriver;DBXDb2Driver;vclimg;DataSnapFireDAC;emsclientfiredac;FireDACPgDriver;FireDAC;FireDACDSDriver;inetdbxpress;xmlrtl;tethering;ibxpress;bindcompvcl;dsnap;DBXSybaseASADriver;CloudService;DBXOracleDriver;FireDACDb2Driver;DBXInformixDriver;vclib;DataSnapNativeClient;bindcompvclsmp;fmxobj;FMXTee;DatasnapConnectorsFreePascal;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage)</DCC_UsePackage> 78 | <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> 79 | <BT_BuildType>Debug</BT_BuildType> 80 | <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> 81 | <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> 82 | <VerInfo_Locale>1033</VerInfo_Locale> 83 | <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File> 84 | </PropertyGroup> 85 | <PropertyGroup Condition="'$(Base_Win64)'!=''"> 86 | <DCC_UsePackage>DataSnapServer;vclwinx;emshosting;fmx;DbxCommonDriver;vclie;bindengine;VCLRESTComponents;FireDACCommonODBC;DBXMSSQLDriver;IndyIPCommon;emsclient;FireDACCommonDriver;appanalytics;IndyProtocols;vclx;dbxcds;vcledge;IndyIPClient;bindcompvclwinx;FmxTeeUI;emsedge;bindcompfmx;DBXFirebirdDriver;inetdb;ibmonitor;FireDACSqliteDriver;DbxClientDriver;FireDACASADriver;Tee;soapmidas;vclactnband;TeeUI;fmxFireDAC;dbexpress;FireDACInfxDriver;DBXMySQLDriver;VclSmp;inet;DataSnapCommon;fmxase;vcltouch;DBXOdbcDriver;dbrtl;FireDACOracleDriver;FireDACDBXDriver;fmxdae;TeeDB;FireDACMSAccDriver;CustomIPTransport;FireDACMSSQLDriver;DataSnapIndy10ServerTransport;DataSnapConnectors;vcldsnap;DBXInterBaseDriver;FireDACMongoDBDriver;IndySystem;FireDACTDataDriver;vcldb;ibxbindings;vclFireDAC;bindcomp;FireDACCommon;DataSnapServerMidas;FireDACODBCDriver;emsserverresource;IndyCore;RESTBackendComponents;bindcompdbx;rtl;FireDACMySQLDriver;FireDACADSDriver;RESTComponents;DBXSqliteDriver;vcl;adortl;dsnapxml;IndyIPServer;DataSnapClient;DataSnapProviderClient;dsnapcon;DBXSybaseASEDriver;DBXDb2Driver;vclimg;DataSnapFireDAC;emsclientfiredac;FireDACPgDriver;FireDAC;FireDACDSDriver;inetdbxpress;xmlrtl;tethering;ibxpress;bindcompvcl;dsnap;DBXSybaseASADriver;CloudService;DBXOracleDriver;FireDACDb2Driver;DBXInformixDriver;vclib;DataSnapNativeClient;bindcompvclsmp;fmxobj;FMXTee;DatasnapConnectorsFreePascal;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage)</DCC_UsePackage> 87 | <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace)</DCC_Namespace> 88 | <BT_BuildType>Debug</BT_BuildType> 89 | <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> 90 | <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> 91 | <VerInfo_Locale>1033</VerInfo_Locale> 92 | <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File> 93 | </PropertyGroup> 94 | <PropertyGroup Condition="'$(Cfg_1)'!=''"> 95 | <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> 96 | <DCC_DebugDCUs>true</DCC_DebugDCUs> 97 | <DCC_Optimize>false</DCC_Optimize> 98 | <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> 99 | <DCC_DebugInfoInExe>true</DCC_DebugInfoInExe> 100 | <DCC_RemoteDebug>true</DCC_RemoteDebug> 101 | <DCC_IntegerOverflowCheck>true</DCC_IntegerOverflowCheck> 102 | <DCC_RangeChecking>true</DCC_RangeChecking> 103 | </PropertyGroup> 104 | <PropertyGroup Condition="'$(Cfg_1_Win32)'!=''"> 105 | <DCC_RemoteDebug>false</DCC_RemoteDebug> 106 | <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes> 107 | <AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode> 108 | <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> 109 | <VerInfo_Locale>1033</VerInfo_Locale> 110 | </PropertyGroup> 111 | <PropertyGroup Condition="'$(Cfg_1_Win64)'!=''"> 112 | <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes> 113 | <AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode> 114 | </PropertyGroup> 115 | <PropertyGroup Condition="'$(Cfg_2)'!=''"> 116 | <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> 117 | <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> 118 | <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> 119 | <DCC_DebugInformation>0</DCC_DebugInformation> 120 | </PropertyGroup> 121 | <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''"> 122 | <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes> 123 | <AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode> 124 | </PropertyGroup> 125 | <PropertyGroup Condition="'$(Cfg_2_Win64)'!=''"> 126 | <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes> 127 | <AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode> 128 | </PropertyGroup> 129 | <ItemGroup> 130 | <DelphiCompile Include="$(MainSource)"> 131 | <MainSource>MainSource</MainSource> 132 | </DelphiCompile> 133 | <DCCReference Include="..\..\Source\HookUtils.pas"/> 134 | <DCCReference Include="..\..\Source\HookIntfs.pas"/> 135 | <DCCReference Include="XPCmpatibilityTweak.pas"/> 136 | <DCCReference Include="MainFrm.pas"> 137 | <Form>MainForm</Form> 138 | </DCCReference> 139 | <BuildConfiguration Include="Base"> 140 | <Key>Base</Key> 141 | </BuildConfiguration> 142 | <BuildConfiguration Include="Debug"> 143 | <Key>Cfg_1</Key> 144 | <CfgParent>Base</CfgParent> 145 | </BuildConfiguration> 146 | <BuildConfiguration Include="Release"> 147 | <Key>Cfg_2</Key> 148 | <CfgParent>Base</CfgParent> 149 | </BuildConfiguration> 150 | </ItemGroup> 151 | <ProjectExtensions> 152 | <Borland.Personality>Delphi.Personality.12</Borland.Personality> 153 | <Borland.ProjectType>Application</Borland.ProjectType> 154 | <BorlandProject> 155 | <Delphi.Personality> 156 | <Source> 157 | <Source Name="MainSource">Demo.dpr</Source> 158 | </Source> 159 | <Excluded_Packages> 160 | <Excluded_Packages Name="$(BDSBIN)\dcloffice2k280.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages> 161 | <Excluded_Packages Name="$(BDSBIN)\dclofficexp280.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages> 162 | </Excluded_Packages> 163 | </Delphi.Personality> 164 | <Deployment Version="3"> 165 | <DeployFile LocalName="Win32\Debug\Demo.exe" Configuration="Debug" Class="ProjectOutput"> 166 | <Platform Name="Win32"> 167 | <RemoteName>Demo.exe</RemoteName> 168 | <Overwrite>true</Overwrite> 169 | </Platform> 170 | </DeployFile> 171 | <DeployClass Name="AdditionalDebugSymbols"> 172 | <Platform Name="iOSSimulator"> 173 | <Operation>1</Operation> 174 | </Platform> 175 | <Platform Name="OSX32"> 176 | <RemoteDir>Contents\MacOS</RemoteDir> 177 | <Operation>1</Operation> 178 | </Platform> 179 | <Platform Name="Win32"> 180 | <Operation>0</Operation> 181 | </Platform> 182 | </DeployClass> 183 | <DeployClass Name="AndroidClasses"> 184 | <Platform Name="Android"> 185 | <RemoteDir>classes</RemoteDir> 186 | <Operation>64</Operation> 187 | </Platform> 188 | <Platform Name="Android64"> 189 | <RemoteDir>classes</RemoteDir> 190 | <Operation>64</Operation> 191 | </Platform> 192 | </DeployClass> 193 | <DeployClass Name="AndroidFileProvider"> 194 | <Platform Name="Android"> 195 | <RemoteDir>res\xml</RemoteDir> 196 | <Operation>1</Operation> 197 | </Platform> 198 | <Platform Name="Android64"> 199 | <RemoteDir>res\xml</RemoteDir> 200 | <Operation>1</Operation> 201 | </Platform> 202 | </DeployClass> 203 | <DeployClass Name="AndroidGDBServer"> 204 | <Platform Name="Android"> 205 | <RemoteDir>library\lib\armeabi-v7a</RemoteDir> 206 | <Operation>1</Operation> 207 | </Platform> 208 | </DeployClass> 209 | <DeployClass Name="AndroidLibnativeArmeabiFile"> 210 | <Platform Name="Android"> 211 | <RemoteDir>library\lib\armeabi</RemoteDir> 212 | <Operation>1</Operation> 213 | </Platform> 214 | <Platform Name="Android64"> 215 | <RemoteDir>library\lib\armeabi</RemoteDir> 216 | <Operation>1</Operation> 217 | </Platform> 218 | </DeployClass> 219 | <DeployClass Name="AndroidLibnativeArmeabiv7aFile"> 220 | <Platform Name="Android64"> 221 | <RemoteDir>library\lib\armeabi-v7a</RemoteDir> 222 | <Operation>1</Operation> 223 | </Platform> 224 | </DeployClass> 225 | <DeployClass Name="AndroidLibnativeMipsFile"> 226 | <Platform Name="Android"> 227 | <RemoteDir>library\lib\mips</RemoteDir> 228 | <Operation>1</Operation> 229 | </Platform> 230 | <Platform Name="Android64"> 231 | <RemoteDir>library\lib\mips</RemoteDir> 232 | <Operation>1</Operation> 233 | </Platform> 234 | </DeployClass> 235 | <DeployClass Name="AndroidServiceOutput"> 236 | <Platform Name="Android"> 237 | <RemoteDir>library\lib\armeabi-v7a</RemoteDir> 238 | <Operation>1</Operation> 239 | </Platform> 240 | <Platform Name="Android64"> 241 | <RemoteDir>library\lib\arm64-v8a</RemoteDir> 242 | <Operation>1</Operation> 243 | </Platform> 244 | </DeployClass> 245 | <DeployClass Name="AndroidServiceOutput_Android32"> 246 | <Platform Name="Android64"> 247 | <RemoteDir>library\lib\armeabi-v7a</RemoteDir> 248 | <Operation>1</Operation> 249 | </Platform> 250 | </DeployClass> 251 | <DeployClass Name="AndroidSplashImageDef"> 252 | <Platform Name="Android"> 253 | <RemoteDir>res\drawable</RemoteDir> 254 | <Operation>1</Operation> 255 | </Platform> 256 | <Platform Name="Android64"> 257 | <RemoteDir>res\drawable</RemoteDir> 258 | <Operation>1</Operation> 259 | </Platform> 260 | </DeployClass> 261 | <DeployClass Name="AndroidSplashStyles"> 262 | <Platform Name="Android"> 263 | <RemoteDir>res\values</RemoteDir> 264 | <Operation>1</Operation> 265 | </Platform> 266 | <Platform Name="Android64"> 267 | <RemoteDir>res\values</RemoteDir> 268 | <Operation>1</Operation> 269 | </Platform> 270 | </DeployClass> 271 | <DeployClass Name="AndroidSplashStylesV21"> 272 | <Platform Name="Android"> 273 | <RemoteDir>res\values-v21</RemoteDir> 274 | <Operation>1</Operation> 275 | </Platform> 276 | <Platform Name="Android64"> 277 | <RemoteDir>res\values-v21</RemoteDir> 278 | <Operation>1</Operation> 279 | </Platform> 280 | </DeployClass> 281 | <DeployClass Name="Android_Colors"> 282 | <Platform Name="Android"> 283 | <RemoteDir>res\values</RemoteDir> 284 | <Operation>1</Operation> 285 | </Platform> 286 | <Platform Name="Android64"> 287 | <RemoteDir>res\values</RemoteDir> 288 | <Operation>1</Operation> 289 | </Platform> 290 | </DeployClass> 291 | <DeployClass Name="Android_DefaultAppIcon"> 292 | <Platform Name="Android"> 293 | <RemoteDir>res\drawable</RemoteDir> 294 | <Operation>1</Operation> 295 | </Platform> 296 | <Platform Name="Android64"> 297 | <RemoteDir>res\drawable</RemoteDir> 298 | <Operation>1</Operation> 299 | </Platform> 300 | </DeployClass> 301 | <DeployClass Name="Android_LauncherIcon144"> 302 | <Platform Name="Android"> 303 | <RemoteDir>res\drawable-xxhdpi</RemoteDir> 304 | <Operation>1</Operation> 305 | </Platform> 306 | <Platform Name="Android64"> 307 | <RemoteDir>res\drawable-xxhdpi</RemoteDir> 308 | <Operation>1</Operation> 309 | </Platform> 310 | </DeployClass> 311 | <DeployClass Name="Android_LauncherIcon192"> 312 | <Platform Name="Android"> 313 | <RemoteDir>res\drawable-xxxhdpi</RemoteDir> 314 | <Operation>1</Operation> 315 | </Platform> 316 | <Platform Name="Android64"> 317 | <RemoteDir>res\drawable-xxxhdpi</RemoteDir> 318 | <Operation>1</Operation> 319 | </Platform> 320 | </DeployClass> 321 | <DeployClass Name="Android_LauncherIcon36"> 322 | <Platform Name="Android"> 323 | <RemoteDir>res\drawable-ldpi</RemoteDir> 324 | <Operation>1</Operation> 325 | </Platform> 326 | <Platform Name="Android64"> 327 | <RemoteDir>res\drawable-ldpi</RemoteDir> 328 | <Operation>1</Operation> 329 | </Platform> 330 | </DeployClass> 331 | <DeployClass Name="Android_LauncherIcon48"> 332 | <Platform Name="Android"> 333 | <RemoteDir>res\drawable-mdpi</RemoteDir> 334 | <Operation>1</Operation> 335 | </Platform> 336 | <Platform Name="Android64"> 337 | <RemoteDir>res\drawable-mdpi</RemoteDir> 338 | <Operation>1</Operation> 339 | </Platform> 340 | </DeployClass> 341 | <DeployClass Name="Android_LauncherIcon72"> 342 | <Platform Name="Android"> 343 | <RemoteDir>res\drawable-hdpi</RemoteDir> 344 | <Operation>1</Operation> 345 | </Platform> 346 | <Platform Name="Android64"> 347 | <RemoteDir>res\drawable-hdpi</RemoteDir> 348 | <Operation>1</Operation> 349 | </Platform> 350 | </DeployClass> 351 | <DeployClass Name="Android_LauncherIcon96"> 352 | <Platform Name="Android"> 353 | <RemoteDir>res\drawable-xhdpi</RemoteDir> 354 | <Operation>1</Operation> 355 | </Platform> 356 | <Platform Name="Android64"> 357 | <RemoteDir>res\drawable-xhdpi</RemoteDir> 358 | <Operation>1</Operation> 359 | </Platform> 360 | </DeployClass> 361 | <DeployClass Name="Android_NotificationIcon24"> 362 | <Platform Name="Android"> 363 | <RemoteDir>res\drawable-mdpi</RemoteDir> 364 | <Operation>1</Operation> 365 | </Platform> 366 | <Platform Name="Android64"> 367 | <RemoteDir>res\drawable-mdpi</RemoteDir> 368 | <Operation>1</Operation> 369 | </Platform> 370 | </DeployClass> 371 | <DeployClass Name="Android_NotificationIcon36"> 372 | <Platform Name="Android"> 373 | <RemoteDir>res\drawable-hdpi</RemoteDir> 374 | <Operation>1</Operation> 375 | </Platform> 376 | <Platform Name="Android64"> 377 | <RemoteDir>res\drawable-hdpi</RemoteDir> 378 | <Operation>1</Operation> 379 | </Platform> 380 | </DeployClass> 381 | <DeployClass Name="Android_NotificationIcon48"> 382 | <Platform Name="Android"> 383 | <RemoteDir>res\drawable-xhdpi</RemoteDir> 384 | <Operation>1</Operation> 385 | </Platform> 386 | <Platform Name="Android64"> 387 | <RemoteDir>res\drawable-xhdpi</RemoteDir> 388 | <Operation>1</Operation> 389 | </Platform> 390 | </DeployClass> 391 | <DeployClass Name="Android_NotificationIcon72"> 392 | <Platform Name="Android"> 393 | <RemoteDir>res\drawable-xxhdpi</RemoteDir> 394 | <Operation>1</Operation> 395 | </Platform> 396 | <Platform Name="Android64"> 397 | <RemoteDir>res\drawable-xxhdpi</RemoteDir> 398 | <Operation>1</Operation> 399 | </Platform> 400 | </DeployClass> 401 | <DeployClass Name="Android_NotificationIcon96"> 402 | <Platform Name="Android"> 403 | <RemoteDir>res\drawable-xxxhdpi</RemoteDir> 404 | <Operation>1</Operation> 405 | </Platform> 406 | <Platform Name="Android64"> 407 | <RemoteDir>res\drawable-xxxhdpi</RemoteDir> 408 | <Operation>1</Operation> 409 | </Platform> 410 | </DeployClass> 411 | <DeployClass Name="Android_SplashImage426"> 412 | <Platform Name="Android"> 413 | <RemoteDir>res\drawable-small</RemoteDir> 414 | <Operation>1</Operation> 415 | </Platform> 416 | <Platform Name="Android64"> 417 | <RemoteDir>res\drawable-small</RemoteDir> 418 | <Operation>1</Operation> 419 | </Platform> 420 | </DeployClass> 421 | <DeployClass Name="Android_SplashImage470"> 422 | <Platform Name="Android"> 423 | <RemoteDir>res\drawable-normal</RemoteDir> 424 | <Operation>1</Operation> 425 | </Platform> 426 | <Platform Name="Android64"> 427 | <RemoteDir>res\drawable-normal</RemoteDir> 428 | <Operation>1</Operation> 429 | </Platform> 430 | </DeployClass> 431 | <DeployClass Name="Android_SplashImage640"> 432 | <Platform Name="Android"> 433 | <RemoteDir>res\drawable-large</RemoteDir> 434 | <Operation>1</Operation> 435 | </Platform> 436 | <Platform Name="Android64"> 437 | <RemoteDir>res\drawable-large</RemoteDir> 438 | <Operation>1</Operation> 439 | </Platform> 440 | </DeployClass> 441 | <DeployClass Name="Android_SplashImage960"> 442 | <Platform Name="Android"> 443 | <RemoteDir>res\drawable-xlarge</RemoteDir> 444 | <Operation>1</Operation> 445 | </Platform> 446 | <Platform Name="Android64"> 447 | <RemoteDir>res\drawable-xlarge</RemoteDir> 448 | <Operation>1</Operation> 449 | </Platform> 450 | </DeployClass> 451 | <DeployClass Name="Android_Strings"> 452 | <Platform Name="Android"> 453 | <RemoteDir>res\values</RemoteDir> 454 | <Operation>1</Operation> 455 | </Platform> 456 | <Platform Name="Android64"> 457 | <RemoteDir>res\values</RemoteDir> 458 | <Operation>1</Operation> 459 | </Platform> 460 | </DeployClass> 461 | <DeployClass Name="DebugSymbols"> 462 | <Platform Name="iOSSimulator"> 463 | <Operation>1</Operation> 464 | </Platform> 465 | <Platform Name="OSX32"> 466 | <RemoteDir>Contents\MacOS</RemoteDir> 467 | <Operation>1</Operation> 468 | </Platform> 469 | <Platform Name="Win32"> 470 | <Operation>0</Operation> 471 | </Platform> 472 | </DeployClass> 473 | <DeployClass Name="DependencyFramework"> 474 | <Platform Name="OSX32"> 475 | <RemoteDir>Contents\MacOS</RemoteDir> 476 | <Operation>1</Operation> 477 | <Extensions>.framework</Extensions> 478 | </Platform> 479 | <Platform Name="OSX64"> 480 | <RemoteDir>Contents\MacOS</RemoteDir> 481 | <Operation>1</Operation> 482 | <Extensions>.framework</Extensions> 483 | </Platform> 484 | <Platform Name="OSXARM64"> 485 | <RemoteDir>Contents\MacOS</RemoteDir> 486 | <Operation>1</Operation> 487 | <Extensions>.framework</Extensions> 488 | </Platform> 489 | <Platform Name="Win32"> 490 | <Operation>0</Operation> 491 | </Platform> 492 | </DeployClass> 493 | <DeployClass Name="DependencyModule"> 494 | <Platform Name="iOSDevice32"> 495 | <Operation>1</Operation> 496 | <Extensions>.dylib</Extensions> 497 | </Platform> 498 | <Platform Name="iOSDevice64"> 499 | <Operation>1</Operation> 500 | <Extensions>.dylib</Extensions> 501 | </Platform> 502 | <Platform Name="iOSSimulator"> 503 | <Operation>1</Operation> 504 | <Extensions>.dylib</Extensions> 505 | </Platform> 506 | <Platform Name="OSX32"> 507 | <RemoteDir>Contents\MacOS</RemoteDir> 508 | <Operation>1</Operation> 509 | <Extensions>.dylib</Extensions> 510 | </Platform> 511 | <Platform Name="OSX64"> 512 | <RemoteDir>Contents\MacOS</RemoteDir> 513 | <Operation>1</Operation> 514 | <Extensions>.dylib</Extensions> 515 | </Platform> 516 | <Platform Name="OSXARM64"> 517 | <RemoteDir>Contents\MacOS</RemoteDir> 518 | <Operation>1</Operation> 519 | <Extensions>.dylib</Extensions> 520 | </Platform> 521 | <Platform Name="Win32"> 522 | <Operation>0</Operation> 523 | <Extensions>.dll;.bpl</Extensions> 524 | </Platform> 525 | </DeployClass> 526 | <DeployClass Required="true" Name="DependencyPackage"> 527 | <Platform Name="iOSDevice32"> 528 | <Operation>1</Operation> 529 | <Extensions>.dylib</Extensions> 530 | </Platform> 531 | <Platform Name="iOSDevice64"> 532 | <Operation>1</Operation> 533 | <Extensions>.dylib</Extensions> 534 | </Platform> 535 | <Platform Name="iOSSimulator"> 536 | <Operation>1</Operation> 537 | <Extensions>.dylib</Extensions> 538 | </Platform> 539 | <Platform Name="OSX32"> 540 | <RemoteDir>Contents\MacOS</RemoteDir> 541 | <Operation>1</Operation> 542 | <Extensions>.dylib</Extensions> 543 | </Platform> 544 | <Platform Name="OSX64"> 545 | <RemoteDir>Contents\MacOS</RemoteDir> 546 | <Operation>1</Operation> 547 | <Extensions>.dylib</Extensions> 548 | </Platform> 549 | <Platform Name="OSXARM64"> 550 | <RemoteDir>Contents\MacOS</RemoteDir> 551 | <Operation>1</Operation> 552 | <Extensions>.dylib</Extensions> 553 | </Platform> 554 | <Platform Name="Win32"> 555 | <Operation>0</Operation> 556 | <Extensions>.bpl</Extensions> 557 | </Platform> 558 | </DeployClass> 559 | <DeployClass Name="File"> 560 | <Platform Name="Android"> 561 | <Operation>0</Operation> 562 | </Platform> 563 | <Platform Name="Android64"> 564 | <Operation>0</Operation> 565 | </Platform> 566 | <Platform Name="iOSDevice32"> 567 | <Operation>0</Operation> 568 | </Platform> 569 | <Platform Name="iOSDevice64"> 570 | <Operation>0</Operation> 571 | </Platform> 572 | <Platform Name="iOSSimulator"> 573 | <Operation>0</Operation> 574 | </Platform> 575 | <Platform Name="OSX32"> 576 | <RemoteDir>Contents\Resources\StartUp\</RemoteDir> 577 | <Operation>0</Operation> 578 | </Platform> 579 | <Platform Name="OSX64"> 580 | <RemoteDir>Contents\Resources\StartUp\</RemoteDir> 581 | <Operation>0</Operation> 582 | </Platform> 583 | <Platform Name="OSXARM64"> 584 | <RemoteDir>Contents\Resources\StartUp\</RemoteDir> 585 | <Operation>0</Operation> 586 | </Platform> 587 | <Platform Name="Win32"> 588 | <Operation>0</Operation> 589 | </Platform> 590 | </DeployClass> 591 | <DeployClass Name="iOS_AppStore1024"> 592 | <Platform Name="iOSDevice64"> 593 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> 594 | <Operation>1</Operation> 595 | </Platform> 596 | </DeployClass> 597 | <DeployClass Name="iPad_AppIcon152"> 598 | <Platform Name="iOSDevice64"> 599 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> 600 | <Operation>1</Operation> 601 | </Platform> 602 | <Platform Name="iOSSimulator"> 603 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> 604 | <Operation>1</Operation> 605 | </Platform> 606 | </DeployClass> 607 | <DeployClass Name="iPad_AppIcon167"> 608 | <Platform Name="iOSDevice64"> 609 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> 610 | <Operation>1</Operation> 611 | </Platform> 612 | <Platform Name="iOSSimulator"> 613 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> 614 | <Operation>1</Operation> 615 | </Platform> 616 | </DeployClass> 617 | <DeployClass Name="iPad_Launch2x"> 618 | <Platform Name="iOSDevice64"> 619 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> 620 | <Operation>1</Operation> 621 | </Platform> 622 | <Platform Name="iOSSimulator"> 623 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> 624 | <Operation>1</Operation> 625 | </Platform> 626 | </DeployClass> 627 | <DeployClass Name="iPad_LaunchDark2x"> 628 | <Platform Name="iOSDevice64"> 629 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> 630 | <Operation>1</Operation> 631 | </Platform> 632 | <Platform Name="iOSSimulator"> 633 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> 634 | <Operation>1</Operation> 635 | </Platform> 636 | </DeployClass> 637 | <DeployClass Name="iPad_Notification40"> 638 | <Platform Name="iOSDevice64"> 639 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> 640 | <Operation>1</Operation> 641 | </Platform> 642 | <Platform Name="iOSSimulator"> 643 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> 644 | <Operation>1</Operation> 645 | </Platform> 646 | </DeployClass> 647 | <DeployClass Name="iPad_Setting58"> 648 | <Platform Name="iOSDevice64"> 649 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> 650 | <Operation>1</Operation> 651 | </Platform> 652 | <Platform Name="iOSSimulator"> 653 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> 654 | <Operation>1</Operation> 655 | </Platform> 656 | </DeployClass> 657 | <DeployClass Name="iPad_SpotLight80"> 658 | <Platform Name="iOSDevice64"> 659 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> 660 | <Operation>1</Operation> 661 | </Platform> 662 | <Platform Name="iOSSimulator"> 663 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> 664 | <Operation>1</Operation> 665 | </Platform> 666 | </DeployClass> 667 | <DeployClass Name="iPhone_AppIcon120"> 668 | <Platform Name="iOSDevice64"> 669 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> 670 | <Operation>1</Operation> 671 | </Platform> 672 | <Platform Name="iOSSimulator"> 673 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> 674 | <Operation>1</Operation> 675 | </Platform> 676 | </DeployClass> 677 | <DeployClass Name="iPhone_AppIcon180"> 678 | <Platform Name="iOSDevice64"> 679 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> 680 | <Operation>1</Operation> 681 | </Platform> 682 | <Platform Name="iOSSimulator"> 683 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> 684 | <Operation>1</Operation> 685 | </Platform> 686 | </DeployClass> 687 | <DeployClass Name="iPhone_Launch2x"> 688 | <Platform Name="iOSDevice64"> 689 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> 690 | <Operation>1</Operation> 691 | </Platform> 692 | <Platform Name="iOSSimulator"> 693 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> 694 | <Operation>1</Operation> 695 | </Platform> 696 | </DeployClass> 697 | <DeployClass Name="iPhone_Launch3x"> 698 | <Platform Name="iOSDevice64"> 699 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> 700 | <Operation>1</Operation> 701 | </Platform> 702 | <Platform Name="iOSSimulator"> 703 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> 704 | <Operation>1</Operation> 705 | </Platform> 706 | </DeployClass> 707 | <DeployClass Name="iPhone_LaunchDark2x"> 708 | <Platform Name="iOSDevice64"> 709 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> 710 | <Operation>1</Operation> 711 | </Platform> 712 | <Platform Name="iOSSimulator"> 713 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> 714 | <Operation>1</Operation> 715 | </Platform> 716 | </DeployClass> 717 | <DeployClass Name="iPhone_LaunchDark3x"> 718 | <Platform Name="iOSDevice64"> 719 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> 720 | <Operation>1</Operation> 721 | </Platform> 722 | <Platform Name="iOSSimulator"> 723 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir> 724 | <Operation>1</Operation> 725 | </Platform> 726 | </DeployClass> 727 | <DeployClass Name="iPhone_Notification40"> 728 | <Platform Name="iOSDevice64"> 729 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> 730 | <Operation>1</Operation> 731 | </Platform> 732 | <Platform Name="iOSSimulator"> 733 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> 734 | <Operation>1</Operation> 735 | </Platform> 736 | </DeployClass> 737 | <DeployClass Name="iPhone_Notification60"> 738 | <Platform Name="iOSDevice64"> 739 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> 740 | <Operation>1</Operation> 741 | </Platform> 742 | <Platform Name="iOSSimulator"> 743 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> 744 | <Operation>1</Operation> 745 | </Platform> 746 | </DeployClass> 747 | <DeployClass Name="iPhone_Setting58"> 748 | <Platform Name="iOSDevice64"> 749 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> 750 | <Operation>1</Operation> 751 | </Platform> 752 | <Platform Name="iOSSimulator"> 753 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> 754 | <Operation>1</Operation> 755 | </Platform> 756 | </DeployClass> 757 | <DeployClass Name="iPhone_Setting87"> 758 | <Platform Name="iOSDevice64"> 759 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> 760 | <Operation>1</Operation> 761 | </Platform> 762 | <Platform Name="iOSSimulator"> 763 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> 764 | <Operation>1</Operation> 765 | </Platform> 766 | </DeployClass> 767 | <DeployClass Name="iPhone_Spotlight120"> 768 | <Platform Name="iOSDevice64"> 769 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> 770 | <Operation>1</Operation> 771 | </Platform> 772 | <Platform Name="iOSSimulator"> 773 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> 774 | <Operation>1</Operation> 775 | </Platform> 776 | </DeployClass> 777 | <DeployClass Name="iPhone_Spotlight80"> 778 | <Platform Name="iOSDevice64"> 779 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> 780 | <Operation>1</Operation> 781 | </Platform> 782 | <Platform Name="iOSSimulator"> 783 | <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir> 784 | <Operation>1</Operation> 785 | </Platform> 786 | </DeployClass> 787 | <DeployClass Name="ProjectAndroidManifest"> 788 | <Platform Name="Android"> 789 | <Operation>1</Operation> 790 | </Platform> 791 | <Platform Name="Android64"> 792 | <Operation>1</Operation> 793 | </Platform> 794 | </DeployClass> 795 | <DeployClass Name="ProjectiOSDeviceDebug"> 796 | <Platform Name="iOSDevice32"> 797 | <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir> 798 | <Operation>1</Operation> 799 | </Platform> 800 | <Platform Name="iOSDevice64"> 801 | <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir> 802 | <Operation>1</Operation> 803 | </Platform> 804 | </DeployClass> 805 | <DeployClass Name="ProjectiOSEntitlements"> 806 | <Platform Name="iOSDevice32"> 807 | <RemoteDir>..\</RemoteDir> 808 | <Operation>1</Operation> 809 | </Platform> 810 | <Platform Name="iOSDevice64"> 811 | <RemoteDir>..\</RemoteDir> 812 | <Operation>1</Operation> 813 | </Platform> 814 | </DeployClass> 815 | <DeployClass Name="ProjectiOSInfoPList"> 816 | <Platform Name="iOSDevice32"> 817 | <Operation>1</Operation> 818 | </Platform> 819 | <Platform Name="iOSDevice64"> 820 | <Operation>1</Operation> 821 | </Platform> 822 | <Platform Name="iOSSimulator"> 823 | <Operation>1</Operation> 824 | </Platform> 825 | </DeployClass> 826 | <DeployClass Name="ProjectiOSLaunchScreen"> 827 | <Platform Name="iOSDevice64"> 828 | <RemoteDir>..\$(PROJECTNAME).launchscreen</RemoteDir> 829 | <Operation>64</Operation> 830 | </Platform> 831 | <Platform Name="iOSSimulator"> 832 | <RemoteDir>..\$(PROJECTNAME).launchscreen</RemoteDir> 833 | <Operation>64</Operation> 834 | </Platform> 835 | </DeployClass> 836 | <DeployClass Name="ProjectiOSResource"> 837 | <Platform Name="iOSDevice32"> 838 | <Operation>1</Operation> 839 | </Platform> 840 | <Platform Name="iOSDevice64"> 841 | <Operation>1</Operation> 842 | </Platform> 843 | <Platform Name="iOSSimulator"> 844 | <Operation>1</Operation> 845 | </Platform> 846 | </DeployClass> 847 | <DeployClass Name="ProjectOSXDebug"> 848 | <Platform Name="OSX64"> 849 | <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir> 850 | <Operation>1</Operation> 851 | </Platform> 852 | <Platform Name="OSXARM64"> 853 | <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir> 854 | <Operation>1</Operation> 855 | </Platform> 856 | </DeployClass> 857 | <DeployClass Name="ProjectOSXEntitlements"> 858 | <Platform Name="OSX32"> 859 | <RemoteDir>..\</RemoteDir> 860 | <Operation>1</Operation> 861 | </Platform> 862 | <Platform Name="OSX64"> 863 | <RemoteDir>..\</RemoteDir> 864 | <Operation>1</Operation> 865 | </Platform> 866 | <Platform Name="OSXARM64"> 867 | <RemoteDir>..\</RemoteDir> 868 | <Operation>1</Operation> 869 | </Platform> 870 | </DeployClass> 871 | <DeployClass Name="ProjectOSXInfoPList"> 872 | <Platform Name="OSX32"> 873 | <RemoteDir>Contents</RemoteDir> 874 | <Operation>1</Operation> 875 | </Platform> 876 | <Platform Name="OSX64"> 877 | <RemoteDir>Contents</RemoteDir> 878 | <Operation>1</Operation> 879 | </Platform> 880 | <Platform Name="OSXARM64"> 881 | <RemoteDir>Contents</RemoteDir> 882 | <Operation>1</Operation> 883 | </Platform> 884 | </DeployClass> 885 | <DeployClass Name="ProjectOSXResource"> 886 | <Platform Name="OSX32"> 887 | <RemoteDir>Contents\Resources</RemoteDir> 888 | <Operation>1</Operation> 889 | </Platform> 890 | <Platform Name="OSX64"> 891 | <RemoteDir>Contents\Resources</RemoteDir> 892 | <Operation>1</Operation> 893 | </Platform> 894 | <Platform Name="OSXARM64"> 895 | <RemoteDir>Contents\Resources</RemoteDir> 896 | <Operation>1</Operation> 897 | </Platform> 898 | </DeployClass> 899 | <DeployClass Required="true" Name="ProjectOutput"> 900 | <Platform Name="Android"> 901 | <RemoteDir>library\lib\armeabi-v7a</RemoteDir> 902 | <Operation>1</Operation> 903 | </Platform> 904 | <Platform Name="Android64"> 905 | <RemoteDir>library\lib\arm64-v8a</RemoteDir> 906 | <Operation>1</Operation> 907 | </Platform> 908 | <Platform Name="iOSDevice32"> 909 | <Operation>1</Operation> 910 | </Platform> 911 | <Platform Name="iOSDevice64"> 912 | <Operation>1</Operation> 913 | </Platform> 914 | <Platform Name="iOSSimulator"> 915 | <Operation>1</Operation> 916 | </Platform> 917 | <Platform Name="Linux64"> 918 | <Operation>1</Operation> 919 | </Platform> 920 | <Platform Name="OSX32"> 921 | <RemoteDir>Contents\MacOS</RemoteDir> 922 | <Operation>1</Operation> 923 | </Platform> 924 | <Platform Name="OSX64"> 925 | <RemoteDir>Contents\MacOS</RemoteDir> 926 | <Operation>1</Operation> 927 | </Platform> 928 | <Platform Name="OSXARM64"> 929 | <RemoteDir>Contents\MacOS</RemoteDir> 930 | <Operation>1</Operation> 931 | </Platform> 932 | <Platform Name="Win32"> 933 | <Operation>0</Operation> 934 | </Platform> 935 | </DeployClass> 936 | <DeployClass Name="ProjectOutput_Android32"> 937 | <Platform Name="Android64"> 938 | <RemoteDir>library\lib\armeabi-v7a</RemoteDir> 939 | <Operation>1</Operation> 940 | </Platform> 941 | </DeployClass> 942 | <DeployClass Name="ProjectUWPManifest"> 943 | <Platform Name="Win32"> 944 | <Operation>1</Operation> 945 | </Platform> 946 | <Platform Name="Win64"> 947 | <Operation>1</Operation> 948 | </Platform> 949 | </DeployClass> 950 | <DeployClass Name="UWP_DelphiLogo150"> 951 | <Platform Name="Win32"> 952 | <RemoteDir>Assets</RemoteDir> 953 | <Operation>1</Operation> 954 | </Platform> 955 | <Platform Name="Win64"> 956 | <RemoteDir>Assets</RemoteDir> 957 | <Operation>1</Operation> 958 | </Platform> 959 | </DeployClass> 960 | <DeployClass Name="UWP_DelphiLogo44"> 961 | <Platform Name="Win32"> 962 | <RemoteDir>Assets</RemoteDir> 963 | <Operation>1</Operation> 964 | </Platform> 965 | <Platform Name="Win64"> 966 | <RemoteDir>Assets</RemoteDir> 967 | <Operation>1</Operation> 968 | </Platform> 969 | </DeployClass> 970 | <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/> 971 | <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/> 972 | <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/> 973 | <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/> 974 | <ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/> 975 | <ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/> 976 | <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/> 977 | <ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/> 978 | <ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/> 979 | <ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/> 980 | <ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/> 981 | </Deployment> 982 | <Platforms> 983 | <Platform value="Win32">True</Platform> 984 | <Platform value="Win64">True</Platform> 985 | </Platforms> 986 | </BorlandProject> 987 | <ProjectFileVersion>12</ProjectFileVersion> 988 | </ProjectExtensions> 989 | <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> 990 | <Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/> 991 | <Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/> 992 | </Project> 993 | -------------------------------------------------------------------------------- /Demos/XP/Demo.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delphilite/DelphiHookUtils/496ccbf3f7621878dce99c02077dc29254aca2b5/Demos/XP/Demo.res -------------------------------------------------------------------------------- /Demos/XP/MainFrm.dfm: -------------------------------------------------------------------------------- 1 | object MainForm: TMainForm 2 | Left = 0 3 | Top = 0 4 | Caption = 'MainForm' 5 | ClientHeight = 441 6 | ClientWidth = 624 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -12 11 | Font.Name = 'Segoe UI' 12 | Font.Style = [] 13 | OnCreate = FormCreate 14 | PixelsPerInch = 96 15 | TextHeight = 15 16 | object Label1: TLabel 17 | Left = 128 18 | Top = 136 19 | Width = 18 20 | Height = 15 21 | Caption = 'OS:' 22 | end 23 | object Button1: TButton 24 | Left = 128 25 | Top = 168 26 | Width = 100 27 | Height = 25 28 | Caption = 'GetTickCount64' 29 | TabOrder = 0 30 | OnClick = Button1Click 31 | end 32 | end 33 | -------------------------------------------------------------------------------- /Demos/XP/MainFrm.pas: -------------------------------------------------------------------------------- 1 | unit MainFrm; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; 8 | 9 | type 10 | TMainForm = class(TForm) 11 | Label1: TLabel; 12 | Button1: TButton; 13 | procedure FormCreate(Sender: TObject); 14 | procedure Button1Click(Sender: TObject); 15 | private 16 | { Private declarations } 17 | public 18 | { Public declarations } 19 | end; 20 | 21 | var 22 | MainForm: TMainForm; 23 | 24 | implementation 25 | 26 | {$R *.dfm} 27 | 28 | procedure TMainForm.Button1Click(Sender: TObject); 29 | begin 30 | ShowMessage('TThread.GetTickCount64: ' + IntToStr(TThread.GetTickCount64)); 31 | end; 32 | 33 | procedure TMainForm.FormCreate(Sender: TObject); 34 | begin 35 | Label1.Caption := TOSVersion.ToString; 36 | end; 37 | 38 | end. 39 | -------------------------------------------------------------------------------- /Demos/XP/XPCmpatibilityTweak.pas: -------------------------------------------------------------------------------- 1 | { *********************************************************************** } 2 | { } 3 | { Delphi 11 Windows XP compatibility tweak Thread TickCount Fix 单元 } 4 | { } 5 | { 设计:Lsuper 2021.09.15 } 6 | { 备注: } 7 | { 审核: } 8 | { } 9 | { See: http://bbs.2ccc.com/topic.asp?topicid=617636 } 10 | { http://bbs.2ccc.com/topic.asp?topicid=617767 } 11 | { } 12 | { Copyright (c) 1998-2021 Super Studio } 13 | { } 14 | { *********************************************************************** } 15 | 16 | unit XPCmpatibilityTweak; 17 | 18 | {$IFDEF FPC} 19 | {$MODE Delphi} 20 | {$ENDIF} 21 | 22 | interface 23 | 24 | implementation 25 | 26 | uses 27 | Winapi.Windows, System.SysUtils, HookUtils; 28 | 29 | var 30 | GetTickCount64Next: function : UInt64; stdcall; 31 | 32 | function GetTickCount64CallBack: UInt64; stdcall; 33 | begin 34 | if TOSVersion.Major < 6 then 35 | Result := Winapi.Windows.GetTickCount 36 | else Result := GetTickCount64Next; 37 | end; 38 | 39 | initialization 40 | if TOSVersion.Major < 6 then 41 | begin 42 | HookProc(@Winapi.Windows.GetTickCount64, @GetTickCount64CallBack, @GetTickCount64Next); 43 | end; 44 | 45 | finalization 46 | if Assigned(@GetTickCount64Next) then 47 | begin 48 | UnHookProc(@GetTickCount64Next); 49 | end; 50 | 51 | end. 52 | -------------------------------------------------------------------------------- /Doc/Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delphilite/DelphiHookUtils/496ccbf3f7621878dce99c02077dc29254aca2b5/Doc/Logo.png -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Mozilla Public License Version 2.0 2 | ================================== 3 | 4 | 1. Definitions 5 | -------------- 6 | 7 | 1.1. "Contributor" 8 | means each individual or legal entity that creates, contributes to 9 | the creation of, or owns Covered Software. 10 | 11 | 1.2. "Contributor Version" 12 | means the combination of the Contributions of others (if any) used 13 | by a Contributor and that particular Contributor's Contribution. 14 | 15 | 1.3. "Contribution" 16 | means Covered Software of a particular Contributor. 17 | 18 | 1.4. "Covered Software" 19 | means Source Code Form to which the initial Contributor has attached 20 | the notice in Exhibit A, the Executable Form of such Source Code 21 | Form, and Modifications of such Source Code Form, in each case 22 | including portions thereof. 23 | 24 | 1.5. "Incompatible With Secondary Licenses" 25 | means 26 | 27 | (a) that the initial Contributor has attached the notice described 28 | in Exhibit B to the Covered Software; or 29 | 30 | (b) that the Covered Software was made available under the terms of 31 | version 1.1 or earlier of the License, but not also under the 32 | terms of a Secondary License. 33 | 34 | 1.6. "Executable Form" 35 | means any form of the work other than Source Code Form. 36 | 37 | 1.7. "Larger Work" 38 | means a work that combines Covered Software with other material, in 39 | a separate file or files, that is not Covered Software. 40 | 41 | 1.8. "License" 42 | means this document. 43 | 44 | 1.9. "Licensable" 45 | means having the right to grant, to the maximum extent possible, 46 | whether at the time of the initial grant or subsequently, any and 47 | all of the rights conveyed by this License. 48 | 49 | 1.10. "Modifications" 50 | means any of the following: 51 | 52 | (a) any file in Source Code Form that results from an addition to, 53 | deletion from, or modification of the contents of Covered 54 | Software; or 55 | 56 | (b) any new file in Source Code Form that contains any Covered 57 | Software. 58 | 59 | 1.11. "Patent Claims" of a Contributor 60 | means any patent claim(s), including without limitation, method, 61 | process, and apparatus claims, in any patent Licensable by such 62 | Contributor that would be infringed, but for the grant of the 63 | License, by the making, using, selling, offering for sale, having 64 | made, import, or transfer of either its Contributions or its 65 | Contributor Version. 66 | 67 | 1.12. "Secondary License" 68 | means either the GNU General Public License, Version 2.0, the GNU 69 | Lesser General Public License, Version 2.1, the GNU Affero General 70 | Public License, Version 3.0, or any later versions of those 71 | licenses. 72 | 73 | 1.13. "Source Code Form" 74 | means the form of the work preferred for making modifications. 75 | 76 | 1.14. "You" (or "Your") 77 | means an individual or a legal entity exercising rights under this 78 | License. For legal entities, "You" includes any entity that 79 | controls, is controlled by, or is under common control with You. For 80 | purposes of this definition, "control" means (a) the power, direct 81 | or indirect, to cause the direction or management of such entity, 82 | whether by contract or otherwise, or (b) ownership of more than 83 | fifty percent (50%) of the outstanding shares or beneficial 84 | ownership of such entity. 85 | 86 | 2. License Grants and Conditions 87 | -------------------------------- 88 | 89 | 2.1. Grants 90 | 91 | Each Contributor hereby grants You a world-wide, royalty-free, 92 | non-exclusive license: 93 | 94 | (a) under intellectual property rights (other than patent or trademark) 95 | Licensable by such Contributor to use, reproduce, make available, 96 | modify, display, perform, distribute, and otherwise exploit its 97 | Contributions, either on an unmodified basis, with Modifications, or 98 | as part of a Larger Work; and 99 | 100 | (b) under Patent Claims of such Contributor to make, use, sell, offer 101 | for sale, have made, import, and otherwise transfer either its 102 | Contributions or its Contributor Version. 103 | 104 | 2.2. Effective Date 105 | 106 | The licenses granted in Section 2.1 with respect to any Contribution 107 | become effective for each Contribution on the date the Contributor first 108 | distributes such Contribution. 109 | 110 | 2.3. Limitations on Grant Scope 111 | 112 | The licenses granted in this Section 2 are the only rights granted under 113 | this License. No additional rights or licenses will be implied from the 114 | distribution or licensing of Covered Software under this License. 115 | Notwithstanding Section 2.1(b) above, no patent license is granted by a 116 | Contributor: 117 | 118 | (a) for any code that a Contributor has removed from Covered Software; 119 | or 120 | 121 | (b) for infringements caused by: (i) Your and any other third party's 122 | modifications of Covered Software, or (ii) the combination of its 123 | Contributions with other software (except as part of its Contributor 124 | Version); or 125 | 126 | (c) under Patent Claims infringed by Covered Software in the absence of 127 | its Contributions. 128 | 129 | This License does not grant any rights in the trademarks, service marks, 130 | or logos of any Contributor (except as may be necessary to comply with 131 | the notice requirements in Section 3.4). 132 | 133 | 2.4. Subsequent Licenses 134 | 135 | No Contributor makes additional grants as a result of Your choice to 136 | distribute the Covered Software under a subsequent version of this 137 | License (see Section 10.2) or under the terms of a Secondary License (if 138 | permitted under the terms of Section 3.3). 139 | 140 | 2.5. Representation 141 | 142 | Each Contributor represents that the Contributor believes its 143 | Contributions are its original creation(s) or it has sufficient rights 144 | to grant the rights to its Contributions conveyed by this License. 145 | 146 | 2.6. Fair Use 147 | 148 | This License is not intended to limit any rights You have under 149 | applicable copyright doctrines of fair use, fair dealing, or other 150 | equivalents. 151 | 152 | 2.7. Conditions 153 | 154 | Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted 155 | in Section 2.1. 156 | 157 | 3. Responsibilities 158 | ------------------- 159 | 160 | 3.1. Distribution of Source Form 161 | 162 | All distribution of Covered Software in Source Code Form, including any 163 | Modifications that You create or to which You contribute, must be under 164 | the terms of this License. You must inform recipients that the Source 165 | Code Form of the Covered Software is governed by the terms of this 166 | License, and how they can obtain a copy of this License. You may not 167 | attempt to alter or restrict the recipients' rights in the Source Code 168 | Form. 169 | 170 | 3.2. Distribution of Executable Form 171 | 172 | If You distribute Covered Software in Executable Form then: 173 | 174 | (a) such Covered Software must also be made available in Source Code 175 | Form, as described in Section 3.1, and You must inform recipients of 176 | the Executable Form how they can obtain a copy of such Source Code 177 | Form by reasonable means in a timely manner, at a charge no more 178 | than the cost of distribution to the recipient; and 179 | 180 | (b) You may distribute such Executable Form under the terms of this 181 | License, or sublicense it under different terms, provided that the 182 | license for the Executable Form does not attempt to limit or alter 183 | the recipients' rights in the Source Code Form under this License. 184 | 185 | 3.3. Distribution of a Larger Work 186 | 187 | You may create and distribute a Larger Work under terms of Your choice, 188 | provided that You also comply with the requirements of this License for 189 | the Covered Software. If the Larger Work is a combination of Covered 190 | Software with a work governed by one or more Secondary Licenses, and the 191 | Covered Software is not Incompatible With Secondary Licenses, this 192 | License permits You to additionally distribute such Covered Software 193 | under the terms of such Secondary License(s), so that the recipient of 194 | the Larger Work may, at their option, further distribute the Covered 195 | Software under the terms of either this License or such Secondary 196 | License(s). 197 | 198 | 3.4. Notices 199 | 200 | You may not remove or alter the substance of any license notices 201 | (including copyright notices, patent notices, disclaimers of warranty, 202 | or limitations of liability) contained within the Source Code Form of 203 | the Covered Software, except that You may alter any license notices to 204 | the extent required to remedy known factual inaccuracies. 205 | 206 | 3.5. Application of Additional Terms 207 | 208 | You may choose to offer, and to charge a fee for, warranty, support, 209 | indemnity or liability obligations to one or more recipients of Covered 210 | Software. However, You may do so only on Your own behalf, and not on 211 | behalf of any Contributor. You must make it absolutely clear that any 212 | such warranty, support, indemnity, or liability obligation is offered by 213 | You alone, and You hereby agree to indemnify every Contributor for any 214 | liability incurred by such Contributor as a result of warranty, support, 215 | indemnity or liability terms You offer. You may include additional 216 | disclaimers of warranty and limitations of liability specific to any 217 | jurisdiction. 218 | 219 | 4. Inability to Comply Due to Statute or Regulation 220 | --------------------------------------------------- 221 | 222 | If it is impossible for You to comply with any of the terms of this 223 | License with respect to some or all of the Covered Software due to 224 | statute, judicial order, or regulation then You must: (a) comply with 225 | the terms of this License to the maximum extent possible; and (b) 226 | describe the limitations and the code they affect. Such description must 227 | be placed in a text file included with all distributions of the Covered 228 | Software under this License. Except to the extent prohibited by statute 229 | or regulation, such description must be sufficiently detailed for a 230 | recipient of ordinary skill to be able to understand it. 231 | 232 | 5. Termination 233 | -------------- 234 | 235 | 5.1. The rights granted under this License will terminate automatically 236 | if You fail to comply with any of its terms. However, if You become 237 | compliant, then the rights granted under this License from a particular 238 | Contributor are reinstated (a) provisionally, unless and until such 239 | Contributor explicitly and finally terminates Your grants, and (b) on an 240 | ongoing basis, if such Contributor fails to notify You of the 241 | non-compliance by some reasonable means prior to 60 days after You have 242 | come back into compliance. Moreover, Your grants from a particular 243 | Contributor are reinstated on an ongoing basis if such Contributor 244 | notifies You of the non-compliance by some reasonable means, this is the 245 | first time You have received notice of non-compliance with this License 246 | from such Contributor, and You become compliant prior to 30 days after 247 | Your receipt of the notice. 248 | 249 | 5.2. If You initiate litigation against any entity by asserting a patent 250 | infringement claim (excluding declaratory judgment actions, 251 | counter-claims, and cross-claims) alleging that a Contributor Version 252 | directly or indirectly infringes any patent, then the rights granted to 253 | You by any and all Contributors for the Covered Software under Section 254 | 2.1 of this License shall terminate. 255 | 256 | 5.3. In the event of termination under Sections 5.1 or 5.2 above, all 257 | end user license agreements (excluding distributors and resellers) which 258 | have been validly granted by You or Your distributors under this License 259 | prior to termination shall survive termination. 260 | 261 | ************************************************************************ 262 | * * 263 | * 6. Disclaimer of Warranty * 264 | * ------------------------- * 265 | * * 266 | * Covered Software is provided under this License on an "as is" * 267 | * basis, without warranty of any kind, either expressed, implied, or * 268 | * statutory, including, without limitation, warranties that the * 269 | * Covered Software is free of defects, merchantable, fit for a * 270 | * particular purpose or non-infringing. The entire risk as to the * 271 | * quality and performance of the Covered Software is with You. * 272 | * Should any Covered Software prove defective in any respect, You * 273 | * (not any Contributor) assume the cost of any necessary servicing, * 274 | * repair, or correction. This disclaimer of warranty constitutes an * 275 | * essential part of this License. No use of any Covered Software is * 276 | * authorized under this License except under this disclaimer. * 277 | * * 278 | ************************************************************************ 279 | 280 | ************************************************************************ 281 | * * 282 | * 7. Limitation of Liability * 283 | * -------------------------- * 284 | * * 285 | * Under no circumstances and under no legal theory, whether tort * 286 | * (including negligence), contract, or otherwise, shall any * 287 | * Contributor, or anyone who distributes Covered Software as * 288 | * permitted above, be liable to You for any direct, indirect, * 289 | * special, incidental, or consequential damages of any character * 290 | * including, without limitation, damages for lost profits, loss of * 291 | * goodwill, work stoppage, computer failure or malfunction, or any * 292 | * and all other commercial damages or losses, even if such party * 293 | * shall have been informed of the possibility of such damages. This * 294 | * limitation of liability shall not apply to liability for death or * 295 | * personal injury resulting from such party's negligence to the * 296 | * extent applicable law prohibits such limitation. Some * 297 | * jurisdictions do not allow the exclusion or limitation of * 298 | * incidental or consequential damages, so this exclusion and * 299 | * limitation may not apply to You. * 300 | * * 301 | ************************************************************************ 302 | 303 | 8. Litigation 304 | ------------- 305 | 306 | Any litigation relating to this License may be brought only in the 307 | courts of a jurisdiction where the defendant maintains its principal 308 | place of business and such litigation shall be governed by laws of that 309 | jurisdiction, without reference to its conflict-of-law provisions. 310 | Nothing in this Section shall prevent a party's ability to bring 311 | cross-claims or counter-claims. 312 | 313 | 9. Miscellaneous 314 | ---------------- 315 | 316 | This License represents the complete agreement concerning the subject 317 | matter hereof. If any provision of this License is held to be 318 | unenforceable, such provision shall be reformed only to the extent 319 | necessary to make it enforceable. Any law or regulation which provides 320 | that the language of a contract shall be construed against the drafter 321 | shall not be used to construe this License against a Contributor. 322 | 323 | 10. Versions of the License 324 | --------------------------- 325 | 326 | 10.1. New Versions 327 | 328 | Mozilla Foundation is the license steward. Except as provided in Section 329 | 10.3, no one other than the license steward has the right to modify or 330 | publish new versions of this License. Each version will be given a 331 | distinguishing version number. 332 | 333 | 10.2. Effect of New Versions 334 | 335 | You may distribute the Covered Software under the terms of the version 336 | of the License under which You originally received the Covered Software, 337 | or under the terms of any subsequent version published by the license 338 | steward. 339 | 340 | 10.3. Modified Versions 341 | 342 | If you create software not governed by this License, and you want to 343 | create a new license for such software, you may create and use a 344 | modified version of this License if you rename the license and remove 345 | any references to the name of the license steward (except to note that 346 | such modified license differs from this License). 347 | 348 | 10.4. Distributing Source Code Form that is Incompatible With Secondary 349 | Licenses 350 | 351 | If You choose to distribute Source Code Form that is Incompatible With 352 | Secondary Licenses under the terms of this version of the License, the 353 | notice described in Exhibit B of this License must be attached. 354 | 355 | Exhibit A - Source Code Form License Notice 356 | ------------------------------------------- 357 | 358 | This Source Code Form is subject to the terms of the Mozilla Public 359 | License, v. 2.0. If a copy of the MPL was not distributed with this 360 | file, You can obtain one at http://mozilla.org/MPL/2.0/. 361 | 362 | If it is not possible or desirable to put the notice in a particular 363 | file, then You may include the notice in a location (such as a LICENSE 364 | file in a relevant directory) where a recipient would be likely to look 365 | for such a notice. 366 | 367 | You may add additional accurate notices of copyright ownership. 368 | 369 | Exhibit B - "Incompatible With Secondary Licenses" Notice 370 | --------------------------------------------------------- 371 | 372 | This Source Code Form is "Incompatible With Secondary Licenses", as 373 | defined by the Mozilla Public License, v. 2.0. 374 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DelphiHookUtils 2 | 3 | ![Version](https://img.shields.io/badge/version-v1.0-yellow.svg) 4 | ![License](https://img.shields.io/github/license/delphilite/DelphiHookUtils) 5 | ![Lang](https://img.shields.io/github/languages/top/delphilite/DelphiHookUtils.svg) 6 | ![stars](https://img.shields.io/github/stars/delphilite/DelphiHookUtils.svg) 7 | 8 | [English](./README.md) | [Chinese](./README.zh-CN.md) 9 | 10 | DelphiHookUtils is a utility library for code hooking, inspired by wr960204's [delphi-hook-library](https://code.google.com/p/delphi-hook-library). This library replaces BeaEngine with [LDE64](https://github.com/BeaEngine/lde64) to reduce size, along with additional modifications and improvements. 11 | 12 | ## Features 13 | * Support **x86** and **x64** architecture. 14 | * Support hooking interfaces methods by **MethodIndex**. 15 | * Support hooking Object Method. 16 | * Support Delphi 7-12 x86/x64 for Win. 17 | * Support Lazarus/FPC x86/x64 for Win. 18 | 19 | ## Installation: Manual 20 | To install the DelphiHookUtils binding, follow these steps: 21 | 22 | 1. Clone the repository: 23 | ```sh 24 | git clone https://github.com/delphilite/DelphiHookUtils.git 25 | ``` 26 | 27 | 2. Add the DelphiHookUtils\Source directory to the project or IDE's search path. 28 | 29 | ## Installation: Delphinus-Support 30 | DelphiHookUtils should now be listed in [Delphinus package manager](https://github.com/Memnarch/Delphinus/wiki/Installing-Delphinus). 31 | 32 | Be sure to restart Delphi after installing via Delphinus otherwise the units may not be found in your test projects. 33 | 34 | ## Usage 35 | For more examples, refer to the ones under the Demos folder in the library. 36 | 37 | ## Documentation 38 | For more information, refer to the wiki documentation below. 39 | 40 | 1. [Windows API Hooking Techniques](https://en.wikipedia.org/wiki/Hooking) - General overview of hooking methods in software. 41 | 2. [Microsoft Detours](https://github.com/microsoft/Detours/wiki) - Microsoft's library for intercepting Win32 functions. 42 | 3. [MahdiSafsafi DDetours](https://github.com/MahdiSafsafi/DDetours/wiki) - MahdiSafsafi's library for intercepting Win32 functions. 43 | 44 | ## Contributing 45 | Contributions are welcome! Please fork this repository and submit pull requests with your improvements. 46 | 47 | ## License 48 | This project is licensed under the Mozilla Public License 2.0. See the [LICENSE](LICENSE) file for details. 49 | -------------------------------------------------------------------------------- /README.zh-CN.md: -------------------------------------------------------------------------------- 1 | # DelphiHookUtils 2 | 3 | ![Version](https://img.shields.io/badge/version-v1.0-yellow.svg) 4 | ![License](https://img.shields.io/github/license/delphilite/DelphiHookUtils) 5 | ![Lang](https://img.shields.io/github/languages/top/delphilite/DelphiHookUtils.svg) 6 | ![stars](https://img.shields.io/github/stars/delphilite/DelphiHookUtils.svg) 7 | 8 | [English](./README.md) | [Chinese](./README.zh-CN.md) 9 | 10 | Delphi API Hook 工具项目 11 | 12 | ## 由来 13 | 14 | 国庆帝都雾霾,一直闷家里发霉,也终于有时间搞搞自己的东东了! 15 | 16 | 年初基于 wr960204 武稀松大哥的 HookUtils 写了个 x64 的东东,效果很 8 错,不过呢,这个实现基于 BeaEngine 的静态库,额外胖了几百 K,对于我这只有“洁癖”的程序员,着实不爽! 17 | 18 | 之前关注过 BeaEngine 官网还有个 LDE64(Length Disassembler Engine)的东东,事实上对于武大哥那份 Hook 的实现,BeaEngine 只是为了查找足够的“代码间隙”,其实单个 LDE 应该是 ok 的! 19 | 20 | 遂,花了两天时间搞了这个东东: 21 | 22 | [https://github.com/delphilite/DelphiHookUtils](https://github.com/delphilite/DelphiHookUtils) 23 | 24 | ## 实现 25 | 26 | 基于 LDE64 相对 BeaEngine 的优势非常明显,新 HookUtils 代码编译大约 10K 左右,相对武大哥“原版”,新版 HookUtils 主要修改: 27 | 28 | 1. 参考 wr960204 武稀松 的原始实现: 29 | [https://code.google.com/p/delphi-hook-library](https://code.google.com/p/delphi-hook-library) 30 | 2. 修改 BeaEngine 引擎为 LDE64 长度反编译引擎,大幅降低大小 31 | [https://github.com/BeaEngine/lde64](https://github.com/BeaEngine/lde64) 32 | 3. 去除原始实现对多线程冻结的处理,通常建议 Hook/Unhook 放到单元初始化、析构中做,否则可能因改写内存没挂起其他线程造成错误 33 | 4. 由 HookUtils 中拆分 COM 相关函数至 HookIntfs 单元 34 | 35 | ## 其他 36 | 37 | 初步 Delphi 2007-12, Lazarus/Typhon/FPC/FMX x86/x64 for Win 一切正常,大家有问题及时反馈 !? 38 | -------------------------------------------------------------------------------- /Source/HookIntfs.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delphilite/DelphiHookUtils/496ccbf3f7621878dce99c02077dc29254aca2b5/Source/HookIntfs.pas -------------------------------------------------------------------------------- /Source/HookUtils.32.inc: -------------------------------------------------------------------------------- 1 | defLde64ShellCode: array[0..7744] of byte = ( 2 | $55, $83, $EC, $27, $89, $E5, $51, $52, $56, $E8, $80, $10, $00, $00, $60, $11, 3 | $00, $00, $5C, $11, $00, $00, $58, $11, $00, $00, $54, $11, $00, $00, $64, $11, 4 | $00, $00, $9C, $11, $00, $00, $88, $11, $00, $00, $84, $11, $00, $00, $40, $11, 5 | $00, $00, $3C, $11, $00, $00, $38, $11, $00, $00, $34, $11, $00, $00, $44, $11, 6 | $00, $00, $7C, $11, $00, $00, $68, $11, $00, $00, $39, $1A, $00, $00, $20, $11, 7 | $00, $00, $1C, $11, $00, $00, $18, $11, $00, $00, $14, $11, $00, $00, $24, $11, 8 | $00, $00, $5C, $11, $00, $00, $48, $11, $00, $00, $44, $11, $00, $00, $00, $11, 9 | $00, $00, $FC, $10, $00, $00, $F8, $10, $00, $00, $F4, $10, $00, $00, $04, $11, 10 | $00, $00, $3C, $11, $00, $00, $28, $11, $00, $00, $24, $11, $00, $00, $E0, $10, 11 | $00, $00, $DC, $10, $00, $00, $D8, $10, $00, $00, $D4, $10, $00, $00, $E4, $10, 12 | $00, $00, $1C, $11, $00, $00, $A6, $11, $00, $00, $04, $11, $00, $00, $C0, $10, 13 | $00, $00, $BC, $10, $00, $00, $B8, $10, $00, $00, $B4, $10, $00, $00, $C4, $10, 14 | $00, $00, $FC, $10, $00, $00, $86, $11, $00, $00, $E4, $10, $00, $00, $A0, $10, 15 | $00, $00, $9C, $10, $00, $00, $98, $10, $00, $00, $94, $10, $00, $00, $A4, $10, 16 | $00, $00, $DC, $10, $00, $00, $66, $11, $00, $00, $C4, $10, $00, $00, $80, $10, 17 | $00, $00, $7C, $10, $00, $00, $78, $10, $00, $00, $74, $10, $00, $00, $84, $10, 18 | $00, $00, $BC, $10, $00, $00, $46, $11, $00, $00, $A4, $10, $00, $00, $10, $11, 19 | $00, $00, $0C, $11, $00, $00, $08, $11, $00, $00, $04, $11, $00, $00, $00, $11, 20 | $00, $00, $FC, $10, $00, $00, $F8, $10, $00, $00, $F4, $10, $00, $00, $C4, $10, 21 | $00, $00, $C0, $10, $00, $00, $BC, $10, $00, $00, $B8, $10, $00, $00, $B4, $10, 22 | $00, $00, $B0, $10, $00, $00, $AC, $10, $00, $00, $A8, $10, $00, $00, $30, $10, 23 | $00, $00, $2C, $10, $00, $00, $28, $10, $00, $00, $24, $10, $00, $00, $20, $10, 24 | $00, $00, $1C, $10, $00, $00, $18, $10, $00, $00, $14, $10, $00, $00, $10, $10, 25 | $00, $00, $0C, $10, $00, $00, $08, $10, $00, $00, $04, $10, $00, $00, $00, $10, 26 | $00, $00, $FC, $0F, $00, $00, $F8, $0F, $00, $00, $F4, $0F, $00, $00, $F0, $0F, 27 | $00, $00, $EC, $0F, $00, $00, $0E, $11, $00, $00, $D4, $0F, $00, $00, $AE, $10, 28 | $00, $00, $AA, $10, $00, $00, $BF, $17, $00, $00, $EC, $17, $00, $00, $01, $12, 29 | $00, $00, $A4, $11, $00, $00, $CC, $0F, $00, $00, $2F, $10, $00, $00, $C0, $0F, 30 | $00, $00, $BC, $0F, $00, $00, $B8, $0F, $00, $00, $B4, $0F, $00, $00, $B4, $0F, 31 | $00, $00, $B0, $0F, $00, $00, $AC, $0F, $00, $00, $A8, $0F, $00, $00, $A4, $0F, 32 | $00, $00, $A0, $0F, $00, $00, $9C, $0F, $00, $00, $98, $0F, $00, $00, $94, $0F, 33 | $00, $00, $90, $0F, $00, $00, $8C, $0F, $00, $00, $88, $0F, $00, $00, $84, $0F, 34 | $00, $00, $80, $0F, $00, $00, $7C, $0F, $00, $00, $78, $0F, $00, $00, $DB, $0F, 35 | $00, $00, $E6, $11, $00, $00, $CC, $11, $00, $00, $CF, $0F, $00, $00, $50, $0F, 36 | $00, $00, $4C, $0F, $00, $00, $48, $0F, $00, $00, $44, $0F, $00, $00, $40, $0F, 37 | $00, $00, $3C, $0F, $00, $00, $38, $0F, $00, $00, $34, $0F, $00, $00, $30, $0F, 38 | $00, $00, $2C, $0F, $00, $00, $28, $0F, $00, $00, $4E, $11, $00, $00, $30, $0F, 39 | $00, $00, $2C, $0F, $00, $00, $28, $0F, $00, $00, $24, $0F, $00, $00, $20, $0F, 40 | $00, $00, $1C, $0F, $00, $00, $18, $0F, $00, $00, $14, $0F, $00, $00, $10, $0F, 41 | $00, $00, $0C, $0F, $00, $00, $C3, $10, $00, $00, $04, $0F, $00, $00, $00, $0F, 42 | $00, $00, $FC, $0E, $00, $00, $F8, $0E, $00, $00, $F4, $0E, $00, $00, $44, $10, 43 | $00, $00, $50, $10, $00, $00, $3C, $10, $00, $00, $48, $10, $00, $00, $E0, $0E, 44 | $00, $00, $DC, $0E, $00, $00, $D8, $0E, $00, $00, $D4, $0E, $00, $00, $D4, $0E, 45 | $00, $00, $0C, $0F, $00, $00, $C8, $0E, $00, $00, $C4, $0E, $00, $00, $C0, $0E, 46 | $00, $00, $BC, $0E, $00, $00, $B8, $0E, $00, $00, $B4, $0E, $00, $00, $B4, $0E, 47 | $00, $00, $B0, $0E, $00, $00, $AC, $0E, $00, $00, $A8, $0E, $00, $00, $A4, $0E, 48 | $00, $00, $A0, $0E, $00, $00, $9C, $0E, $00, $00, $98, $0E, $00, $00, $E0, $0E, 49 | $00, $00, $DC, $0E, $00, $00, $D8, $0E, $00, $00, $D4, $0E, $00, $00, $D0, $0E, 50 | $00, $00, $CC, $0E, $00, $00, $C8, $0E, $00, $00, $C4, $0E, $00, $00, $DB, $0E, 51 | $00, $00, $D7, $0E, $00, $00, $B7, $0F, $00, $00, $64, $0E, $00, $00, $86, $0F, 52 | $00, $00, $82, $0F, $00, $00, $C3, $0E, $00, $00, $45, $0F, $00, $00, $6C, $0F, 53 | $00, $00, $4C, $0E, $00, $00, $97, $0F, $00, $00, $44, $0E, $00, $00, $40, $0E, 54 | $00, $00, $40, $0E, $00, $00, $68, $0E, $00, $00, $34, $0E, $00, $00, $20, $0E, 55 | $00, $00, $1C, $0E, $00, $00, $18, $0E, $00, $00, $14, $0E, $00, $00, $2B, $0F, 56 | $00, $00, $27, $0F, $00, $00, $18, $0E, $00, $00, $14, $0E, $00, $00, $8A, $17, 57 | $00, $00, $BC, $17, $00, $00, $51, $18, $00, $00, $AF, $18, $00, $00, $2A, $19, 58 | $00, $00, $78, $19, $00, $00, $DE, $19, $00, $00, $31, $1A, $00, $00, $F4, $0D, 59 | $00, $00, $F0, $0D, $00, $00, $EC, $0D, $00, $00, $E8, $0D, $00, $00, $E4, $0D, 60 | $00, $00, $E0, $0D, $00, $00, $DC, $0D, $00, $00, $D8, $0D, $00, $00, $10, $0E, 61 | $00, $00, $0C, $0E, $00, $00, $C6, $0F, $00, $00, $C8, $0D, $00, $00, $C0, $0D, 62 | $00, $00, $BC, $0D, $00, $00, $B8, $0D, $00, $00, $B4, $0D, $00, $00, $7E, $0E, 63 | $00, $00, $AC, $0D, $00, $00, $F3, $15, $00, $00, $36, $16, $00, $00, $A0, $0D, 64 | $00, $00, $9C, $0D, $00, $00, $2C, $10, $00, $00, $5A, $10, $00, $00, $90, $0D, 65 | $00, $00, $8C, $0D, $00, $00, $88, $0D, $00, $00, $84, $0D, $00, $00, $80, $0D, 66 | $00, $00, $7C, $0D, $00, $00, $A8, $10, $00, $00, $C5, $10, $00, $00, $E2, $10, 67 | $00, $00, $FF, $10, $00, $00, $58, $0D, $00, $00, $54, $0D, $00, $00, $BE, $0F, 68 | $00, $00, $5C, $0D, $00, $00, $58, $0D, $00, $00, $54, $0D, $00, $00, $50, $0D, 69 | $00, $00, $4C, $0D, $00, $00, $A6, $0F, $00, $00, $44, $0D, $00, $00, $9E, $0F, 70 | $00, $00, $2C, $0D, $00, $00, $38, $0D, $00, $00, $92, $0F, $00, $00, $20, $0D, 71 | $00, $00, $1C, $0D, $00, $00, $18, $0D, $00, $00, $14, $0D, $00, $00, $10, $0D, 72 | $00, $00, $0C, $0D, $00, $00, $08, $0D, $00, $00, $04, $0D, $00, $00, $85, $14, 73 | $00, $00, $FC, $0C, $00, $00, $F8, $0C, $00, $00, $F4, $0C, $00, $00, $F0, $0C, 74 | $00, $00, $EC, $0C, $00, $00, $E8, $0C, $00, $00, $E4, $0C, $00, $00, $28, $0E, 75 | $00, $00, $24, $0E, $00, $00, $20, $0E, $00, $00, $1C, $0E, $00, $00, $3E, $0F, 76 | $00, $00, $3A, $0F, $00, $00, $36, $0F, $00, $00, $32, $0F, $00, $00, $C0, $0C, 77 | $00, $00, $BC, $0C, $00, $00, $B8, $0C, $00, $00, $B4, $0C, $00, $00, $B0, $0C, 78 | $00, $00, $AC, $0C, $00, $00, $A8, $0C, $00, $00, $A4, $0C, $00, $00, $B0, $0C, 79 | $00, $00, $AC, $0C, $00, $00, $A8, $0C, $00, $00, $A4, $0C, $00, $00, $A0, $0C, 80 | $00, $00, $9C, $0C, $00, $00, $F6, $0E, $00, $00, $F2, $0E, $00, $00, $BC, $15, 81 | $00, $00, $EA, $0E, $00, $00, $DB, $15, $00, $00, $E2, $0E, $00, $00, $DE, $0E, 82 | $00, $00, $DA, $0E, $00, $00, $D6, $0E, $00, $00, $D2, $0E, $00, $00, $60, $0C, 83 | $00, $00, $5C, $0C, $00, $00, $58, $0C, $00, $00, $54, $0C, $00, $00, $50, $0C, 84 | $00, $00, $4C, $0C, $00, $00, $48, $0C, $00, $00, $44, $0C, $00, $00, $40, $0C, 85 | $00, $00, $3C, $0C, $00, $00, $38, $0C, $00, $00, $34, $0C, $00, $00, $30, $0C, 86 | $00, $00, $2C, $0C, $00, $00, $28, $0C, $00, $00, $24, $0C, $00, $00, $20, $0C, 87 | $00, $00, $1C, $0C, $00, $00, $18, $0C, $00, $00, $14, $0C, $00, $00, $10, $0C, 88 | $00, $00, $0C, $0C, $00, $00, $08, $0C, $00, $00, $04, $0C, $00, $00, $00, $0C, 89 | $00, $00, $FC, $0B, $00, $00, $F8, $0B, $00, $00, $F4, $0B, $00, $00, $F0, $0B, 90 | $00, $00, $EC, $0B, $00, $00, $E8, $0B, $00, $00, $E4, $0B, $00, $00, $E0, $0B, 91 | $00, $00, $DC, $0B, $00, $00, $D8, $0B, $00, $00, $D4, $0B, $00, $00, $D0, $0B, 92 | $00, $00, $CC, $0B, $00, $00, $C8, $0B, $00, $00, $C4, $0B, $00, $00, $C0, $0B, 93 | $00, $00, $BC, $0B, $00, $00, $B8, $0B, $00, $00, $B4, $0B, $00, $00, $C9, $0B, 94 | $00, $00, $C5, $0B, $00, $00, $A8, $0B, $00, $00, $A4, $0B, $00, $00, $1B, $0C, 95 | $00, $00, $8E, $10, $00, $00, $15, $11, $00, $00, $9C, $11, $00, $00, $90, $0B, 96 | $00, $00, $8C, $0B, $00, $00, $88, $0B, $00, $00, $94, $0B, $00, $00, $80, $0B, 97 | $00, $00, $7C, $0B, $00, $00, $E6, $0D, $00, $00, $E2, $0D, $00, $00, $70, $0B, 98 | $00, $00, $6C, $0B, $00, $00, $68, $0B, $00, $00, $64, $0B, $00, $00, $B0, $0B, 99 | $00, $00, $AC, $0B, $00, $00, $89, $0C, $00, $00, $85, $0C, $00, $00, $81, $0C, 100 | $00, $00, $7D, $0C, $00, $00, $98, $0B, $00, $00, $94, $0B, $00, $00, $90, $0B, 101 | $00, $00, $8C, $0B, $00, $00, $88, $0B, $00, $00, $84, $0B, $00, $00, $80, $0B, 102 | $00, $00, $7C, $0B, $00, $00, $78, $0B, $00, $00, $74, $0B, $00, $00, $20, $0B, 103 | $00, $00, $1C, $0B, $00, $00, $18, $0B, $00, $00, $14, $0B, $00, $00, $10, $0B, 104 | $00, $00, $0C, $0B, $00, $00, $08, $0B, $00, $00, $04, $0B, $00, $00, $00, $0B, 105 | $00, $00, $FC, $0A, $00, $00, $F8, $0A, $00, $00, $F4, $0A, $00, $00, $F0, $0A, 106 | $00, $00, $EC, $0A, $00, $00, $E8, $0A, $00, $00, $E4, $0A, $00, $00, $F0, $0A, 107 | $00, $00, $EC, $0A, $00, $00, $E8, $0A, $00, $00, $D4, $0A, $00, $00, $4B, $0B, 108 | $00, $00, $CC, $0A, $00, $00, $36, $0D, $00, $00, $32, $0D, $00, $00, $D0, $0A, 109 | $00, $00, $CC, $0A, $00, $00, $C8, $0A, $00, $00, $B4, $0A, $00, $00, $2B, $0B, 110 | $00, $00, $AC, $0A, $00, $00, $68, $11, $00, $00, $A4, $0A, $00, $00, $A0, $0A, 111 | $00, $00, $9C, $0A, $00, $00, $98, $0A, $00, $00, $94, $0A, $00, $00, $90, $0A, 112 | $00, $00, $8C, $0A, $00, $00, $88, $0A, $00, $00, $84, $0A, $00, $00, $80, $0A, 113 | $00, $00, $8C, $0A, $00, $00, $EC, $0E, $00, $00, $74, $0A, $00, $00, $70, $0A, 114 | $00, $00, $6C, $0A, $00, $00, $68, $0A, $00, $00, $64, $0A, $00, $00, $60, $0A, 115 | $00, $00, $5C, $0A, $00, $00, $58, $0A, $00, $00, $54, $0A, $00, $00, $50, $0A, 116 | $00, $00, $4C, $0A, $00, $00, $48, $0A, $00, $00, $D9, $0E, $00, $00, $50, $0A, 117 | $00, $00, $4C, $0A, $00, $00, $48, $0A, $00, $00, $44, $0A, $00, $00, $40, $0A, 118 | $00, $00, $3C, $0A, $00, $00, $38, $0A, $00, $00, $34, $0A, $00, $00, $20, $0A, 119 | $00, $00, $1C, $0A, $00, $00, $18, $0A, $00, $00, $14, $0A, $00, $00, $10, $0A, 120 | $00, $00, $0C, $0A, $00, $00, $A9, $0B, $00, $00, $04, $0A, $00, $00, $00, $0A, 121 | $00, $00, $FC, $09, $00, $00, $F8, $09, $00, $00, $F4, $09, $00, $00, $F0, $09, 122 | $00, $00, $EC, $09, $00, $00, $E8, $09, $00, $00, $E4, $09, $00, $00, $E0, $09, 123 | $00, $00, $DC, $09, $00, $00, $D8, $09, $00, $00, $D4, $09, $00, $00, $D0, $09, 124 | $00, $00, $CC, $09, $00, $00, $69, $0B, $00, $00, $C4, $09, $00, $00, $C0, $09, 125 | $00, $00, $BC, $09, $00, $00, $B8, $09, $00, $00, $B4, $09, $00, $00, $B0, $09, 126 | $00, $00, $AC, $09, $00, $00, $A8, $09, $00, $00, $A4, $09, $00, $00, $FC, $0B, 127 | $00, $00, $9C, $09, $00, $00, $98, $09, $00, $00, $94, $09, $00, $00, $90, $09, 128 | $00, $00, $8C, $09, $00, $00, $88, $09, $00, $00, $84, $09, $00, $00, $80, $09, 129 | $00, $00, $7C, $09, $00, $00, $78, $09, $00, $00, $74, $09, $00, $00, $70, $09, 130 | $00, $00, $6C, $09, $00, $00, $68, $09, $00, $00, $D2, $0B, $00, $00, $60, $09, 131 | $00, $00, $5C, $09, $00, $00, $58, $09, $00, $00, $54, $09, $00, $00, $50, $09, 132 | $00, $00, $4C, $09, $00, $00, $48, $09, $00, $00, $44, $09, $00, $00, $40, $09, 133 | $00, $00, $3C, $09, $00, $00, $38, $09, $00, $00, $34, $09, $00, $00, $9E, $0B, 134 | $00, $00, $9A, $0B, $00, $00, $96, $0B, $00, $00, $92, $0B, $00, $00, $39, $09, 135 | $00, $00, $8A, $0B, $00, $00, $86, $0B, $00, $00, $82, $0B, $00, $00, $29, $09, 136 | $00, $00, $25, $09, $00, $00, $76, $0B, $00, $00, $1D, $09, $00, $00, $6E, $0B, 137 | $00, $00, $6A, $0B, $00, $00, $66, $0B, $00, $00, $62, $0B, $00, $00, $F0, $08, 138 | $00, $00, $EC, $08, $00, $00, $E8, $08, $00, $00, $52, $0B, $00, $00, $F9, $08, 139 | $00, $00, $F5, $08, $00, $00, $F1, $08, $00, $00, $ED, $08, $00, $00, $E9, $08, 140 | $00, $00, $E5, $08, $00, $00, $36, $0B, $00, $00, $32, $0B, $00, $00, $D9, $08, 141 | $00, $00, $D5, $08, $00, $00, $D1, $08, $00, $00, $CD, $08, $00, $00, $1E, $0B, 142 | $00, $00, $1A, $0B, $00, $00, $16, $0B, $00, $00, $12, $0B, $00, $00, $B9, $08, 143 | $00, $00, $B5, $08, $00, $00, $B1, $08, $00, $00, $AD, $08, $00, $00, $A9, $08, 144 | $00, $00, $A5, $08, $00, $00, $F6, $0A, $00, $00, $9D, $08, $00, $00, $99, $08, 145 | $00, $00, $95, $08, $00, $00, $91, $08, $00, $00, $8D, $08, $00, $00, $89, $08, 146 | $00, $00, $85, $08, $00, $00, $81, $08, $00, $00, $7D, $08, $00, $00, $79, $08, 147 | $00, $00, $75, $08, $00, $00, $C6, $0A, $00, $00, $C2, $0A, $00, $00, $BE, $0A, 148 | $00, $00, $BA, $0A, $00, $00, $B6, $0A, $00, $00, $B2, $0A, $00, $00, $AE, $0A, 149 | $00, $00, $AA, $0A, $00, $00, $A6, $0A, $00, $00, $A2, $0A, $00, $00, $9E, $0A, 150 | $00, $00, $9A, $0A, $00, $00, $96, $0A, $00, $00, $92, $0A, $00, $00, $8E, $0A, 151 | $00, $00, $8A, $0A, $00, $00, $86, $0A, $00, $00, $82, $0A, $00, $00, $7E, $0A, 152 | $00, $00, $7A, $0A, $00, $00, $76, $0A, $00, $00, $72, $0A, $00, $00, $6E, $0A, 153 | $00, $00, $6A, $0A, $00, $00, $66, $0A, $00, $00, $62, $0A, $00, $00, $5E, $0A, 154 | $00, $00, $5A, $0A, $00, $00, $56, $0A, $00, $00, $52, $0A, $00, $00, $4E, $0A, 155 | $00, $00, $4A, $0A, $00, $00, $46, $0A, $00, $00, $42, $0A, $00, $00, $3E, $0A, 156 | $00, $00, $3A, $0A, $00, $00, $36, $0A, $00, $00, $32, $0A, $00, $00, $2E, $0A, 157 | $00, $00, $2A, $0A, $00, $00, $26, $0A, $00, $00, $22, $0A, $00, $00, $1E, $0A, 158 | $00, $00, $1A, $0A, $00, $00, $16, $0A, $00, $00, $12, $0A, $00, $00, $0E, $0A, 159 | $00, $00, $0A, $0A, $00, $00, $06, $0A, $00, $00, $02, $0A, $00, $00, $FE, $09, 160 | $00, $00, $FA, $09, $00, $00, $F6, $09, $00, $00, $F2, $09, $00, $00, $EE, $09, 161 | $00, $00, $EA, $09, $00, $00, $E6, $09, $00, $00, $E2, $09, $00, $00, $DE, $09, 162 | $00, $00, $DA, $09, $00, $00, $D6, $09, $00, $00, $D2, $09, $00, $00, $CE, $09, 163 | $00, $00, $CA, $09, $00, $00, $C6, $09, $00, $00, $C2, $09, $00, $00, $BE, $09, 164 | $00, $00, $BA, $09, $00, $00, $B6, $09, $00, $00, $B2, $09, $00, $00, $AE, $09, 165 | $00, $00, $AA, $09, $00, $00, $A6, $09, $00, $00, $A2, $09, $00, $00, $9E, $09, 166 | $00, $00, $9A, $09, $00, $00, $96, $09, $00, $00, $92, $09, $00, $00, $8E, $09, 167 | $00, $00, $8A, $09, $00, $00, $86, $09, $00, $00, $82, $09, $00, $00, $7E, $09, 168 | $00, $00, $7A, $09, $00, $00, $76, $09, $00, $00, $72, $09, $00, $00, $6E, $09, 169 | $00, $00, $6A, $09, $00, $00, $66, $09, $00, $00, $62, $09, $00, $00, $5E, $09, 170 | $00, $00, $5A, $09, $00, $00, $56, $09, $00, $00, $52, $09, $00, $00, $4E, $09, 171 | $00, $00, $4A, $09, $00, $00, $46, $09, $00, $00, $42, $09, $00, $00, $3E, $09, 172 | $00, $00, $3A, $09, $00, $00, $36, $09, $00, $00, $32, $09, $00, $00, $2E, $09, 173 | $00, $00, $2A, $09, $00, $00, $26, $09, $00, $00, $22, $09, $00, $00, $1E, $09, 174 | $00, $00, $1A, $09, $00, $00, $16, $09, $00, $00, $12, $09, $00, $00, $0E, $09, 175 | $00, $00, $0A, $09, $00, $00, $06, $09, $00, $00, $02, $09, $00, $00, $FE, $08, 176 | $00, $00, $FA, $08, $00, $00, $F6, $08, $00, $00, $F2, $08, $00, $00, $EE, $08, 177 | $00, $00, $EA, $08, $00, $00, $E6, $08, $00, $00, $E2, $08, $00, $00, $DE, $08, 178 | $00, $00, $DA, $08, $00, $00, $D6, $08, $00, $00, $D2, $08, $00, $00, $CE, $08, 179 | $00, $00, $CA, $08, $00, $00, $C6, $08, $00, $00, $C2, $08, $00, $00, $BE, $08, 180 | $00, $00, $BA, $08, $00, $00, $B6, $08, $00, $00, $B2, $08, $00, $00, $AE, $08, 181 | $00, $00, $AA, $08, $00, $00, $A6, $08, $00, $00, $A2, $08, $00, $00, $9E, $08, 182 | $00, $00, $9A, $08, $00, $00, $96, $08, $00, $00, $92, $08, $00, $00, $8E, $08, 183 | $00, $00, $8A, $08, $00, $00, $86, $08, $00, $00, $82, $08, $00, $00, $7E, $08, 184 | $00, $00, $7A, $08, $00, $00, $76, $08, $00, $00, $72, $08, $00, $00, $6E, $08, 185 | $00, $00, $6A, $08, $00, $00, $66, $08, $00, $00, $62, $08, $00, $00, $5E, $08, 186 | $00, $00, $5A, $08, $00, $00, $56, $08, $00, $00, $52, $08, $00, $00, $4E, $08, 187 | $00, $00, $4A, $08, $00, $00, $46, $08, $00, $00, $42, $08, $00, $00, $3E, $08, 188 | $00, $00, $3A, $08, $00, $00, $36, $08, $00, $00, $32, $08, $00, $00, $2E, $08, 189 | $00, $00, $2A, $08, $00, $00, $26, $08, $00, $00, $22, $08, $00, $00, $1E, $08, 190 | $00, $00, $1A, $08, $00, $00, $16, $08, $00, $00, $12, $08, $00, $00, $2F, $07, 191 | $00, $00, $2B, $07, $00, $00, $06, $08, $00, $00, $02, $08, $00, $00, $FE, $07, 192 | $00, $00, $FA, $07, $00, $00, $F6, $07, $00, $00, $F2, $07, $00, $00, $EE, $07, 193 | $00, $00, $EA, $07, $00, $00, $E6, $07, $00, $00, $E2, $07, $00, $00, $DE, $07, 194 | $00, $00, $DA, $07, $00, $00, $D6, $07, $00, $00, $D2, $07, $00, $00, $CE, $07, 195 | $00, $00, $CA, $07, $00, $00, $C6, $07, $00, $00, $C2, $07, $00, $00, $BE, $07, 196 | $00, $00, $BA, $07, $00, $00, $B6, $07, $00, $00, $B2, $07, $00, $00, $6B, $05, 197 | $00, $00, $67, $05, $00, $00, $63, $05, $00, $00, $5F, $05, $00, $00, $5B, $05, 198 | $00, $00, $57, $05, $00, $00, $53, $05, $00, $00, $24, $05, $00, $00, $8E, $07, 199 | $00, $00, $8A, $07, $00, $00, $86, $07, $00, $00, $82, $07, $00, $00, $3B, $05, 200 | $00, $00, $37, $05, $00, $00, $33, $05, $00, $00, $2F, $05, $00, $00, $6E, $07, 201 | $00, $00, $6A, $07, $00, $00, $66, $07, $00, $00, $62, $07, $00, $00, $5E, $07, 202 | $00, $00, $5A, $07, $00, $00, $56, $07, $00, $00, $52, $07, $00, $00, $0B, $05, 203 | $00, $00, $07, $05, $00, $00, $03, $05, $00, $00, $42, $07, $00, $00, $3E, $07, 204 | $00, $00, $3A, $07, $00, $00, $36, $07, $00, $00, $32, $07, $00, $00, $2E, $07, 205 | $00, $00, $2A, $07, $00, $00, $26, $07, $00, $00, $22, $07, $00, $00, $1E, $07, 206 | $00, $00, $1A, $07, $00, $00, $16, $07, $00, $00, $12, $07, $00, $00, $0E, $07, 207 | $00, $00, $0A, $07, $00, $00, $06, $07, $00, $00, $02, $07, $00, $00, $FE, $06, 208 | $00, $00, $FA, $06, $00, $00, $F6, $06, $00, $00, $F2, $06, $00, $00, $EE, $06, 209 | $00, $00, $EA, $06, $00, $00, $E6, $06, $00, $00, $E2, $06, $00, $00, $DE, $06, 210 | $00, $00, $DA, $06, $00, $00, $D6, $06, $00, $00, $D2, $06, $00, $00, $8B, $04, 211 | $00, $00, $87, $04, $00, $00, $83, $04, $00, $00, $C2, $06, $00, $00, $BE, $06, 212 | $00, $00, $BA, $06, $00, $00, $B6, $06, $00, $00, $B2, $06, $00, $00, $AE, $06, 213 | $00, $00, $AA, $06, $00, $00, $A6, $06, $00, $00, $A2, $06, $00, $00, $9E, $06, 214 | $00, $00, $9A, $06, $00, $00, $96, $06, $00, $00, $92, $06, $00, $00, $8E, $06, 215 | $00, $00, $8A, $06, $00, $00, $86, $06, $00, $00, $82, $06, $00, $00, $7E, $06, 216 | $00, $00, $7A, $06, $00, $00, $76, $06, $00, $00, $72, $06, $00, $00, $6E, $06, 217 | $00, $00, $6A, $06, $00, $00, $66, $06, $00, $00, $62, $06, $00, $00, $5E, $06, 218 | $00, $00, $5A, $06, $00, $00, $56, $06, $00, $00, $52, $06, $00, $00, $0B, $04, 219 | $00, $00, $07, $04, $00, $00, $03, $04, $00, $00, $FF, $03, $00, $00, $3E, $06, 220 | $00, $00, $3A, $06, $00, $00, $36, $06, $00, $00, $32, $06, $00, $00, $2E, $06, 221 | $00, $00, $2A, $06, $00, $00, $26, $06, $00, $00, $22, $06, $00, $00, $1E, $06, 222 | $00, $00, $1A, $06, $00, $00, $16, $06, $00, $00, $12, $06, $00, $00, $0E, $06, 223 | $00, $00, $0A, $06, $00, $00, $06, $06, $00, $00, $02, $06, $00, $00, $FE, $05, 224 | $00, $00, $FA, $05, $00, $00, $F6, $05, $00, $00, $F2, $05, $00, $00, $EE, $05, 225 | $00, $00, $EA, $05, $00, $00, $E6, $05, $00, $00, $E2, $05, $00, $00, $DE, $05, 226 | $00, $00, $DA, $05, $00, $00, $D6, $05, $00, $00, $D2, $05, $00, $00, $CE, $05, 227 | $00, $00, $CA, $05, $00, $00, $C6, $05, $00, $00, $C2, $05, $00, $00, $BE, $05, 228 | $00, $00, $BA, $05, $00, $00, $B6, $05, $00, $00, $B2, $05, $00, $00, $AE, $05, 229 | $00, $00, $AA, $05, $00, $00, $A6, $05, $00, $00, $A2, $05, $00, $00, $9E, $05, 230 | $00, $00, $9A, $05, $00, $00, $96, $05, $00, $00, $92, $05, $00, $00, $8E, $05, 231 | $00, $00, $8A, $05, $00, $00, $86, $05, $00, $00, $82, $05, $00, $00, $7E, $05, 232 | $00, $00, $7A, $05, $00, $00, $76, $05, $00, $00, $72, $05, $00, $00, $6E, $05, 233 | $00, $00, $6A, $05, $00, $00, $66, $05, $00, $00, $62, $05, $00, $00, $5E, $05, 234 | $00, $00, $5A, $05, $00, $00, $56, $05, $00, $00, $52, $05, $00, $00, $4E, $05, 235 | $00, $00, $4A, $05, $00, $00, $46, $05, $00, $00, $42, $05, $00, $00, $3E, $05, 236 | $00, $00, $3A, $05, $00, $00, $36, $05, $00, $00, $32, $05, $00, $00, $2E, $05, 237 | $00, $00, $2A, $05, $00, $00, $26, $05, $00, $00, $22, $05, $00, $00, $1E, $05, 238 | $00, $00, $1A, $05, $00, $00, $16, $05, $00, $00, $12, $05, $00, $00, $0E, $05, 239 | $00, $00, $0A, $05, $00, $00, $06, $05, $00, $00, $02, $05, $00, $00, $FE, $04, 240 | $00, $00, $FA, $04, $00, $00, $F6, $04, $00, $00, $F2, $04, $00, $00, $EE, $04, 241 | $00, $00, $EA, $04, $00, $00, $E6, $04, $00, $00, $E2, $04, $00, $00, $DE, $04, 242 | $00, $00, $DA, $04, $00, $00, $D6, $04, $00, $00, $D2, $04, $00, $00, $CE, $04, 243 | $00, $00, $CA, $04, $00, $00, $C6, $04, $00, $00, $C2, $04, $00, $00, $BE, $04, 244 | $00, $00, $BA, $04, $00, $00, $B6, $04, $00, $00, $B2, $04, $00, $00, $AE, $04, 245 | $00, $00, $AA, $04, $00, $00, $A6, $04, $00, $00, $A2, $04, $00, $00, $9E, $04, 246 | $00, $00, $9A, $04, $00, $00, $96, $04, $00, $00, $92, $04, $00, $00, $8E, $04, 247 | $00, $00, $8A, $04, $00, $00, $86, $04, $00, $00, $82, $04, $00, $00, $7E, $04, 248 | $00, $00, $7A, $04, $00, $00, $76, $04, $00, $00, $72, $04, $00, $00, $6E, $04, 249 | $00, $00, $6A, $04, $00, $00, $66, $04, $00, $00, $62, $04, $00, $00, $5E, $04, 250 | $00, $00, $5A, $04, $00, $00, $56, $04, $00, $00, $52, $04, $00, $00, $4E, $04, 251 | $00, $00, $4A, $04, $00, $00, $46, $04, $00, $00, $42, $04, $00, $00, $3E, $04, 252 | $00, $00, $3A, $04, $00, $00, $36, $04, $00, $00, $32, $04, $00, $00, $2E, $04, 253 | $00, $00, $2A, $04, $00, $00, $26, $04, $00, $00, $22, $04, $00, $00, $1E, $04, 254 | $00, $00, $1A, $04, $00, $00, $16, $04, $00, $00, $12, $04, $00, $00, $0E, $04, 255 | $00, $00, $0A, $04, $00, $00, $06, $04, $00, $00, $02, $04, $00, $00, $FE, $03, 256 | $00, $00, $FA, $03, $00, $00, $F6, $03, $00, $00, $F2, $03, $00, $00, $EE, $03, 257 | $00, $00, $EA, $03, $00, $00, $E6, $03, $00, $00, $E2, $03, $00, $00, $DE, $03, 258 | $00, $00, $DA, $03, $00, $00, $D6, $03, $00, $00, $D2, $03, $00, $00, $21, $01, 259 | $00, $00, $1D, $01, $00, $00, $19, $01, $00, $00, $15, $01, $00, $00, $12, $01, 260 | $00, $00, $36, $01, $00, $00, $3D, $01, $00, $00, $05, $01, $00, $00, $01, $01, 261 | $00, $00, $FD, $00, $00, $00, $F9, $00, $00, $00, $F5, $00, $00, $00, $F2, $00, 262 | $00, $00, $ED, $00, $00, $00, $E9, $00, $00, $00, $E5, $00, $00, $00, $E1, $00, 263 | $00, $00, $DD, $00, $00, $00, $D9, $00, $00, $00, $D5, $00, $00, $00, $D2, $00, 264 | $00, $00, $CD, $00, $00, $00, $C9, $00, $00, $00, $C5, $00, $00, $00, $C1, $00, 265 | $00, $00, $BD, $00, $00, $00, $B9, $00, $00, $00, $B5, $00, $00, $00, $B1, $00, 266 | $00, $00, $AD, $00, $00, $00, $A9, $00, $00, $00, $A5, $00, $00, $00, $5E, $FF, 267 | $75, $2F, $8F, $45, $23, $C6, $45, $22, $00, $C7, $45, $02, $20, $00, $00, $00, 268 | $C7, $45, $06, $20, $00, $00, $00, $83, $7D, $33, $40, $75, $07, $C7, $45, $06, 269 | $40, $00, $00, $00, $8B, $45, $23, $0F, $B6, $08, $8D, $04, $8E, $03, $00, $83, 270 | $C0, $04, $FF, $D0, $83, $F8, $FF, $74, $06, $8B, $45, $23, $2B, $45, $2F, $5E, 271 | $5A, $59, $83, $C4, $27, $5D, $C2, $08, $00, $C7, $45, $1A, $00, $00, $00, $00, 272 | $8B, $45, $23, $0F, $B6, $40, $01, $25, $C7, $00, $00, $00, $B9, $40, $00, $00, 273 | $00, $31, $D2, $F7, $F1, $89, $45, $0A, $83, $F8, $01, $75, $04, $83, $45, $1A, 274 | $01, $83, $F8, $02, $75, $04, $83, $45, $1A, $04, $89, $55, $0E, $C1, $E0, $05, 275 | $01, $F0, $05, $00, $10, $00, $00, $8D, $04, $90, $03, $00, $83, $C0, $04, $FF, 276 | $D0, $C3, $8B, $45, $23, $0F, $B6, $40, $01, $83, $E0, $38, $C1, $E8, $03, $89, 277 | $45, $16, $C3, $C3, $83, $7D, $06, $20, $7C, $21, $83, $45, $1A, $01, $8B, $45, 278 | $23, $0F, $B6, $40, $02, $83, $E0, $07, $89, $45, $12, $83, $7D, $12, $05, $75, 279 | $0A, $83, $7D, $0A, $00, $75, $04, $83, $45, $1A, $04, $C3, $83, $7D, $06, $20, 280 | $7C, $04, $83, $45, $1A, $04, $C3, $83, $7D, $06, $10, $75, $04, $83, $45, $1A, 281 | $02, $C3, $E8, $62, $FF, $FF, $FF, $8B, $45, $1A, $01, $45, $23, $83, $45, $23, 282 | $02, $C3, $FF, $45, $23, $C3, $83, $45, $23, $02, $C3, $83, $7D, $02, $10, $75, 283 | $06, $E8, $DC, $FF, $FF, $FF, $C3, $E8, $44, $02, $00, $00, $C3, $83, $7D, $02, 284 | $10, $75, $09, $E8, $CA, $FF, $FF, $FF, $FF, $45, $23, $C3, $E8, $2F, $02, $00, 285 | $00, $C3, $83, $7D, $33, $40, $75, $06, $E8, $23, $02, $00, $00, $C3, $FF, $45, 286 | $23, $C3, $83, $7D, $02, $20, $7C, $05, $83, $45, $23, $05, $C3, $83, $45, $23, 287 | $03, $C3, $83, $7D, $02, $40, $75, $05, $83, $45, $23, $09, $C3, $83, $7D, $02, 288 | $20, $75, $05, $83, $45, $23, $05, $C3, $83, $45, $23, $03, $C3, $E8, $80, $FF, 289 | $FF, $FF, $FF, $45, $23, $C3, $83, $7D, $33, $40, $75, $22, $C7, $45, $02, $40, 290 | $00, $00, $00, $FF, $45, $23, $8B, $45, $23, $0F, $B6, $08, $8D, $04, $8E, $03, 291 | $00, $83, $C0, $04, $FF, $D0, $C7, $45, $02, $20, $00, $00, $00, $C3, $FF, $45, 292 | $23, $C3, $83, $7D, $33, $40, $75, $23, $FF, $45, $23, $FE, $45, $22, $80, $7D, 293 | $22, $0F, $75, $06, $E8, $A7, $01, $00, $00, $C3, $8B, $45, $23, $0F, $B6, $08, 294 | $8D, $04, $8E, $03, $00, $83, $C0, $04, $FF, $D0, $C3, $83, $45, $23, $01, $C3, 295 | $FF, $45, $23, $FE, $45, $22, $80, $7D, $22, $0F, $75, $06, $E8, $7F, $01, $00, 296 | $00, $C3, $8B, $45, $23, $0F, $B6, $08, $8D, $04, $8E, $03, $00, $83, $C0, $04, 297 | $FF, $D0, $C3, $83, $7D, $02, $20, $7C, $0A, $E8, $F4, $FE, $FF, $FF, $83, $45, 298 | $23, $04, $C3, $E8, $EA, $FE, $FF, $FF, $83, $45, $23, $02, $C3, $83, $7D, $33, 299 | $40, $75, $06, $E8, $48, $01, $00, $00, $C3, $83, $45, $23, $02, $C3, $83, $45, 300 | $23, $04, $C3, $83, $45, $23, $05, $C3, $83, $7D, $33, $40, $75, $06, $E8, $2D, 301 | $01, $00, $00, $C3, $E8, $B9, $FE, $FF, $FF, $C3, $E8, $1A, $FE, $FF, $FF, $83, 302 | $7D, $0A, $03, $75, $06, $E8, $A8, $FE, $FF, $FF, $C3, $E8, $10, $01, $00, $00, 303 | $C3, $83, $45, $23, $03, $C3, $83, $7D, $06, $40, $75, $05, $83, $45, $23, $09, 304 | $C3, $83, $45, $23, $05, $C3, $83, $7D, $06, $10, $75, $05, $83, $45, $23, $03, 305 | $C3, $83, $7D, $06, $20, $75, $05, $83, $45, $23, $05, $C3, $83, $45, $23, $09, 306 | $C3, $80, $7D, $00, $01, $75, $06, $E8, $66, $FE, $FF, $FF, $C3, $E8, $CE, $00, 307 | $00, $00, $C3, $80, $7D, $00, $01, $75, $06, $E8, $54, $FE, $FF, $FF, $C3, $80, 308 | $7D, $01, $01, $75, $06, $E8, $48, $FE, $FF, $FF, $C3, $83, $7D, $02, $10, $75, 309 | $06, $E8, $3C, $FE, $FF, $FF, $C3, $E8, $A4, $00, $00, $00, $C3, $83, $7D, $33, 310 | $40, $75, $06, $E8, $98, $00, $00, $00, $C3, $83, $7D, $02, $20, $75, $05, $83, 311 | $45, $23, $07, $C3, $83, $45, $23, $05, $C3, $C3, $83, $7D, $02, $10, $74, $10, 312 | $E8, $74, $FD, $FF, $FF, $8B, $45, $1A, $01, $45, $23, $83, $45, $23, $06, $C3, 313 | $E8, $64, $FD, $FF, $FF, $8B, $45, $1A, $01, $45, $23, $83, $45, $23, $04, $C3, 314 | $83, $7D, $33, $40, $75, $06, $E8, $55, $00, $00, $00, $C3, $83, $7D, $02, $20, 315 | $75, $05, $83, $45, $23, $07, $C3, $83, $45, $23, $05, $C3, $E8, $81, $FD, $FF, 316 | $FF, $83, $7D, $16, $00, $75, $06, $E8, $C6, $FD, $FF, $FF, $C3, $E8, $2E, $00, 317 | $00, $00, $C3, $83, $7D, $33, $40, $75, $05, $83, $45, $23, $05, $C3, $83, $7D, 318 | $02, $20, $75, $05, $83, $45, $23, $05, $C3, $83, $45, $23, $03, $C3, $80, $7D, 319 | $00, $01, $75, $06, $E8, $99, $FD, $FF, $FF, $C3, $E8, $01, $00, $00, $00, $C3, 320 | $B8, $FF, $FF, $FF, $FF, $C3, $83, $7D, $33, $40, $75, $06, $E8, $EF, $FF, $FF, 321 | $FF, $C3, $E8, $7B, $FD, $FF, $FF, $83, $45, $23, $01, $C3, $83, $7D, $02, $20, 322 | $7C, $0A, $E8, $6B, $FD, $FF, $FF, $83, $45, $23, $04, $C3, $E8, $61, $FD, $FF, 323 | $FF, $83, $45, $23, $02, $C3, $E8, $BE, $FC, $FF, $FF, $E8, $02, $FD, $FF, $FF, 324 | $83, $7D, $16, $00, $75, $0B, $8B, $45, $1A, $01, $45, $23, $83, $45, $23, $03, 325 | $C3, $83, $7D, $16, $01, $75, $06, $E8, $A4, $FF, $FF, $FF, $C3, $8B, $45, $1A, 326 | $01, $45, $23, $83, $45, $23, $02, $C3, $83, $7D, $02, $20, $7C, $32, $E8, $86, 327 | $FC, $FF, $FF, $E8, $CA, $FC, $FF, $FF, $83, $7D, $16, $00, $75, $0B, $8B, $45, 328 | $1A, $01, $45, $23, $83, $45, $23, $06, $C3, $83, $7D, $16, $01, $75, $06, $E8, 329 | $6C, $FF, $FF, $FF, $C3, $8B, $45, $1A, $01, $45, $23, $83, $45, $23, $02, $C3, 330 | $E8, $54, $FC, $FF, $FF, $E8, $98, $FC, $FF, $FF, $83, $7D, $16, $00, $75, $0B, 331 | $8B, $45, $1A, $01, $45, $23, $83, $45, $23, $04, $C3, $83, $7D, $16, $01, $75, 332 | $06, $E8, $3A, $FF, $FF, $FF, $C3, $8B, $45, $1A, $01, $45, $23, $83, $45, $23, 333 | $02, $C3, $E8, $22, $FC, $FF, $FF, $E8, $66, $FC, $FF, $FF, $83, $7D, $16, $01, 334 | $7E, $06, $E8, $19, $FF, $FF, $FF, $C3, $8B, $45, $1A, $01, $45, $23, $83, $45, 335 | $23, $02, $C3, $E8, $4A, $FC, $FF, $FF, $83, $7D, $16, $06, $7E, $06, $E8, $FD, 336 | $FE, $FF, $FF, $C3, $E8, $F0, $FB, $FF, $FF, $8B, $45, $1A, $01, $45, $23, $83, 337 | $45, $23, $02, $C3, $E8, $E0, $FB, $FF, $FF, $E8, $24, $FC, $FF, $FF, $83, $7D, 338 | $16, $05, $7E, $06, $E8, $D7, $FE, $FF, $FF, $C3, $8B, $45, $1A, $01, $45, $23, 339 | $83, $45, $23, $02, $C3, $E8, $BF, $FB, $FF, $FF, $E8, $03, $FC, $FF, $FF, $83, 340 | $7D, $16, $00, $75, $1A, $83, $7D, $0A, $03, $0F, $85, $AC, $00, $00, $00, $83, 341 | $7D, $0E, $04, $0F, $8E, $A2, $00, $00, $00, $E8, $A2, $FE, $FF, $FF, $C3, $83, 342 | $7D, $16, $01, $75, $1A, $83, $7D, $0A, $03, $0F, $85, $8C, $00, $00, $00, $83, 343 | $7D, $0E, $01, $0F, $8E, $82, $00, $00, $00, $E8, $82, $FE, $FF, $FF, $C3, $83, 344 | $7D, $16, $02, $75, $10, $83, $7D, $0A, $03, $0F, $85, $6C, $00, $00, $00, $E8, 345 | $6C, $FE, $FF, $FF, $C3, $83, $7D, $16, $03, $75, $0C, $83, $7D, $0A, $03, $75, 346 | $5A, $E8, $5A, $FE, $FF, $FF, $C3, $83, $7D, $16, $04, $75, $0C, $83, $7D, $0A, 347 | $03, $75, $48, $E8, $48, $FE, $FF, $FF, $C3, $83, $7D, $16, $05, $75, $06, $E8, 348 | $3C, $FE, $FF, $FF, $C3, $83, $7D, $16, $06, $75, $0C, $83, $7D, $0A, $03, $75, 349 | $2A, $E8, $2A, $FE, $FF, $FF, $C3, $83, $7D, $16, $07, $75, $1E, $83, $7D, $0A, 350 | $03, $75, $18, $83, $7D, $33, $40, $75, $0C, $83, $7D, $0E, $00, $74, $0C, $E8, 351 | $0C, $FE, $FF, $FF, $C3, $E8, $06, $FE, $FF, $FF, $C3, $8B, $45, $1A, $01, $45, 352 | $23, $83, $45, $23, $02, $C3, $E8, $EE, $FA, $FF, $FF, $E8, $32, $FB, $FF, $FF, 353 | $83, $7D, $16, $04, $7D, $06, $E8, $E5, $FD, $FF, $FF, $C3, $8B, $45, $1A, $01, 354 | $45, $23, $83, $45, $23, $03, $C3, $E8, $CD, $FA, $FF, $FF, $E8, $11, $FB, $FF, 355 | $FF, $83, $7D, $16, $00, $75, $06, $E8, $C4, $FD, $FF, $FF, $C3, $83, $7D, $16, 356 | $02, $75, $06, $E8, $B8, $FD, $FF, $FF, $C3, $83, $7D, $16, $03, $75, $06, $E8, 357 | $AC, $FD, $FF, $FF, $C3, $83, $7D, $16, $04, $75, $06, $E8, $A0, $FD, $FF, $FF, 358 | $C3, $83, $7D, $16, $05, $75, $06, $E8, $94, $FD, $FF, $FF, $C3, $83, $7D, $16, 359 | $07, $7E, $06, $E8, $88, $FD, $FF, $FF, $C3, $8B, $45, $1A, $01, $45, $23, $83, 360 | $45, $23, $02, $C3, $E8, $B9, $FA, $FF, $FF, $83, $7D, $16, $00, $75, $06, $E8, 361 | $6C, $FD, $FF, $FF, $C3, $83, $7D, $16, $01, $75, $06, $E8, $60, $FD, $FF, $FF, 362 | $C3, $83, $7D, $16, $02, $75, $11, $E8, $4D, $FA, $FF, $FF, $83, $7D, $0A, $03, 363 | $74, $52, $E8, $49, $FD, $FF, $FF, $C3, $83, $7D, $16, $03, $75, $06, $E8, $3D, 364 | $FD, $FF, $FF, $C3, $83, $7D, $16, $04, $75, $11, $E8, $2A, $FA, $FF, $FF, $83, 365 | $7D, $0A, $03, $74, $2F, $E8, $26, $FD, $FF, $FF, $C3, $83, $7D, $16, $05, $75, 366 | $06, $E8, $1A, $FD, $FF, $FF, $C3, $83, $7D, $16, $06, $75, $11, $E8, $07, $FA, 367 | $FF, $FF, $83, $7D, $0A, $03, $74, $0C, $E8, $03, $FD, $FF, $FF, $C3, $E8, $FD, 368 | $FC, $FF, $FF, $C3, $8B, $45, $1A, $01, $45, $23, $83, $45, $23, $03, $C3, $E8, 369 | $2E, $FA, $FF, $FF, $83, $7D, $16, $00, $75, $06, $E8, $E1, $FC, $FF, $FF, $C3, 370 | $83, $7D, $16, $01, $75, $06, $E8, $D5, $FC, $FF, $FF, $C3, $83, $7D, $16, $02, 371 | $75, $11, $E8, $C2, $F9, $FF, $FF, $83, $7D, $0A, $03, $74, $52, $E8, $BE, $FC, 372 | $FF, $FF, $C3, $83, $7D, $16, $03, $75, $06, $E8, $B2, $FC, $FF, $FF, $C3, $83, 373 | $7D, $16, $04, $75, $11, $E8, $9F, $F9, $FF, $FF, $83, $7D, $0A, $03, $74, $2F, 374 | $E8, $9B, $FC, $FF, $FF, $C3, $83, $7D, $16, $05, $75, $06, $E8, $8F, $FC, $FF, 375 | $FF, $C3, $83, $7D, $16, $06, $75, $11, $E8, $7C, $F9, $FF, $FF, $83, $7D, $0A, 376 | $03, $74, $0C, $E8, $78, $FC, $FF, $FF, $C3, $E8, $72, $FC, $FF, $FF, $C3, $8B, 377 | $45, $1A, $01, $45, $23, $83, $45, $23, $03, $C3, $E8, $A3, $F9, $FF, $FF, $83, 378 | $7D, $16, $00, $75, $06, $E8, $56, $FC, $FF, $FF, $C3, $83, $7D, $16, $01, $75, 379 | $06, $E8, $4A, $FC, $FF, $FF, $C3, $83, $7D, $16, $02, $75, $15, $E8, $37, $F9, 380 | $FF, $FF, $83, $7D, $0A, $03, $0F, $84, $7B, $00, $00, $00, $E8, $2F, $FC, $FF, 381 | $FF, $C3, $83, $7D, $16, $03, $75, $1D, $83, $7D, $02, $10, $75, $11, $E8, $16, 382 | $F9, $FF, $FF, $83, $7D, $0A, $03, $74, $5E, $E8, $12, $FC, $FF, $FF, $C3, $E8, 383 | $0C, $FC, $FF, $FF, $C3, $83, $7D, $16, $04, $75, $06, $E8, $00, $FC, $FF, $FF, 384 | $C3, $83, $7D, $16, $05, $75, $06, $E8, $F4, $FB, $FF, $FF, $C3, $83, $7D, $16, 385 | $06, $75, $11, $E8, $E1, $F8, $FF, $FF, $83, $7D, $0A, $03, $74, $29, $E8, $DD, 386 | $FB, $FF, $FF, $C3, $83, $7D, $16, $07, $75, $17, $83, $7D, $02, $10, $75, $11, 387 | $E8, $C4, $F8, $FF, $FF, $83, $7D, $0A, $03, $74, $0C, $E8, $C0, $FB, $FF, $FF, 388 | $C3, $E8, $BA, $FB, $FF, $FF, $C3, $8B, $45, $1A, $01, $45, $23, $83, $45, $23, 389 | $03, $C3, $E8, $EB, $F8, $FF, $FF, $83, $7D, $16, $00, $75, $15, $E8, $97, $F8, 390 | $FF, $FF, $83, $7D, $0A, $03, $0F, $85, $A0, $00, $00, $00, $E8, $8F, $FB, $FF, 391 | $FF, $C3, $83, $7D, $16, $01, $75, $15, $E8, $7C, $F8, $FF, $FF, $83, $7D, $0A, 392 | $03, $0F, $85, $85, $00, $00, $00, $E8, $74, $FB, $FF, $FF, $C3, $83, $7D, $16, 393 | $02, $75, $15, $E8, $61, $F8, $FF, $FF, $83, $7D, $0A, $03, $0F, $85, $6A, $00, 394 | $00, $00, $E8, $59, $FB, $FF, $FF, $C3, $83, $7D, $16, $03, $75, $11, $E8, $46, 395 | $F8, $FF, $FF, $83, $7D, $0A, $03, $75, $53, $E8, $42, $FB, $FF, $FF, $C3, $83, 396 | $7D, $16, $04, $75, $06, $E8, $36, $FB, $FF, $FF, $C3, $83, $7D, $16, $05, $75, 397 | $11, $E8, $23, $F8, $FF, $FF, $83, $7D, $0A, $03, $75, $30, $E8, $1F, $FB, $FF, 398 | $FF, $C3, $83, $7D, $16, $06, $75, $11, $E8, $0C, $F8, $FF, $FF, $83, $7D, $0A, 399 | $03, $75, $19, $E8, $08, $FB, $FF, $FF, $C3, $83, $7D, $16, $07, $7F, $07, $E8, 400 | $F5, $F7, $FF, $FF, $EB, $06, $E8, $F5, $FA, $FF, $FF, $C3, $8B, $45, $1A, $01, 401 | $45, $23, $83, $45, $23, $02, $C3, $E8, $26, $F8, $FF, $FF, $83, $7D, $16, $00, 402 | $75, $11, $E8, $D2, $F7, $FF, $FF, $83, $7D, $0A, $03, $75, $51, $E8, $CE, $FA, 403 | $FF, $FF, $C3, $83, $7D, $16, $01, $75, $11, $E8, $BB, $F7, $FF, $FF, $83, $7D, 404 | $0A, $03, $75, $3A, $E8, $B7, $FA, $FF, $FF, $C3, $83, $7D, $16, $02, $75, $11, 405 | $E8, $A4, $F7, $FF, $FF, $83, $7D, $0A, $03, $75, $23, $E8, $A0, $FA, $FF, $FF, 406 | $C3, $83, $7D, $16, $03, $75, $11, $E8, $8D, $F7, $FF, $FF, $83, $7D, $0A, $03, 407 | $75, $0C, $E8, $89, $FA, $FF, $FF, $C3, $E8, $83, $FA, $FF, $FF, $C3, $8B, $45, 408 | $1A, $01, $45, $23, $83, $45, $23, $02, $C3, $FF, $45, $23, $C7, $45, $02, $10, 409 | $00, $00, $00, $FE, $45, $22, $80, $7D, $22, $0F, $75, $06, $E8, $5F, $FA, $FF, 410 | $FF, $C3, $8B, $45, $23, $0F, $B6, $08, $8D, $04, $8E, $03, $00, $83, $C0, $04, 411 | $FF, $D0, $C7, $45, $02, $20, $00, $00, $00, $C3, $FF, $45, $23, $FE, $45, $22, 412 | $80, $7D, $22, $0F, $75, $06, $E8, $35, $FA, $FF, $FF, $C3, $8B, $4D, $06, $D1, 413 | $E9, $89, $5D, $06, $8B, $45, $23, $0F, $B6, $08, $8D, $04, $8E, $03, $00, $83, 414 | $C0, $04, $FF, $D0, $8B, $5D, $06, $D1, $E1, $89, $4D, $06, $C3, $FF, $45, $23, 415 | $FE, $45, $22, $80, $7D, $22, $0F, $75, $06, $E8, $02, $FA, $FF, $FF, $C3, $8B, 416 | $45, $23, $0F, $B6, $00, $3C, $A4, $74, $12, $3C, $A7, $74, $0E, $3C, $AE, $74, 417 | $0A, $3C, $AF, $74, $06, $3C, $0F, $74, $02, $EB, $04, $C6, $45, $00, $01, $8B, 418 | $45, $23, $0F, $B6, $08, $8D, $04, $8E, $03, $00, $83, $C0, $04, $FF, $D0, $C6, 419 | $45, $00, $00, $C3, $FF, $45, $23, $FE, $45, $22, $80, $7D, $22, $0F, $75, $06, 420 | $E8, $BB, $F9, $FF, $FF, $C3, $8B, $45, $23, $0F, $B6, $00, $3C, $90, $74, $3E, 421 | $3C, $A4, $74, $3A, $3C, $A5, $74, $36, $3C, $A6, $74, $32, $3C, $A7, $74, $2E, 422 | $3C, $AA, $74, $2A, $3C, $AB, $74, $26, $3C, $AC, $74, $22, $3C, $AD, $74, $1E, 423 | $3C, $AE, $74, $1A, $3C, $AF, $74, $16, $3C, $6C, $74, $12, $3C, $6D, $74, $0E, 424 | $3C, $6E, $74, $0A, $3C, $6F, $74, $06, $3C, $0F, $74, $02, $EB, $04, $C6, $45, 425 | $01, $01, $8B, $45, $23, $0F, $B6, $08, $8D, $04, $8E, $03, $00, $83, $C0, $04, 426 | $FF, $D0, $C6, $45, $01, $00, $C3, $FF, $45, $23, $FE, $45, $22, $80, $7D, $22, 427 | $0F, $75, $06, $E8, $48, $F9, $FF, $FF, $C3, $8B, $45, $23, $0F, $B6, $08, $8D, 428 | $84, $8E, $00, $04, $00, $00, $03, $00, $83, $C0, $04, $FF, $D0, $C3, $FF, $45, 429 | $23, $FE, $45, $22, $80, $7D, $22, $0F, $75, $06, $E8, $21, $F9, $FF, $FF, $C3, 430 | $8B, $45, $23, $0F, $B6, $08, $8D, $84, $8E, $00, $08, $00, $00, $03, $00, $83, 431 | $C0, $04, $FF, $D0, $C3, $FF, $45, $23, $FE, $45, $22, $80, $7D, $22, $0F, $75, 432 | $06, $E8, $FA, $F8, $FF, $FF, $C3, $8B, $45, $23, $0F, $B6, $08, $8D, $84, $8E, 433 | $00, $0C, $00, $00, $03, $00, $83, $C0, $04, $FF, $D0, $C3, $C7, $45, $1A, $00, 434 | $00, $00, $00, $8B, $45, $23, $0F, $B6, $40, $01, $3D, $BF, $00, $00, $00, $7F, 435 | $11, $E8, $0C, $F6, $FF, $FF, $83, $7D, $16, $07, $7E, $06, $E8, $BF, $F8, $FF, 436 | $FF, $C3, $E8, $B2, $F5, $FF, $FF, $8B, $45, $1A, $01, $45, $23, $83, $45, $23, 437 | $02, $C3, $C7, $45, $1A, $00, $00, $00, $00, $8B, $45, $23, $0F, $B6, $40, $01, 438 | $3D, $BF, $00, $00, $00, $7F, $17, $E8, $D6, $F5, $FF, $FF, $83, $7D, $16, $01, 439 | $75, $69, $83, $7D, $16, $07, $7E, $63, $E8, $83, $F8, $FF, $FF, $C3, $3D, $C0, 440 | $00, $00, $00, $7C, $56, $89, $C2, $C1, $EA, $04, $89, $C1, $83, $E1, $0F, $83, 441 | $FA, $0D, $75, $0B, $83, $F9, $00, $74, $42, $E8, $62, $F8, $FF, $FF, $C3, $83, 442 | $FA, $0E, $75, $37, $83, $F9, $02, $75, $06, $E8, $52, $F8, $FF, $FF, $C3, $83, 443 | $F9, $03, $75, $06, $E8, $47, $F8, $FF, $FF, $C3, $83, $F9, $06, $75, $06, $E8, 444 | $3C, $F8, $FF, $FF, $C3, $83, $F9, $07, $75, $06, $E8, $31, $F8, $FF, $FF, $C3, 445 | $83, $F9, $0F, $75, $06, $E8, $26, $F8, $FF, $FF, $C3, $E8, $19, $F5, $FF, $FF, 446 | $8B, $45, $1A, $01, $45, $23, $83, $45, $23, $02, $C3, $C7, $45, $1A, $00, $00, 447 | $00, $00, $8B, $45, $23, $0F, $B6, $40, $01, $3D, $BF, $00, $00, $00, $7F, $11, 448 | $E8, $3D, $F5, $FF, $FF, $83, $7D, $16, $07, $7E, $32, $E8, $F0, $F7, $FF, $FF, 449 | $C3, $3D, $C0, $00, $00, $00, $7C, $25, $89, $C2, $C1, $EA, $04, $89, $C1, $83, 450 | $E1, $0F, $83, $FA, $0E, $75, $0B, $83, $F9, $09, $74, $11, $E8, $CF, $F7, $FF, 451 | $FF, $C3, $83, $FA, $0F, $75, $06, $E8, $C4, $F7, $FF, $FF, $C3, $E8, $B7, $F4, 452 | $FF, $FF, $8B, $45, $1A, $01, $45, $23, $83, $45, $23, $02, $C3, $C7, $45, $1A, 453 | $00, $00, $00, $00, $8B, $45, $23, $0F, $B6, $40, $01, $3D, $BF, $00, $00, $00, 454 | $7F, $1F, $E8, $DB, $F4, $FF, $FF, $83, $7D, $16, $04, $74, $0E, $83, $7D, $16, 455 | $06, $74, $08, $83, $7D, $16, $07, $7F, $02, $EB, $41, $E8, $80, $F7, $FF, $FF, 456 | $C3, $3D, $C0, $00, $00, $00, $7C, $34, $89, $C2, $C1, $EA, $04, $89, $C1, $83, 457 | $E1, $0F, $83, $FA, $0E, $75, $15, $83, $F9, $08, $7D, $20, $83, $F9, $03, $74, 458 | $1B, $83, $F9, $02, $74, $16, $E8, $55, $F7, $FF, $FF, $C3, $83, $FA, $0F, $75, 459 | $0B, $83, $F9, $08, $7C, $06, $E8, $45, $F7, $FF, $FF, $C3, $E8, $38, $F4, $FF, 460 | $FF, $8B, $45, $1A, $01, $45, $23, $83, $45, $23, $02, $C3, $C7, $45, $1A, $00, 461 | $00, $00, $00, $8B, $45, $23, $0F, $B6, $40, $01, $3D, $BF, $00, $00, $00, $7F, 462 | $11, $E8, $5C, $F4, $FF, $FF, $83, $7D, $16, $07, $7E, $22, $E8, $0F, $F7, $FF, 463 | $FF, $C3, $3D, $C0, $00, $00, $00, $7C, $15, $89, $C2, $C1, $EA, $04, $89, $C1, 464 | $83, $E1, $0F, $83, $FA, $0D, $75, $06, $E8, $F3, $F6, $FF, $FF, $C3, $E8, $E6, 465 | $F3, $FF, $FF, $8B, $45, $1A, $01, $45, $23, $83, $45, $23, $02, $C3, $C7, $45, 466 | $1A, $00, $00, $00, $00, $8B, $45, $23, $0F, $B6, $40, $01, $3D, $BF, $00, $00, 467 | $00, $7F, $19, $E8, $0A, $F4, $FF, $FF, $83, $7D, $16, $05, $74, $08, $83, $7D, 468 | $16, $07, $7F, $02, $EB, $32, $E8, $B5, $F6, $FF, $FF, $C3, $3D, $C0, $00, $00, 469 | $00, $7C, $25, $89, $C2, $C1, $EA, $04, $89, $C1, $83, $E1, $0F, $83, $FA, $0C, 470 | $75, $0B, $83, $F9, $08, $7C, $11, $E8, $94, $F6, $FF, $FF, $C3, $83, $FA, $0F, 471 | $75, $06, $E8, $89, $F6, $FF, $FF, $C3, $E8, $7C, $F3, $FF, $FF, $8B, $45, $1A, 472 | $01, $45, $23, $83, $45, $23, $02, $C3, $C7, $45, $1A, $00, $00, $00, $00, $8B, 473 | $45, $23, $0F, $B6, $40, $01, $3D, $BF, $00, $00, $00, $7F, $11, $E8, $A0, $F3, 474 | $FF, $FF, $83, $7D, $16, $07, $7E, $27, $E8, $53, $F6, $FF, $FF, $C3, $3D, $C0, 475 | $00, $00, $00, $7C, $1A, $89, $C2, $C1, $EA, $04, $89, $C1, $83, $E1, $0F, $83, 476 | $FA, $0D, $75, $0B, $83, $F9, $09, $74, $06, $E8, $32, $F6, $FF, $FF, $C3, $E8, 477 | $25, $F3, $FF, $FF, $8B, $45, $1A, $01, $45, $23, $83, $45, $23, $02, $C3, $C7, 478 | $45, $1A, $00, $00, $00, $00, $8B, $45, $23, $0F, $B6, $40, $01, $3D, $BF, $00, 479 | $00, $00, $7F, $11, $E8, $49, $F3, $FF, $FF, $83, $7D, $16, $07, $7E, $52, $E8, 480 | $FC, $F5, $FF, $FF, $C3, $3D, $C0, $00, $00, $00, $7C, $45, $89, $C2, $C1, $EA, 481 | $04, $89, $C1, $83, $E1, $0F, $83, $FA, $0C, $75, $06, $E8, $E0, $F5, $FF, $FF, 482 | $C3, $83, $FA, $0D, $75, $06, $E8, $D5, $F5, $FF, $FF, $C3, $83, $FA, $0E, $75, 483 | $10, $83, $F9, $00, $74, $1B, $83, $F9, $08, $7D, $16, $E8, $C0, $F5, $FF, $FF, 484 | $C3, $83, $FA, $0F, $75, $0B, $83, $F9, $08, $7C, $06, $E8, $B0, $F5, $FF, $FF, 485 | $C3, $E8, $A3, $F2, $FF, $FF, $8B, $45, $1A, $01, $45, $23, $83, $45, $23, $02, 486 | $C3 487 | ); 488 | -------------------------------------------------------------------------------- /Source/HookUtils.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/delphilite/DelphiHookUtils/496ccbf3f7621878dce99c02077dc29254aca2b5/Source/HookUtils.pas --------------------------------------------------------------------------------