├── .gitignore ├── 3rdParty ├── IOUtilsD9.pas ├── JCL │ └── jcl-2.3.1.4197 │ │ ├── LICENSE-BZIP2.txt │ │ ├── LICENSE-DRYICONS.txt │ │ ├── LICENSE-PCRE.txt │ │ ├── LICENSE-SEVENZIP.txt │ │ ├── LICENSE-ZLIB.txt │ │ ├── LICENSE.txt │ │ └── source │ │ ├── common │ │ ├── Jcl8087.pas │ │ ├── JclAnsiStrings.pas │ │ ├── JclBase.pas │ │ ├── JclCharsets.pas │ │ ├── JclDateTime.pas │ │ ├── JclFileUtils.pas │ │ ├── JclIniFiles.pas │ │ ├── JclLogic.pas │ │ ├── JclMath.pas │ │ ├── JclPCRE.pas │ │ ├── JclResources.pas │ │ ├── JclSimpleXml.pas │ │ ├── JclStreams.pas │ │ ├── JclStringConversions.pas │ │ ├── JclStringLists.pas │ │ ├── JclStrings.pas │ │ ├── JclSynch.pas │ │ ├── JclSysInfo.pas │ │ ├── JclSysUtils.pas │ │ ├── JclUnicode.pas │ │ ├── JclUnicode.rc │ │ ├── JclUnicode.res │ │ ├── JclUnicodeBZip2.res │ │ ├── JclUnicodeBzip2.rc │ │ ├── JclUnicodeZLib.rc │ │ ├── JclUnicodeZLib.res │ │ ├── JclWideStrings.pas │ │ └── pcre.pas │ │ ├── include │ │ ├── crossplatform.inc │ │ ├── jcl.inc │ │ ├── jcl.template.inc │ │ ├── jclc6.inc │ │ ├── jclcs1.inc │ │ ├── jcld10.inc │ │ ├── jcld11.inc │ │ ├── jcld12.inc │ │ ├── jcld14.inc │ │ ├── jcld15.inc │ │ ├── jcld16win32.inc │ │ ├── jcld16win64.inc │ │ ├── jcld6.inc │ │ ├── jcld7.inc │ │ ├── jcld8.inc │ │ ├── jcld9.inc │ │ ├── jclfpc.inc │ │ ├── jedi │ │ │ ├── jedi.inc │ │ │ └── kylix.inc │ │ ├── unixonly.inc │ │ └── windowsonly.inc │ │ └── windows │ │ ├── JclConsole.pas │ │ ├── JclHookExcept.pas │ │ ├── JclPeImage.pas │ │ ├── JclRegistry.pas │ │ ├── JclSecurity.pas │ │ ├── JclShell.pas │ │ ├── JclTD32.pas │ │ ├── JclWin32.pas │ │ └── Snmp.pas ├── JVCL │ └── JVCL345SourceOnly │ │ ├── common │ │ ├── clxonly.inc │ │ ├── common.txt │ │ ├── crossplatform.inc │ │ ├── jedi │ │ │ ├── jedi.inc │ │ │ └── kylix.inc │ │ ├── jvcl.inc │ │ ├── jvclbase.inc │ │ ├── jvclc6.inc │ │ ├── jvcld10.inc │ │ ├── jvcld11.inc │ │ ├── jvcld12.inc │ │ ├── jvcld14.inc │ │ ├── jvcld15.inc │ │ ├── jvcld16win32.inc │ │ ├── jvcld16win64.inc │ │ ├── jvcld6.inc │ │ ├── jvcld7.inc │ │ ├── jvcld9.inc │ │ ├── linuxonly.inc │ │ ├── vclonly.inc │ │ ├── windowsonly.inc │ │ └── windowsversion.inc │ │ └── run │ │ ├── JVCLVer.pas │ │ ├── JvComponentBase.pas │ │ ├── JvConsts.pas │ │ └── JvStrToHtml.pas ├── JWAPI │ └── jwapi2.2a │ │ ├── Common │ │ ├── Common.txt │ │ ├── JwaModuleLoader.pas │ │ ├── jedi.inc │ │ └── jediapilib.inc │ │ └── Win32API │ │ ├── JwaAF_Irda.pas │ │ ├── JwaAccCtrl.pas │ │ ├── JwaAclApi.pas │ │ ├── JwaAclUI.pas │ │ ├── JwaActiveDS.pas │ │ ├── JwaActiveX.pas │ │ ├── JwaAdsDb.pas │ │ ├── JwaAdsErr.pas │ │ ├── JwaAdsHlp.pas │ │ ├── JwaAdsProp.pas │ │ ├── JwaAdsTLB.pas │ │ ├── JwaAdsnms.pas │ │ ├── JwaAdssts.pas │ │ ├── JwaAdtGen.pas │ │ ├── JwaAtalkWsh.pas │ │ ├── JwaAuthif.pas │ │ ├── JwaAuthz.pas │ │ ├── JwaBCrypt.pas │ │ ├── JwaBLBErr.pas │ │ ├── JwaBatClass.pas │ │ ├── JwaBitFields.pas │ │ ├── JwaBits.pas │ │ ├── JwaBits1_5.pas │ │ ├── JwaBits2_0.pas │ │ ├── JwaBits2_5.pas │ │ ├── JwaBits3_0.pas │ │ ├── JwaBitsMsg.pas │ │ ├── JwaBitscfg.pas │ │ ├── JwaBluetoothAPIs.pas │ │ ├── JwaBtHDef.pas │ │ ├── JwaBthSdpDef.pas │ │ ├── JwaBugCodes.pas │ │ ├── JwaCardErr.pas │ │ ├── JwaCdErr.pas │ │ ├── JwaCmnQuery.pas │ │ ├── JwaColorDlg.pas │ │ ├── JwaCpl.pas │ │ ├── JwaCplext.pas │ │ ├── JwaCryptUIApi.pas │ │ ├── JwaDSAdmin.pas │ │ ├── JwaDSClient.pas │ │ ├── JwaDSGetDc.pas │ │ ├── JwaDSQuery.pas │ │ ├── JwaDSRole.pas │ │ ├── JwaDbt.pas │ │ ├── JwaDde.pas │ │ ├── JwaDhcpCSdk.pas │ │ ├── JwaDhcpSSdk.pas │ │ ├── JwaDhcpsApi.pas │ │ ├── JwaDlgs.pas │ │ ├── JwaDsSec.pas │ │ ├── JwaDskQuota.pas │ │ ├── JwaDwmapi.pas │ │ ├── JwaErrorRep.pas │ │ ├── JwaEventDefs.pas │ │ ├── JwaEventTracing.pas │ │ ├── JwaEvntCons.pas │ │ ├── JwaEvntProv.pas │ │ ├── JwaExcpt.pas │ │ ├── JwaFaxDev.pas │ │ ├── JwaFaxExt.pas │ │ ├── JwaFaxMmc.pas │ │ ├── JwaFaxRoute.pas │ │ ├── JwaGPEdit.pas │ │ ├── JwaHhError.pas │ │ ├── JwaHtmlGuid.pas │ │ ├── JwaHtmlHelp.pas │ │ ├── JwaIAccess.pas │ │ ├── JwaIAdmExt.pas │ │ ├── JwaIcmpApi.pas │ │ ├── JwaIisCnfg.pas │ │ ├── JwaImageHlp.pas │ │ ├── JwaImapi.pas │ │ ├── JwaImapiError.pas │ │ ├── JwaIme.pas │ │ ├── JwaIoEvent.pas │ │ ├── JwaIpExport.pas │ │ ├── JwaIpHlpApi.pas │ │ ├── JwaIpIfCons.pas │ │ ├── JwaIpInfoId.pas │ │ ├── JwaIpRtrMib.pas │ │ ├── JwaIpTypes.pas │ │ ├── JwaIsGuids.pas │ │ ├── JwaIssPer16.pas │ │ ├── JwaLM.pas │ │ ├── JwaLmAccess.pas │ │ ├── JwaLmAlert.pas │ │ ├── JwaLmApiBuf.pas │ │ ├── JwaLmAt.pas │ │ ├── JwaLmAudit.pas │ │ ├── JwaLmConfig.pas │ │ ├── JwaLmCons.pas │ │ ├── JwaLmDFS.pas │ │ ├── JwaLmErr.pas │ │ ├── JwaLmErrLog.pas │ │ ├── JwaLmJoin.pas │ │ ├── JwaLmMsg.pas │ │ ├── JwaLmRemUtl.pas │ │ ├── JwaLmRepl.pas │ │ ├── JwaLmSName.pas │ │ ├── JwaLmServer.pas │ │ ├── JwaLmShare.pas │ │ ├── JwaLmStats.pas │ │ ├── JwaLmSvc.pas │ │ ├── JwaLmUse.pas │ │ ├── JwaLmUseFlg.pas │ │ ├── JwaLmWkSta.pas │ │ ├── JwaLoadPerf.pas │ │ ├── JwaLpmApi.pas │ │ ├── JwaMSTcpIP.pas │ │ ├── JwaMSWSock.pas │ │ ├── JwaMciAvi.pas │ │ ├── JwaMprError.pas │ │ ├── JwaMsTask.pas │ │ ├── JwaMsi.pas │ │ ├── JwaMsiDefs.pas │ │ ├── JwaMsiQuery.pas │ │ ├── JwaNCrypt.pas │ │ ├── JwaNative.pas │ │ ├── JwaNb30.pas │ │ ├── JwaNetSh.pas │ │ ├── JwaNspApi.pas │ │ ├── JwaNtDdPar.pas │ │ ├── JwaNtDsApi.pas │ │ ├── JwaNtDsBMsg.pas │ │ ├── JwaNtDsbCli.pas │ │ ├── JwaNtLDAP.pas │ │ ├── JwaNtQuery.pas │ │ ├── JwaNtSecApi.pas │ │ ├── JwaNtStatus.pas │ │ ├── JwaObjSel.pas │ │ ├── JwaPatchApi.pas │ │ ├── JwaPatchWiz.pas │ │ ├── JwaPbt.pas │ │ ├── JwaPdh.pas │ │ ├── JwaPdhMsg.pas │ │ ├── JwaPowrProf.pas │ │ ├── JwaPrSht.pas │ │ ├── JwaProfInfo.pas │ │ ├── JwaProtocol.pas │ │ ├── JwaPsApi.pas │ │ ├── JwaQos.pas │ │ ├── JwaQosName.pas │ │ ├── JwaQosPol.pas │ │ ├── JwaQosSp.pas │ │ ├── JwaReason.pas │ │ ├── JwaRegStr.pas │ │ ├── JwaRpc.pas │ │ ├── JwaRpcASync.pas │ │ ├── JwaRpcDce.pas │ │ ├── JwaRpcNsi.pas │ │ ├── JwaRpcNtErr.pas │ │ ├── JwaRpcSsl.pas │ │ ├── JwaRpcWinsta.pas │ │ ├── JwaSHFolder.pas │ │ ├── JwaSceSvc.pas │ │ ├── JwaSchedule.pas │ │ ├── JwaSchemaDef.pas │ │ ├── JwaSddl.pas │ │ ├── JwaSecExt.pas │ │ ├── JwaSecurity.pas │ │ ├── JwaSens.pas │ │ ├── JwaSensAPI.pas │ │ ├── JwaSensEvts.pas │ │ ├── JwaSfc.pas │ │ ├── JwaShAppMgr.pas │ │ ├── JwaShLWAPI.pas │ │ ├── JwaShellAPI.pas │ │ ├── JwaShlDisp.pas │ │ ├── JwaShlGuid.pas │ │ ├── JwaShlObj.pas │ │ ├── JwaSisBkUp.pas │ │ ├── JwaSnmp.pas │ │ ├── JwaSpOrder.pas │ │ ├── JwaSrRestorePtApi.pas │ │ ├── JwaSspi.pas │ │ ├── JwaStrSafe.obj │ │ ├── JwaStrSafe.pas │ │ ├── JwaSubAuth.pas │ │ ├── JwaSvcGuid.pas │ │ ├── JwaTlHelp32.pas │ │ ├── JwaTmSchema.pas │ │ ├── JwaTraffic.pas │ │ ├── JwaUrlHist.pas │ │ ├── JwaUrlMon.pas │ │ ├── JwaUserEnv.pas │ │ ├── JwaUxTheme.pas │ │ ├── JwaVista.pas │ │ ├── JwaWPApi.pas │ │ ├── JwaWPApiMsg.pas │ │ ├── JwaWPCrsMsg.pas │ │ ├── JwaWPFtpMsg.pas │ │ ├── JwaWPPstMsg.pas │ │ ├── JwaWPSpiHlp.pas │ │ ├── JwaWPTypes.pas │ │ ├── JwaWPWizMsg.pas │ │ ├── JwaWS2atm.pas │ │ ├── JwaWS2dnet.pas │ │ ├── JwaWS2spi.pas │ │ ├── JwaWS2tcpip.pas │ │ ├── JwaWSNwLink.pas │ │ ├── JwaWShisotp.pas │ │ ├── JwaWSipx.pas │ │ ├── JwaWSnetbs.pas │ │ ├── JwaWSvns.pas │ │ ├── JwaWabApi.pas │ │ ├── JwaWabCode.pas │ │ ├── JwaWabDefs.pas │ │ ├── JwaWabIab.pas │ │ ├── JwaWabMem.pas │ │ ├── JwaWabNot.pas │ │ ├── JwaWabTags.pas │ │ ├── JwaWabUtil.pas │ │ ├── JwaWbemCli.pas │ │ ├── JwaWinAble.pas │ │ ├── JwaWinBase.pas │ │ ├── JwaWinBer.pas │ │ ├── JwaWinCon.pas │ │ ├── JwaWinCpl.pas │ │ ├── JwaWinCred.pas │ │ ├── JwaWinCrypt.pas │ │ ├── JwaWinDLLNames.pas │ │ ├── JwaWinDNS.pas │ │ ├── JwaWinEFS.pas │ │ ├── JwaWinError.pas │ │ ├── JwaWinFax.pas │ │ ├── JwaWinGDI.pas │ │ ├── JwaWinInet.pas │ │ ├── JwaWinIoctl.pas │ │ ├── JwaWinLDAP.pas │ │ ├── JwaWinNLS.pas │ │ ├── JwaWinNT.pas │ │ ├── JwaWinNetWk.pas │ │ ├── JwaWinPerf.pas │ │ ├── JwaWinReg.pas │ │ ├── JwaWinResrc.pas │ │ ├── JwaWinSafer.pas │ │ ├── JwaWinSock.pas │ │ ├── JwaWinSta.pas │ │ ├── JwaWinSvc.pas │ │ ├── JwaWinType.pas │ │ ├── JwaWinUser.pas │ │ ├── JwaWinVer.pas │ │ ├── JwaWinWlx.pas │ │ ├── JwaWindows.pas │ │ ├── JwaWinsock2.pas │ │ ├── JwaWinternl.pas │ │ ├── JwaWmiStr.pas │ │ ├── JwaWowNT16.pas │ │ ├── JwaWowNT32.pas │ │ ├── JwaWs2Bth.pas │ │ ├── JwaWsrm.pas │ │ ├── JwaWtsApi32.pas │ │ ├── JwaZMOUSE.pas │ │ ├── _JwaTemplate.pas │ │ ├── readme.html │ │ └── readmefirst.txt ├── StrUtilsD9.pas └── XmlTestRunner.pas ├── CodeCoverage ├── BreakPoint.pas ├── BreakpointList.pas ├── ClassInfoUnit.pas ├── CodeCoverage.dpr ├── CodeCoverage.dproj ├── CodeCoverage.inc ├── CommandLineProvider.pas ├── CoverageConfiguration.pas ├── CoverageDataUnit.pas ├── CoverageStats.pas ├── DebugModule.pas ├── DebugProcess.pas ├── DebugThread.pas ├── Debugger.pas ├── EmmaCoverageFileUnit.pas ├── EmmaDataFile.pas ├── FileHelper.pas ├── HTMLCoverageReport.pas ├── HtmlHelper.pas ├── I_BreakPoint.pas ├── I_BreakpointList.pas ├── I_CoverageConfiguration.pas ├── I_CoverageStats.pas ├── I_DebugModule.pas ├── I_DebugProcess.pas ├── I_DebugThread.pas ├── I_Debugger.pas ├── I_LogManager.pas ├── I_Logger.pas ├── I_ParameterProvider.pas ├── I_Report.pas ├── JclDebug.pas ├── JclDebug.patch ├── LogManager.pas ├── LoggerAPI.pas ├── LoggerTextFile.pas ├── MergableUnit.pas ├── MetaDataUnit.pas ├── ModuleNameSpaceUnit.pas ├── Test │ ├── ClassInfoUnitTest.pas │ ├── CodeCoverageTests.dpr │ ├── CodeCoverageTests.dproj │ ├── CodeCoverageTests.res │ ├── CoverageConfigurationTest.pas │ ├── EmmaDataInputTests.pas │ ├── EmmaDataOutputTests.pas │ ├── MockCommandLineProvider.pas │ └── StrUtilsD9Tests.pas ├── XMLCoverageReport.pas └── uConsoleOutput.pas ├── DelphiCodeCoverage.groupproj ├── README.markdown ├── SetupEnvironment.bat ├── build-unit-test.bat ├── build.bat ├── build ├── dcu │ └── .gitignore └── reports │ └── coverage │ └── .gitignore ├── coverage_dirs.lst ├── coverage_units.lst ├── run-code-coverage.bat └── run-unit-test.bat /.gitignore: -------------------------------------------------------------------------------- 1 | *.~* 2 | .svn 3 | *.local 4 | *.dcu 5 | build/*.* 6 | CodeCoverage/CodeCoverage.drc 7 | *.drc 8 | *.identcache 9 | build/*/*.* 10 | build/*/*/*.* 11 | dunit.ini -------------------------------------------------------------------------------- /3rdParty/IOUtilsD9.pas: -------------------------------------------------------------------------------- 1 | unit IOUtilsD9; 2 | 3 | interface 4 | 5 | type 6 | TPath = record 7 | private 8 | class function IsAbsolute(const Path: string): Boolean; static; 9 | public 10 | class function GetFullPath(const Path: string): string; static; 11 | class function Combine(const Path1, Path2: string): string; inline; static; 12 | class function GetDirectoryName(FileName: string): string; static; 13 | class function IsRelativePath(const Path: string): Boolean; static; 14 | end; 15 | 16 | TFile = record 17 | public 18 | class procedure WriteAllText(const Path, Contents: string); static; 19 | class procedure Delete(const Path: string); static; 20 | end; 21 | 22 | implementation 23 | 24 | uses 25 | Classes, 26 | Windows, 27 | SysUtils, 28 | StrUtils; 29 | 30 | class function TPath.Combine(const Path1, Path2: string): string; 31 | var 32 | sTmp: string; 33 | begin 34 | 35 | if IsAbsolute(Path2) then 36 | Result := Path2 37 | else 38 | begin 39 | sTmp := Path2; 40 | while IsPathDelimiter(sTmp, 1) do 41 | Delete(sTmp, 1, 1); 42 | 43 | Result := IncludeTrailingPathDelimiter(Path1) + sTmp; 44 | end; 45 | end; 46 | 47 | class function TPath.GetDirectoryName(FileName: string): string; 48 | begin 49 | Result := ExtractFilePath(FileName); 50 | end; 51 | 52 | class function TPath.GetFullPath(const Path: string): string; 53 | var 54 | lpFileName : pchar; 55 | lpBuffer : array[0..MAX_PATH] of char; 56 | begin 57 | Result := Path; 58 | 59 | if not IsAbsolute(Path) then 60 | begin 61 | lpFileName := PChar(Path); 62 | if GetFullPathName(lpFileName, MAX_PATH, lpBuffer, lpFileName) > 0 then 63 | Result := lpBuffer; 64 | end; 65 | end; 66 | 67 | class function TPath.IsAbsolute(const Path: string): Boolean; 68 | var 69 | tmp: string; 70 | FirstChar: Byte; 71 | begin 72 | Result := StartsStr('\\', Path); 73 | if not Result 74 | and (Length(Path) >= 3) then 75 | begin 76 | tmp := Copy(Path, 2, 2); 77 | FirstChar := Ord(UpperCase(Path)[1]); 78 | Result := (tmp = ':\') 79 | and (FirstChar >= Ord('A')) 80 | and (FirstChar <= Ord('Z')); 81 | end; 82 | end; 83 | 84 | class function TPath.IsRelativePath(const Path: string): Boolean; 85 | begin 86 | Result := not IsAbsolute(Path); 87 | end; 88 | 89 | { TFile } 90 | 91 | class procedure TFile.Delete(const Path: string); 92 | begin 93 | DeleteFile(Path); 94 | end; 95 | 96 | class procedure TFile.WriteAllText(const Path, Contents: string); 97 | var 98 | fs: TFileStream; 99 | ss: TStringStream; 100 | begin 101 | if not FileExists(Path) 102 | or DeleteFile(Path) then 103 | begin 104 | ss := TStringStream.Create(Path); 105 | try 106 | fs := TFileStream.Create(Path, fmCreate or fmShareDenyNone); 107 | try 108 | fs.CopyFrom(ss, 0); 109 | finally 110 | fs.Free; 111 | end; 112 | finally 113 | ss.Free; 114 | end; 115 | end; 116 | end; 117 | 118 | end. 119 | -------------------------------------------------------------------------------- /3rdParty/JCL/jcl-2.3.1.4197/LICENSE-BZIP2.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------- 3 | 4 | This program, "bzip2", the associated library "libbzip2", and all 5 | documentation, are copyright (C) 1996-2007 Julian R Seward. All 6 | rights reserved. 7 | 8 | Redistribution and use in source and binary forms, with or without 9 | modification, are permitted provided that the following conditions 10 | are met: 11 | 12 | 1. Redistributions of source code must retain the above copyright 13 | notice, this list of conditions and the following disclaimer. 14 | 15 | 2. The origin of this software must not be misrepresented; you must 16 | not claim that you wrote the original software. If you use this 17 | software in a product, an acknowledgment in the product 18 | documentation would be appreciated but is not required. 19 | 20 | 3. Altered source versions must be plainly marked as such, and must 21 | not be misrepresented as being the original software. 22 | 23 | 4. The name of the author may not be used to endorse or promote 24 | products derived from this software without specific prior written 25 | permission. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS 28 | OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 29 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 30 | ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 31 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 32 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 33 | GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 34 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 35 | WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 36 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 37 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | 39 | Julian Seward, jseward@bzip.org 40 | bzip2/libbzip2 version 1.0.5 of 10 December 2007 41 | 42 | -------------------------------------------------------------------------- 43 | -------------------------------------------------------------------------------- /3rdParty/JCL/jcl-2.3.1.4197/LICENSE-DRYICONS.txt: -------------------------------------------------------------------------------- 1 | DryIcons Free License Agreement 2 | 3 | Read Full Legal Code 4 | 5 | DryIcons is a service provided by our team of enthusiastic graphic and web designers and programmers. The purpose of this service is to provide only high-quality, free icons and free icon sets, as well as free vector graphics to the general public, with a specific target to designers, software and web developers. 6 | All DryIcons' Works (meaning "icons, icon sets and graphics") are free of charge, but please read further under what Terms and Conditions. 7 | All DryIcons Works are licensed under a DryIcons Free License. This means that you can use our icons, icon sets and graphics in any publicly accessible web site, web application or any form of presentation publicly accessible through the World Wide Web only according to the DryIcons Free License Terms and Conditions: 8 | 9 | * You must put a back link with credits to http://dryicons.com on every page where DryIcons' Works are used (example: Icons by DryIcons); 10 | * You must include the correct back link to DryIcons website, which is: http://dryicons.com; 11 | * You must place the link on an easy-to-see, recognizable place, so there is no confusion about the Original Author of the Works (DryIcons); 12 | * When copying, or paraphrasing description text (or title) on one of the Works, you must make sure there are no spelling mistakes; 13 | * Do not try to take credit or imply in any way that you and not DryIcons is the Original Author of the Licensed Material (icons, icon sets and graphics). 14 | 15 | What you CAN DO: 16 | 17 | 1. All DryIcons' Works are being provided to You under the Terms of this agreement, which allows for use of our Works but does not transfer ownership. All DryIcons' Works remain property of DryIcons; 18 | 2. You may use DryIcons' Works in any personal or commercial project unlimited number of times according to the DryIcons Free License Terms and Conditions; 19 | 3. You may use DryIcons' Works in any Open Source project and application according to the DryIcons Free License Terms and Conditions; 20 | 4. Your rights to DryIcons' Works are worldwide and for the duration of DryIcons' rights in the Works; 21 | 5. Any uses other than the ones mentioned above must be approved by DryIcons in writing; 22 | 6. Unauthorized use will result in immediate termination of this License, and with it, your rights to use DryIcons' Works. 23 | 24 | What you CAN NOT DO: 25 | 26 | 1. You may not alter, crop, modify, manipulate and create derivative works of DryIcons' Works. All Works must be used "AS IS"; 27 | 2. You may not redistribute, license, sell, lease, assign, convey or transfer DryIcons' Works, or offer free downloads in their present form or in a modified form to any third party; 28 | 3. You may not distribute the DryIcons' Works (icons, icon sets and graphics) online in a downloadable format or enable them to be distributed via mobile devices. You may link to http://dryicons.com instead; 29 | 4. You may not incorporate DryIcons' Works into a logo, trademark or service mark; 30 | 5. You may not use DryIcons' Works directly from dryicons.com or any other location hosted on the dryicons.com domain or any other domain owned by DryIcons. 31 | 32 | Copyright 33 | 34 | 1. DryIcons.com reserves the copyrights and ownership rights of all DryIcons' Works downloaded from this website. We reserve the right to change parts of this License without notice and at our sole discretion. 35 | -------------------------------------------------------------------------------- /3rdParty/JCL/jcl-2.3.1.4197/LICENSE-PCRE.txt: -------------------------------------------------------------------------------- 1 | PCRE LICENCE 2 | ------------ 3 | 4 | PCRE is a library of functions to support regular expressions whose syntax 5 | and semantics are as close as possible to those of the Perl 5 language. 6 | 7 | Release 7 of PCRE is distributed under the terms of the "BSD" licence, as 8 | specified below. The documentation for PCRE, supplied in the "doc" 9 | directory, is distributed under the same terms as the software itself. 10 | 11 | The basic library functions are written in C and are freestanding. Also 12 | included in the distribution is a set of C++ wrapper functions. 13 | 14 | 15 | THE BASIC LIBRARY FUNCTIONS 16 | --------------------------- 17 | 18 | Written by: Philip Hazel 19 | Email local part: ph10 20 | Email domain: cam.ac.uk 21 | 22 | University of Cambridge Computing Service, 23 | Cambridge, England. 24 | 25 | Copyright (c) 1997-2008 University of Cambridge 26 | All rights reserved. 27 | 28 | 29 | THE C++ WRAPPER FUNCTIONS 30 | ------------------------- 31 | 32 | Contributed by: Google Inc. 33 | 34 | Copyright (c) 2007-2008, Google Inc. 35 | All rights reserved. 36 | 37 | 38 | THE "BSD" LICENCE 39 | ----------------- 40 | 41 | Redistribution and use in source and binary forms, with or without 42 | modification, are permitted provided that the following conditions are met: 43 | 44 | * Redistributions of source code must retain the above copyright notice, 45 | this list of conditions and the following disclaimer. 46 | 47 | * Redistributions in binary form must reproduce the above copyright 48 | notice, this list of conditions and the following disclaimer in the 49 | documentation and/or other materials provided with the distribution. 50 | 51 | * Neither the name of the University of Cambridge nor the name of Google 52 | Inc. nor the names of their contributors may be used to endorse or 53 | promote products derived from this software without specific prior 54 | written permission. 55 | 56 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 57 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 58 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 59 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 60 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 61 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 62 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 63 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 64 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 65 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 66 | POSSIBILITY OF SUCH DAMAGE. 67 | 68 | End 69 | -------------------------------------------------------------------------------- /3rdParty/JCL/jcl-2.3.1.4197/LICENSE-SEVENZIP.txt: -------------------------------------------------------------------------------- 1 | 7-Zip 2 | ~~~~~ 3 | License for use and distribution 4 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 5 | 6 | 7-Zip Copyright (C) 1999-2008 Igor Pavlov. 7 | 8 | Licenses for files are: 9 | 10 | 1) 7z.dll: GNU LGPL + unRAR restriction 11 | 2) All other files: GNU LGPL 12 | 13 | The GNU LGPL + unRAR restriction means that you must follow both 14 | GNU LGPL rules and unRAR restriction rules. 15 | 16 | 17 | Note: 18 | You can use 7-Zip on any computer, including a computer in a commercial 19 | organization. You don't need to register or pay for 7-Zip. 20 | 21 | 22 | GNU LGPL information 23 | -------------------- 24 | 25 | This library is free software; you can redistribute it and/or 26 | modify it under the terms of the GNU Lesser General Public 27 | License as published by the Free Software Foundation; either 28 | version 2.1 of the License, or (at your option) any later version. 29 | 30 | This library is distributed in the hope that it will be useful, 31 | but WITHOUT ANY WARRANTY; without even the implied warranty of 32 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 33 | Lesser General Public License for more details. 34 | 35 | You should have received a copy of the GNU Lesser General Public 36 | License along with this library; if not, write to the Free Software 37 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 38 | 39 | 40 | unRAR restriction 41 | ----------------- 42 | 43 | The decompression engine for RAR archives was developed using source 44 | code of unRAR program. 45 | All copyrights to original unRAR code are owned by Alexander Roshal. 46 | 47 | The license for original unRAR code has the following restriction: 48 | 49 | The unRAR sources cannot be used to re-create the RAR compression algorithm, 50 | which is proprietary. Distribution of modified unRAR sources in separate form 51 | or as a part of other software is permitted, provided that it is clearly 52 | stated in the documentation and source comments that the code may 53 | not be used to develop a RAR (WinRAR) compatible archiver. 54 | 55 | 56 | -- 57 | Igor Pavlov 58 | -------------------------------------------------------------------------------- /3rdParty/JCL/jcl-2.3.1.4197/LICENSE-ZLIB.txt: -------------------------------------------------------------------------------- 1 | /* zlib.h -- interface of the 'zlib' general purpose compression library 2 | version 1.2.3, July 18th, 2005 3 | 4 | Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler 5 | 6 | This software is provided 'as-is', without any express or implied 7 | warranty. In no event will the authors be held liable for any damages 8 | arising from the use of this software. 9 | 10 | Permission is granted to anyone to use this software for any purpose, 11 | including commercial applications, and to alter it and redistribute it 12 | freely, subject to the following restrictions: 13 | 14 | 1. The origin of this software must not be misrepresented; you must not 15 | claim that you wrote the original software. If you use this software 16 | in a product, an acknowledgment in the product documentation would be 17 | appreciated but is not required. 18 | 2. Altered source versions must be plainly marked as such, and must not be 19 | misrepresented as being the original software. 20 | 3. This notice may not be removed or altered from any source distribution. 21 | 22 | Jean-loup Gailly jloup@gzip.org 23 | Mark Adler madler@alumni.caltech.edu 24 | 25 | */ 26 | -------------------------------------------------------------------------------- /3rdParty/JCL/jcl-2.3.1.4197/source/common/JclSimpleXml.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magicmonty/delphi-code-coverage/1ccafdced4b18edec54d9bc55d67bcc9045e9043/3rdParty/JCL/jcl-2.3.1.4197/source/common/JclSimpleXml.pas -------------------------------------------------------------------------------- /3rdParty/JCL/jcl-2.3.1.4197/source/common/JclSysInfo.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magicmonty/delphi-code-coverage/1ccafdced4b18edec54d9bc55d67bcc9045e9043/3rdParty/JCL/jcl-2.3.1.4197/source/common/JclSysInfo.pas -------------------------------------------------------------------------------- /3rdParty/JCL/jcl-2.3.1.4197/source/common/JclSysUtils.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magicmonty/delphi-code-coverage/1ccafdced4b18edec54d9bc55d67bcc9045e9043/3rdParty/JCL/jcl-2.3.1.4197/source/common/JclSysUtils.pas -------------------------------------------------------------------------------- /3rdParty/JCL/jcl-2.3.1.4197/source/common/JclUnicode.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magicmonty/delphi-code-coverage/1ccafdced4b18edec54d9bc55d67bcc9045e9043/3rdParty/JCL/jcl-2.3.1.4197/source/common/JclUnicode.res -------------------------------------------------------------------------------- /3rdParty/JCL/jcl-2.3.1.4197/source/common/JclUnicodeBZip2.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magicmonty/delphi-code-coverage/1ccafdced4b18edec54d9bc55d67bcc9045e9043/3rdParty/JCL/jcl-2.3.1.4197/source/common/JclUnicodeBZip2.res -------------------------------------------------------------------------------- /3rdParty/JCL/jcl-2.3.1.4197/source/common/JclUnicodeZLib.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magicmonty/delphi-code-coverage/1ccafdced4b18edec54d9bc55d67bcc9045e9043/3rdParty/JCL/jcl-2.3.1.4197/source/common/JclUnicodeZLib.res -------------------------------------------------------------------------------- /3rdParty/JCL/jcl-2.3.1.4197/source/include/crossplatform.inc: -------------------------------------------------------------------------------- 1 | {**************************************************************************************************} 2 | { } 3 | { The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License");} 4 | { you may not use this file except in compliance with the License. You may obtain a copy of the } 5 | { License at http://www.mozilla.org/MPL/ } 6 | { } 7 | { Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF } 8 | { ANY KIND, either express or implied. See the License for the specific language governing rights } 9 | { and limitations under the License. } 10 | { } 11 | { The Original Code is: crossplatform.inc, released on 2004-05-16. } 12 | { } 13 | { You may retrieve the latest version of this file at the JCL home page, } 14 | { located at http://jcl.sourceforge.net/ } 15 | { } 16 | {**************************************************************************************************} 17 | { } 18 | { Last modified: $Date:: 2008-08-16 13:55:02 +0200 (sam., 16 août 2008) $ } 19 | { Revision: $Rev:: 2423 $ } 20 | { Author: $Author:: outchy $ } 21 | { } 22 | {**************************************************************************************************} 23 | 24 | // This inc file depends on jedi.inc which has to 25 | // be included first (usually indirectly through 26 | // the inclusion of jcl.inc). 27 | 28 | // Suppress platform warnings which are irrelevant 29 | // because the including unit inherently has to handle 30 | // platform specifics already. 31 | 32 | {$IFDEF SUPPORTS_PLATFORM_WARNINGS} 33 | {$WARN UNIT_PLATFORM OFF} 34 | {$WARN SYMBOL_PLATFORM OFF} 35 | {$ENDIF SUPPORTS_PLATFORM_WARNINGS} -------------------------------------------------------------------------------- /3rdParty/JCL/jcl-2.3.1.4197/source/include/jedi/kylix.inc: -------------------------------------------------------------------------------- 1 | // 2 | // This is FPC-incompatible code and was excluded from jedi.inc for this reason 3 | // 4 | // Kylix 3/C++ for some reason evaluates CompilerVersion comparisons to False, 5 | // if the constant to compare with is a floating point value - weird. 6 | // The "+" sign prevents Kylix/Delphi from issueing a warning about comparing 7 | // signed and unsigned values. 8 | // 9 | {$IF not Declared(CompilerVersion)} 10 | {$DEFINE KYLIX1} 11 | {$DEFINE COMPILER6} 12 | {$DEFINE DELPHICOMPILER6} 13 | {$DEFINE RTL140_UP} 14 | {$ELSEIF Declared(CompilerVersion) and (CompilerVersion > +14)} 15 | {$DEFINE KYLIX2} 16 | {$DEFINE COMPILER6} 17 | {$DEFINE DELPHICOMPILER6} 18 | {$DEFINE RTL142_UP} 19 | {$ELSEIF Declared(CompilerVersion) and (CompilerVersion < +15)} 20 | {$DEFINE KYLIX3} 21 | {$DEFINE COMPILER6} 22 | {$IFNDEF BCB} 23 | {$DEFINE DELPHICOMPILER6} 24 | {$ENDIF} 25 | {$DEFINE RTL145_UP} 26 | {$ELSE} 27 | Add new Kylix version 28 | {$IFEND} 29 | 30 | 31 | -------------------------------------------------------------------------------- /3rdParty/JCL/jcl-2.3.1.4197/source/include/unixonly.inc: -------------------------------------------------------------------------------- 1 | {$IFNDEF UNIXONLY_INC} 2 | {$DEFINE UNIXONLY_INC} 3 | 4 | {**************************************************************************************************} 5 | { } 6 | { The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License");} 7 | { you may not use this file except in compliance with the License. You may obtain a copy of the } 8 | { License at http://www.mozilla.org/MPL/ } 9 | { } 10 | { Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF } 11 | { ANY KIND, either express or implied. See the License for the specific language governing rights } 12 | { and limitations under the License. } 13 | { } 14 | { The Original Code is: unixonly.inc, released on 2004-06-21. } 15 | { } 16 | { You may retrieve the latest version of this file at the JCL home page, } 17 | { located at http://jcl.sourceforge.net/ } 18 | { } 19 | {**************************************************************************************************} 20 | { } 21 | { Last modified: $Date:: 2008-08-16 13:55:02 +0200 (sam., 16 août 2008) $ } 22 | { Revision: $Rev:: 2423 $ } 23 | { Author: $Author:: outchy $ } 24 | { } 25 | {**************************************************************************************************} 26 | 27 | {$IFNDEF JEDI_INC} 28 | ALERT_jedi_inc_missing 29 | // This inc file depends on jedi.inc which has to 30 | // be included first (usually indirectly through 31 | // the inclusion of jcl.inc). 32 | {$ENDIF ~JEDI_INC} 33 | 34 | // Suppress platform warnings which are irrelevant 35 | // because the including unit can only be compiled 36 | // for Unix platforms anyway. 37 | 38 | {$WARN UNIT_PLATFORM OFF} 39 | {$WARN SYMBOL_PLATFORM OFF} 40 | 41 | // Cause a compilation error for non-Unix platforms. 42 | 43 | {$IFNDEF UNIX} 44 | {$IFDEF SUPPORTS_COMPILETIME_MESSAGES} 45 | {$MESSAGE FATAL 'This unit is only supported on Unix!'} 46 | {$ELSE} 47 | 'This unit is only supported on Unix!' 48 | {$ENDIF SUPPORTS_COMPILETIME_MESSAGES} 49 | {$ENDIF ~UNIX} 50 | 51 | {$ENDIF ~UNIXONLY_INC} 52 | -------------------------------------------------------------------------------- /3rdParty/JCL/jcl-2.3.1.4197/source/include/windowsonly.inc: -------------------------------------------------------------------------------- 1 | {$IFNDEF WINDOWSONLY_INC} 2 | {$DEFINE WINDOWSONLY_INC} 3 | 4 | {**************************************************************************************************} 5 | { } 6 | { The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License");} 7 | { you may not use this file except in compliance with the License. You may obtain a copy of the } 8 | { License at http://www.mozilla.org/MPL/ } 9 | { } 10 | { Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF } 11 | { ANY KIND, either express or implied. See the License for the specific language governing rights } 12 | { and limitations under the License. } 13 | { } 14 | { The Original Code is: windowsonly.inc, released on 2002-07-04. } 15 | { } 16 | { You may retrieve the latest version of this file at the JCL home page, } 17 | { located at http://jcl.sourceforge.net/ } 18 | { } 19 | {**************************************************************************************************} 20 | { } 21 | { Last modified: $Date:: 2008-08-16 13:55:02 +0200 (sam., 16 août 2008) $ } 22 | { Revision: $Rev:: 2423 $ } 23 | { Author: $Author:: outchy $ } 24 | { } 25 | {**************************************************************************************************} 26 | 27 | {$IFNDEF JEDI_INC} 28 | ALERT_jedi_inc_missing 29 | // This inc file depends on jedi.inc which has to 30 | // be included first (usually indirectly through 31 | // the inclusion of jcl.inc). 32 | {$ENDIF ~JEDI_INC} 33 | 34 | // Suppress platform warnings which are irrelevant 35 | // because the including unit can only be compiled 36 | // for the Windows platform anyway. 37 | 38 | {$IFDEF SUPPORTS_PLATFORM_WARNINGS} 39 | {$WARN UNIT_PLATFORM OFF} 40 | {$WARN SYMBOL_PLATFORM OFF} 41 | {$ENDIF SUPPORTS_PLATFORM_WARNINGS} 42 | 43 | // Cause a compilation error for any platform except Windows. 44 | 45 | {$IFNDEF MSWINDOWS} 46 | {$IFDEF SUPPORTS_COMPILETIME_MESSAGES} 47 | {$MESSAGE FATAL 'This unit is only supported on Windows!'} 48 | {$ELSE} 49 | 'This unit is only supported on Windows!' 50 | {$ENDIF SUPPORTS_COMPILETIME_MESSAGES} 51 | {$ENDIF ~MSWINDOWS} 52 | 53 | {$ENDIF ~WINDOWSONLY_INC} 54 | 55 | -------------------------------------------------------------------------------- /3rdParty/JVCL/JVCL345SourceOnly/common/clxonly.inc: -------------------------------------------------------------------------------- 1 | {----------------------------------------------------------------------------- 2 | The contents of this file are subject to the Mozilla Public License 3 | Version 1.1 (the "License"); you may not use this file except in compliance 4 | with the License. You may obtain a copy of the License at 5 | http://www.mozilla.org/MPL/MPL-1.1.html 6 | 7 | Software distributed under the License is distributed on an "AS IS" basis, 8 | WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for 9 | the specific language governing rights and limitations under the License. 10 | 11 | The Original Code is: clxonly.inc, released on 2004-05-17. 12 | 13 | You may retrieve the latest version of this file at the Project JEDI's JVCL home page, 14 | located at http://jvcl.delphi-jedi.org 15 | 16 | Known Issues: 17 | -----------------------------------------------------------------------------} 18 | // $Id: clxonly.inc 12461 2009-08-14 17:21:33Z obones $ 19 | 20 | // This inc file depends on jedi.inc which has to 21 | // be included first (usually indirectly through 22 | // the inclusion of jvcl.inc). 23 | 24 | // Do not suppress platform warnings to avoid problems 25 | // with an including unit which is not cross platform. 26 | // To suppress these warnings one of the inc files 27 | // windowsonly.inc, linuxonly.inc or crossplatform.inc 28 | // has to be included also. 29 | 30 | // Cause a compilation error for any component library except Visual CLX. 31 | 32 | {$IFNDEF VisualCLX} 33 | {$IFDEF COMPILER6_UP} 34 | {$MESSAGE FATAL 'This unit is only supported for Visual CLX!'} 35 | {$ELSE} 36 | This unit is only supported for Visual CLX! 37 | {$ENDIF COMPILER6_UP} 38 | {$ENDIF VisualCLX} -------------------------------------------------------------------------------- /3rdParty/JVCL/JVCL345SourceOnly/common/common.txt: -------------------------------------------------------------------------------- 1 | This folder contains files that might be shared by other parts of JEDI, like INC files and API translation. -------------------------------------------------------------------------------- /3rdParty/JVCL/JVCL345SourceOnly/common/crossplatform.inc: -------------------------------------------------------------------------------- 1 | {----------------------------------------------------------------------------- 2 | The contents of this file are subject to the Mozilla Public License 3 | Version 1.1 (the "License"); you may not use this file except in compliance 4 | with the License. You may obtain a copy of the License at 5 | http://www.mozilla.org/MPL/MPL-1.1.html 6 | 7 | Software distributed under the License is distributed on an "AS IS" basis, 8 | WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for 9 | the specific language governing rights and limitations under the License. 10 | 11 | The Original Code is: crossplatform.inc, released on 2004-05-16. 12 | 13 | You may retrieve the latest version of this file at the Project JEDI's JVCL home page, 14 | located at http://jvcl.delphi-jedi.org 15 | 16 | Known Issues: 17 | -----------------------------------------------------------------------------} 18 | // $Id: crossplatform.inc 12461 2009-08-14 17:21:33Z obones $ 19 | 20 | // This inc file depends on jedi.inc which has to 21 | // be included first (usually indirectly through 22 | // the inclusion of jvcl.inc). 23 | 24 | // Suppress platform warnings which are irrelevant 25 | // because the including unit inherently has to handle 26 | // platform specifics already. 27 | 28 | {$IFDEF SUPPORTS_PLATFORM_WARNINGS} 29 | {$WARN UNIT_PLATFORM OFF} 30 | {$WARN SYMBOL_PLATFORM OFF} 31 | {$ENDIF SUPPORTS_PLATFORM_WARNINGS} -------------------------------------------------------------------------------- /3rdParty/JVCL/JVCL345SourceOnly/common/jedi/kylix.inc: -------------------------------------------------------------------------------- 1 | // 2 | // This is FPC-incompatible code and was excluded from jedi.inc for this reason 3 | // 4 | // Kylix 3/C++ for some reason evaluates CompilerVersion comparisons to False, 5 | // if the constant to compare with is a floating point value - weird. 6 | // The "+" sign prevents Kylix/Delphi from issueing a warning about comparing 7 | // signed and unsigned values. 8 | // 9 | {$IF not Declared(CompilerVersion)} 10 | {$DEFINE KYLIX1} 11 | {$DEFINE COMPILER6} 12 | {$DEFINE DELPHICOMPILER6} 13 | {$DEFINE RTL140_UP} 14 | {$ELSEIF Declared(CompilerVersion) and (CompilerVersion > +14)} 15 | {$DEFINE KYLIX2} 16 | {$DEFINE COMPILER6} 17 | {$DEFINE DELPHICOMPILER6} 18 | {$DEFINE RTL142_UP} 19 | {$ELSEIF Declared(CompilerVersion) and (CompilerVersion < +15)} 20 | {$DEFINE KYLIX3} 21 | {$DEFINE COMPILER6} 22 | {$IFNDEF BCB} 23 | {$DEFINE DELPHICOMPILER6} 24 | {$ENDIF} 25 | {$DEFINE RTL145_UP} 26 | {$ELSE} 27 | Add new Kylix version 28 | {$IFEND} 29 | 30 | 31 | -------------------------------------------------------------------------------- /3rdParty/JVCL/JVCL345SourceOnly/common/linuxonly.inc: -------------------------------------------------------------------------------- 1 | {----------------------------------------------------------------------------- 2 | The contents of this file are subject to the Mozilla Public License 3 | Version 1.1 (the "License"); you may not use this file except in compliance 4 | with the License. You may obtain a copy of the License at 5 | http://www.mozilla.org/MPL/MPL-1.1.html 6 | 7 | Software distributed under the License is distributed on an "AS IS" basis, 8 | WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for 9 | the specific language governing rights and limitations under the License. 10 | 11 | The Original Code is: LINUXONLY.INC, released on 2004-01-04 12 | 13 | Last Modified: 2004-05-07 14 | 15 | You may retrieve the latest version of this file at the Project JEDI's JVCL home page, 16 | located at http://jvcl.delphi-jedi.org 17 | 18 | Known Issues: 19 | -----------------------------------------------------------------------------} 20 | 21 | // This inc file depends on jedi.inc which has to 22 | // be included first (usually indirectly through 23 | // the inclusion of jvcl.inc). 24 | 25 | // Suppress platform warnings which are irrelevant 26 | // because the including unit can only be compiled 27 | // for the Unixs platforms anyway. 28 | 29 | {$WARN UNIT_PLATFORM OFF} 30 | {$WARN SYMBOL_PLATFORM OFF} 31 | 32 | // Cause a compilation error for non-Unix platforms. 33 | 34 | {$IFNDEF UNIX} 35 | {$IFDEF SUPPORTS_COMPILETIME_MESSAGES} 36 | {$MESSAGE FATAL 'This unit is only supported on Unix!'} 37 | {$ELSE} 38 | 'This unit is only supported on Unix!' 39 | {$ENDIF SUPPORTS_COMPILETIME_MESSAGES} 40 | {$ENDIF !UNIX} -------------------------------------------------------------------------------- /3rdParty/JVCL/JVCL345SourceOnly/common/vclonly.inc: -------------------------------------------------------------------------------- 1 | {----------------------------------------------------------------------------- 2 | The contents of this file are subject to the Mozilla Public License 3 | Version 1.1 (the "License"); you may not use this file except in compliance 4 | with the License. You may obtain a copy of the License at 5 | http://www.mozilla.org/MPL/MPL-1.1.html 6 | 7 | Software distributed under the License is distributed on an "AS IS" basis, 8 | WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for 9 | the specific language governing rights and limitations under the License. 10 | 11 | The Original Code is: vclonly.inc, released on 2004-05-16. 12 | 13 | You may retrieve the latest version of this file at the Project JEDI's JVCL home page, 14 | located at http://jvcl.delphi-jedi.org 15 | 16 | Known Issues: 17 | -----------------------------------------------------------------------------} 18 | // $Id: vclonly.inc 12461 2009-08-14 17:21:33Z obones $ 19 | 20 | // This inc file depends on jedi.inc which has to 21 | // be included first (usually indirectly through 22 | // the inclusion of jvcl.inc). 23 | 24 | // Suppress platform warnings which are irrelevant 25 | // because the including unit can only be compiled 26 | // with the VCL which implies Windows platform. 27 | 28 | {$IFDEF SUPPORTS_PLATFORM_WARNINGS} 29 | {$WARN UNIT_PLATFORM OFF} 30 | {$WARN SYMBOL_PLATFORM OFF} 31 | {$ENDIF SUPPORTS_PLATFORM_WARNINGS} 32 | 33 | // Cause a compilation error for any component library except the VCL. 34 | 35 | {$IFNDEF VCL} 36 | {$IFDEF SUPPORTS_COMPILETIME_MESSAGES} 37 | {$MESSAGE FATAL 'This unit is only supported for VCL!'} 38 | {$ELSE} 39 | 'This unit is only supported for VCL!' 40 | {$ENDIF SUPPORTS_COMPILETIME_MESSAGES} 41 | {$ENDIF !VCL} -------------------------------------------------------------------------------- /3rdParty/JVCL/JVCL345SourceOnly/common/windowsonly.inc: -------------------------------------------------------------------------------- 1 | {----------------------------------------------------------------------------- 2 | The contents of this file are subject to the Mozilla Public License 3 | Version 1.1 (the "License"); you may not use this file except in compliance 4 | with the License. You may obtain a copy of the License at 5 | http://www.mozilla.org/MPL/MPL-1.1.html 6 | 7 | Software distributed under the License is distributed on an "AS IS" basis, 8 | WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for 9 | the specific language governing rights and limitations under the License. 10 | 11 | The Original Code is: WINDOWSONLY.INC, released on 2002-07-04. 12 | 13 | You may retrieve the latest version of this file at the Project JEDI's JVCL home page, 14 | located at http://jvcl.delphi-jedi.org 15 | 16 | Known Issues: 17 | -----------------------------------------------------------------------------} 18 | // $Id: windowsonly.inc 12461 2009-08-14 17:21:33Z obones $ 19 | 20 | // This inc file depends on jedi.inc which has to 21 | // be included first (usually indirectly through 22 | // the inclusion of jvcl.inc). 23 | 24 | // Suppress platform warnings which are irrelevant 25 | // because the including unit can only be compiled 26 | // for the Windows platform anyway. 27 | 28 | {$IFDEF SUPPORTS_PLATFORM_WARNINGS} 29 | {$WARN UNIT_PLATFORM OFF} 30 | {$WARN SYMBOL_PLATFORM OFF} 31 | {$ENDIF SUPPORTS_PLATFORM_WARNINGS} 32 | 33 | // Cause a compilation error for any platform except Windows. 34 | 35 | {$IFNDEF MSWINDOWS} 36 | {$IFDEF SUPPORTS_COMPILETIME_MESSAGES} 37 | {$MESSAGE FATAL 'This unit is only supported on Windows!'} 38 | {$ELSE} 39 | 'This unit is only supported on Windows!' 40 | {$ENDIF SUPPORTS_COMPILETIME_MESSAGES} 41 | {$ENDIF !MSWINDOWS} -------------------------------------------------------------------------------- /3rdParty/JVCL/JVCL345SourceOnly/common/windowsversion.inc: -------------------------------------------------------------------------------- 1 | {$IFNDEF WINDOWSVERSION_INC} 2 | {$DEFINE WINDOWSVERSION_INC} 3 | 4 | {----------------------------------------------------------------------------- 5 | The contents of this file are subject to the Mozilla Public License 6 | Version 1.1 (the "License"); you may not use this file except in compliance 7 | with the License. You may obtain a copy of the License at 8 | http://www.mozilla.org/MPL/MPL-1.1.html 9 | 10 | Software distributed under the License is distributed on an "AS IS" basis, 11 | WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for 12 | the specific language governing rights and limitations under the License. 13 | 14 | The Original Code is: windowsversion.inc, released on 2004-10-28. 15 | 16 | You may retrieve the latest version of this file at the JCL home page, 17 | located at http://jcl.delphi-jedi.org 18 | 19 | Known Issues: 20 | -----------------------------------------------------------------------------} 21 | 22 | // Last modified: $Date: 2009-08-14 19:21:33 +0200 (ven., 14 août 2009) $ 23 | // For history see end of file 24 | 25 | // This file is intended for C header conversions. 26 | // It defines several mutually exclusive IFDEFs which determine 27 | // the Windows version the API conversion is usable with. 28 | 29 | // Global switch to make UNICODE versions of API functions default 30 | {.DEFINE UNICODE} 31 | 32 | // individual versions including service packs 33 | // ONLY A SINGLE ONE IS ALLOWED TO BE ACTIVATED BY REMOVING THE DOT! 34 | {.$DEFINE WIN95} 35 | {$DEFINE WIN98Gold} 36 | {.$DEFINE WIN98SE} 37 | {.$DEFINE WIN98ME} 38 | {.$DEFINE WINNT35} 39 | {.$DEFINE WINNT351} 40 | {.$DEFINE WINNT4} 41 | {.$DEFINE WINNT4_SP1} 42 | {.$DEFINE WINNT4_SP2} 43 | {.$DEFINE WINNT4_SP3} 44 | {.$DEFINE WINNT4_SP4} 45 | {.$DEFINE WINNT4_SP5} 46 | {.$DEFINE WINNT4_SP6} 47 | {.$DEFINE WIN2000} 48 | {.$DEFINE WIN2000_SP1} 49 | {.$DEFINE WIN2000_SP2} 50 | {.$DEFINE WIN2000_SP3} 51 | {.$DEFINE WIN2000_SP4} 52 | {.$DEFINE WINXP} 53 | {.$DEFINE WINXP_SP1} 54 | {.$DEFINE WINXP_SP2} 55 | {.$DEFINE WIN2003} 56 | {.$DEFINE WINVista} 57 | 58 | // secondary IFDEFs for "_UP" which means also any later OS version 59 | 60 | {$IFDEF WINVista} {$DEFINE WINVista_UP} {$ENDIF} 61 | {$IFDEF WIN2003} {$DEFINE WIN2003_UP} {$ENDIF} 62 | {$IFDEF WINXP_SP2} {$DEFINE WINXP_SP2_UP} {$ENDIF} 63 | {$IFDEF WINXP_SP1} {$DEFINE WINXP_SP1_UP} {$ENDIF} 64 | {$IFDEF WINXP} {$DEFINE WINXP_UP} {$ENDIF} 65 | {$IFDEF WIN2000_SP4} {$DEFINE WIN2000_SP4_UP} {$ENDIF} 66 | {$IFDEF WIN2000_SP3} {$DEFINE WIN2000_SP3_UP} {$ENDIF} 67 | {$IFDEF WIN2000_SP2} {$DEFINE WIN2000_SP2_UP} {$ENDIF} 68 | {$IFDEF WIN2000_SP1} {$DEFINE WIN2000_SP1_UP} {$ENDIF} 69 | {$IFDEF WIN2000} {$DEFINE WIN2000_UP} {$ENDIF} 70 | {$IFDEF WINNT4_SP6} {$DEFINE WINNT4_SP6_UP} {$ENDIF} 71 | {$IFDEF WINNT4_SP5} {$DEFINE WINNT4_SP5_UP} {$ENDIF} 72 | {$IFDEF WINNT4_SP4} {$DEFINE WINNT4_SP4_UP} {$ENDIF} 73 | {$IFDEF WINNT4_SP3} {$DEFINE WINNT4_SP3_UP} {$ENDIF} 74 | {$IFDEF WINNT4_SP2} {$DEFINE WINNT4_SP2_UP} {$ENDIF} 75 | {$IFDEF WINNT4_SP1} {$DEFINE WINNT4_SP1_UP} {$ENDIF} 76 | {$IFDEF WINNT4} {$DEFINE WINNT4_UP} {$ENDIF} 77 | {$IFDEF WINNT351} {$DEFINE WINNT351_UP} {$ENDIF} 78 | {$IFDEF WINNT35} {$DEFINE WINNT35_UP} {$ENDIF} 79 | {$IFDEF WIN98Gold} {$DEFINE WIN98Gold_UP} {$ENDIF} 80 | {$IFDEF WIN98ME} {$DEFINE WIN98ME_UP} {$ENDIF} 81 | {$IFDEF WIN98SE} {$DEFINE WIN98SE_UP} {$ENDIF} 82 | {$IFDEF WIN98} {$DEFINE WIN98_UP} {$ENDIF} 83 | {$IFDEF WIN95} {$DEFINE WIN95_UP} {$ENDIF} 84 | 85 | // implicit IFDEFs for "_UP" based on initial "_UP" defines 86 | 87 | {$IFDEF WINVista_UP} {$DEFINE WIN2003_UP} {$ENDIF} 88 | {$IFDEF WIN2003_UP} {$DEFINE WINXP_SP2_UP} {$ENDIF} 89 | {$IFDEF WINXP_SP2_UP} {$DEFINE WINXP_SP1_UP} {$ENDIF} 90 | {$IFDEF WINXP_SP1_UP} {$DEFINE WINXP_UP} {$ENDIF} 91 | {$IFDEF WINXP_UP} {$DEFINE WIN2000_SP4_UP} {$ENDIF} 92 | {$IFDEF WIN2000_SP4_UP} {$DEFINE WIN2000_SP3_UP} {$ENDIF} 93 | {$IFDEF WIN2000_SP3_UP} {$DEFINE WIN2000_SP2_UP} {$ENDIF} 94 | {$IFDEF WIN2000_SP2_UP} {$DEFINE WIN2000_SP1_UP} {$ENDIF} 95 | {$IFDEF WIN2000_SP1_UP} {$DEFINE WIN2000_UP} {$ENDIF} 96 | {$IFDEF WIN2000_UP} {$DEFINE WINNT4_SP6_UP} {$ENDIF} 97 | {$IFDEF WINNT4_SP6_UP} {$DEFINE WINNT4_SP5_UP} {$ENDIF} 98 | {$IFDEF WINNT4_SP5_UP} {$DEFINE WINNT4_SP4_UP} {$ENDIF} 99 | {$IFDEF WINNT4_SP4_UP} {$DEFINE WINNT4_SP3_UP} {$ENDIF} 100 | {$IFDEF WINNT4_SP3_UP} {$DEFINE WINNT4_SP2_UP} {$ENDIF} 101 | {$IFDEF WINNT4_SP2_UP} {$DEFINE WINNT4_SP1_UP} {$ENDIF} 102 | {$IFDEF WINNT4_SP1_UP} {$DEFINE WINNT4_UP} {$ENDIF} 103 | {$IFDEF WINNT4_UP} {$DEFINE WINNT351_UP} {$ENDIF} 104 | {$IFDEF WINNT351_UP} {$DEFINE WINNT35_UP} {$ENDIF} 105 | {$IFDEF WINNT35_UP} {$DEFINE WINNT_UP} {$ENDIF} 106 | {$IFDEF WINNT_UP} {$DEFINE WIN98Gold_UP} {$ENDIF} 107 | {$IFDEF WIN98Gold_UP} {$DEFINE WIN98ME_UP} {$ENDIF} 108 | {$IFDEF WIN98ME_UP} {$DEFINE WIN98SE_UP} {$ENDIF} 109 | {$IFDEF WIN98SE_UP} {$DEFINE WIN98_UP} {$ENDIF} 110 | {$IFDEF WIN98_UP} {$DEFINE WIN95_UP} {$ENDIF} 111 | 112 | // History: 113 | 114 | // $Log$ 115 | // Revision 1.3 2006/02/11 16:50:17 marquardt 116 | // another fix to SetupApi.pas, windowsversion.inc defaults to Win98 117 | // 118 | // Revision 1.2 2005/08/28 15:23:33 obones 119 | // Added missing $ 120 | // 121 | // Revision 1.1 2004/11/07 20:36:05 marquardt 122 | // Config Manager and Setup API conversions 123 | // 124 | 125 | {$ENDIF ~WINDOWSVERSION_INC} 126 | -------------------------------------------------------------------------------- /3rdParty/JVCL/JVCL345SourceOnly/run/JVCLVer.pas: -------------------------------------------------------------------------------- 1 | {----------------------------------------------------------------------------- 2 | The contents of this file are subject to the Mozilla Public License 3 | Version 1.1 (the "License"); you may not use this file except in compliance 4 | with the License. You may obtain a copy of the License at 5 | http://www.mozilla.org/MPL/MPL-1.1.html 6 | 7 | Software distributed under the License is distributed on an "AS IS" basis, 8 | WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for 9 | the specific language governing rights and limitations under the License. 10 | 11 | The Original Code is: JVCLVer.PAS, released on 2001-02-28. 12 | 13 | The Initial Developer of the Original Code is Joe Doe . 14 | Portions created by Joe Doe are Copyright (C) 1999 Joe Doe. 15 | Portions created by XXXX Corp. are Copyright (C) 1998, 1999 XXXX Corp. 16 | All Rights Reserved. 17 | 18 | Contributor(s): 19 | Michael Beck [mbeck att bigfoot dott com]. 20 | Hofi 21 | 22 | Last Modified: 2004-10-19 23 | 24 | Changes: 25 | 2004-10-10: 26 | * Added by Hofi 27 | JVCL_VERSION 28 | Helps conditional compiling in BCB. 29 | 30 | You may retrieve the latest version of this file at the Project JEDI's JVCL home page, 31 | located at http://jvcl.delphi-jedi.org 32 | 33 | Known Issues: 34 | -----------------------------------------------------------------------------} 35 | // $Id: JVCLVer.pas 13102 2011-09-07 05:46:34Z obones $ 36 | 37 | unit JVCLVer; 38 | 39 | {$I jvcl.inc} 40 | 41 | interface 42 | 43 | {$IFDEF UNITVERSIONING} 44 | uses 45 | JclUnitVersioning; 46 | {$ENDIF UNITVERSIONING} 47 | 48 | const 49 | sJVCLVersion = '3.45'; 50 | JVCLVersionMajor = 3; // 0=pre-release|beta/1, 2, ...=final 51 | JVCLVersionMinor = 45; // minor release 52 | JVCLVersionRelease = 0; // 0: pre-release|beta/>=1: release 53 | JVCLVersionBuild = 0; // build number, days since march 1, 2006 54 | 55 | JVCLVersion = (JVCLVersionMajor shl 24) or (JVCLVersionMinor shl 16) or 56 | (JVCLVersionRelease shl 15) or (JVCLVersionBuild shl 0); 57 | JVCL_VERSION = JVCLVersionMajor * 100 + JVCLVersionMinor; 58 | JVCL_VERSIONSTRING = sJVCLVersion; 59 | 60 | type 61 | TJVCLAboutInfo = (JVCLAbout); 62 | 63 | {$IFDEF UNITVERSIONING} 64 | const 65 | UnitVersioning: TUnitVersionInfo = ( 66 | RCSfile: '$URL: https://jvcl.svn.sourceforge.net/svnroot/jvcl/tags/JVCL3_45/run/JVCLVer.pas $'; 67 | Revision: '$Revision: 13102 $'; 68 | Date: '$Date: 2011-09-07 07:46:34 +0200 (mer., 07 sept. 2011) $'; 69 | LogPath: 'JVCL\run' 70 | ); 71 | {$ENDIF UNITVERSIONING} 72 | 73 | implementation 74 | 75 | {$IFDEF UNITVERSIONING} 76 | initialization 77 | RegisterUnitVersion(HInstance, UnitVersioning); 78 | 79 | finalization 80 | UnregisterUnitVersion(HInstance); 81 | {$ENDIF UNITVERSIONING} 82 | 83 | end. 84 | -------------------------------------------------------------------------------- /3rdParty/JVCL/JVCL345SourceOnly/run/JvComponentBase.pas: -------------------------------------------------------------------------------- 1 | {----------------------------------------------------------------------------- 2 | The contents of this file are subject to the Mozilla Public License 3 | Version 1.1 (the "License"); you may not use this file except in compliance 4 | with the License. You may obtain a copy of the License at 5 | http://www.mozilla.org/MPL/MPL-1.1.html 6 | 7 | Software distributed under the License is distributed on an "AS IS" basis, 8 | WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for 9 | the specific language governing rights and limitations under the License. 10 | 11 | The Original Code is: JvComponent.PAS, released on 2000-09-22. 12 | 13 | The Initial Developer of the Original Code is Joe Doe . 14 | Portions created by Joe Doe are Copyright (C) 1999 Joe Doe. 15 | Portions created by XXXX Corp. are Copyright (C) 1998, 1999 XXXX Corp. 16 | All Rights Reserved. 17 | 18 | Contributor(s): - 19 | 20 | You may retrieve the latest version of this file at the Project JEDI's JVCL home page, 21 | located at http://jvcl.delphi-jedi.org 22 | 23 | Known Issues: 24 | -----------------------------------------------------------------------------} 25 | // $Id: JvComponentBase.pas 12461 2009-08-14 17:21:33Z obones $ 26 | 27 | unit JvComponentBase; 28 | 29 | {$I jvcl.inc} 30 | 31 | interface 32 | 33 | uses 34 | {$IFDEF UNITVERSIONING} 35 | JclUnitVersioning, 36 | {$ENDIF UNITVERSIONING} 37 | Classes, 38 | {$IFDEF USE_DXGETTEXT} 39 | JvGnugettext, 40 | {$ENDIF USE_DXGETTEXT} 41 | JvConsts, 42 | JVCLVer; 43 | 44 | type 45 | TJvComponent = class(TComponent) 46 | private 47 | FAboutJVCL: TJVCLAboutInfo; 48 | published 49 | property AboutJVCL: TJVCLAboutInfo read FAboutJVCL write FAboutJVCL stored False; 50 | end; 51 | 52 | {$IFDEF UNITVERSIONING} 53 | const 54 | UnitVersioning: TUnitVersionInfo = ( 55 | RCSfile: '$URL: https://jvcl.svn.sourceforge.net/svnroot/jvcl/tags/JVCL3_45/run/JvComponentBase.pas $'; 56 | Revision: '$Revision: 12461 $'; 57 | Date: '$Date: 2009-08-14 19:21:33 +0200 (ven., 14 août 2009) $'; 58 | LogPath: 'JVCL\run' 59 | ); 60 | {$ENDIF UNITVERSIONING} 61 | 62 | implementation 63 | 64 | {$IFDEF UNITVERSIONING} 65 | initialization 66 | RegisterUnitVersion(HInstance, UnitVersioning); 67 | 68 | finalization 69 | UnregisterUnitVersion(HInstance); 70 | {$ENDIF UNITVERSIONING} 71 | 72 | end. -------------------------------------------------------------------------------- /3rdParty/JVCL/JVCL345SourceOnly/run/JvStrToHtml.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magicmonty/delphi-code-coverage/1ccafdced4b18edec54d9bc55d67bcc9045e9043/3rdParty/JVCL/JVCL345SourceOnly/run/JvStrToHtml.pas -------------------------------------------------------------------------------- /3rdParty/JWAPI/jwapi2.2a/Common/Common.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magicmonty/delphi-code-coverage/1ccafdced4b18edec54d9bc55d67bcc9045e9043/3rdParty/JWAPI/jwapi2.2a/Common/Common.txt -------------------------------------------------------------------------------- /3rdParty/JWAPI/jwapi2.2a/Win32API/JwaAdsDb.pas: -------------------------------------------------------------------------------- 1 | {******************************************************************************} 2 | { } 3 | { Active Directory OLE DB Provider API interface Unit for Object Pascal } 4 | { } 5 | { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft } 6 | { Corporation. All Rights Reserved. } 7 | { } 8 | { The original file is: adsdb.h, released June 2000. The original Pascal } 9 | { code is: AdsDb.pas, released December 2000. The initial developer of the } 10 | { Pascal code is Marcel van Brakel (brakelm att chello dott nl). } 11 | { } 12 | { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 } 13 | { Marcel van Brakel. All Rights Reserved. } 14 | { } 15 | { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) } 16 | { } 17 | { You may retrieve the latest version of this file at the Project JEDI } 18 | { APILIB home page, located at http://jedi-apilib.sourceforge.net } 19 | { } 20 | { The contents of this file are used with permission, subject to the Mozilla } 21 | { Public License Version 1.1 (the "License"); you may not use this file except } 22 | { in compliance with the License. You may obtain a copy of the License at } 23 | { http://www.mozilla.org/MPL/MPL-1.1.html } 24 | { } 25 | { Software distributed under the License is distributed on an "AS IS" basis, } 26 | { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for } 27 | { the specific language governing rights and limitations under the License. } 28 | { } 29 | { Alternatively, the contents of this file may be used under the terms of the } 30 | { GNU Lesser General Public License (the "LGPL License"), in which case the } 31 | { provisions of the LGPL License are applicable instead of those above. } 32 | { If you wish to allow use of your version of this file only under the terms } 33 | { of the LGPL License and not to allow others to use your version of this file } 34 | { under the MPL, indicate your decision by deleting the provisions above and } 35 | { replace them with the notice and other provisions required by the LGPL } 36 | { License. If you do not delete the provisions above, a recipient may use } 37 | { your version of this file under either the MPL or the LGPL License. } 38 | { } 39 | { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html } 40 | { } 41 | {******************************************************************************} 42 | 43 | // $Id: JwaAdsDb.pas,v 1.7 2007/09/06 14:57:10 marquardt Exp $ 44 | 45 | {$IFNDEF JWA_OMIT_SECTIONS} 46 | unit JwaAdsDb; 47 | 48 | {$WEAKPACKAGEUNIT} 49 | {$ENDIF JWA_OMIT_SECTIONS} 50 | 51 | {$HPPEMIT ''} 52 | {$HPPEMIT '#include "adsdb.h"'} 53 | {$HPPEMIT ''} 54 | 55 | {$IFNDEF JWA_OMIT_SECTIONS} 56 | {$I jediapilib.inc} 57 | 58 | interface 59 | 60 | {$ENDIF JWA_OMIT_SECTIONS} 61 | 62 | {$IFNDEF JWA_IMPLEMENTATIONSECTION} 63 | 64 | // Contents: Definitions for the OLE DB provider for ADSI 65 | 66 | // 67 | // printer status values 68 | // 69 | 70 | // Most of the constants have been moved into an enum in adstype.h and 71 | // are available publicly in iads.h. This file has been left here so that 72 | // old references to adsdb.h do not break compiles. 73 | 74 | {$IFNDEF JWA_INCLUDEMODE} 75 | const 76 | DBPROPFLAGS_ADSISEARCH = $0000C000; 77 | {$EXTERNALSYM DBPROPFLAGS_ADSISEARCH} 78 | {$ENDIF JWA_INCLUDEMODE} 79 | 80 | {$ENDIF JWA_IMPLEMENTATIONSECTION} 81 | 82 | {$IFNDEF JWA_OMIT_SECTIONS} 83 | implementation 84 | //uses ... 85 | {$ENDIF JWA_OMIT_SECTIONS} 86 | 87 | {$IFNDEF JWA_INTERFACESECTION} 88 | //your implementation here 89 | {$ENDIF JWA_INTERFACESECTION} 90 | 91 | {$IFNDEF JWA_OMIT_SECTIONS} 92 | end. 93 | {$ENDIF JWA_OMIT_SECTIONS} 94 | -------------------------------------------------------------------------------- /3rdParty/JWAPI/jwapi2.2a/Win32API/JwaBLBErr.pas: -------------------------------------------------------------------------------- 1 | {******************************************************************************} 2 | { } 3 | { BLB Error Codes API interface Unit for Object Pascal } 4 | { } 5 | { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft } 6 | { Corporation. All Rights Reserved. } 7 | { } 8 | { The original file is: BLBErr.h, released June 2000. The original Pascal } 9 | { code is: BLBErr.pas, released December 2000. The initial developer of the } 10 | { Pascal code is Marcel van Brakel (brakelm att chello dott nl). } 11 | { } 12 | { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 } 13 | { Marcel van Brakel. All Rights Reserved. } 14 | { } 15 | { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) } 16 | { } 17 | { You may retrieve the latest version of this file at the Project JEDI } 18 | { APILIB home page, located at http://jedi-apilib.sourceforge.net } 19 | { } 20 | { The contents of this file are used with permission, subject to the Mozilla } 21 | { Public License Version 1.1 (the "License"); you may not use this file except } 22 | { in compliance with the License. You may obtain a copy of the License at } 23 | { http://www.mozilla.org/MPL/MPL-1.1.html } 24 | { } 25 | { Software distributed under the License is distributed on an "AS IS" basis, } 26 | { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for } 27 | { the specific language governing rights and limitations under the License. } 28 | { } 29 | { Alternatively, the contents of this file may be used under the terms of the } 30 | { GNU Lesser General Public License (the "LGPL License"), in which case the } 31 | { provisions of the LGPL License are applicable instead of those above. } 32 | { If you wish to allow use of your version of this file only under the terms } 33 | { of the LGPL License and not to allow others to use your version of this file } 34 | { under the MPL, indicate your decision by deleting the provisions above and } 35 | { replace them with the notice and other provisions required by the LGPL } 36 | { License. If you do not delete the provisions above, a recipient may use } 37 | { your version of this file under either the MPL or the LGPL License. } 38 | { } 39 | { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html } 40 | { } 41 | {******************************************************************************} 42 | 43 | // $Id: JwaBLBErr.pas,v 1.6 2007/09/05 11:58:48 dezipaitor Exp $ 44 | {$IFNDEF JWA_OMIT_SECTIONS} 45 | unit JwaBLBErr; 46 | 47 | {$WEAKPACKAGEUNIT} 48 | {$ENDIF JWA_OMIT_SECTIONS} 49 | 50 | {$HPPEMIT ''} 51 | {$HPPEMIT '#include "BLBErr.h"'} 52 | {$HPPEMIT ''} 53 | 54 | {$IFNDEF JWA_OMIT_SECTIONS} 55 | {$I jediapilib.inc} 56 | 57 | interface 58 | {$ENDIF JWA_OMIT_SECTIONS} 59 | 60 | 61 | 62 | {$IFNDEF JWA_IMPLEMENTATIONSECTION} 63 | 64 | const 65 | 66 | // First four bits - SEVERITY(11), CUSTOMER FLAG(1), RESERVED(0) 67 | 68 | SDPBLB_CONF_BLOB_DESTROYED = $e0000300; 69 | {$EXTERNALSYM SDPBLB_CONF_BLOB_DESTROYED} 70 | {$ENDIF JWA_IMPLEMENTATIONSECTION} 71 | 72 | 73 | 74 | {$IFNDEF JWA_OMIT_SECTIONS} 75 | implementation 76 | //uses ... 77 | {$ENDIF JWA_OMIT_SECTIONS} 78 | 79 | 80 | 81 | {$IFNDEF JWA_INTERFACESECTION} 82 | //your implementation here 83 | {$ENDIF JWA_INTERFACESECTION} 84 | 85 | 86 | 87 | {$IFNDEF JWA_OMIT_SECTIONS} 88 | end. 89 | {$ENDIF JWA_OMIT_SECTIONS} 90 | -------------------------------------------------------------------------------- /3rdParty/JWAPI/jwapi2.2a/Win32API/JwaBitFields.pas: -------------------------------------------------------------------------------- 1 | {******************************************************************************} 2 | { } 3 | { Bitfield Emulation Unit for Object Pascal } 4 | { for explantion of how to use this unit see: } 5 | { http://blog.delphi-jedi.net/2008/05/01/working-with-bitfields-in-delphi/ } 6 | { } 7 | { Portions created by Remko Weijnen are Copyright (C) 2008 } 8 | { All Rights Reserved. } 9 | { } 10 | { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) } 11 | { } 12 | { You may retrieve the latest version of this file at the Project JEDI } 13 | { APILIB home page, located at http://jedi-apilib.sourceforge.net } 14 | { } 15 | { The contents of this file are used with permission, subject to the Mozilla } 16 | { Public License Version 1.1 (the "License"); you may not use this file except } 17 | { in compliance with the License. You may obtain a copy of the License at } 18 | { http://www.mozilla.org/MPL/MPL-1.1.html } 19 | { } 20 | { Software distributed under the License is distributed on an "AS IS" basis, } 21 | { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for } 22 | { the specific language governing rights and limitations under the License. } 23 | { } 24 | { Alternatively, the contents of this file may be used under the terms of the } 25 | { GNU Lesser General Public License (the "LGPL License"), in which case the } 26 | { provisions of the LGPL License are applicable instead of those above. } 27 | { If you wish to allow use of your version of this file only under the terms } 28 | { of the LGPL License and not to allow others to use your version of this file } 29 | { under the MPL, indicate your decision by deleting the provisions above and } 30 | { replace them with the notice and other provisions required by the LGPL } 31 | { License. If you do not delete the provisions above, a recipient may use } 32 | { your version of this file under either the MPL or the LGPL License. } 33 | { } 34 | { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html } 35 | { } 36 | {******************************************************************************} 37 | 38 | {$IFNDEF JWA_OMIT_SECTIONS} 39 | unit JwaBitFields; 40 | 41 | 42 | {$ENDIF JWA_OMIT_SECTIONS} 43 | 44 | {$IFNDEF JWA_OMIT_SECTIONS} 45 | {$I jediapilib.inc} 46 | 47 | interface 48 | 49 | {$IFDEF JWA_WINDOWS} 50 | uses SysUtils // SysUtils is needed for raising Exception in ValueFromBitSet; 51 | {$ELSE} 52 | uses SysUtils; 53 | {$ENDIF JWA_WINDOWS} 54 | 55 | 56 | {$ENDIF JWA_OMIT_SECTIONS} 57 | 58 | 59 | 60 | {$IFNDEF JWA_IMPLEMENTATIONSECTION} 61 | 62 | const 63 | // constants below are used to align bitfields 64 | al16bit=15; 65 | al32Bit=31; 66 | al64bit=63; 67 | al96bit=95; 68 | al128bit=127; 69 | al160bit=159; 70 | al192bit=191; 71 | al224bit=221; 72 | al256bit=255; 73 | 74 | type 75 | // TMaxBitSet is the largest possible bitset (256 bits) 76 | TMaxBitSet = Set of Byte; 77 | PMaxBitSet = ^TMaxBitSet; 78 | 79 | // This function can be used to retreive the value of a bitfield consisting of 80 | // multiple bits 81 | function ValueFromBitSet(var ABitSet; const StartBit: Byte; 82 | const Count: Byte): Int64; 83 | 84 | {$ENDIF JWA_IMPLEMENTATIONSECTION} 85 | 86 | 87 | {$IFNDEF JWA_OMIT_SECTIONS} 88 | implementation 89 | {$ENDIF JWA_OMIT_SECTIONS} 90 | 91 | 92 | 93 | {$IFNDEF JWA_INTERFACESECTION} 94 | function ValueFromBitSet(var ABitSet; const StartBit: Byte; 95 | const Count: Byte): Int64; 96 | var 97 | MaxBitSet: TMaxBitSet; 98 | i, BitValue: Integer; 99 | begin 100 | // The result can contain max. 64 bit value, Raise if Count > 64 101 | if Count > 64 then Raise EIntOverflow.Create('Count cannot exceed 64'); 102 | 103 | // A Delphi Set contains at most 256 bits. So we raise Exception is we exceed 104 | if StartBit + Count > 255 then Raise 105 | EIntOverflow.Create('Startbit + Count cannot exceed max. set value (255)'); 106 | 107 | Result := 0; 108 | BitValue := 1; 109 | 110 | // A Delphi Set Of can hold a maximum of 256 bits, since we do not know 111 | // which size was passed to us we cast to 256 bits. 112 | MaxBitSet := TMaxBitSet(ABitSet); 113 | 114 | // Loop through the requested bits 115 | for i := StartBit to StartBit+(Count-1) do 116 | begin 117 | 118 | // is the bit set? 119 | if i in MaxBitSet then 120 | begin 121 | // Multiply with BitValue and add to result 122 | Result := Result + BitValue; 123 | end; 124 | 125 | // Multiply BitValue by 2 126 | BitValue := BitValue shl 1; 127 | end; 128 | end; 129 | 130 | 131 | 132 | 133 | {$IFNDEF JWA_INCLUDEMODE} 134 | const 135 | {$IFDEF UNICODE} 136 | AWSuffix = 'W'; 137 | {$ELSE} 138 | AWSuffix = 'A'; 139 | {$ENDIF UNICODE} 140 | {$ENDIF JWA_INCLUDEMODE} 141 | 142 | {$IFDEF DYNAMIC_LINK} 143 | 144 | {$ELSE} 145 | 146 | {$ENDIF DYNAMIC_LINK} 147 | 148 | {$ENDIF JWA_INTERFACESECTION} 149 | 150 | 151 | 152 | {$IFNDEF JWA_OMIT_SECTIONS} 153 | end. 154 | {$ENDIF JWA_OMIT_SECTIONS} 155 | -------------------------------------------------------------------------------- /3rdParty/JWAPI/jwapi2.2a/Win32API/JwaBitscfg.pas: -------------------------------------------------------------------------------- 1 | {******************************************************************************} 2 | { } 3 | { Background Intelligent Transfer API interface Unit for Object Pascal } 4 | { } 5 | { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft } 6 | { Corporation. All Rights Reserved. } 7 | { } 8 | { The original file is: bitscfg.h, released August 2001. The original Pascal } 9 | { code is: Bits.pas, released October 2001. The initial developer of the } 10 | { Pascal code is Wayne Sherman (body1233 att yahoo dott com). } 11 | { } 12 | { Portions created by Wayne Sherman are Copyright (C) 1999-2001 } 13 | { Marcel van Brakel. All Rights Reserved. } 14 | { } 15 | { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) } 16 | { } 17 | { You may retrieve the latest version of this file at the Project JEDI } 18 | { APILIB home page, located at http://jedi-apilib.sourceforge.net } 19 | { } 20 | { The contents of this file are used with permission, subject to the Mozilla } 21 | { Public License Version 1.1 (the "License"); you may not use this file except } 22 | { in compliance with the License. You may obtain a copy of the License at } 23 | { http://www.mozilla.org/MPL/MPL-1.1.html } 24 | { } 25 | { Software distributed under the License is distributed on an "AS IS" basis, } 26 | { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for } 27 | { the specific language governing rights and limitations under the License. } 28 | { } 29 | { Alternatively, the contents of this file may be used under the terms of the } 30 | { GNU Lesser General Public License (the "LGPL License"), in which case the } 31 | { provisions of the LGPL License are applicable instead of those above. } 32 | { If you wish to allow use of your version of this file only under the terms } 33 | { of the LGPL License and not to allow others to use your version of this file } 34 | { under the MPL, indicate your decision by deleting the provisions above and } 35 | { replace them with the notice and other provisions required by the LGPL } 36 | { License. If you do not delete the provisions above, a recipient may use } 37 | { your version of this file under either the MPL or the LGPL License. } 38 | { } 39 | { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html } 40 | { } 41 | {******************************************************************************} 42 | 43 | // $Id: JwaBitscfg.pas,v 1.10 2007/09/06 14:57:11 marquardt Exp $ 44 | {$IFNDEF JWA_OMIT_SECTIONS} 45 | unit JwaBitscfg; 46 | 47 | {$WEAKPACKAGEUNIT} 48 | {$ENDIF JWA_OMIT_SECTIONS} 49 | 50 | {$HPPEMIT ''} 51 | {$HPPEMIT '#include "bitscfg.h"'} 52 | {$HPPEMIT ''} 53 | 54 | {$IFNDEF JWA_OMIT_SECTIONS} 55 | {$I jediapilib.inc} 56 | 57 | interface 58 | 59 | uses 60 | JwaWinBase, JwaWinType; 61 | {$ENDIF JWA_OMIT_SECTIONS} 62 | 63 | {$IFNDEF JWA_IMPLEMENTATIONSECTION} 64 | 65 | const 66 | IID_IBITSExtensionSetup: TGUID = '{29cfbbf7-09e4-4b97-b0bc-f2287e3d8eb3}'; 67 | {$EXTERNALSYM IID_IBITSExtensionSetup} 68 | 69 | type 70 | {$IFNDEF JWA_INCLUDEMODE} 71 | REFIID = TGUID; // also in ActiveDS and another unit 72 | {$ENDIF JWA_INCLUDEMODE} 73 | 74 | IBITSExtensionSetup = interface(IDispatch) 75 | ['{29cfbbf7-09e4-4b97-b0bc-f2287e3d8eb3}'] 76 | function EnableBITSUploads: HRESULT; stdcall; 77 | function DisableBITSUploads: HRESULT; stdcall; 78 | function GetCleanupTaskName(out pTaskName: WideString): HRESULT; stdcall; 79 | function GetCleanupTask(riid: REFIID; out ppUnk: IUnknown): HRESULT; stdcall; 80 | end; 81 | {$EXTERNALSYM IBITSExtensionSetup} 82 | 83 | IBITSExtensionSetupFactory = interface (IDispatch) 84 | ['{d5d2d542-5503-4e64-8b48-72ef91a32ee1}'] 85 | function GetObject(Path: WideString; out ppExtensionSetup: IBITSExtensionSetup): HRESULT; stdcall; 86 | end; 87 | {$EXTERNALSYM IBITSExtensionSetupFactory} 88 | 89 | //--------------------------------------------------------------------------- 90 | 91 | const 92 | LIBID_BITSExtensionSetup: GUID = '{efbbab68-7286-4783-94bf-9461d8b7e7e9}'; 93 | {$EXTERNALSYM LIBID_BITSExtensionSetup} 94 | CLSID_BITSExtensionSetupFactory: GUID = '{efbbab68-7286-4783-94bf-9461d8b7e7e9}'; 95 | {$EXTERNALSYM CLSID_BITSExtensionSetupFactory} 96 | 97 | {$ENDIF JWA_IMPLEMENTATIONSECTION} 98 | 99 | {$IFNDEF JWA_OMIT_SECTIONS} 100 | implementation 101 | //uses ... 102 | {$ENDIF JWA_OMIT_SECTIONS} 103 | 104 | {$IFNDEF JWA_INTERFACESECTION} 105 | //your implementation here 106 | {$ENDIF JWA_INTERFACESECTION} 107 | 108 | {$IFNDEF JWA_OMIT_SECTIONS} 109 | end. 110 | {$ENDIF JWA_OMIT_SECTIONS} 111 | -------------------------------------------------------------------------------- /3rdParty/JWAPI/jwapi2.2a/Win32API/JwaExcpt.pas: -------------------------------------------------------------------------------- 1 | {******************************************************************************} 2 | { } 3 | { C/C++ SEH Intrinsics interface Unit for Object Pascal } 4 | { } 5 | { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft } 6 | { Corporation. All Rights Reserved. } 7 | { } 8 | { The original file is: excpt.h, released August 2001. The original Pascal } 9 | { code is: Excpt.pas, released December 2000. The initial developer of the } 10 | { Pascal code is Marcel van Brakel (brakelm att chello dott nl). } 11 | { } 12 | { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 } 13 | { Marcel van Brakel. All Rights Reserved. } 14 | { } 15 | { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) } 16 | { } 17 | { You may retrieve the latest version of this file at the Project JEDI } 18 | { APILIB home page, located at http://jedi-apilib.sourceforge.net } 19 | { } 20 | { The contents of this file are used with permission, subject to the Mozilla } 21 | { Public License Version 1.1 (the "License"); you may not use this file except } 22 | { in compliance with the License. You may obtain a copy of the License at } 23 | { http://www.mozilla.org/MPL/MPL-1.1.html } 24 | { } 25 | { Software distributed under the License is distributed on an "AS IS" basis, } 26 | { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for } 27 | { the specific language governing rights and limitations under the License. } 28 | { } 29 | { Alternatively, the contents of this file may be used under the terms of the } 30 | { GNU Lesser General Public License (the "LGPL License"), in which case the } 31 | { provisions of the LGPL License are applicable instead of those above. } 32 | { If you wish to allow use of your version of this file only under the terms } 33 | { of the LGPL License and not to allow others to use your version of this file } 34 | { under the MPL, indicate your decision by deleting the provisions above and } 35 | { replace them with the notice and other provisions required by the LGPL } 36 | { License. If you do not delete the provisions above, a recipient may use } 37 | { your version of this file under either the MPL or the LGPL License. } 38 | { } 39 | { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html } 40 | { } 41 | {******************************************************************************} 42 | 43 | // $Id: JwaExcpt.pas,v 1.9 2007/09/05 11:58:49 dezipaitor Exp $ 44 | 45 | {$IFNDEF JWA_OMIT_SECTIONS} 46 | unit JwaExcpt; 47 | 48 | {$WEAKPACKAGEUNIT} 49 | 50 | {$ENDIF JWA_OMIT_SECTIONS} 51 | 52 | {$HPPEMIT ''} 53 | {$HPPEMIT '#include "excpt.h"'} 54 | {$HPPEMIT ''} 55 | 56 | {$IFNDEF JWA_OMIT_SECTIONS} 57 | 58 | {$I jediapilib.inc} 59 | 60 | interface 61 | 62 | uses 63 | JwaWinType; 64 | 65 | {$ENDIF JWA_OMIT_SECTIONS} 66 | {$IFNDEF JWA_IMPLEMENTATIONSECTION} 67 | 68 | // This file contains the definitions and prototypes for the compiler- 69 | // dependent intrinsics, support functions and keywords which implement 70 | // the structured exception handling extensions. 71 | 72 | // 73 | // Exception disposition return values. 74 | // 75 | 76 | type 77 | _EXCEPTION_DISPOSITION = ( 78 | ExceptionContinueExecution, 79 | ExceptionContinueSearch, 80 | ExceptionNestedException, 81 | ExceptionCollidedUnwind); 82 | {$EXTERNALSYM _EXCEPTION_DISPOSITION} 83 | EXCEPTION_DISPOSITION = _EXCEPTION_DISPOSITION; 84 | {$EXTERNALSYM EXCEPTION_DISPOSITION} 85 | TExceptionDisposition = EXCEPTION_DISPOSITION; 86 | 87 | // 88 | // Legal values for expression in except(). 89 | // 90 | 91 | const 92 | EXCEPTION_EXECUTE_HANDLER = 1; 93 | {$EXTERNALSYM EXCEPTION_EXECUTE_HANDLER} 94 | EXCEPTION_CONTINUE_SEARCH = 0; 95 | {$EXTERNALSYM EXCEPTION_CONTINUE_SEARCH} 96 | EXCEPTION_CONTINUE_EXECUTION = DWORD(-1); 97 | {$EXTERNALSYM EXCEPTION_CONTINUE_EXECUTION} 98 | 99 | {$ENDIF JWA_IMPLEMENTATIONSECTION} 100 | 101 | {$IFNDEF JWA_OMIT_SECTIONS} 102 | implementation 103 | //uses ... 104 | {$ENDIF JWA_OMIT_SECTIONS} 105 | 106 | 107 | {$IFNDEF JWA_INTERFACESECTION} 108 | //your implementation here 109 | {$ENDIF JWA_INTERFACESECTION} 110 | 111 | {$IFNDEF JWA_OMIT_SECTIONS} 112 | end. 113 | {$ENDIF JWA_OMIT_SECTIONS} 114 | -------------------------------------------------------------------------------- /3rdParty/JWAPI/jwapi2.2a/Win32API/JwaHtmlGuid.pas: -------------------------------------------------------------------------------- 1 | {******************************************************************************} 2 | { } 3 | { GUID Definitions for HTML Viewer object API interface Unit for Object Pascal } 4 | { } 5 | { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft } 6 | { Corporation. All Rights Reserved. } 7 | { } 8 | { The original file is: htmlguid.h, released November 2002. The original Pascal} 9 | { code is: HtmlGuid.pas, released March 2002. The initial developer of the } 10 | { Pascal code is Marcel van Brakel (brakelm att chello dott nl). } 11 | { } 12 | { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 } 13 | { Marcel van Brakel. All Rights Reserved. } 14 | { } 15 | { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) } 16 | { } 17 | { You may retrieve the latest version of this file at the Project JEDI } 18 | { APILIB home page, located at http://jedi-apilib.sourceforge.net } 19 | { } 20 | { The contents of this file are used with permission, subject to the Mozilla } 21 | { Public License Version 1.1 (the "License"); you may not use this file except } 22 | { in compliance with the License. You may obtain a copy of the License at } 23 | { http://www.mozilla.org/MPL/MPL-1.1.html } 24 | { } 25 | { Software distributed under the License is distributed on an "AS IS" basis, } 26 | { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for } 27 | { the specific language governing rights and limitations under the License. } 28 | { } 29 | { Alternatively, the contents of this file may be used under the terms of the } 30 | { GNU Lesser General Public License (the "LGPL License"), in which case the } 31 | { provisions of the LGPL License are applicable instead of those above. } 32 | { If you wish to allow use of your version of this file only under the terms } 33 | { of the LGPL License and not to allow others to use your version of this file } 34 | { under the MPL, indicate your decision by deleting the provisions above and } 35 | { replace them with the notice and other provisions required by the LGPL } 36 | { License. If you do not delete the provisions above, a recipient may use } 37 | { your version of this file under either the MPL or the LGPL License. } 38 | { } 39 | { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html } 40 | { } 41 | {******************************************************************************} 42 | 43 | // $Id: JwaHtmlGuid.pas,v 1.6 2007/09/05 11:58:49 dezipaitor Exp $ 44 | {$IFNDEF JWA_OMIT_SECTIONS} 45 | unit JwaHtmlGuid; 46 | 47 | {$WEAKPACKAGEUNIT} 48 | {$ENDIF JWA_OMIT_SECTIONS} 49 | 50 | {$HPPEMIT ''} 51 | {$HPPEMIT '#include "htmlguid.h"'} 52 | {$HPPEMIT ''} 53 | 54 | {$IFNDEF JWA_OMIT_SECTIONS} 55 | {$I jediapilib.inc} 56 | 57 | interface 58 | {$ENDIF JWA_OMIT_SECTIONS} 59 | 60 | {$IFNDEF JWA_IMPLEMENTATIONSECTION} 61 | 62 | const 63 | // GUID for HTML viewer is: {25336920-03F9-11cf-8FD0-00AA00686F13} 64 | CLSID_HTMLViewer: TGUID = (D1:$25336920; D2:$3f9; D3:$11cf; D4:($8f, $d0, $0, $aa, $0, $68, $6f, $13)); 65 | {$EXTERNALSYM CLSID_HTMLViewer} 66 | 67 | // GUID for BSCB proxy is: {25336922-03F9-11cf-8FD0-00AA00686F13} 68 | CLSID_HTMLBSCBProxy: TGUID = (D1:$25336922; D2:$3f9; D3:$11cf; D4:($8f, $d0, $0, $aa, $0, $68, $6f, $13)); 69 | {$EXTERNALSYM CLSID_HTMLBSCBProxy} 70 | 71 | // The GUID used to identify the TypeLib of the HTML Page 72 | // {71BC8840-60BB-11cf-8B97-00AA00476DA6} 73 | GUID_PageTL: TGUID = (D1:$71bc8840; D2:$60bb; D3:$11cf; D4:($8b, $97, $0, $aa, $0, $47, $6d, $a6)); 74 | {$EXTERNALSYM GUID_PageTL} 75 | 76 | // The GUID used to identify the Primary dispinterface of the HTML Page 77 | // {71BC8841-60BB-11cf-8B97-00AA00476DA6} 78 | IID_PageProps: TGUID = (D1:$71bc8841; D2:$60bb; D3:$11cf; D4:($8b, $97, $0, $aa, $0, $47, $6d, $a6)); 79 | {$EXTERNALSYM IID_PageProps} 80 | 81 | // The GUID used to identify the Event dispinterface of the HTML Page 82 | // The page events are currently commented out but will be added later 83 | // so I grabbed a guid for the events now. 84 | // {71BC8842-60BB-11cf-8B97-00AA00476DA6} 85 | IID_PageEvents: TGUID = (D1:$71bc8842; D2:$60bb; D3:$11cf; D4:($8b, $97, $0, $aa, $0, $47, $6d, $a6)); 86 | {$EXTERNALSYM IID_PageEvents} 87 | 88 | // The GUID used to identify the coclass of the HTML Page 89 | // {71BC8843-60BB-11cf-8B97-00AA00476DA6} 90 | CLSID_Page: TGUID = (D1:$71bc8843; D2:$60bb; D3:$11cf; D4:($8b, $97, $0, $aa, $0, $47, $6d, $a6)); 91 | {$EXTERNALSYM CLSID_Page} 92 | 93 | {$ENDIF JWA_IMPLEMENTATIONSECTION} 94 | 95 | 96 | 97 | {$IFNDEF JWA_OMIT_SECTIONS} 98 | implementation 99 | //uses ... 100 | {$ENDIF JWA_OMIT_SECTIONS} 101 | 102 | {$IFNDEF JWA_INTERFACESECTION} 103 | //your implementation here 104 | {$ENDIF JWA_INTERFACESECTION} 105 | 106 | 107 | {$IFNDEF JWA_OMIT_SECTIONS} 108 | end. 109 | {$ENDIF JWA_OMIT_SECTIONS} 110 | -------------------------------------------------------------------------------- /3rdParty/JWAPI/jwapi2.2a/Win32API/JwaIsGuids.pas: -------------------------------------------------------------------------------- 1 | {******************************************************************************} 2 | { } 3 | { Internet Shortcut GUID definitions API interface Unit for Object Pascal } 4 | { } 5 | { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft } 6 | { Corporation. All Rights Reserved. } 7 | { } 8 | { The original file is: isguids.h, released November 2002. The original Pascal } 9 | { code is: JwaIsGuids.pas, released April 2002. The initial developer of the } 10 | { Pascal code is Marcel van Brakel (brakelm att chello dott nl). } 11 | { } 12 | { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 } 13 | { Marcel van Brakel. All Rights Reserved. } 14 | { } 15 | { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) } 16 | { } 17 | { You may retrieve the latest version of this file at the Project JEDI } 18 | { APILIB home page, located at http://jedi-apilib.sourceforge.net } 19 | { } 20 | { The contents of this file are used with permission, subject to the Mozilla } 21 | { Public License Version 1.1 (the "License"); you may not use this file except } 22 | { in compliance with the License. You may obtain a copy of the License at } 23 | { http://www.mozilla.org/MPL/MPL-1.1.html } 24 | { } 25 | { Software distributed under the License is distributed on an "AS IS" basis, } 26 | { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for } 27 | { the specific language governing rights and limitations under the License. } 28 | { } 29 | { Alternatively, the contents of this file may be used under the terms of the } 30 | { GNU Lesser General Public License (the "LGPL License"), in which case the } 31 | { provisions of the LGPL License are applicable instead of those above. } 32 | { If you wish to allow use of your version of this file only under the terms } 33 | { of the LGPL License and not to allow others to use your version of this file } 34 | { under the MPL, indicate your decision by deleting the provisions above and } 35 | { replace them with the notice and other provisions required by the LGPL } 36 | { License. If you do not delete the provisions above, a recipient may use } 37 | { your version of this file under either the MPL or the LGPL License. } 38 | { } 39 | { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html } 40 | { } 41 | {******************************************************************************} 42 | 43 | // $Id: JwaIsGuids.pas,v 1.6 2007/09/05 11:58:50 dezipaitor Exp $ 44 | {$IFNDEF JWA_OMIT_SECTIONS} 45 | unit JwaIsGuids; 46 | 47 | {$WEAKPACKAGEUNIT} 48 | {$ENDIF JWA_OMIT_SECTIONS} 49 | 50 | {$HPPEMIT ''} 51 | {$HPPEMIT '#include "isguids.h"'} 52 | {$HPPEMIT ''} 53 | 54 | {$IFNDEF JWA_OMIT_SECTIONS} 55 | {$I jediapilib.inc} 56 | 57 | interface 58 | 59 | {$ENDIF JWA_OMIT_SECTIONS} 60 | 61 | 62 | 63 | {$IFNDEF JWA_IMPLEMENTATIONSECTION} 64 | 65 | // 66 | // isguids.h - Internet Shortcut GUID definitions. 67 | // 68 | // Copyright (c) Microsoft Corporation. All rights reserved. 69 | // 70 | 71 | const 72 | CLSID_InternetShortcut: TGUID = (D1:$FBF23B40; D2:$E3F0; D3:$101B; D4:($84, $88, $00, $AA, $00, $3E, $56, $F8)); 73 | {$EXTERNALSYM CLSID_InternetShortcut} 74 | 75 | IID_IUniformResourceLocatorA: TGUID = (D1:$FBF23B80; D2:$E3F0; D3:$101B; D4:($84, $88, $00, $AA, $00, $3E, $56, $F8)); 76 | {$EXTERNALSYM IID_IUniformResourceLocatorA} 77 | IID_IUniformResourceLocatorW: TGUID = (D1:$CABB0DA0; D2:$DA57; D3:$11CF; D4:($99, $74, $00, $20, $AF, $D7, $97, $62)); 78 | {$EXTERNALSYM IID_IUniformResourceLocatorW} 79 | 80 | {$IFDEF UNICODE} 81 | IID_IUniformResourceLocator: TGUID = (D1:$CABB0DA0; D2:$DA57; D3:$11CF; D4:($99, $74, $00, $20, $AF, $D7, $97, $62)); 82 | {$EXTERNALSYM IID_IUniformResourceLocator} 83 | {$ELSE} 84 | IID_IUniformResourceLocator: TGUID = (D1:$FBF23B80; D2:$E3F0; D3:$101B; D4:($84, $88, $00, $AA, $00, $3E, $56, $F8)); 85 | {$EXTERNALSYM IID_IUniformResourceLocator} 86 | {$ENDIF UNICODE} 87 | 88 | 89 | {$ENDIF JWA_IMPLEMENTATIONSECTION} 90 | 91 | 92 | 93 | {$IFNDEF JWA_OMIT_SECTIONS} 94 | implementation 95 | //uses ... 96 | {$ENDIF JWA_OMIT_SECTIONS} 97 | 98 | 99 | 100 | {$IFNDEF JWA_INTERFACESECTION} 101 | //your implementation here 102 | {$ENDIF JWA_INTERFACESECTION} 103 | 104 | 105 | 106 | {$IFNDEF JWA_OMIT_SECTIONS} 107 | end. 108 | {$ENDIF JWA_OMIT_SECTIONS} 109 | -------------------------------------------------------------------------------- /3rdParty/JWAPI/jwapi2.2a/Win32API/JwaLmUseFlg.pas: -------------------------------------------------------------------------------- 1 | {******************************************************************************} 2 | { } 3 | { Lan Manager Deletion Force Levels API interface Unit for Object Pascal } 4 | { } 5 | { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft } 6 | { Corporation. All Rights Reserved. } 7 | { } 8 | { The original file is: lmuseflg.h, released November 2001. The original Pascal} 9 | { code is: LmUseFlg.pas, released Februari 2002. The initial developer of the } 10 | { Pascal code is Marcel van Brakel (brakelm att chello dott nl). } 11 | { } 12 | { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 } 13 | { Marcel van Brakel. All Rights Reserved. } 14 | { } 15 | { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) } 16 | { } 17 | { You may retrieve the latest version of this file at the Project JEDI } 18 | { APILIB home page, located at http://jedi-apilib.sourceforge.net } 19 | { } 20 | { The contents of this file are used with permission, subject to the Mozilla } 21 | { Public License Version 1.1 (the "License"); you may not use this file except } 22 | { in compliance with the License. You may obtain a copy of the License at } 23 | { http://www.mozilla.org/MPL/MPL-1.1.html } 24 | { } 25 | { Software distributed under the License is distributed on an "AS IS" basis, } 26 | { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for } 27 | { the specific language governing rights and limitations under the License. } 28 | { } 29 | { Alternatively, the contents of this file may be used under the terms of the } 30 | { GNU Lesser General Public License (the "LGPL License"), in which case the } 31 | { provisions of the LGPL License are applicable instead of those above. } 32 | { If you wish to allow use of your version of this file only under the terms } 33 | { of the LGPL License and not to allow others to use your version of this file } 34 | { under the MPL, indicate your decision by deleting the provisions above and } 35 | { replace them with the notice and other provisions required by the LGPL } 36 | { License. If you do not delete the provisions above, a recipient may use } 37 | { your version of this file under either the MPL or the LGPL License. } 38 | { } 39 | { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html } 40 | { } 41 | {******************************************************************************} 42 | 43 | // $Id: JwaLmUseFlg.pas,v 1.6 2007/09/05 11:58:51 dezipaitor Exp $ 44 | {$IFNDEF JWA_OMIT_SECTIONS} 45 | unit JwaLmUseFlg; 46 | 47 | {$WEAKPACKAGEUNIT} 48 | {$ENDIF JWA_OMIT_SECTIONS} 49 | 50 | {$HPPEMIT ''} 51 | {$HPPEMIT '#include "lmuseflg.h"'} 52 | {$HPPEMIT ''} 53 | 54 | {$IFNDEF JWA_OMIT_SECTIONS} 55 | {$I jediapilib.inc} 56 | 57 | interface 58 | {$ENDIF JWA_OMIT_SECTIONS} 59 | {$IFNDEF JWA_IMPLEMENTATIONSECTION} 60 | 61 | // 62 | // Definition for NetWkstaTransportDel and NetUseDel deletion force levels 63 | // 64 | 65 | const 66 | USE_NOFORCE = 0; 67 | {$EXTERNALSYM USE_NOFORCE} 68 | USE_FORCE = 1; 69 | {$EXTERNALSYM USE_FORCE} 70 | USE_LOTS_OF_FORCE = 2; 71 | {$EXTERNALSYM USE_LOTS_OF_FORCE} 72 | 73 | {$ENDIF JWA_IMPLEMENTATIONSECTION} 74 | 75 | {$IFNDEF JWA_OMIT_SECTIONS} 76 | implementation 77 | //uses ... 78 | {$ENDIF JWA_OMIT_SECTIONS} 79 | 80 | 81 | {$IFNDEF JWA_INTERFACESECTION} 82 | //your implementation here 83 | {$ENDIF JWA_INTERFACESECTION} 84 | 85 | 86 | {$IFNDEF JWA_OMIT_SECTIONS} 87 | end. 88 | {$ENDIF JWA_OMIT_SECTIONS} 89 | 90 | -------------------------------------------------------------------------------- /3rdParty/JWAPI/jwapi2.2a/Win32API/JwaPbt.pas: -------------------------------------------------------------------------------- 1 | {******************************************************************************} 2 | { } 3 | { Power Event Message Definitions API interface Unit for Object Pascal } 4 | { } 5 | { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft } 6 | { Corporation. All Rights Reserved. } 7 | { } 8 | { The original file is: pbt.h, released June 2000. The original Pascal } 9 | { code is: Pbt.pas, released December 2000. The initial developer of the } 10 | { Pascal code is Marcel van Brakel (brakelm att chello dott nl). } 11 | { } 12 | { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 } 13 | { Marcel van Brakel. All Rights Reserved. } 14 | { } 15 | { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) } 16 | { } 17 | { You may retrieve the latest version of this file at the Project JEDI } 18 | { APILIB home page, located at http://jedi-apilib.sourceforge.net } 19 | { } 20 | { The contents of this file are used with permission, subject to the Mozilla } 21 | { Public License Version 1.1 (the "License"); you may not use this file except } 22 | { in compliance with the License. You may obtain a copy of the License at } 23 | { http://www.mozilla.org/MPL/MPL-1.1.html } 24 | { } 25 | { Software distributed under the License is distributed on an "AS IS" basis, } 26 | { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for } 27 | { the specific language governing rights and limitations under the License. } 28 | { } 29 | { Alternatively, the contents of this file may be used under the terms of the } 30 | { GNU Lesser General Public License (the "LGPL License"), in which case the } 31 | { provisions of the LGPL License are applicable instead of those above. } 32 | { If you wish to allow use of your version of this file only under the terms } 33 | { of the LGPL License and not to allow others to use your version of this file } 34 | { under the MPL, indicate your decision by deleting the provisions above and } 35 | { replace them with the notice and other provisions required by the LGPL } 36 | { License. If you do not delete the provisions above, a recipient may use } 37 | { your version of this file under either the MPL or the LGPL License. } 38 | { } 39 | { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html } 40 | { } 41 | {******************************************************************************} 42 | 43 | // $Id: JwaPbt.pas,v 1.6 2007/09/05 11:58:51 dezipaitor Exp $ 44 | {$IFNDEF JWA_OMIT_SECTIONS} 45 | unit JwaPbt; 46 | 47 | {$WEAKPACKAGEUNIT} 48 | {$ENDIF JWA_OMIT_SECTIONS} 49 | 50 | {$HPPEMIT ''} 51 | {$HPPEMIT '#include "pbt.h"'} 52 | {$HPPEMIT ''} 53 | 54 | {$IFNDEF JWA_OMIT_SECTIONS} 55 | {$I jediapilib.inc} 56 | 57 | interface 58 | {$ENDIF JWA_OMIT_SECTIONS} 59 | 60 | {$IFNDEF JWA_IMPLEMENTATIONSECTION} 61 | 62 | {$IFNDEF JWA_INCLUDEMODE} 63 | const 64 | WM_POWERBROADCAST = $0218; 65 | {$EXTERNALSYM WM_POWERBROADCAST} 66 | 67 | PBT_APMQUERYSUSPEND = $0000; 68 | {$EXTERNALSYM PBT_APMQUERYSUSPEND} 69 | PBT_APMQUERYSTANDBY = $0001; 70 | {$EXTERNALSYM PBT_APMQUERYSTANDBY} 71 | 72 | PBT_APMQUERYSUSPENDFAILED = $0002; 73 | {$EXTERNALSYM PBT_APMQUERYSUSPENDFAILED} 74 | PBT_APMQUERYSTANDBYFAILED = $0003; 75 | {$EXTERNALSYM PBT_APMQUERYSTANDBYFAILED} 76 | 77 | PBT_APMSUSPEND = $0004; 78 | {$EXTERNALSYM PBT_APMSUSPEND} 79 | PBT_APMSTANDBY = $0005; 80 | {$EXTERNALSYM PBT_APMSTANDBY} 81 | 82 | PBT_APMRESUMECRITICAL = $0006; 83 | {$EXTERNALSYM PBT_APMRESUMECRITICAL} 84 | PBT_APMRESUMESUSPEND = $0007; 85 | {$EXTERNALSYM PBT_APMRESUMESUSPEND} 86 | PBT_APMRESUMESTANDBY = $0008; 87 | {$EXTERNALSYM PBT_APMRESUMESTANDBY} 88 | 89 | PBTF_APMRESUMEFROMFAILURE = $00000001; 90 | {$EXTERNALSYM PBTF_APMRESUMEFROMFAILURE} 91 | 92 | PBT_APMBATTERYLOW = $0009; 93 | {$EXTERNALSYM PBT_APMBATTERYLOW} 94 | PBT_APMPOWERSTATUSCHANGE = $000A; 95 | {$EXTERNALSYM PBT_APMPOWERSTATUSCHANGE} 96 | 97 | PBT_APMOEMEVENT = $000B; 98 | {$EXTERNALSYM PBT_APMOEMEVENT} 99 | PBT_APMRESUMEAUTOMATIC = $0012; 100 | {$EXTERNALSYM PBT_APMRESUMEAUTOMATIC} 101 | {$ENDIF JWA_INCLUDEMODE} 102 | 103 | {$ENDIF JWA_IMPLEMENTATIONSECTION} 104 | 105 | 106 | 107 | {$IFNDEF JWA_OMIT_SECTIONS} 108 | implementation 109 | //uses ... 110 | {$ENDIF JWA_OMIT_SECTIONS} 111 | 112 | 113 | 114 | {$IFNDEF JWA_INTERFACESECTION} 115 | 116 | //your implementation here 117 | {$ENDIF JWA_INTERFACESECTION} 118 | 119 | 120 | 121 | {$IFNDEF JWA_OMIT_SECTIONS} 122 | end. 123 | {$ENDIF JWA_OMIT_SECTIONS} 124 | -------------------------------------------------------------------------------- /3rdParty/JWAPI/jwapi2.2a/Win32API/JwaProtocol.pas: -------------------------------------------------------------------------------- 1 | {******************************************************************************} 2 | { } 3 | { Winsock2 Protocol Definitions API interface Unit for Object Pascal } 4 | { } 5 | { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft } 6 | { Corporation. All Rights Reserved. } 7 | { } 8 | { The original file is: protocol.h, released June 2000. The original Pascal } 9 | { code is: Protocol.pas, released December 2000. The initial developer of the } 10 | { Pascal code is Marcel van Brakel (brakelm att chello dott nl). } 11 | { } 12 | { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 } 13 | { Marcel van Brakel. All Rights Reserved. } 14 | { } 15 | { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) } 16 | { } 17 | { You may retrieve the latest version of this file at the Project JEDI } 18 | { APILIB home page, located at http://jedi-apilib.sourceforge.net } 19 | { } 20 | { The contents of this file are used with permission, subject to the Mozilla } 21 | { Public License Version 1.1 (the "License"); you may not use this file except } 22 | { in compliance with the License. You may obtain a copy of the License at } 23 | { http://www.mozilla.org/MPL/MPL-1.1.html } 24 | { } 25 | { Software distributed under the License is distributed on an "AS IS" basis, } 26 | { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for } 27 | { the specific language governing rights and limitations under the License. } 28 | { } 29 | { Alternatively, the contents of this file may be used under the terms of the } 30 | { GNU Lesser General Public License (the "LGPL License"), in which case the } 31 | { provisions of the LGPL License are applicable instead of those above. } 32 | { If you wish to allow use of your version of this file only under the terms } 33 | { of the LGPL License and not to allow others to use your version of this file } 34 | { under the MPL, indicate your decision by deleting the provisions above and } 35 | { replace them with the notice and other provisions required by the LGPL } 36 | { License. If you do not delete the provisions above, a recipient may use } 37 | { your version of this file under either the MPL or the LGPL License. } 38 | { } 39 | { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html } 40 | { } 41 | {******************************************************************************} 42 | 43 | // $Id: JwaProtocol.pas,v 1.9 2007/09/05 11:58:52 dezipaitor Exp $ 44 | {$IFNDEF JWA_OMIT_SECTIONS} 45 | unit JwaProtocol; 46 | 47 | {$WEAKPACKAGEUNIT} 48 | {$ENDIF JWA_OMIT_SECTIONS} 49 | 50 | {$HPPEMIT ''} 51 | {$HPPEMIT '#include "protocol.h"'} 52 | {$HPPEMIT ''} 53 | 54 | {$IFNDEF JWA_OMIT_SECTIONS} 55 | {$I jediapilib.inc} 56 | 57 | interface 58 | 59 | uses 60 | {$IFDEF USE_DELPHI_TYPES} 61 | Windows; 62 | {$ELSE} 63 | JwaWinType; 64 | {$ENDIF USE_DELPHI_TYPES} 65 | {$ENDIF JWA_OMIT_SECTIONS} 66 | 67 | {$IFNDEF JWA_IMPLEMENTATIONSECTION} 68 | 69 | type 70 | ETHERNET_ADDRESS = array [0..5] of BYTE; 71 | {$EXTERNALSYM ETHERNET_ADDRESS} 72 | 73 | ETHERNET_FRAME = record 74 | Destination: ETHERNET_ADDRESS; 75 | Source: ETHERNET_ADDRESS; 76 | FrameType: WORD; // in host-order 77 | end; 78 | {$EXTERNALSYM ETHERNET_FRAME} 79 | TEthernetFrame = ETHERNET_FRAME; 80 | PEthernetFrame = ^TEthernetFrame; 81 | 82 | const 83 | ETHERNET_FRAME_TYPE_IP = $0800; 84 | {$EXTERNALSYM ETHERNET_FRAME_TYPE_IP} 85 | 86 | type 87 | IP_HEADER = record 88 | x: BYTE; 89 | tos: BYTE; 90 | length: WORD; 91 | identifier: WORD; 92 | fragment: WORD; 93 | ttl: BYTE; 94 | protocol: BYTE; 95 | cksum: WORD; 96 | src: DWORD; 97 | dest: DWORD; 98 | end; 99 | {$EXTERNALSYM IP_HEADER} 100 | LPIP_HEADER = ^IP_HEADER; 101 | {$EXTERNALSYM LPIP_HEADER} 102 | TIPHeader = IP_HEADER; 103 | PIPHeader = LPIP_HEADER; 104 | 105 | const 106 | IP_MF = $2000; 107 | {$EXTERNALSYM IP_MF} 108 | IP_FRAGMENT_OFFSET_MASK = $1FFF; 109 | {$EXTERNALSYM IP_FRAGMENT_OFFSET_MASK} 110 | 111 | IP_HEADER_MINIMUM_LEN = 20; 112 | {$EXTERNALSYM IP_HEADER_MINIMUM_LEN} 113 | 114 | type 115 | UDP_HEADER = record 116 | src_port: WORD; 117 | dest_port: WORD; 118 | length: WORD; // including this header 119 | checksum: WORD; 120 | end; 121 | {$EXTERNALSYM UDP_HEADER} 122 | TUDPHeader = UDP_HEADER; 123 | PUDPHeader = ^TUDPHeader; 124 | 125 | const 126 | UDP_HEADER_LEN = 8; 127 | {$EXTERNALSYM UDP_HEADER_LEN} 128 | 129 | {$ENDIF JWA_IMPLEMENTATIONSECTION} 130 | 131 | 132 | 133 | {$IFNDEF JWA_OMIT_SECTIONS} 134 | implementation 135 | //uses ... 136 | {$ENDIF JWA_OMIT_SECTIONS} 137 | 138 | 139 | 140 | {$IFNDEF JWA_INTERFACESECTION} 141 | 142 | //your implementation here 143 | {$ENDIF JWA_INTERFACESECTION} 144 | 145 | 146 | 147 | {$IFNDEF JWA_OMIT_SECTIONS} 148 | end. 149 | {$ENDIF JWA_OMIT_SECTIONS} 150 | -------------------------------------------------------------------------------- /3rdParty/JWAPI/jwapi2.2a/Win32API/JwaQosName.pas: -------------------------------------------------------------------------------- 1 | {******************************************************************************} 2 | { } 3 | { Winsock2 QOS Template Names API interface Unit for Object Pascal } 4 | { } 5 | { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft } 6 | { Corporation. All Rights Reserved. } 7 | { } 8 | { The original file is: qosname.h, released June 2000. The original Pascal } 9 | { code is: QosName.pas, released December 2000. The initial developer of the } 10 | { Pascal code is Marcel van Brakel (brakelm att chello dott nl). } 11 | { } 12 | { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 } 13 | { Marcel van Brakel. All Rights Reserved. } 14 | { } 15 | { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) } 16 | { } 17 | { You may retrieve the latest version of this file at the Project JEDI } 18 | { APILIB home page, located at http://jedi-apilib.sourceforge.net } 19 | { } 20 | { The contents of this file are used with permission, subject to the Mozilla } 21 | { Public License Version 1.1 (the "License"); you may not use this file except } 22 | { in compliance with the License. You may obtain a copy of the License at } 23 | { http://www.mozilla.org/MPL/MPL-1.1.html } 24 | { } 25 | { Software distributed under the License is distributed on an "AS IS" basis, } 26 | { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for } 27 | { the specific language governing rights and limitations under the License. } 28 | { } 29 | { Alternatively, the contents of this file may be used under the terms of the } 30 | { GNU Lesser General Public License (the "LGPL License"), in which case the } 31 | { provisions of the LGPL License are applicable instead of those above. } 32 | { If you wish to allow use of your version of this file only under the terms } 33 | { of the LGPL License and not to allow others to use your version of this file } 34 | { under the MPL, indicate your decision by deleting the provisions above and } 35 | { replace them with the notice and other provisions required by the LGPL } 36 | { License. If you do not delete the provisions above, a recipient may use } 37 | { your version of this file under either the MPL or the LGPL License. } 38 | { } 39 | { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html } 40 | { } 41 | {******************************************************************************} 42 | 43 | // $Id: JwaQosName.pas,v 1.10 2007/09/14 06:48:47 marquardt Exp $ 44 | {$IFNDEF JWA_OMIT_SECTIONS} 45 | unit JwaQosName; 46 | 47 | {$WEAKPACKAGEUNIT} 48 | {$ENDIF JWA_OMIT_SECTIONS} 49 | 50 | {$HPPEMIT ''} 51 | {$HPPEMIT '#include "qosname.h"'} 52 | {$HPPEMIT ''} 53 | 54 | {$IFNDEF JWA_OMIT_SECTIONS} 55 | {$I jediapilib.inc} 56 | 57 | interface 58 | 59 | uses 60 | {$IFDEF USE_DELPHI_TYPES} 61 | Windows, 62 | {$ELSE} 63 | JwaWinType, 64 | {$ENDIF USE_DELPHI_TYPES} 65 | JwaWinSock2; 66 | {$ENDIF JWA_OMIT_SECTIONS} 67 | 68 | {$IFNDEF JWA_IMPLEMENTATIONSECTION} 69 | 70 | // Built-in QoS Templates 71 | 72 | const 73 | QT_1 = 'G711'; 74 | {$EXTERNALSYM QT_1} 75 | QT_2 = 'G723.1'; 76 | {$EXTERNALSYM QT_2} 77 | QT_3 = 'G729'; 78 | {$EXTERNALSYM QT_3} 79 | QT_4 = 'H263QCIF'; 80 | {$EXTERNALSYM QT_4} 81 | QT_5 = 'H263CIF'; 82 | {$EXTERNALSYM QT_5} 83 | QT_6 = 'H261QCIF'; 84 | {$EXTERNALSYM QT_6} 85 | QT_7 = 'H261CIF'; 86 | {$EXTERNALSYM QT_7} 87 | QT_8 = 'GSM6.10'; 88 | {$EXTERNALSYM QT_8} 89 | 90 | WSCINSTALL_QOS_TEMPLATE = 'WSCInstallQOSTemplate'; 91 | {$EXTERNALSYM WSCINSTALL_QOS_TEMPLATE} 92 | WSCREMOVE_QOS_TEMPLATE = 'WSCRemoveQOSTemplate'; 93 | {$EXTERNALSYM WSCREMOVE_QOS_TEMPLATE} 94 | WPUGET_QOS_TEMPLATE = 'WPUGetQOSTemplate'; 95 | {$EXTERNALSYM WPUGET_QOS_TEMPLATE} 96 | 97 | type 98 | WSC_INSTALL_QOS_TEMPLATE = function(Guid: PGUID; QosName: LPWSABUF; Qos: LPQOS): BOOL; stdcall; 99 | {$EXTERNALSYM WSC_INSTALL_QOS_TEMPLATE} 100 | 101 | {$IFNDEF JWA_INCLUDEMODE} 102 | TWscInstallQosTemplate = WSC_INSTALL_QOS_TEMPLATE; 103 | {$ENDIF JWA_INCLUDEMODE} 104 | 105 | WSC_REMOVE_QOS_TEMPLATE = function(Guid: PGUID; QosName: LPWSABUF): BOOL; stdcall; 106 | {$EXTERNALSYM WSC_REMOVE_QOS_TEMPLATE} 107 | 108 | {$IFNDEF JWA_INCLUDEMODE} 109 | TWscRemoveQosTemplate = WSC_REMOVE_QOS_TEMPLATE; 110 | {$ENDIF JWA_INCLUDEMODE} 111 | 112 | WPU_GET_QOS_TEMPLATE = function(Guid: PGUID; QosName: LPWSABUF; Qos: LPQOS): BOOL; stdcall; 113 | {$EXTERNALSYM WPU_GET_QOS_TEMPLATE} 114 | TWpuGetQosTemplate = WPU_GET_QOS_TEMPLATE; 115 | 116 | {$ENDIF JWA_IMPLEMENTATIONSECTION} 117 | 118 | {$IFNDEF JWA_OMIT_SECTIONS} 119 | implementation 120 | //uses ... 121 | {$ENDIF JWA_OMIT_SECTIONS} 122 | 123 | {$IFNDEF JWA_INTERFACESECTION} 124 | 125 | //your implementation here 126 | {$ENDIF JWA_INTERFACESECTION} 127 | 128 | {$IFNDEF JWA_OMIT_SECTIONS} 129 | end. 130 | {$ENDIF JWA_OMIT_SECTIONS} 131 | -------------------------------------------------------------------------------- /3rdParty/JWAPI/jwapi2.2a/Win32API/JwaRpc.pas: -------------------------------------------------------------------------------- 1 | {******************************************************************************} 2 | { } 3 | { RPC API interface Unit for Object Pascal } 4 | { } 5 | { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft } 6 | { Corporation. All Rights Reserved. } 7 | { } 8 | { The original file is: rpc.h, released June 2000. The original Pascal } 9 | { code is: Rpc.pas, released December 2000. The initial developer of the } 10 | { Pascal code is Marcel van Brakel (brakelm att chello dott nl). } 11 | { } 12 | { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 } 13 | { Marcel van Brakel. All Rights Reserved. } 14 | { } 15 | { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) } 16 | { } 17 | { You may retrieve the latest version of this file at the Project JEDI } 18 | { APILIB home page, located at http://jedi-apilib.sourceforge.net } 19 | { } 20 | { The contents of this file are used with permission, subject to the Mozilla } 21 | { Public License Version 1.1 (the "License"); you may not use this file except } 22 | { in compliance with the License. You may obtain a copy of the License at } 23 | { http://www.mozilla.org/MPL/MPL-1.1.html } 24 | { } 25 | { Software distributed under the License is distributed on an "AS IS" basis, } 26 | { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for } 27 | { the specific language governing rights and limitations under the License. } 28 | { } 29 | { Alternatively, the contents of this file may be used under the terms of the } 30 | { GNU Lesser General Public License (the "LGPL License"), in which case the } 31 | { provisions of the LGPL License are applicable instead of those above. } 32 | { If you wish to allow use of your version of this file only under the terms } 33 | { of the LGPL License and not to allow others to use your version of this file } 34 | { under the MPL, indicate your decision by deleting the provisions above and } 35 | { replace them with the notice and other provisions required by the LGPL } 36 | { License. If you do not delete the provisions above, a recipient may use } 37 | { your version of this file under either the MPL or the LGPL License. } 38 | { } 39 | { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html } 40 | { } 41 | {******************************************************************************} 42 | 43 | // $Id: JwaRpc.pas,v 1.11 2007/09/14 06:48:47 marquardt Exp $ 44 | {$IFNDEF JWA_OMIT_SECTIONS} 45 | unit JwaRpc; 46 | 47 | {$WEAKPACKAGEUNIT} 48 | {$ENDIF JWA_OMIT_SECTIONS} 49 | 50 | {$HPPEMIT ''} 51 | {$HPPEMIT '#include "Rpc.h"'} 52 | {$HPPEMIT ''} 53 | 54 | {$IFNDEF JWA_OMIT_SECTIONS} 55 | 56 | {$I jediapilib.inc} 57 | 58 | interface 59 | {$ENDIF JWA_OMIT_SECTIONS} 60 | 61 | {$IFNDEF JWA_IMPLEMENTATIONSECTION} 62 | type 63 | I_RPC_HANDLE = Pointer; 64 | {$EXTERNALSYM I_RPC_HANDLE} 65 | 66 | {$IFNDEF JWA_INCLUDEMODE} 67 | RPC_STATUS = Longint; 68 | {$EXTERNALSYM RPC_STATUS} 69 | {$ENDIF JWA_INCLUDEMODE} 70 | 71 | {$ENDIF JWA_IMPLEMENTATIONSECTION} 72 | 73 | {$IFNDEF JWA_OMIT_SECTIONS} 74 | implementation 75 | //uses ... 76 | {$ENDIF JWA_OMIT_SECTIONS} 77 | 78 | {$IFNDEF JWA_INTERFACESECTION} 79 | //your implementation here 80 | {$ENDIF JWA_INTERFACESECTION} 81 | 82 | 83 | {$IFNDEF JWA_OMIT_SECTIONS} 84 | end. 85 | {$ENDIF JWA_OMIT_SECTIONS} 86 | -------------------------------------------------------------------------------- /3rdParty/JWAPI/jwapi2.2a/Win32API/JwaSchemaDef.pas: -------------------------------------------------------------------------------- 1 | {******************************************************************************} 2 | { } 3 | { Visual Styles (Themes) API interface Unit for Object Pascal } 4 | { } 5 | { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft } 6 | { Corporation. All Rights Reserved. } 7 | { } 8 | { The original file is: schemadef.h, released June 2001. The original Pascal } 9 | { code is: SchemaDef.pas, released July 2001. The initial developer of the } 10 | { Pascal code is Marcel van Brakel (brakelm att chello dott nl). } 11 | { } 12 | { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 } 13 | { Marcel van Brakel. All Rights Reserved. } 14 | { } 15 | { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) } 16 | { } 17 | { You may retrieve the latest version of this file at the Project JEDI } 18 | { APILIB home page, located at http://jedi-apilib.sourceforge.net } 19 | { } 20 | { The contents of this file are used with permission, subject to the Mozilla } 21 | { Public License Version 1.1 (the "License"); you may not use this file except } 22 | { in compliance with the License. You may obtain a copy of the License at } 23 | { http://www.mozilla.org/MPL/MPL-1.1.html } 24 | { } 25 | { Software distributed under the License is distributed on an "AS IS" basis, } 26 | { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for } 27 | { the specific language governing rights and limitations under the License. } 28 | { } 29 | { Alternatively, the contents of this file may be used under the terms of the } 30 | { GNU Lesser General Public License (the "LGPL License"), in which case the } 31 | { provisions of the LGPL License are applicable instead of those above. } 32 | { If you wish to allow use of your version of this file only under the terms } 33 | { of the LGPL License and not to allow others to use your version of this file } 34 | { under the MPL, indicate your decision by deleting the provisions above and } 35 | { replace them with the notice and other provisions required by the LGPL } 36 | { License. If you do not delete the provisions above, a recipient may use } 37 | { your version of this file under either the MPL or the LGPL License. } 38 | { } 39 | { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html } 40 | { } 41 | {******************************************************************************} 42 | 43 | // $Id: JwaSchemaDef.pas,v 1.7 2007/09/05 11:58:52 dezipaitor Exp $ 44 | {$IFNDEF JWA_OMIT_SECTIONS} 45 | unit JwaSchemaDef; 46 | 47 | {$WEAKPACKAGEUNIT} 48 | {$ENDIF JWA_OMIT_SECTIONS} 49 | 50 | {$HPPEMIT ''} 51 | {$HPPEMIT '#include "schemadef.h"'} 52 | {$HPPEMIT ''} 53 | 54 | {$IFNDEF JWA_OMIT_SECTIONS} 55 | {$I jediapilib.inc} 56 | 57 | interface 58 | 59 | uses 60 | JwaWinType; 61 | {$ENDIF JWA_OMIT_SECTIONS} 62 | 63 | {$IFNDEF JWA_IMPLEMENTATIONSECTION} 64 | 65 | const 66 | SCHEMADEF_VERSION = 1; // defines the exported func(s) implemented 67 | {$EXTERNALSYM SCHEMADEF_VERSION} 68 | 69 | type 70 | TMPROPINFO = record 71 | pszName: LPCWSTR; 72 | sEnumVal: Short; 73 | bPrimVal: Byte; 74 | end; 75 | {$EXTERNALSYM TMPROPINFO} 76 | TTmPropInfo = TMPROPINFO; 77 | PTmPropInfo = ^TMPROPINFO; 78 | 79 | TMSCHEMAINFO = record 80 | dwSize: DWORD; // size of this struct 81 | iSchemaDefVersion: Integer; // version number from this file 82 | iThemeMgrVersion: Integer; // version number from "thschema.h" 83 | iPropCount: Integer; // # of entries in prop table 84 | pPropTable: PTmPropInfo; // ptr to prop table 85 | end; 86 | {$EXTERNALSYM TMSCHEMAINFO} 87 | TTmSchemaInfo = TMSCHEMAINFO; 88 | PTmSchemaInfo = ^TMSCHEMAINFO; 89 | 90 | {$ENDIF JWA_IMPLEMENTATIONSECTION} 91 | 92 | 93 | 94 | {$IFNDEF JWA_OMIT_SECTIONS} 95 | implementation 96 | //uses ... 97 | {$ENDIF JWA_OMIT_SECTIONS} 98 | 99 | 100 | 101 | {$IFNDEF JWA_INTERFACESECTION} 102 | 103 | {$ENDIF JWA_INTERFACESECTION} 104 | 105 | 106 | 107 | {$IFNDEF JWA_OMIT_SECTIONS} 108 | end. 109 | {$ENDIF JWA_OMIT_SECTIONS} 110 | -------------------------------------------------------------------------------- /3rdParty/JWAPI/jwapi2.2a/Win32API/JwaSecurity.pas: -------------------------------------------------------------------------------- 1 | {******************************************************************************} 2 | { } 3 | { Security API interface Unit for Object Pascal } 4 | { } 5 | { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft } 6 | { Corporation. All Rights Reserved. } 7 | { } 8 | { The original file is: security.h, released June 2000. The original Pascal } 9 | { code is: Security.pas, released December 2000. The initial developer of the } 10 | { Pascal code is Marcel van Brakel (brakelm att chello dott nl). } 11 | { } 12 | { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 } 13 | { Marcel van Brakel. All Rights Reserved. } 14 | { } 15 | { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) } 16 | { } 17 | { You may retrieve the latest version of this file at the Project JEDI } 18 | { APILIB home page, located at http://jedi-apilib.sourceforge.net } 19 | { } 20 | { The contents of this file are used with permission, subject to the Mozilla } 21 | { Public License Version 1.1 (the "License"); you may not use this file except } 22 | { in compliance with the License. You may obtain a copy of the License at } 23 | { http://www.mozilla.org/MPL/MPL-1.1.html } 24 | { } 25 | { Software distributed under the License is distributed on an "AS IS" basis, } 26 | { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for } 27 | { the specific language governing rights and limitations under the License. } 28 | { } 29 | { Alternatively, the contents of this file may be used under the terms of the } 30 | { GNU Lesser General Public License (the "LGPL License"), in which case the } 31 | { provisions of the LGPL License are applicable instead of those above. } 32 | { If you wish to allow use of your version of this file only under the terms } 33 | { of the LGPL License and not to allow others to use your version of this file } 34 | { under the MPL, indicate your decision by deleting the provisions above and } 35 | { replace them with the notice and other provisions required by the LGPL } 36 | { License. If you do not delete the provisions above, a recipient may use } 37 | { your version of this file under either the MPL or the LGPL License. } 38 | { } 39 | { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html } 40 | { } 41 | {******************************************************************************} 42 | 43 | // $Id: JwaSecurity.pas,v 1.7 2007/09/14 06:48:47 marquardt Exp $ 44 | {$IFNDEF JWA_OMIT_SECTIONS} 45 | unit JwaSecurity; 46 | 47 | {$WEAKPACKAGEUNIT} 48 | {$ENDIF JWA_OMIT_SECTIONS} 49 | 50 | {$HPPEMIT ''} 51 | {$HPPEMIT '#include "security.h"'} 52 | {$HPPEMIT ''} 53 | 54 | {$IFNDEF JWA_OMIT_SECTIONS} 55 | {$I jediapilib.inc} 56 | 57 | interface 58 | {$ENDIF JWA_OMIT_SECTIONS} 59 | 60 | {$IFNDEF JWA_IMPLEMENTATIONSECTION} 61 | 62 | // This file will go out and pull in all the header files that you need, 63 | // based on defines that you issue. The following macros are used. 64 | // 65 | // SECURITY_KERNEL Use the kernel interface, not the usermode 66 | // 67 | 68 | // 69 | // These are name that can be used to refer to the builtin packages 70 | // 71 | 72 | const 73 | NTLMSP_NAME_A = 'NTLM'; 74 | {$EXTERNALSYM NTLMSP_NAME_A} 75 | NTLMSP_NAME = WideString('NTLM'); 76 | {$EXTERNALSYM NTLMSP_NAME} 77 | 78 | {$IFNDEF JWA_INCLUDEMODE} 79 | MICROSOFT_KERBEROS_NAME_A = 'Kerberos'; 80 | {$EXTERNALSYM MICROSOFT_KERBEROS_NAME_A} 81 | MICROSOFT_KERBEROS_NAME_W = WideString('Kerberos'); 82 | {$EXTERNALSYM MICROSOFT_KERBEROS_NAME_W} 83 | 84 | // (rom) WIN32_CHICAGO replaced by UNICODE 85 | {$IFDEF UNICODE} 86 | MICROSOFT_KERBEROS_NAME = MICROSOFT_KERBEROS_NAME_W; 87 | {$EXTERNALSYM MICROSOFT_KERBEROS_NAME} 88 | {$ELSE} 89 | MICROSOFT_KERBEROS_NAME = MICROSOFT_KERBEROS_NAME_A; 90 | {$EXTERNALSYM MICROSOFT_KERBEROS_NAME} 91 | {$ENDIF UNICODE} 92 | {$ENDIF JWA_INCLUDEMODE} 93 | 94 | NEGOSSP_NAME_W = WideString('Negotiate'); 95 | {$EXTERNALSYM NEGOSSP_NAME_W} 96 | NEGOSSP_NAME_A = 'Negotiate'; 97 | {$EXTERNALSYM NEGOSSP_NAME_A} 98 | 99 | {$IFDEF UNICODE} 100 | NEGOSSP_NAME = NEGOSSP_NAME_W; 101 | {$EXTERNALSYM NEGOSSP_NAME} 102 | {$ELSE} 103 | NEGOSSP_NAME = NEGOSSP_NAME_A; 104 | {$EXTERNALSYM NEGOSSP_NAME} 105 | {$ENDIF UNICODE} 106 | 107 | {$ENDIF JWA_IMPLEMENTATIONSECTION} 108 | 109 | {$IFNDEF JWA_OMIT_SECTIONS} 110 | implementation 111 | //uses ... 112 | {$ENDIF JWA_OMIT_SECTIONS} 113 | 114 | 115 | {$IFNDEF JWA_INTERFACESECTION} 116 | //your implementation here 117 | {$ENDIF JWA_INTERFACESECTION} 118 | 119 | 120 | 121 | {$IFNDEF JWA_OMIT_SECTIONS} 122 | end. 123 | {$ENDIF JWA_OMIT_SECTIONS} 124 | -------------------------------------------------------------------------------- /3rdParty/JWAPI/jwapi2.2a/Win32API/JwaSens.pas: -------------------------------------------------------------------------------- 1 | {******************************************************************************} 2 | { } 3 | { System Event Notification Services API interface Unit for Object Pascal } 4 | { } 5 | { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft } 6 | { Corporation. All Rights Reserved. } 7 | { } 8 | { The original file is: sens.h, released March 2003. The original Pascal } 9 | { code is: Sens.pas, released April 2003. The initial developer of the } 10 | { Pascal code is Marcel van Brakel (brakelm att chello dott nl). } 11 | { } 12 | { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 } 13 | { Marcel van Brakel. All Rights Reserved. } 14 | { } 15 | { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) } 16 | { } 17 | { You may retrieve the latest version of this file at the Project JEDI } 18 | { APILIB home page, located at http://jedi-apilib.sourceforge.net } 19 | { } 20 | { The contents of this file are used with permission, subject to the Mozilla } 21 | { Public License Version 1.1 (the "License"); you may not use this file except } 22 | { in compliance with the License. You may obtain a copy of the License at } 23 | { http://www.mozilla.org/MPL/MPL-1.1.html } 24 | { } 25 | { Software distributed under the License is distributed on an "AS IS" basis, } 26 | { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for } 27 | { the specific language governing rights and limitations under the License. } 28 | { } 29 | { Alternatively, the contents of this file may be used under the terms of the } 30 | { GNU Lesser General Public License (the "LGPL License"), in which case the } 31 | { provisions of the LGPL License are applicable instead of those above. } 32 | { If you wish to allow use of your version of this file only under the terms } 33 | { of the LGPL License and not to allow others to use your version of this file } 34 | { under the MPL, indicate your decision by deleting the provisions above and } 35 | { replace them with the notice and other provisions required by the LGPL } 36 | { License. If you do not delete the provisions above, a recipient may use } 37 | { your version of this file under either the MPL or the LGPL License. } 38 | { } 39 | { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html } 40 | { } 41 | {******************************************************************************} 42 | 43 | // $Id: JwaSens.pas,v 1.5 2007/09/05 11:58:52 dezipaitor Exp $ 44 | {$IFNDEF JWA_OMIT_SECTIONS} 45 | unit JwaSens; 46 | 47 | {$WEAKPACKAGEUNIT} 48 | {$ENDIF JWA_OMIT_SECTIONS} 49 | 50 | {$HPPEMIT ''} 51 | {$HPPEMIT '#include "Sens.h"'} 52 | {$HPPEMIT ''} 53 | 54 | {$IFNDEF JWA_OMIT_SECTIONS} 55 | {$I jediapilib.inc} 56 | 57 | interface 58 | {$ENDIF JWA_OMIT_SECTIONS} 59 | 60 | {$IFNDEF JWA_IMPLEMENTATIONSECTION} 61 | 62 | // 63 | // Constants 64 | // 65 | 66 | const 67 | CONNECTION_LAN = $00000001; 68 | {$EXTERNALSYM CONNECTION_LAN} 69 | CONNECTION_WAN = $00000002; 70 | {$EXTERNALSYM CONNECTION_WAN} 71 | CONNECTION_AOL = $00000004; 72 | {$EXTERNALSYM CONNECTION_AOL} 73 | 74 | // 75 | // SENS Guids related to Event System 76 | // 77 | 78 | SENSGUID_PUBLISHER: TGUID = '{5fee1bd6-5b9b-11d1-8dd2-00aa004abd5e}'; 79 | {$EXTERNALSYM SENSGUID_PUBLISHER} 80 | SENSGUID_SUBSCRIBER_LCE: TGUID = '{d3938ab0-5b9d-11d1-8dd2-00aa004abd5e}'; 81 | {$EXTERNALSYM SENSGUID_SUBSCRIBER_LCE} 82 | SENSGUID_SUBSCRIBER_WININET: TGUID = '{d3938ab5-5b9d-11d1-8dd2-00aa004abd5e}'; 83 | {$EXTERNALSYM SENSGUID_SUBSCRIBER_WININET} 84 | 85 | // 86 | // Classes of Events published by SENS 87 | // 88 | 89 | SENSGUID_EVENTCLASS_NETWORK: TGUID = '{d5978620-5b9f-11d1-8dd2-00aa004abd5e}'; 90 | {$EXTERNALSYM SENSGUID_EVENTCLASS_NETWORK} 91 | SENSGUID_EVENTCLASS_LOGON: TGUID = '{d5978630-5b9f-11d1-8dd2-00aa004abd5e}'; 92 | {$EXTERNALSYM SENSGUID_EVENTCLASS_LOGON} 93 | SENSGUID_EVENTCLASS_ONNOW: TGUID = '{d5978640-5b9f-11d1-8dd2-00aa004abd5e}'; 94 | {$EXTERNALSYM SENSGUID_EVENTCLASS_ONNOW} 95 | SENSGUID_EVENTCLASS_LOGON2: TGUID = '{d5978650-5b9f-11d1-8dd2-00aa004abd5e}'; 96 | {$EXTERNALSYM SENSGUID_EVENTCLASS_LOGON2} 97 | 98 | {$ENDIF JWA_IMPLEMENTATIONSECTION} 99 | 100 | 101 | 102 | {$IFNDEF JWA_OMIT_SECTIONS} 103 | implementation 104 | //uses ... 105 | {$ENDIF JWA_OMIT_SECTIONS} 106 | 107 | 108 | 109 | {$IFNDEF JWA_INTERFACESECTION} 110 | 111 | {$ENDIF JWA_INTERFACESECTION} 112 | 113 | 114 | 115 | {$IFNDEF JWA_OMIT_SECTIONS} 116 | end. 117 | {$ENDIF JWA_OMIT_SECTIONS} 118 | -------------------------------------------------------------------------------- /3rdParty/JWAPI/jwapi2.2a/Win32API/JwaStrSafe.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magicmonty/delphi-code-coverage/1ccafdced4b18edec54d9bc55d67bcc9045e9043/3rdParty/JWAPI/jwapi2.2a/Win32API/JwaStrSafe.obj -------------------------------------------------------------------------------- /3rdParty/JWAPI/jwapi2.2a/Win32API/JwaWSvns.pas: -------------------------------------------------------------------------------- 1 | {******************************************************************************} 2 | { } 3 | { Winsock2 Vines IP API interface Unit for Object Pascal } 4 | { } 5 | { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft } 6 | { Corporation. All Rights Reserved. } 7 | { } 8 | { The original file is: wsvns.h, released June 2000. The original Pascal } 9 | { code is: WSvns.pas, released December 2000. The initial developer of the } 10 | { Pascal code is Marcel van Brakel (brakelm att chello dott nl). } 11 | { } 12 | { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 } 13 | { Marcel van Brakel. All Rights Reserved. } 14 | { } 15 | { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) } 16 | { } 17 | { You may retrieve the latest version of this file at the Project JEDI } 18 | { APILIB home page, located at http://jedi-apilib.sourceforge.net } 19 | { } 20 | { The contents of this file are used with permission, subject to the Mozilla } 21 | { Public License Version 1.1 (the "License"); you may not use this file except } 22 | { in compliance with the License. You may obtain a copy of the License at } 23 | { http://www.mozilla.org/MPL/MPL-1.1.html } 24 | { } 25 | { Software distributed under the License is distributed on an "AS IS" basis, } 26 | { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for } 27 | { the specific language governing rights and limitations under the License. } 28 | { } 29 | { Alternatively, the contents of this file may be used under the terms of the } 30 | { GNU Lesser General Public License (the "LGPL License"), in which case the } 31 | { provisions of the LGPL License are applicable instead of those above. } 32 | { If you wish to allow use of your version of this file only under the terms } 33 | { of the LGPL License and not to allow others to use your version of this file } 34 | { under the MPL, indicate your decision by deleting the provisions above and } 35 | { replace them with the notice and other provisions required by the LGPL } 36 | { License. If you do not delete the provisions above, a recipient may use } 37 | { your version of this file under either the MPL or the LGPL License. } 38 | { } 39 | { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html } 40 | { } 41 | {******************************************************************************} 42 | 43 | // $Id: JwaWSvns.pas,v 1.5 2007/09/05 11:58:53 dezipaitor Exp $ 44 | {$IFNDEF JWA_OMIT_SECTIONS} 45 | unit JwaWSvns; 46 | 47 | {$WEAKPACKAGEUNIT} 48 | {$ENDIF JWA_OMIT_SECTIONS} 49 | 50 | {$HPPEMIT ''} 51 | {$HPPEMIT '#include "wsvns.h"'} 52 | {$HPPEMIT ''} 53 | 54 | 55 | {$IFNDEF JWA_OMIT_SECTIONS} 56 | {$I jediapilib.inc} 57 | 58 | interface 59 | 60 | uses 61 | JwaWinSock2; 62 | {$ENDIF JWA_OMIT_SECTIONS} 63 | {$IFNDEF JWA_IMPLEMENTATIONSECTION} 64 | 65 | // 66 | // Windows Sockets include file for VINES IP. This file contains all 67 | // standardized VINES IP information. Include this header file after winsock.h. 68 | // 69 | // To open an VINES IP socket, call socket() with an address family of AF_BAN, a 70 | // socket type of SOCK_DGRAM, SOCK_STREAM, or SOCK_SEQPACKET, and protocol of 0. 71 | // 72 | 73 | // 74 | // Socket address, VINES IP style. Address fields and port field are defined 75 | // as a sequence of bytes. This is done because they are byte ordered 76 | // BIG ENDIAN, ala most significant byte first. 77 | // 78 | 79 | type 80 | SOCKADDR_VNS = record 81 | sin_family: u_short; // = AF_BAN 82 | net_address: array [0..3] of u_char; // network address 83 | subnet_addr: array [0..1] of u_char; // subnet address 84 | port: array [0..1] of u_char; // msb=port[0], lsb=port[1] 85 | hops: u_char; // # hops for broadcasts 86 | filler: array [0..4] of u_char; // filler, zeros 87 | end; 88 | {$EXTERNALSYM SOCKADDR_VNS} 89 | PSOCKADDR_VNS = ^SOCKADDR_VNS; 90 | {$EXTERNALSYM PSOCKADDR_VNS} 91 | LPSOCKADDR_VNS = ^SOCKADDR_VNS; 92 | {$EXTERNALSYM LPSOCKADDR_VNS} 93 | TSockAddrVNS = SOCKADDR_VNS; 94 | PSockAddrVNS = LPSOCKADDR_VNS; 95 | 96 | const 97 | VNSPROTO_IPC = 1; 98 | {$EXTERNALSYM VNSPROTO_IPC} 99 | VNSPROTO_RELIABLE_IPC = 2; 100 | {$EXTERNALSYM VNSPROTO_RELIABLE_IPC} 101 | VNSPROTO_SPP = 3; 102 | {$EXTERNALSYM VNSPROTO_SPP} 103 | {$ENDIF JWA_IMPLEMENTATIONSECTION} 104 | 105 | {$IFNDEF JWA_OMIT_SECTIONS} 106 | implementation 107 | //uses ... 108 | {$ENDIF JWA_OMIT_SECTIONS} 109 | 110 | 111 | {$IFNDEF JWA_INTERFACESECTION} 112 | //your implementation here 113 | {$ENDIF JWA_INTERFACESECTION} 114 | 115 | 116 | {$IFNDEF JWA_OMIT_SECTIONS} 117 | end. 118 | {$ENDIF JWA_OMIT_SECTIONS} 119 | -------------------------------------------------------------------------------- /3rdParty/JWAPI/jwapi2.2a/Win32API/JwaWabMem.pas: -------------------------------------------------------------------------------- 1 | {******************************************************************************} 2 | { } 3 | { Windows Address Book (WAB) API interface Unit for Object Pascal } 4 | { } 5 | { Portions created by Microsoft are Copyright (C) 1995-2008 Microsoft } 6 | { Corporation. All Rights Reserved. } 7 | { } 8 | { Portions created by Microsoft are } 9 | { Copyright (C) 1995-2000 Microsoft Corporation. } 10 | { All Rights Reserved. } 11 | { } 12 | { The original file is: wabmem.h, released 31 Jan 2000. } 13 | { The original Pascal code is: WabMem.pas, released 15 Mar 2000. } 14 | { The initial developer of the Pascal code is Petr Vones } 15 | { (petr.v@mujmail.cz). } 16 | { } 17 | { Portions created by Petr Vones are } 18 | { Copyright (C) 2000 Petr Vones } 19 | { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) } 20 | { } 21 | { You may retrieve the latest version of this file at the Project JEDI } 22 | { APILIB home page, located at http://jedi-apilib.sourceforge.net } 23 | { } 24 | { The contents of this file are used with permission, subject to the Mozilla } 25 | { Public License Version 1.1 (the "License"); you may not use this file except } 26 | { in compliance with the License. You may obtain a copy of the License at } 27 | { http://www.mozilla.org/MPL/MPL-1.1.html } 28 | { } 29 | { Software distributed under the License is distributed on an "AS IS" basis, } 30 | { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for } 31 | { the specific language governing rights and limitations under the License. } 32 | { } 33 | { Alternatively, the contents of this file may be used under the terms of the } 34 | { GNU Lesser General Public License (the "LGPL License"), in which case the } 35 | { provisions of the LGPL License are applicable instead of those above. } 36 | { If you wish to allow use of your version of this file only under the terms } 37 | { of the LGPL License and not to allow others to use your version of this file } 38 | { under the MPL, indicate your decision by deleting the provisions above and } 39 | { replace them with the notice and other provisions required by the LGPL } 40 | { License. If you do not delete the provisions above, a recipient may use } 41 | { your version of this file under either the MPL or the LGPL License. } 42 | { } 43 | { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html } 44 | { } 45 | {******************************************************************************} 46 | 47 | {$IFNDEF JWA_OMIT_SECTIONS} 48 | unit JwaWabMem; 49 | 50 | interface 51 | 52 | uses 53 | Windows, ActiveX, JwaWabApi; 54 | 55 | {$ALIGN ON} 56 | {$MINENUMSIZE 4} 57 | {$WEAKPACKAGEUNIT} 58 | 59 | (*$HPPEMIT '#include '*) 60 | 61 | {$I jediapilib.inc} 62 | 63 | 64 | {$ENDIF JWA_OMIT_SECTIONS} 65 | 66 | 67 | {$IFNDEF JWA_IMPLEMENTATIONSECTION} 68 | 69 | type 70 | PMapiAllocateBuffer = ^TMapiAllocateBuffer; 71 | MAPIALLOCATEBUFFER = function (cbSize: ULONG; var lppBuffer: Pointer): SCODE; stdcall; 72 | {$EXTERNALSYM MAPIALLOCATEBUFFER} 73 | TMapiAllocateBuffer = MAPIALLOCATEBUFFER; 74 | 75 | PMapiAllocateMore = ^TMapiAllocateMore; 76 | MAPIALLOCATEMORE = function (cbSize: ULONG; lpObject: Pointer; 77 | var lppBuffer: Pointer): SCODE; stdcall; 78 | {$EXTERNALSYM MAPIALLOCATEMORE} 79 | TMapiAllocateMore = MAPIALLOCATEMORE; 80 | 81 | PMapiFreeBuffer = ^TMapiFreeBuffer; 82 | MAPIFREEBUFFER = function (lpBuffer: Pointer): SCODE; stdcall; 83 | {$EXTERNALSYM MAPIFREEBUFFER} 84 | TMapiFreeBuffer = MAPIFREEBUFFER; 85 | 86 | PWabAllocateBuffer = ^TWabAllocateBuffer; 87 | WABALLOCATEBUFFER = function (lpWABObject: IWabObject; cbSize: ULONG; 88 | var lppBuffer: Pointer): SCODE; stdcall; 89 | {$EXTERNALSYM WABALLOCATEBUFFER} 90 | TWabAllocateBuffer = WABALLOCATEBUFFER; 91 | 92 | PWabAllocateMore = ^TWabAllocateMore; 93 | WABALLOCATEMORE = function (lpWABObject: IWabObject; cbSize: ULONG; 94 | lpObject: Pointer; var lppBuffer: Pointer): SCODE; stdcall; 95 | {$EXTERNALSYM WABALLOCATEMORE} 96 | TWabAllocateMore = WABALLOCATEMORE; 97 | 98 | PWabFreeBuffer = ^TWabFreeBuffer; 99 | WABFREEBUFFER = function (lpWABObject: IWabObject; lppBuffer: Pointer): SCODE; stdcall; 100 | {$EXTERNALSYM WABFREEBUFFER} 101 | TWabFreeBuffer = WABFREEBUFFER; 102 | 103 | {$ENDIF JWA_IMPLEMENTATIONSECTION} 104 | 105 | {$IFNDEF JWA_OMIT_SECTIONS} 106 | implementation 107 | {$ENDIF JWA_OMIT_SECTIONS} 108 | 109 | {$IFNDEF JWA_INTERFACESECTION} 110 | {$ENDIF JWA_INTERFACESECTION} 111 | 112 | {$IFNDEF JWA_OMIT_SECTIONS} 113 | end. 114 | {$ENDIF JWA_OMIT_SECTIONS} 115 | -------------------------------------------------------------------------------- /3rdParty/JWAPI/jwapi2.2a/Win32API/JwaWabTags.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magicmonty/delphi-code-coverage/1ccafdced4b18edec54d9bc55d67bcc9045e9043/3rdParty/JWAPI/jwapi2.2a/Win32API/JwaWabTags.pas -------------------------------------------------------------------------------- /3rdParty/JWAPI/jwapi2.2a/Win32API/JwaWinResrc.pas: -------------------------------------------------------------------------------- 1 | {******************************************************************************} 2 | { } 3 | { API interface Unit for Object Pascal } 4 | { } 5 | { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft } 6 | { Corporation. All Rights Reserved. } 7 | { } 8 | { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 } 9 | { Marcel van Brakel. All Rights Reserved. } 10 | { } 11 | { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) } 12 | { } 13 | { You may retrieve the latest version of this file at the Project JEDI } 14 | { APILIB home page, located at http://jedi-apilib.sourceforge.net } 15 | { } 16 | { The contents of this file are used with permission, subject to the Mozilla } 17 | { Public License Version 1.1 (the "License"); you may not use this file except } 18 | { in compliance with the License. You may obtain a copy of the License at } 19 | { http://www.mozilla.org/MPL/MPL-1.1.html } 20 | { } 21 | { Software distributed under the License is distributed on an "AS IS" basis, } 22 | { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for } 23 | { the specific language governing rights and limitations under the License. } 24 | { } 25 | { Alternatively, the contents of this file may be used under the terms of the } 26 | { GNU Lesser General Public License (the "LGPL License"), in which case the } 27 | { provisions of the LGPL License are applicable instead of those above. } 28 | { If you wish to allow use of your version of this file only under the terms } 29 | { of the LGPL License and not to allow others to use your version of this file } 30 | { under the MPL, indicate your decision by deleting the provisions above and } 31 | { replace them with the notice and other provisions required by the LGPL } 32 | { License. If you do not delete the provisions above, a recipient may use } 33 | { your version of this file under either the MPL or the LGPL License. } 34 | { } 35 | { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html } 36 | { } 37 | {******************************************************************************} 38 | 39 | // $Id: JwaWinResrc.pas,v 1.5 2007/09/05 11:58:54 dezipaitor Exp $ 40 | {$IFNDEF JWA_OMIT_SECTIONS} 41 | unit JwaWinResrc; 42 | 43 | {$WEAKPACKAGEUNIT} 44 | {$ENDIF JWA_OMIT_SECTIONS} 45 | 46 | {$HPPEMIT ''} 47 | {$HPPEMIT '#include "winresrc.h"'} 48 | {$HPPEMIT ''} 49 | 50 | {$IFNDEF JWA_OMIT_SECTIONS} 51 | {$I jediapilib.inc} 52 | 53 | interface 54 | 55 | {$ENDIF JWA_OMIT_SECTIONS} 56 | 57 | 58 | 59 | {$IFNDEF JWA_IMPLEMENTATIONSECTION} 60 | 61 | const 62 | WINVER = $0500; 63 | {$EXTERNALSYM WINVER} 64 | _WIN32_IE = $0501; 65 | {$EXTERNALSYM _WIN32_IE} 66 | _WIN32_WINDOWS = $0410; 67 | {$EXTERNALSYM _WIN32_WINDOWS} 68 | _WIN32_WINNT = $0500; 69 | {$EXTERNALSYM _WIN32_WINNT} 70 | 71 | { 72 | #include 73 | #include 74 | #include 75 | #include 76 | #include 77 | #include 78 | } 79 | 80 | {$ENDIF JWA_IMPLEMENTATIONSECTION} 81 | 82 | 83 | 84 | {$IFNDEF JWA_OMIT_SECTIONS} 85 | implementation 86 | //uses ... 87 | {$ENDIF JWA_OMIT_SECTIONS} 88 | 89 | 90 | 91 | {$IFNDEF JWA_INTERFACESECTION} 92 | 93 | {$ENDIF JWA_INTERFACESECTION} 94 | 95 | 96 | {$IFNDEF JWA_OMIT_SECTIONS} 97 | end. 98 | {$ENDIF JWA_OMIT_SECTIONS} 99 | -------------------------------------------------------------------------------- /3rdParty/JWAPI/jwapi2.2a/Win32API/_JwaTemplate.pas: -------------------------------------------------------------------------------- 1 | {******************************************************************************} 2 | { } 3 | { XXXX API interface Unit for Object Pascal } 4 | { } 5 | { Portions created by Microsoft are Copyright (C) 1995-2008 Microsoft } 6 | { Corporation. All Rights Reserved. } 7 | { } 8 | { Portions created by XXXXXXXXXXXXXXXXX are Copyright (C) xxxx-xxxx } 9 | { XXXXXXXXXXXXXXXXX. All Rights Reserved. } 10 | { } 11 | { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) } 12 | { } 13 | { You may retrieve the latest version of this file at the Project JEDI } 14 | { APILIB home page, located at http://jedi-apilib.sourceforge.net } 15 | { } 16 | { The contents of this file are used with permission, subject to the Mozilla } 17 | { Public License Version 1.1 (the "License"); you may not use this file except } 18 | { in compliance with the License. You may obtain a copy of the License at } 19 | { http://www.mozilla.org/MPL/MPL-1.1.html } 20 | { } 21 | { Software distributed under the License is distributed on an "AS IS" basis, } 22 | { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for } 23 | { the specific language governing rights and limitations under the License. } 24 | { } 25 | { Alternatively, the contents of this file may be used under the terms of the } 26 | { GNU Lesser General Public License (the "LGPL License"), in which case the } 27 | { provisions of the LGPL License are applicable instead of those above. } 28 | { If you wish to allow use of your version of this file only under the terms } 29 | { of the LGPL License and not to allow others to use your version of this file } 30 | { under the MPL, indicate your decision by deleting the provisions above and } 31 | { replace them with the notice and other provisions required by the LGPL } 32 | { License. If you do not delete the provisions above, a recipient may use } 33 | { your version of this file under either the MPL or the LGPL License. } 34 | { } 35 | { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html } 36 | { } 37 | {******************************************************************************} 38 | 39 | This unit is a template! Adapt it for new JEDI API units. Don't override it. 40 | 41 | {$IFNDEF JWA_OMIT_SECTIONS} 42 | unit Jwa; 43 | 44 | {$HPPEMIT ''} 45 | {$HPPEMIT '#include "xxxx.h"'} 46 | {$HPPEMIT ''} 47 | 48 | {$I jediapilib.inc} 49 | {$IFNDEF JWA_OMIT_SECTIONS} 50 | 51 | 52 | interface 53 | 54 | {$IFDEF JWA_WINDOWS} 55 | uses JwaWindows; 56 | {$ELSE} 57 | uses ; 58 | {$ENDIF JWA_WINDOWS} 59 | 60 | 61 | {$ENDIF JWA_OMIT_SECTIONS} 62 | 63 | 64 | 65 | {$IFNDEF JWA_IMPLEMENTATIONSECTION} 66 | //add here public interface definition 67 | 68 | {$ENDIF JWA_IMPLEMENTATIONSECTION} 69 | 70 | 71 | 72 | {$IFNDEF JWA_OMIT_SECTIONS} 73 | implementation 74 | uses JwaWinDllNames; 75 | {$ENDIF JWA_OMIT_SECTIONS} 76 | 77 | 78 | 79 | {$IFNDEF JWA_INTERFACESECTION} 80 | //add here implementation stuff 81 | 82 | 83 | 84 | 85 | {$IFNDEF JWA_INCLUDEMODE} 86 | const 87 | _LIB = '.dll'; 88 | {$IFDEF UNICODE} 89 | AWSuffix = 'W'; 90 | {$ELSE} 91 | AWSuffix = 'A'; 92 | {$ENDIF UNICODE} 93 | {$ENDIF JWA_INCLUDEMODE} 94 | 95 | {$IFDEF DYNAMIC_LINK} 96 | 97 | var 98 | _: Pointer; 99 | 100 | function ; 101 | begin 102 | GetProcedureAddress(__LIB, ''); 103 | asm 104 | MOV ESP, EBP 105 | POP EBP 106 | JMP [_; external _LIB name ''; 114 | 115 | {$ENDIF DYNAMIC_LINK} 116 | 117 | {$ENDIF JWA_INTERFACESECTION} 118 | 119 | 120 | 121 | {$IFNDEF JWA_OMIT_SECTIONS} 122 | end. 123 | {$ENDIF JWA_OMIT_SECTIONS} 124 | -------------------------------------------------------------------------------- /3rdParty/JWAPI/jwapi2.2a/Win32API/readmefirst.txt: -------------------------------------------------------------------------------- 1 | This is the try to include all converted header files into one unit. 2 | 3 | PLEASE READ THIS FIRST! 4 | 5 | Be aware that there are some already created packages in the folder: \trunk\packages 6 | You can use them in your Delphi version. Older packages can be converted by newer Delphi versions 7 | so it is not a problem that there are many empty Delphi version folders. 8 | Just use an old package version with your Delphi and let it recreate then copy it to a folder that describes the version correctly. 9 | You can help make JWA better by sending us the Delphi version package. 10 | 11 | You can get a deeper understanding if you continue reading.... 12 | 13 | 14 | To compile the bunch of files do these simple steps: 15 | 16 | 1. create a package with a name and location of your choice 17 | 2. add the file jwaWindows.pas - and only this file to the package (except jwaVista.pas for Vista structures) 18 | 3. add source path to common files (usually located in a folder named "Common") 19 | 4. Choose between dynamic or static binding by set the compiler switch 20 | DYNAMIC_LINK or unset it. You can change this in jwaWindows.pas. Open it to edit. 21 | You can also set WINXXX, where XXX is a Windows version to include or exclude 22 | functions (un)supported by Windows versions. This is done in common\jediapilib.inc 23 | 24 | 5. Choose an output path for the files that will be created by Delphi. You can change it in the setting/options dialog of the package. 25 | 7. Also set the options optimization and debugger option in the setting page as you want. 26 | 8. Compile the package. It will need its time. 27 | 9. If everything went fine you'll find a file called jwaWindows.dcu (jwaVista.dcu) that you can use in your programs. Remember each delphi version needs its own version of that file. 28 | You have to repeat the compilation in each delphi version you want to use. 29 | The advantage is that you can rebuild your project without rebuilding all API files. 30 | 31 | To use jwaWindows.dcu you can copy it in your project folder or 32 | Add a search path into your project settings. Delphi comes with a global path settings that would be the right choice here. 33 | You can change it in menu Tools->Environment Options-> tab Library 34 | -> Library path. 35 | 36 | If you also add the source file folder to the debug path in your project/global settings , you can browse the source code without compiling it. 37 | 38 | 39 | The common\jediapilib.inc contains some compiler directives (like WINXP, WINVISTA) that shows or hides function declarations that are only 40 | available on these plattforms. Make sure you use them wisely. Especially you can prevent your application from starting if you use static 41 | function binding with these functions. Your app will not start if you use a Vista only function because it is unknown to Windows XP or even 2000. 42 | Windows 2003 also contains some functions that are not available to Xp. Windows XP contains a known function (WNetRestoreConnectionW) that is no longer 43 | available in Windows Vista. 44 | 45 | Using dynamic binding is a safe way to make your applications startable under all Windows versions. However your problem will only be postponed 46 | to a later failure point. You must make sure that these functions are supported by the operation system where your app is intended to be run. 47 | The MSDN provides information wich OS supports a particular function. 48 | 49 | 50 | Additional information can be found at the mailing list 51 | http://sourceforge.net/mailarchive/forum.php?thread_name=4759DDA0.7080801%40gmx.de&forum_name=jedi-apilib-wscl 52 | 53 | Subscribe here: 54 | http://sourceforge.net/mail/?group_id=121894 55 | 56 | 57 | December 2007 58 | Christian Wimmer (dezipaitor(at)gmx.de) 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /3rdParty/StrUtilsD9.pas: -------------------------------------------------------------------------------- 1 | // Implementation of needed Helpers for Delphi < XE 2 | unit StrUtilsD9; 3 | 4 | interface 5 | 6 | uses 7 | Types; 8 | 9 | function SplitString(const S, Delimiters: string): TStringDynArray; 10 | 11 | implementation 12 | 13 | uses 14 | Generics.Collections, 15 | StrUtils; 16 | 17 | function SplitString(const S, Delimiters: string): TStringDynArray; 18 | var 19 | delimiterIndex: Integer; 20 | currentDelimiter: Char; 21 | delimiterPositions: TList; 22 | currentDelimiterPosition, nextDelimiterPosition: Integer; 23 | i: Integer; 24 | begin 25 | {$IF CompilerVersion >= 21} 26 | Result := StrUtils.SplitString(S, Delimiters); 27 | Exit; 28 | {$IFEND} 29 | 30 | SetLength(Result, 0); 31 | delimiterPositions := TList.Create; 32 | try 33 | for delimiterIndex := 1 to Length(Delimiters) do 34 | begin 35 | currentDelimiter := Delimiters[delimiterIndex]; 36 | currentDelimiterPosition := Pos(currentDelimiter, S); 37 | while currentDelimiterPosition > 0 do 38 | begin 39 | if not delimiterPositions.Contains(currentDelimiterPosition) then 40 | delimiterPositions.Add(currentDelimiterPosition); 41 | currentDelimiterPosition := PosEx(currentDelimiter, S, currentDelimiterPosition + 1); 42 | end; 43 | end; 44 | 45 | if delimiterPositions.Count = 0 then 46 | begin 47 | SetLength(Result, 1); 48 | Result[0] := S; 49 | end 50 | else 51 | begin 52 | SetLength(Result, delimiterPositions.Count + 1); 53 | delimiterPositions.Sort; 54 | for i := 0 to delimiterPositions.Count do 55 | begin 56 | if i = 0 then 57 | currentDelimiterPosition := 0 58 | else 59 | currentDelimiterPosition := delimiterPositions[i - 1]; 60 | if i = delimiterPositions.Count then 61 | nextDelimiterPosition := Length(S) + 1 62 | else 63 | nextDelimiterPosition := delimiterPositions[i]; 64 | 65 | 66 | Result[i] := Copy(S, currentDelimiterPosition + 1, nextDelimiterPosition - currentDelimiterPosition - 1); 67 | end; 68 | end; 69 | finally 70 | delimiterPositions.Clear; 71 | delimiterPositions.Free; 72 | end; 73 | 74 | end; 75 | 76 | end. 77 | -------------------------------------------------------------------------------- /CodeCoverage/BreakpointList.pas: -------------------------------------------------------------------------------- 1 | (**************************************************************) 2 | (* Delphi Code Coverage *) 3 | (* *) 4 | (* A quick hack of a Code Coverage Tool for Delphi 2010 *) 5 | (* by Christer Fahlgren and Nick Ring *) 6 | (**************************************************************) 7 | (* Licensed under Mozilla Public License 1.1 *) 8 | (**************************************************************) 9 | 10 | unit BreakPointList; 11 | 12 | interface 13 | 14 | {$INCLUDE CodeCoverage.inc} 15 | 16 | uses 17 | JclStringLists, 18 | I_BreakPoint, 19 | I_BreakPointList; 20 | 21 | type 22 | TBreakPointList = class(TInterfacedObject, IBreakPointList) 23 | strict private 24 | FBreakPointLst: IJclStringList; 25 | public 26 | function GetBreakPoint(const AIndex: Integer): IBreakPoint; 27 | property BreakPoint[const AIndex: Integer]: IBreakPoint read GetBreakPoint; default; 28 | 29 | function GetBreakPointByAddress(const AAddress: Pointer): IBreakPoint; 30 | property BreakPointByAddress[const AAddress: Pointer]: IBreakPoint read GetBreakPointByAddress; 31 | 32 | constructor Create; 33 | destructor Destroy; override; 34 | 35 | procedure Add(const ABreakPoint: IBreakPoint); 36 | 37 | function Count: Integer; 38 | procedure SetCapacity(const AValue: Integer); 39 | end; 40 | 41 | implementation 42 | 43 | uses 44 | Classes, 45 | SysUtils; 46 | 47 | constructor TBreakPointList.Create; 48 | begin 49 | inherited; 50 | 51 | FBreakPointLst := TJclStringList.Create; 52 | FBreakPointLst.Sorted := True; 53 | FBreakPointLst.Duplicates := dupError; 54 | end; 55 | 56 | destructor TBreakPointList.Destroy; 57 | begin 58 | FBreakPointLst := nil; 59 | 60 | inherited; 61 | end; 62 | 63 | function TBreakPointList.GetBreakPoint(const AIndex: Integer): IBreakPoint; 64 | begin 65 | Result := IBreakPoint(FBreakPointLst.Interfaces[AIndex]); 66 | end; 67 | 68 | function TBreakPointList.Count: Integer; 69 | begin 70 | Result := FBreakPointLst.Count; 71 | end; 72 | 73 | procedure TBreakPointList.Add(const ABreakPoint: IBreakPoint); 74 | begin 75 | FBreakPointLst.KeyInterface[IntToHex(Integer(ABreakPoint.Address), 8)] := ABreakPoint; 76 | end; 77 | 78 | function TBreakPointList.GetBreakPointByAddress(const AAddress: Pointer): IBreakPoint; 79 | begin 80 | Result := IBreakPoint(FBreakPointLst.KeyInterface[IntToHex(Integer(AAddress), 8)]); 81 | end; 82 | 83 | procedure TBreakPointList.SetCapacity(const AValue: Integer); 84 | begin 85 | FBreakPointLst.Capacity := AValue; 86 | end; 87 | 88 | end. 89 | -------------------------------------------------------------------------------- /CodeCoverage/CodeCoverage.dpr: -------------------------------------------------------------------------------- 1 | program CodeCoverage; 2 | {$APPTYPE CONSOLE} 3 | 4 | {$INCLUDE CodeCoverage.inc} 5 | 6 | uses 7 | FastMM4, 8 | SysUtils, 9 | BreakPoint in 'BreakPoint.pas', 10 | BreakpointList in 'BreakpointList.pas', 11 | CommandLineProvider in 'CommandLineProvider.pas', 12 | CoverageConfiguration in 'CoverageConfiguration.pas', 13 | CoverageStats in 'CoverageStats.pas', 14 | HTMLCoverageReport in 'HTMLCoverageReport.pas', 15 | Debugger in 'Debugger.pas', 16 | DebugProcess in 'DebugProcess.pas', 17 | DebugThread in 'DebugThread.pas', 18 | I_BreakPoint in 'I_BreakPoint.pas', 19 | I_BreakPointList in 'I_BreakPointList.pas', 20 | I_CoverageConfiguration in 'I_CoverageConfiguration.pas', 21 | I_CoverageStats in 'I_CoverageStats.pas', 22 | I_Debugger in 'I_Debugger.pas', 23 | I_DebugProcess in 'I_DebugProcess.pas', 24 | I_DebugThread in 'I_DebugThread.pas', 25 | I_Logger in 'I_Logger.pas', 26 | I_LogManager in 'I_LogManager.pas', 27 | I_ParameterProvider in 'I_ParameterProvider.pas', 28 | I_Report in 'I_Report.pas', 29 | JclDebug in 'JclDebug.pas', 30 | LoggerAPI in 'LoggerAPI.pas', 31 | LoggerTextFile in 'LoggerTextFile.pas', 32 | LogManager in 'LogManager.pas', 33 | XMLCoverageReport in 'XMLCoverageReport.pas', 34 | ClassInfoUnit in 'ClassInfoUnit.pas', 35 | CoverageDataUnit in 'CoverageDataUnit.pas', 36 | EmmaDataFile in 'EmmaDataFile.pas', 37 | FileHelper in 'FileHelper.pas', 38 | MergableUnit in 'MergableUnit.pas', 39 | MetaDataUnit in 'MetaDataUnit.pas', 40 | EmmaCoverageFileUnit in 'EmmaCoverageFileUnit.pas', 41 | DebugModule in 'DebugModule.pas', 42 | I_DebugModule in 'I_DebugModule.pas', 43 | ModuleNameSpaceUnit in 'ModuleNameSpaceUnit.pas', 44 | uConsoleOutput in 'uConsoleOutput.pas', 45 | HtmlHelper in 'HtmlHelper.pas'; 46 | 47 | {$Include FastMM4Options.inc} 48 | var 49 | // Delphi 7 leaks interfaces from here :-( 50 | ADebugger: TDebugger; 51 | {$define FullDebugMode} 52 | begin 53 | try 54 | ADebugger := TDebugger.Create; 55 | try 56 | ADebugger.Start(); 57 | finally 58 | ADebugger.Free; 59 | end; 60 | except 61 | on E: Exception do 62 | WriteLn(E.ClassName, ': ', E.message); 63 | end; 64 | end. 65 | 66 | -------------------------------------------------------------------------------- /CodeCoverage/CodeCoverage.inc: -------------------------------------------------------------------------------- 1 | {$I jedi.inc} // Pull in the JCL/J-VCL shared directives 2 | 3 | -------------------------------------------------------------------------------- /CodeCoverage/CommandLineProvider.pas: -------------------------------------------------------------------------------- 1 | (**************************************************************) 2 | (* Delphi Code Coverage *) 3 | (* *) 4 | (* A quick hack of a Code Coverage Tool for Delphi 2010 *) 5 | (* by Christer Fahlgren and Nick Ring *) 6 | (**************************************************************) 7 | (* Licensed under Mozilla Public License 1.1 *) 8 | (**************************************************************) 9 | 10 | unit CommandLineProvider; 11 | 12 | interface 13 | 14 | {$INCLUDE CodeCoverage.inc} 15 | 16 | uses 17 | I_ParameterProvider; 18 | 19 | type 20 | TCommandLineProvider = class(TInterfacedObject, IParameterProvider) 21 | private 22 | function Count: Integer; 23 | public 24 | function ParamString(const AIndex: Integer): string; 25 | end; 26 | 27 | implementation 28 | 29 | uses 30 | SysUtils; 31 | 32 | function TCommandLineProvider.Count: Integer; 33 | begin 34 | Result := ParamCount; 35 | end; 36 | 37 | function TCommandLineProvider.ParamString(const AIndex: Integer): string; 38 | begin 39 | if AIndex > Count then 40 | raise EParameterIndexException.Create('Parameter AIndex:' + IntToStr(AIndex) + ' out of bounds.'); 41 | Result := ParamStr(AIndex); 42 | end; 43 | 44 | end. 45 | -------------------------------------------------------------------------------- /CodeCoverage/CoverageDataUnit.pas: -------------------------------------------------------------------------------- 1 | (* ************************************************************ *) 2 | (* Delphi Code Coverage *) 3 | (* *) 4 | (* A quick hack of a Code Coverage Tool for Delphi 2010 *) 5 | (* by Christer Fahlgren and Nick Ring *) 6 | (* ************************************************************ *) 7 | (* Licensed under Mozilla Public License 1.1 *) 8 | (* ************************************************************ *) 9 | 10 | unit CoverageDataUnit; 11 | 12 | interface 13 | 14 | uses 15 | Classes, 16 | Generics.Collections, 17 | MergableUnit, 18 | FileHelper; 19 | 20 | type 21 | 22 | TDataHolder = class 23 | private 24 | FClassName: string; 25 | FCoverageArray: TMultiBooleanArray; 26 | FStamp: Int64; 27 | FMultiBooleanArray: TMultiBooleanArray; 28 | FTheClassName: string; 29 | public 30 | property Stamp: Int64 read FStamp; 31 | property MultiBooleanArray: TMultiBooleanArray read FMultiBooleanArray; 32 | property TheClassName: string read FTheClassName; 33 | 34 | constructor Create( 35 | const AClassName: string; 36 | const AStamp: Int64; 37 | var AMultiBooleanArray: TMultiBooleanArray); 38 | end; 39 | 40 | TEmmaCoverageData = class(TMergable) 41 | private 42 | FClassList: TList; 43 | public 44 | procedure LoadFromFile(const DataInput: IEmmaDataInput); override; 45 | function ToString: string; override; 46 | constructor Create; 47 | destructor Destroy; override; 48 | function GetEntryLength: Int64; override; 49 | function GetEntryType: Byte; override; 50 | procedure WriteToFile(DataOutput: IEmmaDataOutput); override; 51 | procedure Add(const ADataHolder: TDataHolder); 52 | end; 53 | 54 | implementation 55 | 56 | uses sysutils; 57 | 58 | constructor TDataHolder.Create( 59 | const AClassName: string; 60 | const AStamp: Int64; 61 | var AMultiBooleanArray: TMultiBooleanArray); 62 | begin 63 | inherited Create; 64 | 65 | FClassName := AClassName; 66 | FCoverageArray := AMultiBooleanArray; 67 | FStamp := AStamp; 68 | end; 69 | 70 | constructor TEmmaCoverageData.Create; 71 | begin 72 | inherited Create; 73 | 74 | FClassList := TList.Create; 75 | end; 76 | 77 | destructor TEmmaCoverageData.Destroy; 78 | var 79 | CurrentDataHolder: TDataHolder; 80 | begin 81 | for CurrentDataHolder in FClassList do 82 | CurrentDataHolder.Free; 83 | 84 | FClassList.Destroy; 85 | inherited Destroy; 86 | end; 87 | 88 | procedure TEmmaCoverageData.LoadFromFile(const DataInput: IEmmaDataInput); 89 | var 90 | Size: Integer; 91 | Coverage: TMultiBooleanArray; 92 | I: Integer; 93 | Length: Integer; 94 | ClassVMName: String; 95 | Stamp: Int64; 96 | C: Integer; 97 | begin 98 | Size := DataInput.ReadInteger; 99 | 100 | for I := 0 to Size - 1 do 101 | begin 102 | ClassVMName := DataInput.ReadUTF; 103 | Stamp := DataInput.ReadInt64; 104 | Length := DataInput.ReadInteger; 105 | SetLength(Coverage, Length); 106 | for C := 0 to Length - 1 do 107 | DataInput.ReadBooleanArray(Coverage[C]); 108 | FClassList.Add(TDataHolder.Create(ClassVMName, Stamp, Coverage)); 109 | end; 110 | end; 111 | 112 | procedure TEmmaCoverageData.WriteToFile(DataOutput: IEmmaDataOutput); 113 | var 114 | I: Integer; 115 | DataHolder: TDataHolder; 116 | begin 117 | DataOutput.WriteInteger(FClassList.Count); 118 | for DataHolder in FClassList do 119 | begin 120 | DataOutput.WriteUTF(DataHolder.TheClassName); 121 | DataOutput.WriteInt64(DataHolder.Stamp); 122 | DataOutput.WriteInteger(Length(DataHolder.MultiBooleanArray)); 123 | for I := 0 to High(DataHolder.MultiBooleanArray) do 124 | DataOutput.WriteBooleanArray(DataHolder.MultiBooleanArray[I]); 125 | end; 126 | end; 127 | 128 | function TEmmaCoverageData.ToString: string; 129 | var 130 | DataHolder: TDataHolder; 131 | BoolArr: TMultiBooleanArray; 132 | i, j: Integer; 133 | begin 134 | Result := ''; 135 | for DataHolder in FClassList do 136 | begin 137 | if (DataHolder <> nil) then 138 | begin 139 | Result := Result + ' EC[ class:' + DataHolder.TheClassName + ' '; 140 | Result := Result + ' stamp:' + IntToStr(DataHolder.Stamp) + ' '; 141 | BoolArr := DataHolder.MultiBooleanArray; 142 | for i := 0 to Length(BoolArr) - 1 do 143 | begin 144 | Result := Result + ' Method:' + IntToStr(i); 145 | for j := 0 to Length(BoolArr[i]) - 1 do 146 | begin 147 | if (BoolArr[i])[j] then 148 | Result := Result + ' block:' + IntToStr(j) + ': covered ' 149 | else 150 | Result := Result + ' block:' + IntToStr(j) + ': not covered '; 151 | end; 152 | end; 153 | Result := Result + ']'; 154 | end; 155 | end; 156 | end; 157 | 158 | function TEmmaCoverageData.GetEntryLength: Int64; 159 | var 160 | DataHolder: TDataHolder; 161 | i: Integer; 162 | begin 163 | Result := 0; 164 | Result := Result + SizeOf(Integer); 165 | 166 | for DataHolder in FClassList do 167 | begin 168 | Result := Result + FileHelper.GetUtf8Length(DataHolder.TheClassName); 169 | Result := Result + SizeOf(DataHolder.Stamp); 170 | Result := Result + SizeOf(Integer); 171 | for i := 0 to High(DataHolder.MultiBooleanArray) do 172 | Result := Result + FileHelper.GetEntryLength(DataHolder.MultiBooleanArray[i]); 173 | end; 174 | end; 175 | 176 | function TEmmaCoverageData.GetEntryType: Byte; 177 | begin 178 | Result := 1; 179 | end; 180 | 181 | procedure TEmmaCoverageData.Add(const ADataHolder: TDataHolder); 182 | begin 183 | FClassList.Add(ADataHolder); 184 | end; 185 | 186 | end. 187 | -------------------------------------------------------------------------------- /CodeCoverage/DebugModule.pas: -------------------------------------------------------------------------------- 1 | (* ************************************************************ *) 2 | (* Delphi Code Coverage *) 3 | (* *) 4 | (* A quick hack of a Code Coverage Tool for Delphi 2010 *) 5 | (* by Christer Fahlgren and Nick Ring *) 6 | (* ************************************************************ *) 7 | (* Licensed under Mozilla Public License 1.1 *) 8 | (* ************************************************************ *) 9 | 10 | unit DebugModule; 11 | 12 | interface 13 | 14 | uses 15 | Classes, 16 | I_DebugModule, 17 | JCLDebug; 18 | 19 | type 20 | TDebugModule = class(TInterfacedObject, IDebugModule) 21 | strict private 22 | FName: String; 23 | FBase: HMODULE; 24 | FSize: Cardinal; 25 | FMapScanner: TJCLMapScanner; 26 | public 27 | function Name: string; 28 | function Base: HMODULE; 29 | function Size: Cardinal; 30 | function MapScanner: TJCLMapScanner; 31 | 32 | constructor Create( 33 | const AName: string; 34 | const ABase: HMODULE; 35 | const ASize: Cardinal; 36 | const AMapScanner: TJCLMapScanner); 37 | end; 38 | 39 | implementation 40 | 41 | constructor TDebugModule.Create( 42 | const AName: string; 43 | const ABase: HMODULE; 44 | const ASize: Cardinal; 45 | const AMapScanner: TJCLMapScanner); 46 | begin 47 | inherited Create; 48 | FName := AName; 49 | FBase := ABase; 50 | FSize := ASize; 51 | FMapScanner := AMapScanner; 52 | end; 53 | 54 | function TDebugModule.Name; 55 | begin 56 | Result := FName; 57 | end; 58 | 59 | function TDebugModule.Base; 60 | begin 61 | Result := FBase; 62 | end; 63 | 64 | function TDebugModule.Size: Cardinal; 65 | begin 66 | Result := FSize; 67 | end; 68 | 69 | function TDebugModule.MapScanner; 70 | begin 71 | Result := FMapScanner; 72 | end; 73 | 74 | end. 75 | -------------------------------------------------------------------------------- /CodeCoverage/DebugThread.pas: -------------------------------------------------------------------------------- 1 | (**************************************************************) 2 | (* Delphi Code Coverage *) 3 | (* *) 4 | (* A quick hack of a Code Coverage Tool for Delphi 2010 *) 5 | (* by Christer Fahlgren and Nick Ring *) 6 | (**************************************************************) 7 | (* Licensed under Mozilla Public License 1.1 *) 8 | (**************************************************************) 9 | 10 | unit DebugThread; 11 | 12 | interface 13 | 14 | {$INCLUDE CodeCoverage.inc} 15 | 16 | uses 17 | Windows, 18 | I_DebugThread; 19 | 20 | type 21 | TDebugThread = class(TInterfacedObject, IDebugThread) 22 | private 23 | FThreadId: DWORD; 24 | FThreadHandle: THandle; 25 | public 26 | constructor Create(const AThreadId: DWORD; const AThreadHandle: THandle); 27 | 28 | function Handle: THandle;{$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} 29 | function Id: DWORD;{$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} 30 | end; 31 | 32 | implementation 33 | 34 | constructor TDebugThread.Create( 35 | const AThreadId: DWORD; 36 | const AThreadHandle: THandle); 37 | begin 38 | inherited Create; 39 | 40 | FThreadId := AThreadId; 41 | FThreadHandle := AThreadHandle; 42 | end; 43 | 44 | function TDebugThread.Handle: THandle; 45 | begin 46 | Result := FThreadHandle; 47 | end; 48 | 49 | function TDebugThread.Id: DWORD; 50 | begin 51 | Result := FThreadId; 52 | end; 53 | 54 | end. 55 | 56 | -------------------------------------------------------------------------------- /CodeCoverage/EmmaDataFile.pas: -------------------------------------------------------------------------------- 1 | (* ************************************************************ *) 2 | (* Delphi Code Coverage *) 3 | (* *) 4 | (* A quick hack of a Code Coverage Tool for Delphi 2010 *) 5 | (* by Christer Fahlgren and Nick Ring *) 6 | (* ************************************************************ *) 7 | (* Licensed under Mozilla Public License 1.1 *) 8 | (* ************************************************************ *) 9 | 10 | unit EmmaDataFile; 11 | 12 | interface 13 | 14 | uses 15 | Classes, 16 | Generics.Collections, 17 | MergableUnit; 18 | 19 | type 20 | TEmmaFile = class 21 | private 22 | FMergables: TList; 23 | public 24 | constructor Create; 25 | destructor Destroy; override; 26 | procedure Add(const AMergable: TMergable); 27 | procedure Read(const AFile: TStream); 28 | procedure Write(AFile: TStream); 29 | end; 30 | 31 | implementation 32 | 33 | uses 34 | FileHelper, 35 | MetaDataUnit, 36 | SysUtils, 37 | uConsoleOutput, 38 | CoverageDataUnit; 39 | 40 | const 41 | SKIP_LENGTH = 3 * 4; 42 | TYPE_METADATA = 0; 43 | 44 | constructor TEmmaFile.Create; 45 | begin 46 | inherited Create; 47 | 48 | FMergables := TList.create; 49 | end; 50 | 51 | destructor TEmmaFile.Destroy; 52 | begin 53 | FMergables.Free; 54 | inherited Destroy; 55 | end; 56 | 57 | procedure TEmmaFile.Add(const AMergable: TMergable); 58 | begin 59 | FMergables.Add(AMergable); 60 | end; 61 | 62 | procedure TEmmaFile.Read(const AFile: TStream); 63 | var 64 | MagicValue: array [0 .. 3] of Byte; 65 | FileHeaderBuffer: array [0 .. SKIP_LENGTH - 1] of Byte; 66 | 67 | i: Int64; 68 | BytesRead: Integer; 69 | EntryLength: Int64; 70 | EntryType: Byte; 71 | Mergable: TMergable; 72 | DataInput: IEmmaDataInput; 73 | begin 74 | DataInput := TEmmaDataInput.Create(AFile); 75 | AFile.Read(MagicValue[0], 4); 76 | 77 | i := DataInput.ReadInt64; 78 | if (i = $20) then 79 | begin 80 | VerboseOutput('Yes, version 2.0'); 81 | BytesRead := AFile.Read(FileHeaderBuffer, SKIP_LENGTH); 82 | if (BytesRead <> SKIP_LENGTH) then 83 | raise Exception.Create('Consuming file header, but file ended unexpectedly'); 84 | 85 | while AFile.Position < AFile.Size do 86 | begin 87 | EntryLength := DataInput.ReadInt64; 88 | EntryType := DataInput.ReadByte; 89 | VerboseOutput('EntryLength:' + IntToStr(EntryLength)); 90 | VerboseOutput('EntryType:' + IntToStr(EntryType)); 91 | if (EntryType = TYPE_METADATA) then 92 | begin 93 | Mergable := TEmmaMetaData.Create; 94 | Mergable.LoadFromFile(DataInput); 95 | FMergables.Add(Mergable); 96 | end 97 | else 98 | begin 99 | Mergable := TEmmaCoverageData.Create; 100 | Mergable.LoadFromFile(DataInput); 101 | FMergables.Add(Mergable); 102 | end; 103 | end; 104 | end 105 | else 106 | ConsoleOutput('ERROR: Not version 2.0)'); 107 | end; 108 | 109 | procedure TEmmaFile.Write(AFile: TStream); 110 | var 111 | Buffer: array [0 .. 3] of Byte; 112 | Mergable: TMergable; 113 | DataOutput: IEmmaDataOutput; 114 | begin 115 | DataOutput := TEmmaDataOutput.Create(AFile); 116 | Buffer[0] := Byte('E'); 117 | Buffer[1] := Byte('M'); 118 | Buffer[2] := Byte('M'); 119 | Buffer[3] := Byte('A'); 120 | 121 | AFile.Write(Buffer[0], 4); 122 | 123 | // Write file version 124 | DataOutput.WriteInt64($00000020); 125 | // Write file header with application version info 126 | DataOutput.WriteInteger($2); 127 | DataOutput.WriteInteger(0); 128 | DataOutput.WriteInteger($14C0); 129 | 130 | for Mergable in FMergables do 131 | begin 132 | DataOutput.WriteInt64(Mergable.EntryLength); 133 | DataOutput.WriteByte(Mergable.EntryType); 134 | Mergable.WriteToFile(DataOutput); 135 | end; 136 | end; 137 | 138 | end. 139 | -------------------------------------------------------------------------------- /CodeCoverage/HtmlHelper.pas: -------------------------------------------------------------------------------- 1 | unit HtmlHelper; 2 | 3 | interface 4 | 5 | function StartTag(const ATag: string; const ATagAttributes: string = ''): string; 6 | function EndTag(const ATag: string): string; 7 | function WrapTag(const AValue: string; const ATag: string; const ATagAttributes: string = ''): string; 8 | 9 | function p(const AValue: string): string; 10 | function bold(const AValue: string): string; 11 | function heading(const AValue: string; const ALevel: Byte): string; 12 | function td(const AValue: string): string; 13 | function th(const AValue: string): string; 14 | function tr(const AValue: string; const AAttributes: string = ''): string; 15 | function table(const AValue: string; const AAttributes: string = ''): string; 16 | function em(const AValue: string): string; 17 | function pre(const AValue: string): string; 18 | function link( 19 | const AValue: string; 20 | const AHref: string; 21 | const ATitle: string = ''): string; 22 | function lineBreak: string; 23 | function italics(const AValue: string): string; 24 | 25 | implementation 26 | 27 | uses 28 | SysUtils; 29 | 30 | function StartTag(const ATag: string; const ATagAttributes: string = ''): string; 31 | begin 32 | Result := '<' + LowerCase(ATag); 33 | if ATagAttributes <> '' then 34 | Result := Result + ' ' + ATagAttributes; 35 | Result := Trim(Result) + '>'; 36 | end; 37 | 38 | function EndTag(const ATag: string): string; 39 | begin 40 | Result := ''; 41 | end; 42 | 43 | function WrapTag(const AValue: string; const ATag: string; const ATagAttributes: string = ''): string; 44 | begin 45 | Result := StartTag(ATag, ATagAttributes) + AValue + EndTag(ATag); 46 | end; 47 | 48 | function p(const AValue: string): string; 49 | begin 50 | Result := WrapTag(AValue, 'p'); 51 | end; 52 | 53 | function bold(const AValue: string): string; 54 | begin 55 | Result := WrapTag(AValue, 'strong'); 56 | end; 57 | 58 | function heading(const AValue: string; const ALevel: Byte): string; 59 | begin 60 | Result := WrapTag(AValue, 'h' + IntToStr(ALevel)); 61 | end; 62 | 63 | function td(const AValue: string): string; 64 | begin 65 | Result := WrapTag(AValue, 'td'); 66 | end; 67 | 68 | function th(const AValue: string): string; 69 | begin 70 | Result := WrapTag(AValue, 'th'); 71 | end; 72 | 73 | function tr(const AValue: string; const AAttributes: string = ''): string; 74 | begin 75 | Result := WrapTag(AValue, 'tr', AAttributes); 76 | end; 77 | 78 | function table(const AValue: string; const AAttributes: string = ''): string; 79 | begin 80 | Result := WrapTag(AValue, 'table', AAttributes); 81 | end; 82 | 83 | function em(const AValue: string): string; 84 | begin 85 | Result := WrapTag(AValue, 'em'); 86 | end; 87 | 88 | function pre(const AValue: string): string; 89 | begin 90 | Result := WrapTag(AValue, 'pre', 'style="display:inline;"'); 91 | end; 92 | 93 | function link( 94 | const AValue: string; 95 | const AHref: string; 96 | const ATitle: string = ''): string; 97 | var 98 | TagAttributes: string; 99 | begin 100 | if Trim(AHref) <> '' then 101 | TagAttributes := 'href="' + Trim(AHref) + '"'; 102 | 103 | if Trim(ATitle) <> '' then 104 | TagAttributes := TagAttributes + ' title="' + Trim(ATitle) + '"'; 105 | 106 | Result := WrapTag(AValue, 'a', TagAttributes); 107 | end; 108 | 109 | function lineBreak: string; 110 | begin 111 | Result := '
'; 112 | end; 113 | 114 | function italics(const AValue: string): string; 115 | begin 116 | Result := WrapTag(AValue, 'i'); 117 | end; 118 | 119 | 120 | end. 121 | -------------------------------------------------------------------------------- /CodeCoverage/I_BreakPoint.pas: -------------------------------------------------------------------------------- 1 | (**************************************************************) 2 | (* Delphi Code Coverage *) 3 | (* *) 4 | (* A quick hack of a Code Coverage Tool for Delphi 2010 *) 5 | (* by Christer Fahlgren and Nick Ring *) 6 | (**************************************************************) 7 | (* Licensed under Mozilla Public License 1.1 *) 8 | (**************************************************************) 9 | 10 | unit I_BreakPoint; 11 | 12 | interface 13 | 14 | {$INCLUDE CodeCoverage.inc} 15 | 16 | uses 17 | I_DebugThread, I_DebugModule; 18 | 19 | type 20 | TBreakPointDetail = record 21 | ModuleName : string; 22 | UnitName : string; 23 | Line : Integer; 24 | end; 25 | 26 | type 27 | IBreakPoint = interface 28 | procedure Clear(const AThread: IDebugThread); 29 | 30 | function Activate: Boolean; 31 | 32 | function Address: Pointer; 33 | function Module: IDebugModule; 34 | 35 | function DetailCount: Integer; 36 | function DetailByIndex(const AIndex: Integer): TBreakPointDetail; 37 | procedure AddDetails( 38 | const AModuleName: string; 39 | const AUnitName: string; 40 | const ALineNumber: Integer); 41 | 42 | function IsActive: Boolean; 43 | 44 | function GetCovered: Boolean; 45 | procedure SetCovered(const ACovered: Boolean); 46 | property IsCovered: Boolean read GetCovered write SetCovered; 47 | end; 48 | 49 | 50 | implementation 51 | 52 | end. 53 | -------------------------------------------------------------------------------- /CodeCoverage/I_BreakpointList.pas: -------------------------------------------------------------------------------- 1 | (**************************************************************) 2 | (* Delphi Code Coverage *) 3 | (* *) 4 | (* A quick hack of a Code Coverage Tool for Delphi 2010 *) 5 | (* by Christer Fahlgren and Nick Ring *) 6 | (**************************************************************) 7 | (* Licensed under Mozilla Public License 1.1 *) 8 | (**************************************************************) 9 | 10 | unit I_BreakPointList; 11 | 12 | interface 13 | 14 | {$INCLUDE CodeCoverage.inc} 15 | 16 | uses 17 | I_BreakPoint; 18 | 19 | type 20 | IBreakPointList = interface 21 | procedure SetCapacity(const AValue: Integer); 22 | 23 | procedure Add(const ABreakPoint: IBreakPoint); 24 | 25 | function Count: Integer; 26 | function GetBreakPoint(const AIndex: Integer): IBreakPoint; 27 | property BreakPoint[const AIndex: Integer]: IBreakPoint read GetBreakPoint; default; 28 | 29 | function GetBreakPointByAddress(const AAddress: Pointer): IBreakPoint; 30 | property BreakPointByAddress[const AAddress: Pointer]: IBreakPoint read GetBreakPointByAddress; 31 | end; 32 | 33 | implementation 34 | 35 | end. 36 | -------------------------------------------------------------------------------- /CodeCoverage/I_CoverageConfiguration.pas: -------------------------------------------------------------------------------- 1 | (**************************************************************) 2 | (* Delphi Code Coverage *) 3 | (* *) 4 | (* A quick hack of a Code Coverage Tool for Delphi 2010 *) 5 | (* by Christer Fahlgren and Nick Ring *) 6 | (**************************************************************) 7 | (* Licensed under Mozilla Public License 1.1 *) 8 | (**************************************************************) 9 | 10 | unit I_CoverageConfiguration; 11 | 12 | interface 13 | 14 | {$INCLUDE CodeCoverage.inc} 15 | 16 | uses 17 | Classes, 18 | ModuleNameSpaceUnit, 19 | I_LogManager; 20 | 21 | type 22 | ICoverageConfiguration = interface 23 | procedure ParseCommandLine(const ALogManager: ILogManager = nil); 24 | 25 | function ApplicationParameters: string; 26 | function ExeFileName: string; 27 | function MapFileName: string; 28 | function OutputDir: string; 29 | function SourceDir: string; 30 | function SourcePaths: TStrings; 31 | function Units: TStrings; 32 | function ExcludedUnits: TStrings; 33 | function DebugLogFile: string; 34 | function UseApiDebug: Boolean; 35 | function IsComplete(var AReason: string): Boolean; 36 | function EmmaOutput: Boolean; 37 | function SeparateMeta: Boolean; 38 | function XmlOutput: Boolean; 39 | function HtmlOutput: Boolean; 40 | function ModuleNameSpace(const AModuleName: string): TModuleNameSpace; 41 | function UnitNameSpace(const AModuleName: string): TUnitNameSpace; 42 | end; 43 | 44 | const 45 | cESCAPE_CHARACTER : char = '^'; 46 | cDEFULT_DEBUG_LOG_FILENAME = 'Delphi-Code-Coverage-Debug.log'; 47 | cPARAMETER_VERBOSE = '-v'; 48 | cPARAMETER_EXECUTABLE = '-e'; 49 | cPARAMETER_MAP_FILE = '-m'; 50 | cPARAMETER_UNIT = '-u'; 51 | cPARAMETER_UNIT_FILE = '-uf'; 52 | cPARAMETER_SOURCE_DIRECTORY = '-sd'; 53 | cPARAMETER_OUTPUT_DIRECTORY = '-od'; 54 | cPARAMETER_EXECUTABLE_PARAMETER = '-a'; 55 | cPARAMETER_LOGGING_TEXT = '-lt'; 56 | cPARAMETER_LOGGING_WINAPI = '-lapi'; 57 | cPARAMETER_FILE_EXTENSION_INCLUDE = '-ife'; 58 | cPARAMETER_FILE_EXTENSION_EXCLUDE = '-efe'; 59 | cPARAMETER_SOURCE_PATHS = '-sp'; 60 | cPARAMETER_SOURCE_PATHS_FILE = '-spf'; 61 | cPARAMETER_EMMA_OUTPUT = '-emma'; 62 | cPARAMETER_XML_OUTPUT = '-xml'; 63 | cPARAMETER_HTML_OUTPUT = '-html'; 64 | cPARAMETER_DPROJ = '-dproj'; 65 | cPARAMETER_EXCLUDE_SOURCE_MASK = '-esm'; 66 | cPARAMETER_MODULE_NAMESPACE = '-mns'; 67 | cPARAMETER_UNIT_NAMESPACE = '-uns'; 68 | cPARAMETER_EMMA_SEPARATE_META = '-meta'; 69 | 70 | cIGNORE_UNIT_PREFIX = '!'; 71 | implementation 72 | 73 | end. 74 | -------------------------------------------------------------------------------- /CodeCoverage/I_CoverageStats.pas: -------------------------------------------------------------------------------- 1 | (**************************************************************) 2 | (* Delphi Code Coverage *) 3 | (* *) 4 | (* A quick hack of a Code Coverage Tool for Delphi 2010 *) 5 | (* by Christer Fahlgren and Nick Ring *) 6 | (**************************************************************) 7 | (* Licensed under Mozilla Public License 1.1 *) 8 | (**************************************************************) 9 | 10 | unit I_CoverageStats; 11 | 12 | interface 13 | 14 | type 15 | TCoverageLine = record 16 | LineNumber: Integer; 17 | IsCovered: Boolean; 18 | end; 19 | 20 | type 21 | ICoverageStats = interface 22 | // Statistics 23 | procedure Calculate; 24 | 25 | function CoveredLineCount: Integer; 26 | function LineCount: Integer; 27 | function PercentCovered: Integer; 28 | 29 | function Parent: ICoverageStats; 30 | function Count: Integer; 31 | function GetCoverageReportByIndex(const AIndex: Integer): ICoverageStats; 32 | property CoverageReport[const AIndex: Integer]: ICoverageStats read GetCoverageReportByIndex; default; 33 | 34 | function GetCoverageReportByName(const AName: string) : ICoverageStats; 35 | property CoverageReportByName[const AName: string]: ICoverageStats read GetCoverageReportByName; 36 | 37 | function ReportFileName: string; 38 | function Name: string; 39 | function GetCoverageLine(const AIndex: Integer): TCoverageLine; 40 | property CoverageLine[const AIndex: Integer]: TCoverageLine read GetCoverageLine; 41 | 42 | procedure AddLineCoverage(const ALineNumber: Integer; const AIsCovered: Boolean); 43 | end; 44 | 45 | implementation 46 | 47 | end. 48 | -------------------------------------------------------------------------------- /CodeCoverage/I_DebugModule.pas: -------------------------------------------------------------------------------- 1 | (**************************************************************) 2 | (* Delphi Code Coverage *) 3 | (* *) 4 | (* A quick hack of a Code Coverage Tool for Delphi 2010 *) 5 | (* by Christer Fahlgren and Nick Ring *) 6 | (**************************************************************) 7 | (* Licensed under Mozilla Public License 1.1 *) 8 | (**************************************************************) 9 | 10 | unit I_DebugModule; 11 | 12 | interface 13 | 14 | uses Windows, JCLDebug; 15 | 16 | type 17 | IDebugModule = interface 18 | function Name: string; 19 | function Base: HMODULE; 20 | function Size: Cardinal; 21 | function MapScanner: TJCLMapScanner; 22 | end; 23 | 24 | implementation 25 | end. 26 | -------------------------------------------------------------------------------- /CodeCoverage/I_DebugProcess.pas: -------------------------------------------------------------------------------- 1 | (**************************************************************) 2 | (* Delphi Code Coverage *) 3 | (* *) 4 | (* A quick hack of a Code Coverage Tool for Delphi 2010 *) 5 | (* by Christer Fahlgren and Nick Ring *) 6 | (**************************************************************) 7 | (* Licensed under Mozilla Public License 1.1 *) 8 | (**************************************************************) 9 | 10 | unit I_DebugProcess; 11 | 12 | interface 13 | 14 | {$INCLUDE CodeCoverage.inc} 15 | 16 | uses 17 | Windows, 18 | I_DebugThread, 19 | I_DebugModule; 20 | 21 | type 22 | IDebugProcess = interface (IDebugModule) 23 | procedure AddThread(const ADebugThread: IDebugThread); 24 | procedure RemoveThread(const AThreadId: DWORD); 25 | 26 | procedure AddModule(const AModule: IDebugModule); 27 | procedure RemoveModule(const AModule: IDebugModule); 28 | function GetModule(const AName: string): IDebugModule; 29 | 30 | 31 | function Handle: THandle; 32 | function FindDebugModuleFromAddress(Addr: Pointer): IDebugModule; 33 | function GetThreadById(const AThreadId: DWORD): IDebugThread; 34 | function ReadProcessMemory( 35 | const AAddress, AData: Pointer; 36 | const ASize: Cardinal; 37 | const AChangeProtect: Boolean = False): Integer; 38 | function WriteProcessMemory( 39 | const AAddress, AData: Pointer; 40 | const ASize: Cardinal; 41 | const AChangeProtect: Boolean = False): Integer; 42 | end; 43 | 44 | implementation 45 | 46 | end. 47 | -------------------------------------------------------------------------------- /CodeCoverage/I_DebugThread.pas: -------------------------------------------------------------------------------- 1 | (**************************************************************) 2 | (* Delphi Code Coverage *) 3 | (* *) 4 | (* A quick hack of a Code Coverage Tool for Delphi 2010 *) 5 | (* by Christer Fahlgren and Nick Ring *) 6 | (**************************************************************) 7 | (* Licensed under Mozilla Public License 1.1 *) 8 | (**************************************************************) 9 | 10 | unit I_DebugThread; 11 | 12 | interface 13 | 14 | {$INCLUDE CodeCoverage.inc} 15 | 16 | uses 17 | Windows; 18 | 19 | type 20 | IDebugThread = interface 21 | function Handle: THandle; 22 | function Id: DWORD; 23 | end; 24 | 25 | implementation 26 | 27 | end. 28 | -------------------------------------------------------------------------------- /CodeCoverage/I_Debugger.pas: -------------------------------------------------------------------------------- 1 | (**************************************************************) 2 | (* Delphi Code Coverage *) 3 | (* *) 4 | (* A quick hack of a Code Coverage Tool for Delphi 2010 *) 5 | (* by Christer Fahlgren and Nick Ring *) 6 | (**************************************************************) 7 | (* Licensed under Mozilla Public License 1.1 *) 8 | (**************************************************************) 9 | 10 | unit I_Debugger; 11 | 12 | interface 13 | 14 | {$INCLUDE CodeCoverage.inc} 15 | 16 | type 17 | IDebugger = interface 18 | procedure Start(); 19 | end; 20 | 21 | implementation 22 | 23 | end. 24 | -------------------------------------------------------------------------------- /CodeCoverage/I_LogManager.pas: -------------------------------------------------------------------------------- 1 | (**************************************************************) 2 | (* Delphi Code Coverage *) 3 | (* *) 4 | (* A quick hack of a Code Coverage Tool for Delphi 2010 *) 5 | (* by Christer Fahlgren and Nick Ring *) 6 | (**************************************************************) 7 | (* Licensed under Mozilla Public License 1.1 *) 8 | (**************************************************************) 9 | 10 | unit I_LogManager; 11 | 12 | interface 13 | 14 | {$INCLUDE CodeCoverage.inc} 15 | 16 | uses 17 | I_Logger; 18 | 19 | type 20 | ILogManager = interface 21 | procedure Log(const AMessage : string); 22 | 23 | procedure AddLogger(const ALogger : ILogger); 24 | end; 25 | 26 | function LastErrorInfo: string; 27 | 28 | implementation 29 | 30 | uses 31 | Windows, 32 | SysUtils; 33 | 34 | function LastErrorInfo: string; 35 | var 36 | LastError: DWORD; 37 | begin 38 | LastError := GetLastError; 39 | Result := IntToStr(LastError) + 40 | '(' + IntToHex(LastError, 8) + ') -> ' + 41 | SysUtils.SysErrorMessage(LastError); 42 | end; 43 | 44 | end. 45 | -------------------------------------------------------------------------------- /CodeCoverage/I_Logger.pas: -------------------------------------------------------------------------------- 1 | (**************************************************************) 2 | (* Delphi Code Coverage *) 3 | (* *) 4 | (* A quick hack of a Code Coverage Tool for Delphi 2010 *) 5 | (* by Christer Fahlgren and Nick Ring *) 6 | (**************************************************************) 7 | (* Licensed under Mozilla Public License 1.1 *) 8 | (**************************************************************) 9 | 10 | unit I_Logger; 11 | 12 | interface 13 | 14 | {$INCLUDE CodeCoverage.inc} 15 | 16 | type 17 | ILogger = interface 18 | procedure Log(const AMessage: string); 19 | end; 20 | 21 | implementation 22 | 23 | end. 24 | -------------------------------------------------------------------------------- /CodeCoverage/I_ParameterProvider.pas: -------------------------------------------------------------------------------- 1 | (**************************************************************) 2 | (* Delphi Code Coverage *) 3 | (* *) 4 | (* A quick hack of a Code Coverage Tool for Delphi 2010 *) 5 | (* by Christer Fahlgren and Nick Ring *) 6 | (**************************************************************) 7 | (* Licensed under Mozilla Public License 1.1 *) 8 | (**************************************************************) 9 | 10 | unit I_ParameterProvider; 11 | 12 | interface 13 | 14 | {$INCLUDE CodeCoverage.inc} 15 | 16 | uses 17 | SysUtils; 18 | 19 | type 20 | EParameterIndexException = class(Exception); 21 | 22 | type 23 | IParameterProvider = interface 24 | function Count: Integer; 25 | function ParamString(const AIndex: Integer): string; 26 | end; 27 | 28 | implementation 29 | 30 | end. 31 | -------------------------------------------------------------------------------- /CodeCoverage/I_Report.pas: -------------------------------------------------------------------------------- 1 | (**************************************************************) 2 | (* Delphi Code Coverage *) 3 | (* *) 4 | (* A quick hack of a Code Coverage Tool for Delphi 2010 *) 5 | (* by Christer Fahlgren and Nick Ring *) 6 | (**************************************************************) 7 | (* Licensed under Mozilla Public License 1.1 *) 8 | (**************************************************************) 9 | 10 | unit I_Report; 11 | 12 | interface 13 | 14 | {$INCLUDE CodeCoverage.inc} 15 | 16 | uses 17 | I_CoverageStats, I_LogManager, 18 | ClassInfoUnit; 19 | 20 | type 21 | IReport = interface 22 | procedure Generate( 23 | const ACoverage: ICoverageStats; 24 | const AModuleInfoList: TModuleList; 25 | const ALogManager: ILogManager); 26 | end; 27 | 28 | implementation 29 | 30 | end. 31 | -------------------------------------------------------------------------------- /CodeCoverage/JclDebug.patch: -------------------------------------------------------------------------------- 1 | Index: JclDebug.pas 2 | =================================================================== 3 | --- JclDebug.pas (revision 3256) 4 | +++ JclDebug.pas (working copy) 5 | @@ -209,6 +209,7 @@ 6 | Segment: Word; 7 | VA: DWORD; // VA relative to (module base address + $10000) 8 | LineNumber: Integer; 9 | + UnitName : PJclMapString; 10 | end; 11 | 12 | TJclMapScanner = class(TJclAbstractMapParser) 13 | @@ -221,6 +222,7 @@ 14 | FLineNumbersCnt: Integer; 15 | FLineNumberErrors: Integer; 16 | FNewUnitFileName: PJclMapString; 17 | + FCurrentUnitName : PJclMapString; 18 | FProcNamesCnt: Integer; 19 | FSegmentCnt: Integer; 20 | protected 21 | @@ -232,17 +234,28 @@ 22 | procedure LineNumbersItem(LineNumber: Integer; const Address: TJclMapAddress); override; 23 | procedure LineNumberUnitItem(UnitName, UnitFileName: PJclMapString); override; 24 | procedure Scan; 25 | + function GetLineNumberByIndex(Index:Integer):TJCLMapLineNumber; 26 | + function GetLineNumberCount():Integer; 27 | + function GetSegmentByIndex(Index : Integer):TJCLMapSegment; 28 | + function GetSegmentCount:Integer; 29 | public 30 | constructor Create(const MapFileName: TFileName; Module: HMODULE); override; 31 | // Addr are virtual addresses relative to (module base address + $10000) 32 | function LineNumberFromAddr(Addr: DWORD): Integer; overload; 33 | function LineNumberFromAddr(Addr: DWORD; out Offset: Integer): Integer; overload; 34 | + function SegmentFromAddr(Addr: DWORD):TJclMapSegment; 35 | + 36 | function ModuleNameFromAddr(Addr: DWORD): string; 37 | function ModuleStartFromAddr(Addr: DWORD): DWORD; 38 | function ProcNameFromAddr(Addr: DWORD): string; overload; 39 | function ProcNameFromAddr(Addr: DWORD; out Offset: Integer): string; overload; 40 | function SourceNameFromAddr(Addr: DWORD): string; 41 | property LineNumberErrors: Integer read FLineNumberErrors; 42 | + property LineNumberCount:Integer read GetLineNumberCount; 43 | + property LineNumberByIndex[index : integer]:TJclMapLineNumber read GetLineNumberByIndex; 44 | + property SegmentCount : Integer read GetSegmentCount; 45 | + property SegmentByIndex[index : integer]:TJclMapSegment read GetSegmentByIndex; 46 | + 47 | end; 48 | 49 | type 50 | @@ -1663,7 +1676,10 @@ 51 | // only one segment of code 52 | // after Delphi 2005: segments started at code base address (module base address + $10000) 53 | // 2 segments of code 54 | - if (Length(FSegmentClasses) > 0) and (FSegmentClasses[0].Start > 0) and (Addr > FSegmentClasses[0].Start) then 55 | + 56 | + // Bug fix 2010-06-23 Christer Fahlgren, for system segment which starts with 0 57 | + // Addr can be equal to FSegmentClasses[0].Start, thus changing to >= 58 | + if (Length(FSegmentClasses) > 0) and (FSegmentClasses[0].Start > 0) and (Addr >= FSegmentClasses[0].Start) then 59 | // Delphi 2005 and later 60 | // The first segment should be code starting at module base address + $10000 61 | Result := Addr - FSegmentClasses[0].Start 62 | @@ -1756,6 +1772,7 @@ 63 | FLineNumbers[FLineNumbersCnt].Segment := FSegmentClasses[SegIndex].Segment; 64 | FLineNumbers[FLineNumbersCnt].VA := VA; 65 | FLineNumbers[FLineNumbersCnt].LineNumber := LineNumber; 66 | + FLineNumbers[FLineNumbersCnt].UnitName := FCurrentUnitName; 67 | Inc(FLineNumbersCnt); 68 | Added := True; 69 | if FNewUnitFileName <> nil then 70 | @@ -1776,8 +1793,29 @@ 71 | procedure TJclMapScanner.LineNumberUnitItem(UnitName, UnitFileName: PJclMapString); 72 | begin 73 | FNewUnitFileName := UnitFileName; 74 | + FCurrentUnitName := UnitName; 75 | end; 76 | 77 | +function TJclMapScanner.GetLineNumberByIndex(Index:Integer):TJCLMapLineNumber; 78 | +begin 79 | + result := FLineNumbers[Index]; 80 | +end; 81 | + 82 | +function TJclMapScanner.GetLineNumberCount():Integer; 83 | +begin 84 | + result := FLineNumbersCnt; 85 | +end; 86 | + 87 | +function TJclMapScanner.GetSegmentByIndex(Index:Integer):TJCLMapSegment; 88 | +begin 89 | + result := FSegments[Index]; 90 | +end; 91 | + 92 | +function TJclMapScanner.GetSegmentCount():Integer; 93 | +begin 94 | + result := FSegmentCnt; 95 | +end; 96 | + 97 | function TJclMapScanner.ModuleNameFromAddr(Addr: DWORD): string; 98 | var 99 | I: Integer; 100 | @@ -1791,6 +1829,20 @@ 101 | end; 102 | end; 103 | 104 | +function TJclMapScanner.SegmentFromAddr(Addr: DWORD): TJclMapSegment; 105 | +var 106 | + I: Integer; 107 | +begin 108 | + 109 | + for I := Length(FSegments) - 1 downto 0 do 110 | + if (FSegments[I].StartVA <= Addr) and (Addr < FSegments[I].EndVA) then 111 | + begin 112 | + Result := FSegments[I]; 113 | + Break; 114 | + end; 115 | +end; 116 | + 117 | + 118 | function TJclMapScanner.ModuleStartFromAddr(Addr: DWORD): DWORD; 119 | var 120 | I: Integer; 121 | -------------------------------------------------------------------------------- /CodeCoverage/LogManager.pas: -------------------------------------------------------------------------------- 1 | (**************************************************************) 2 | (* Delphi Code Coverage *) 3 | (* *) 4 | (* A quick hack of a Code Coverage Tool for Delphi 2010 *) 5 | (* by Christer Fahlgren and Nick Ring *) 6 | (**************************************************************) 7 | (* Licensed under Mozilla Public License 1.1 *) 8 | (**************************************************************) 9 | 10 | unit LogManager; 11 | 12 | interface 13 | 14 | {$INCLUDE CodeCoverage.inc} 15 | 16 | uses 17 | Generics.Collections, 18 | I_LogManager, 19 | I_Logger; 20 | 21 | type 22 | TLogManager = class(TInterfacedObject, ILogManager) 23 | private 24 | FLoggers: TList; 25 | public 26 | constructor Create; 27 | destructor Destroy; override; 28 | 29 | procedure Log(const AMessage : string); 30 | 31 | procedure AddLogger(const ALogger : ILogger); 32 | end; 33 | 34 | implementation 35 | 36 | 37 | { TLoggerManager } 38 | 39 | constructor TLogManager.Create; 40 | begin 41 | inherited; 42 | FLoggers := TList.Create; 43 | end; 44 | 45 | destructor TLogManager.Destroy; 46 | begin 47 | FLoggers.Free; 48 | inherited; 49 | end; 50 | 51 | procedure TLogManager.AddLogger(const ALogger: ILogger); 52 | begin 53 | FLoggers.Add(ALogger); 54 | end; 55 | 56 | procedure TLogManager.Log(const AMessage: string); 57 | var 58 | Logger: ILogger; 59 | begin 60 | for Logger in FLoggers do 61 | Logger.Log(AMessage); 62 | end; 63 | 64 | end. 65 | 66 | -------------------------------------------------------------------------------- /CodeCoverage/LoggerAPI.pas: -------------------------------------------------------------------------------- 1 | (**************************************************************) 2 | (* Delphi Code Coverage *) 3 | (* *) 4 | (* A quick hack of a Code Coverage Tool for Delphi 2010 *) 5 | (* by Christer Fahlgren and Nick Ring *) 6 | (**************************************************************) 7 | (* Licensed under Mozilla Public License 1.1 *) 8 | (**************************************************************) 9 | 10 | unit LoggerAPI; 11 | 12 | interface 13 | 14 | {$INCLUDE CodeCoverage.inc} 15 | 16 | uses 17 | I_Logger; 18 | 19 | type 20 | TLoggerAPI = class(TInterfacedObject, ILogger) 21 | public 22 | procedure Log(const AMessage: string); 23 | end; 24 | 25 | implementation 26 | 27 | uses 28 | Windows; 29 | 30 | { TLoggerAPI } 31 | 32 | procedure TLoggerAPI.Log(const AMessage: string); 33 | begin 34 | OutputDebugString(PChar(AMessage)); 35 | end; 36 | 37 | end. 38 | -------------------------------------------------------------------------------- /CodeCoverage/LoggerTextFile.pas: -------------------------------------------------------------------------------- 1 | (**************************************************************) 2 | (* Delphi Code Coverage *) 3 | (* *) 4 | (* A quick hack of a Code Coverage Tool for Delphi 2010 *) 5 | (* by Christer Fahlgren and Nick Ring *) 6 | (**************************************************************) 7 | (* Licensed under Mozilla Public License 1.1 *) 8 | (**************************************************************) 9 | 10 | unit LoggerTextFile; 11 | 12 | interface 13 | 14 | {$INCLUDE CodeCoverage.inc} 15 | 16 | uses 17 | I_Logger; 18 | 19 | type 20 | TLoggerTextFile = class(TInterfacedObject, ILogger) 21 | private 22 | FTextFile: TextFile; 23 | public 24 | constructor Create(const AFileName: string); 25 | destructor Destroy; override; 26 | 27 | procedure Log(const AMessage: string); 28 | end; 29 | 30 | implementation 31 | 32 | { TLoggerTextFile } 33 | 34 | constructor TLoggerTextFile.Create(const AFileName: string); 35 | begin 36 | inherited Create; 37 | 38 | AssignFile(FTextFile, AFileName); 39 | ReWrite(FTextFile); 40 | end; 41 | 42 | destructor TLoggerTextFile.Destroy; 43 | begin 44 | CloseFile(FTextFile); 45 | 46 | inherited; 47 | end; 48 | 49 | procedure TLoggerTextFile.Log(const AMessage: string); 50 | begin 51 | WriteLn(FTextFile, AMessage); 52 | Flush(FTextFile); 53 | end; 54 | 55 | end. 56 | -------------------------------------------------------------------------------- /CodeCoverage/MergableUnit.pas: -------------------------------------------------------------------------------- 1 | (* ************************************************************ *) 2 | (* Delphi Code Coverage *) 3 | (* *) 4 | (* A quick hack of a Code Coverage Tool for Delphi 2010 *) 5 | (* by Christer Fahlgren and Nick Ring *) 6 | (* ************************************************************ *) 7 | (* Licensed under Mozilla Public License 1.1 *) 8 | (* ************************************************************ *) 9 | 10 | unit MergableUnit; 11 | 12 | interface 13 | 14 | uses 15 | FileHelper; 16 | 17 | type 18 | TMergable = class 19 | protected 20 | function GetEntryLength: Int64; virtual; abstract; 21 | function GetEntryType: Byte; virtual; abstract; 22 | public 23 | property EntryLength: Int64 read GetEntryLength; 24 | property EntryType: Byte read GetEntryType; 25 | 26 | function ToString: string; override; abstract; 27 | 28 | procedure LoadFromFile(const DataInput: IEmmaDataInput); virtual; abstract; 29 | procedure WriteToFile(DataOutput: IEmmaDataOutput); virtual; abstract; 30 | end; 31 | 32 | implementation 33 | 34 | end. 35 | -------------------------------------------------------------------------------- /CodeCoverage/Test/ClassInfoUnitTest.pas: -------------------------------------------------------------------------------- 1 | unit ClassInfoUnitTest; 2 | 3 | interface 4 | {$INCLUDE ..\CodeCoverage.inc} 5 | 6 | 7 | uses 8 | Classes, 9 | SysUtils, 10 | TestFramework, 11 | ClassInfoUnit; 12 | 13 | type 14 | 15 | TClassInfoUnitTest = class(TTestCase) 16 | private 17 | 18 | published 19 | procedure TestClassInfo; 20 | end; 21 | 22 | 23 | implementation 24 | 25 | procedure TClassInfoUnitTest.TestClassInfo; 26 | var cinfo : TClassInfo; 27 | begin 28 | cinfo:= TClassInfo.Create('Module','MyClass'); 29 | cinfo.ensureProcedure('TestProcedure'); 30 | 31 | 32 | end; 33 | 34 | //============================================================================== 35 | initialization 36 | RegisterTest(TClassInfoUnitTest.Suite); 37 | 38 | 39 | end. 40 | -------------------------------------------------------------------------------- /CodeCoverage/Test/CodeCoverageTests.dpr: -------------------------------------------------------------------------------- 1 | program CodeCoverageTests; 2 | 3 | {$IFDEF CONSOLE_TESTRUNNER} 4 | {$APPTYPE CONSOLE} 5 | {$ENDIF} 6 | 7 | uses 8 | Classes, 9 | SysUtils, 10 | Windows, 11 | Forms, 12 | TestFramework, 13 | GUITestRunner, 14 | XmlTestRunner, 15 | StrUtilsD9Tests in 'StrUtilsD9Tests.pas', 16 | StrUtilsD9 in '..\..\3rdParty\StrUtilsD9.pas', 17 | CoverageConfiguration in '..\CoverageConfiguration.pas', 18 | CoverageConfigurationTest in 'CoverageConfigurationTest.pas', 19 | I_CoverageConfiguration in '..\I_CoverageConfiguration.pas', 20 | I_ParameterProvider in '..\I_ParameterProvider.pas', 21 | MockCommandLineProvider in 'MockCommandLineProvider.pas', 22 | ClassInfoUnitTest in 'ClassInfoUnitTest.pas', 23 | ClassInfoUnit in '..\ClassInfoUnit.pas', 24 | I_BreakPoint in '..\I_BreakPoint.pas', 25 | I_BreakpointList in '..\I_BreakpointList.pas', 26 | I_CoverageStats in '..\I_CoverageStats.pas', 27 | I_Debugger in '..\I_Debugger.pas', 28 | I_DebugProcess in '..\I_DebugProcess.pas', 29 | I_DebugThread in '..\I_DebugThread.pas', 30 | I_DebugModule in '..\I_DebugModule.pas', 31 | uConsoleOutput in '..\uConsoleOutput.pas', 32 | FileHelper in '..\FileHelper.pas', 33 | EmmaDataInputTests in 'EmmaDataInputTests.pas', 34 | EmmaDataOutputTests in 'EmmaDataOutputTests.pas'; 35 | 36 | {$R *.RES} 37 | 38 | begin 39 | try 40 | Application.Initialize; 41 | if IsConsole then 42 | XmlTestRunner.RunTestsAndClose 43 | else 44 | GUITestRunner.RunRegisteredTests; 45 | except 46 | on E: Exception do 47 | begin 48 | if IsConsole then 49 | begin 50 | writeln('Exception caught:'); 51 | writeln(#9 + E.ClassName); 52 | writeln(#9 + E.Message); 53 | end 54 | else 55 | begin 56 | Application.MessageBox(PChar(E.ClassName + 57 | System.sLineBreak + 58 | E.Message), 59 | 'Exception Caught', 60 | MB_ICONERROR or MB_OK); 61 | end; 62 | end; 63 | end; 64 | end. 65 | -------------------------------------------------------------------------------- /CodeCoverage/Test/CodeCoverageTests.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magicmonty/delphi-code-coverage/1ccafdced4b18edec54d9bc55d67bcc9045e9043/CodeCoverage/Test/CodeCoverageTests.res -------------------------------------------------------------------------------- /CodeCoverage/Test/EmmaDataInputTests.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magicmonty/delphi-code-coverage/1ccafdced4b18edec54d9bc55d67bcc9045e9043/CodeCoverage/Test/EmmaDataInputTests.pas -------------------------------------------------------------------------------- /CodeCoverage/Test/EmmaDataOutputTests.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magicmonty/delphi-code-coverage/1ccafdced4b18edec54d9bc55d67bcc9045e9043/CodeCoverage/Test/EmmaDataOutputTests.pas -------------------------------------------------------------------------------- /CodeCoverage/Test/MockCommandLineProvider.pas: -------------------------------------------------------------------------------- 1 | (* ************************************************************ *) 2 | (* Delphi Code Coverage *) 3 | (* *) 4 | (* A quick hack of a Code Coverage Tool for Delphi 2010 *) 5 | (* by Christer Fahlgren *) 6 | (* ************************************************************ *) 7 | (* Licensed under Mozilla Public License 1.1 *) 8 | (* ************************************************************ *) 9 | 10 | unit MockCommandLineProvider; 11 | 12 | interface 13 | 14 | uses 15 | Classes, 16 | I_ParameterProvider; 17 | 18 | type 19 | TMockCommandLineProvider = class(TInterfacedObject, IParameterProvider) 20 | private 21 | FParamsStrLst: TStrings; 22 | public 23 | constructor Create(const AStringArray : array of string); 24 | destructor Destroy; override; 25 | function Count: Integer; 26 | function ParamString(const AIndex: Integer): string; 27 | end; 28 | 29 | implementation 30 | 31 | uses 32 | SysUtils; 33 | 34 | constructor TMockCommandLineProvider.create(const AStringArray : array of string); 35 | var 36 | idx: Integer; 37 | begin 38 | FParamsStrLst := TStringList.Create; 39 | 40 | for idx := Low(AStringArray) to High(AStringArray) do 41 | begin 42 | FParamsStrLst.add(AStringArray[idx]); 43 | end; 44 | end; 45 | 46 | destructor TMockCommandLineProvider.Destroy; 47 | begin 48 | FParamsStrLst.Free; 49 | inherited; 50 | end; 51 | 52 | function TMockCommandLineProvider.Count: Integer; 53 | begin 54 | Result := FParamsStrLst.Count; 55 | end; 56 | 57 | function TMockCommandLineProvider.ParamString(const AIndex: Integer): string; 58 | begin 59 | if AIndex > Count then 60 | raise EParameterIndexException.create('Parameter Index:' + IntToStr(AIndex) + ' out of bounds.'); 61 | Result := FParamsStrLst.Strings[AIndex - 1]; 62 | end; 63 | 64 | end. 65 | -------------------------------------------------------------------------------- /CodeCoverage/Test/StrUtilsD9Tests.pas: -------------------------------------------------------------------------------- 1 | unit StrUtilsD9Tests; 2 | 3 | interface 4 | 5 | uses 6 | Types, 7 | TestFramework, 8 | StrUtilsD9; 9 | 10 | type 11 | TestSplitString = class(TTestCase) 12 | strict private 13 | FSplitted: TStringDynArray; 14 | public 15 | procedure Setup; override; 16 | procedure TearDown; override; 17 | published 18 | procedure EmptyStringShouldReturnSingleEmptyElement; 19 | procedure EmptyDelimiterShouldReturnSingleElement; 20 | procedure StringWithOneDelimiterShouldBeSplitIntoTwoElements; 21 | procedure StringWithTwoDelimitersOfSameTypeShouldBeSplitIntoThreeElements; 22 | procedure StringWithMultipleDelimitersOfDifferentTypesShouldBeSplit; 23 | end; 24 | 25 | implementation 26 | 27 | procedure TestSplitString.Setup; 28 | begin 29 | SetLength(FSplitted, 0); 30 | end; 31 | 32 | procedure TestSplitString.TearDown; 33 | begin 34 | SetLength(FSplitted, 0); 35 | end; 36 | 37 | procedure TestSplitString.EmptyStringShouldReturnSingleEmptyElement; 38 | begin 39 | FSplitted := SplitString('', ''); 40 | CheckEquals(1, Length(FSplitted), 'Element length should be 1'); 41 | CheckEqualsString('', FSplitted[0], 'First entry should be Empty'); 42 | end; 43 | 44 | procedure TestSplitString.EmptyDelimiterShouldReturnSingleElement; 45 | begin 46 | FSplitted := SplitString('Hello World', ''); 47 | CheckEquals(1, Length(FSplitted), 'Element length should be 1'); 48 | CheckEqualsString('Hello World', FSplitted[0], 'First entry should be ''Hello World'''); 49 | end; 50 | 51 | procedure TestSplitString.StringWithOneDelimiterShouldBeSplitIntoTwoElements; 52 | begin 53 | FSplitted := SplitString('Hello World', ' '); 54 | CheckEquals(2, Length(FSplitted), 'Element length should be 2'); 55 | CheckEqualsString('Hello', FSplitted[0], 'First entry should be ''Hello'''); 56 | CheckEqualsString('World', FSplitted[1], 'Second entry should be ''World'''); 57 | end; 58 | 59 | procedure TestSplitString.StringWithTwoDelimitersOfSameTypeShouldBeSplitIntoThreeElements; 60 | begin 61 | FSplitted := SplitString('Hello Huhu Ciao', ' '); 62 | CheckEquals(3, Length(FSplitted), 'Element length should be 3'); 63 | CheckEqualsString('Hello', FSplitted[0], 'First entry should be ''Hello'''); 64 | CheckEqualsString('Huhu', FSplitted[1], 'Second entry should be ''Huhu'''); 65 | CheckEqualsString('Ciao', FSplitted[2], 'Third entry should be ''Ciao'''); 66 | end; 67 | 68 | procedure TestSplitString.StringWithMultipleDelimitersOfDifferentTypesShouldBeSplit; 69 | begin 70 | FSplitted := SplitString('Hello Huhu$Ciao|World-Universe', ' $|-'); 71 | CheckEquals(5, Length(FSplitted), 'Element length should be 5'); 72 | CheckEqualsString('Hello', FSplitted[0], 'First entry should be ''Hello'''); 73 | CheckEqualsString('Huhu', FSplitted[1], 'Second entry should be ''Huhu'''); 74 | CheckEqualsString('Ciao', FSplitted[2], 'Third entry should be ''Ciao'''); 75 | CheckEqualsString('World', FSplitted[3], 'Fourth entry should be ''World'''); 76 | CheckEqualsString('Universe', FSplitted[4], 'Fifth entry should be ''Universe'''); 77 | end; 78 | 79 | initialization 80 | RegisterTest(TestSplitString.Suite); 81 | end. 82 | -------------------------------------------------------------------------------- /CodeCoverage/uConsoleOutput.pas: -------------------------------------------------------------------------------- 1 | unit uConsoleOutput; 2 | 3 | interface 4 | 5 | uses 6 | I_LogManager; 7 | 8 | procedure ConsoleOutput(const AMessage: string); 9 | procedure VerboseOutput(const AMessage: string); 10 | 11 | var 12 | G_Verbose_Output: Boolean; 13 | G_LogManager: ILogManager; 14 | 15 | implementation 16 | 17 | procedure Log(const AMessage: string); 18 | begin 19 | if Assigned(G_LogManager) then 20 | G_LogManager.Log(AMessage); 21 | end; 22 | 23 | procedure ConsoleOutput(const AMessage: string); 24 | begin 25 | {$IFNDEF CONSOLE_TESTRUNNER} 26 | if IsConsole then 27 | Writeln(AMessage); 28 | {$ENDIF} 29 | Log(AMessage); 30 | end; 31 | 32 | procedure VerboseOutput(const AMessage: string); 33 | begin 34 | if G_Verbose_Output then 35 | ConsoleOutput(AMessage) 36 | else 37 | Log(AMessage); 38 | end; 39 | 40 | initialization 41 | G_Verbose_Output := False; 42 | G_LogManager := nil; 43 | end. 44 | -------------------------------------------------------------------------------- /DelphiCodeCoverage.groupproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {D54D1B5F-159A-434B-8A87-0E794DA60D36} 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | Default.Personality.12 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /SetupEnvironment.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | :: setup following environment variables to point to correct location of external libraries 3 | 4 | SET BASEDIR=%CD% 5 | SET BUILD=%BASEDIR%\build 6 | SET REPORTS=%BUILD%\reports 7 | SET PRJDIR=%BASEDIR%\CodeCoverage\Test 8 | SET PRJ=CodeCoverageTests 9 | 10 | IF "%LIBS%"=="" SET LIBS=%BASEDIR%\3rdParty 11 | IF "%JCL%"=="" SET JCL=%LIBS%\JCL\jcl-2.3.1.4197 12 | IF "%JWAPI%"=="" SET JWAPI=%LIBS%\JWAPI\jwapi2.2a 13 | IF "%JVCL%"=="" SET JVCL=%LIBS%\JVCL\JVCL345SourceOnly 14 | 15 | SET DPF=%PROGRAMFILES(X86)% 16 | if "%DPF%"=="" ( 17 | SET DPF="%PROGRAMFILES%" 18 | ) 19 | 20 | :: check for Delphi XE2 21 | IF EXIST "%DPF%\Embarcadero\RAD Studio\9.0\bin\rsvars.bat" ( 22 | ECHO Found Delphi XE2 23 | CALL "%DPF%\Embarcadero\RAD Studio\9.0\bin\rsvars.bat" 24 | ) ELSE ( 25 | :: Delphi 2010 26 | IF EXIST "%DPF%\Embarcadero\RAD Studio\7.0\bin\rsvars.bat" ( 27 | ECHO Found Delphi 2010 28 | CALL "%DPF%\Embarcadero\RAD Studio\7.0\bin\rsvars.bat" 29 | ) ELSE ( 30 | :: Delphi 2009 31 | IF EXIST "%DPF%\CodeGear\RAD Studio\6.0\bin\rsvars.bat" ( 32 | ECHO Found Delphi 2009 33 | CALL "%DPF%\CodeGear\RAD Studio\6.0\bin\rsvars.bat" 34 | ) 35 | ) 36 | ) 37 | -------------------------------------------------------------------------------- /build-unit-test.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | ECHO Building Delphi Code Coverage 3 | 4 | CALL "SetupEnvironment.Bat" 5 | 6 | msbuild /p:DCC_UnitSearchPath="$(BDS)\lib;$(BDS)\include;..;%LIBS%;%JWAPI%\Win32API;%JWAPI%\Common;%JCL%\source\include;%JCL%\source\common;%JCL%\source\windows;%JVCL%\run;%JVCL%\Common;$(DCC_UnitSearchPath)" /t:build /p:config=Release /verbosity:detailed "%PRJDIR%\%PRJ%.dproj" 7 | 8 | 9 | -------------------------------------------------------------------------------- /build.bat: -------------------------------------------------------------------------------- 1 | echo Building Delphi Code Coverage 2 | 3 | call SetupEnvironment.bat" 4 | 5 | msbuild /p:DCC_UnitSearchPath="$(BDS)\lib;$(BDS)\include;%LIBS%;%JWAPI%\Win32API;%JWAPI%\Common;%JCL%\source\include;%JCL%\source\common;%JCL%\source\windows;%JVCL%\run;%JVCL%\Common;$(DCC_UnitSearchPath)" /t:build /p:config=Release /verbosity:detailed "CodeCoverage\CodeCoverage.dproj" -------------------------------------------------------------------------------- /build/dcu/.gitignore: -------------------------------------------------------------------------------- 1 | *.dcu -------------------------------------------------------------------------------- /build/reports/coverage/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/magicmonty/delphi-code-coverage/1ccafdced4b18edec54d9bc55d67bcc9045e9043/build/reports/coverage/.gitignore -------------------------------------------------------------------------------- /coverage_dirs.lst: -------------------------------------------------------------------------------- 1 | CodeCoverage 2 | CodeCoverage\Test 3 | 3rdParty 4 | 3rdParty\JCL\jcl-2.3.1.4197\source\common 5 | 3rdParty\JCL\jcl-2.3.1.4197\source\include 6 | 3rdParty\JCL\jcl-2.3.1.4197\source\include\jedi 7 | 3rdParty\JCL\jcl-2.3.1.4197\source\windows 8 | 3rdParty\JVCL\JVCL345SourceOnly\common 9 | 3rdParty\JVCL\JVCL345SourceOnly\common\jedi 10 | 3rdParty\JVCL\JVCL345SourceOnly\run 11 | 3rdParty\JWAPI\jwapi2.2a\Common 12 | 3rdParty\JWAPI\jwapi2.2a\Win32API 13 | -------------------------------------------------------------------------------- /coverage_units.lst: -------------------------------------------------------------------------------- 1 | !Generics.Collections 2 | !Generics.Defaults 3 | BreakPoint 4 | BreakpointList 5 | ClassInfoUnit 6 | CommandLineProvider 7 | CoverageConfiguration 8 | CoverageDataUnit 9 | CoverageReport 10 | CoverageStats 11 | DebugModule 12 | DebugProcess 13 | DebugThread 14 | EmmaCoverageFileUnit 15 | EmmaDataFile 16 | emmafilereader 17 | FileHelper 18 | MergableUnit 19 | MetaDataUnit 20 | ModuleNameSpaceUnit 21 | uConsoleOutput 22 | XMLCoverageReport -------------------------------------------------------------------------------- /run-code-coverage.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | 3 | ECHO Building Delphi Code Coverage 4 | 5 | CALL "SetupEnvironment.bat" 6 | 7 | PUSHD %BUILD% 8 | 9 | MKDIR reports > NUL 2>&1 10 | PUSHD reports 11 | MKDIR coverage > NUL 2>&1 12 | 13 | POPD 14 | 15 | %BUILD%\CodeCoverage.exe -e %BUILD%\%PRJ%.exe -m %BUILD%\%PRJ%.map -ife -xml -html -uf %BASEDIR%\coverage_units.lst -sd %PRJDIR% -od %REPORTS%\coverage -dproj %PRJDIR%\%PRJ%.dproj -lt %REPORTS%\CodeCoverage.log 16 | 17 | POPD 18 | -------------------------------------------------------------------------------- /run-unit-test.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | 3 | ECHO Running unit tests 4 | 5 | CALL "SetupEnvironment.bat" 6 | PUSHD %BUILD% 7 | 8 | %PRJ%.exe 9 | 10 | POPD --------------------------------------------------------------------------------