From 020b8eaeb63526e8855ceab21f0902f8eafa34bf Mon Sep 17 00:00:00 2001 From: Mark van Renswoude Date: Fri, 15 Feb 2013 11:28:24 +0000 Subject: [PATCH] Delphi XE2 compatibility --- Packages/DXE2/X2Utils.dpk | 63 +++++++++++ Packages/DXE2/X2Utils.dproj | 189 +++++++++++++++++++++++++++++++++ Packages/DXE2/X2Utils.res | Bin 0 -> 27432 bytes Packages/DXE2/X2Utils_Icon.ico | Bin 0 -> 26694 bytes Test/X2UtHashesTest.dpr | 3 + Test/X2UtHashesTest.dproj | 80 ++++++++++++++ UnitTests/Units/HashesTest.pas | 8 ++ X2UtApp.pas | 4 +- X2UtElevation.pas | 8 +- X2UtPersist.pas | 3 +- X2UtProcess.pas | 4 +- 11 files changed, 355 insertions(+), 7 deletions(-) create mode 100644 Packages/DXE2/X2Utils.dpk create mode 100644 Packages/DXE2/X2Utils.dproj create mode 100644 Packages/DXE2/X2Utils.res create mode 100644 Packages/DXE2/X2Utils_Icon.ico create mode 100644 Test/X2UtHashesTest.dproj diff --git a/Packages/DXE2/X2Utils.dpk b/Packages/DXE2/X2Utils.dpk new file mode 100644 index 0000000..59674f0 --- /dev/null +++ b/Packages/DXE2/X2Utils.dpk @@ -0,0 +1,63 @@ +package X2Utils; + +{$R *.res} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'X2Utils'} +{$LIBSUFFIX 'XE2'} +{$RUNONLY} +{$IMPLICITBUILD ON} + +requires + rtl, + vcl, + xmlrtl; + +contains + X2UtApp in '..\..\X2UtApp.pas', + X2UtBits in '..\..\X2UtBits.pas', + X2UtGraphics in '..\..\X2UtGraphics.pas', + X2UtHandCursor in '..\..\X2UtHandCursor.pas', + X2UtHashes in '..\..\X2UtHashes.pas', + X2UtHashesVariants in '..\..\X2UtHashesVariants.pas', + X2UtMisc in '..\..\X2UtMisc.pas', + X2UtOS in '..\..\X2UtOS.pas', + X2UtStrings in '..\..\X2UtStrings.pas', + X2UtImageInfo in '..\..\X2UtImageInfo.pas', + X2UtTempFile in '..\..\X2UtTempFile.pas', + X2UtIniParser in '..\..\X2UtIniParser.pas', + X2UtProcess in '..\..\X2UtProcess.pas', + X2UtSingleInstance in '..\..\X2UtSingleInstance.pas', + X2UtStreams in '..\..\X2UtStreams.pas', + X2UtNamedFormat in '..\..\X2UtNamedFormat.pas', + X2UtPersist in '..\..\X2UtPersist.pas', + X2UtPersistForm in '..\..\X2UtPersistForm.pas', + X2UtPersistIntf in '..\..\X2UtPersistIntf.pas', + X2UtPersistRegistry in '..\..\X2UtPersistRegistry.pas', + X2UtElevation in '..\..\X2UtElevation.pas', + X2UtPersistXML in '..\..\X2UtPersistXML.pas', + X2UtPersistXMLBinding in '..\..\X2UtPersistXMLBinding.pas', + XMLDataBindingUtils in '..\..\XMLDataBinding\XMLDataBindingUtils.pas'; + +end. diff --git a/Packages/DXE2/X2Utils.dproj b/Packages/DXE2/X2Utils.dproj new file mode 100644 index 0000000..11cd811 --- /dev/null +++ b/Packages/DXE2/X2Utils.dproj @@ -0,0 +1,189 @@ + + + {3cd28184-f9a5-4320-9ad8-80ef25ba762e} + X2Utils.dpk + Debug + DCC32 + P:\algemeen\bin\D2007\X2Utils2007.bpl + VCL + 13.4 + True + Debug + Win32 + 1 + Package + + + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Cfg_2 + true + true + + + true + true + 00400000 + true + X2Utils + Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;System.Win;$(DCC_Namespace) + true + 1043 + true + CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= + 2007 + true + + + X2Utils_Icon.ico + + + X2Utils_Icon.ico + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) + true + 1033 + CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= + + + 7.0 + False + True + False + True + 0 + RELEASE;$(DCC_Define) + + + 7.0 + True + True + $(DELPHILIB) + $(DELPHILIB) + $(DELPHILIB) + $(DELPHIBIN) + $(DELPHIBIN) + + + XE2 + 1033 + + + Delphi.Personality.12 + Package + + + + False + True + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 1043 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + X2Utils.dpk + + + Microsoft Office 2000 Sample Automation Server Wrapper Components + Microsoft Office XP Sample Automation Server Wrapper Components + + + + False + True + + + 12 + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Cfg_2 + Base + + + Base + + + Cfg_1 + Base + + + + diff --git a/Packages/DXE2/X2Utils.res b/Packages/DXE2/X2Utils.res new file mode 100644 index 0000000000000000000000000000000000000000..8cbdc5ae422e52b765ff140fd8c761f16678c0bc GIT binary patch literal 27432 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 f{NGf`fI0 literal 0 HcmV?d00001 diff --git a/Packages/DXE2/X2Utils_Icon.ico b/Packages/DXE2/X2Utils_Icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..7ade9bfeb8b05b0ea62fea5df422623ce7fc8311 GIT binary patch literal 26694 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 a#sOVYz&US-*N!}_#yl;*8c!pxT%T& literal 0 HcmV?d00001 diff --git a/Test/X2UtHashesTest.dpr b/Test/X2UtHashesTest.dpr index fe780f9..51bf3c3 100644 --- a/Test/X2UtHashesTest.dpr +++ b/Test/X2UtHashesTest.dpr @@ -3,6 +3,9 @@ program X2UtHashesTest; {$APPTYPE CONSOLE} uses + madListHardware, + madListProcesses, + madListModules, madExcept, madLinkDisAsm, SysUtils, diff --git a/Test/X2UtHashesTest.dproj b/Test/X2UtHashesTest.dproj new file mode 100644 index 0000000..57480bd --- /dev/null +++ b/Test/X2UtHashesTest.dproj @@ -0,0 +1,80 @@ + + + {f8e0020e-c40f-4444-ac12-fa457cf72877} + X2UtHashesTest.dpr + Debug + AnyCPU + DCC32 + X2UtHashesTest.exe + + + 7.0 + False + True + False + True + 0 + 3 + madExcept;RELEASE + IconXP + + + 7.0 + True + True + 3 + madExcept;DEBUG + IconXP + + + Delphi.Personality + VCLApplication + + + False + True + False + + + False + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 1043 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + X2UtHashesTest.dpr + + + + + + + MainSource + + +
frmBTree
+
+
+ +
\ No newline at end of file diff --git a/UnitTests/Units/HashesTest.pas b/UnitTests/Units/HashesTest.pas index eb5bbbd..28af7c1 100644 --- a/UnitTests/Units/HashesTest.pas +++ b/UnitTests/Units/HashesTest.pas @@ -39,6 +39,7 @@ type procedure testGet; override; procedure testDelete; override; procedure testIterate; override; + procedure testIterateEmpty; procedure testEnumerator; override; end; @@ -203,6 +204,13 @@ begin end; +procedure THashesSITest.testIterateEmpty; +begin + Hash.First; + CheckFalse(Hash.Next, 'Next'); +end; + + function THashesSITest.GetHash: TX2SIHash; begin Result := TX2SIHash(FHash); diff --git a/X2UtApp.pas b/X2UtApp.pas index 5406bcf..812167c 100644 --- a/X2UtApp.pas +++ b/X2UtApp.pas @@ -359,8 +359,8 @@ begin GetPropList(Strings.ClassInfo, tkStrings, pProps); for iProp := 0 to iCount - 1 do begin - if VerQueryValue(pBuffer, PChar(cName + '\' + pProps^[iProp]^.Name), - Pointer(pValue), dVer) then + if VerQueryValueA(pBuffer, PAnsiChar(cName + AnsiString('\') + pProps^[iProp]^.Name), + Pointer(pValue), dVer) then SetStrProp(Strings, pProps[iProp], pValue); end; finally diff --git a/X2UtElevation.pas b/X2UtElevation.pas index 821d00c..d749888 100644 --- a/X2UtElevation.pas +++ b/X2UtElevation.pas @@ -259,9 +259,9 @@ begin RaiseLastOSError; try - if RegOpenKeyExA(HKEY_CLASSES_ROOT, PChar(AKey), 0, KEY_READ or KEY_WRITE, keyHandle) = ERROR_SUCCESS then + if RegOpenKeyEx(HKEY_CLASSES_ROOT, PChar(AKey), 0, KEY_READ or KEY_WRITE, keyHandle) = ERROR_SUCCESS then try - if RegSetValueExA(keyHandle, PChar('AccessPermission'), 0, REG_BINARY, descriptor, size) <> ERROR_SUCCESS then + if RegSetValueEx(keyHandle, PChar('AccessPermission'), 0, REG_BINARY, descriptor, size) <> ERROR_SUCCESS then RaiseLastOSError; finally RegCloseKey(keyHandle); @@ -336,7 +336,11 @@ begin end; except on E: Exception do + {$IFDEF VER230} + raise EOleRegistrationError.Create(E.Message, 0, 0); + {$ELSE} raise EOleRegistrationError.Create(E.Message); + {$ENDIF} end; end; diff --git a/X2UtPersist.pas b/X2UtPersist.pas index 0afaa57..d34b8fb 100644 --- a/X2UtPersist.pas +++ b/X2UtPersist.pas @@ -365,7 +365,8 @@ begin tkString, tkLString, - tkWString: + tkWString, + tkUString: if ReadString(APropInfo^.Name, stringValue) then SetStrProp(AObject, APropInfo, stringValue); diff --git a/X2UtProcess.pas b/X2UtProcess.pas index 7dd816d..ba375c4 100644 --- a/X2UtProcess.pas +++ b/X2UtProcess.pas @@ -102,10 +102,10 @@ const var buffer: PChar; processInfo: TProcessInformation; - readPipe: Cardinal; + readPipe: THandle; securityAttr: TSecurityAttributes; startupInfo: TStartupInfo; - writePipe: Cardinal; + writePipe: THandle; bytesRead: Cardinal; newConsole: Boolean; consoleOutput: THandle;