Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Added Win64 platform support. Fixed the most egregious errors wrt bitness. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | updatecheck |
Files: | files | file ages | folders |
SHA1: |
f09c69e9b9cbb7f94d267b5d9224da06 |
User & Date: | tinus 2017-05-14 14:31:04.325 |
References
2019-03-15
| ||
18:14 | Grafted Win64-related changes from [23338c7949] and [f09c69e9b9] into their own branch, to make it easier to create a proper 64-bits release. check-in: e1f6b8f94e user: tinus tags: win64 | |
Context
2017-05-14
| ||
14:31 | Added Win64 platform support. Fixed the most egregious errors wrt bitness. Leaf check-in: f09c69e9b9 user: tinus tags: updatecheck | |
2017-02-19
| ||
20:38 | Implemented updating and replacing of plugin. check-in: 6d33ea7784 user: tinus tags: updatecheck | |
Changes
Changes to src/common/L_VersionInfoW.pas.
1 2 3 4 5 6 7 8 9 10 11 | unit L_VersionInfoW; interface uses Windows, SysUtils; type TFileVersionInfo = class private { Private declarations } | | | | | | | | | | | | | > > | > | | | | | | | | | | | | | | | | > > > > > > > > | | | | | | < | > | | | | > > | > > > > | | | | | < | | | | > > > > > > | < | > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 | unit L_VersionInfoW; interface uses Windows, SysUtils; type TFileVersionInfo = class private { Private declarations } FFilename : string; FHasVersionInfo : boolean; FCompanyName : string; FFileDescription : string; FFileVersion : string; FInternalname : string; FLegalCopyright : string; FLegalTradeMarks : string; FOriginalFilename : string; FProductName : string; FProductVersion : string; FComments : string; FMajorVersion : Word; FMinorVersion : Word; FRevision : Word; FBuild : Word; FFlags : Word; FFileDateTime : TDateTime; procedure SetFileName(const AFileName: string); function HasFlag(const Index: integer): boolean; protected { Protected declarations } public { Public declarations } constructor Create(const AFileName: string); destructor Destroy; override; property FileName : string read FFileName write SetFileName; public { Published declarations } property CompanyName : string read FCompanyName; property FileDescription : string read FFileDescription; property FileVersion : string read FFileVersion; property Internalname : string read FInternalname; property LegalCopyright : string read FLegalCopyright; property LegalTradeMarks : string read FLegalTradeMarks; property OriginalFilename : string read FOriginalFilename; property ProductName : string read FProductName; property ProductVersion : string read FProductVersion; property Comments : string read FComments; property MajorVersion : Word read FMajorVersion; property MinorVersion : Word read FMinorVersion; property Revision : Word read FRevision; property Build : Word read FBuild; property Flags : Word read FFlags; property IsDebug : boolean index VS_FF_DEBUG read HasFlag; property IsPreRelease : boolean index VS_FF_PRERELEASE read HasFlag; property IsPatched : boolean index VS_FF_PATCHED read HasFlag; property IsPrivateBuild : boolean index VS_FF_PRIVATEBUILD read HasFlag; property IsInfoInferred : boolean index VS_FF_INFOINFERRED read HasFlag; property IsSpecialBuild : boolean index VS_FF_SPECIALBUILD read HasFlag; property FileDateTime : TDateTime read FFileDateTime; end; implementation type TLangAndCP = record wLanguage : word; wCodePage : word; end; PLangAndCP = ^TLangAndCP; constructor TFileVersionInfo.Create(const AFileName: string); begin inherited Create; SetFileName(AFileName); end; destructor TFileVersionInfo.Destroy; begin inherited Destroy; end; procedure TFileVersionInfo.SetFileName(const AFileName: string); var Dummy : UINT; BufferSize: DWORD; Buffer : Pointer; PLang : PLangAndCP; SubBlock : string; SysTime: TSystemTime; { - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - } function QueryValue(const AName: string): string; var Value : PChar; begin SubBlock := WideFormat('\\StringFileInfo\\%.4x%.4x\\%s', [PLang.wLanguage, PLang.wCodePage, AName]); if VerQueryValue(Buffer, PChar(SubBlock), Pointer(Value), Dummy) then Result := string(Value) else Result := ''; end; { - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - } var PInfoBlock : PVSFixedFileInfo; FileTime : TFileTime; begin FFilename := AFileName; BufferSize := GetFileVersionInfoSize(PChar(AFileName), Dummy); FHasVersionInfo := (Buffersize > 0); if FHasVersionInfo then begin Buffer := AllocMem(BufferSize); try GetFileVersionInfo(PChar(AFileName), Dummy, BufferSize, Buffer); SubBlock := '\\VarFileInfo\\Translation'; VerQueryValue(Buffer, PChar(SubBlock), Pointer(PLang), Dummy); FCompanyName := QueryValue('CompanyName'); FFileDescription := QueryValue('FileDescription'); FFileVersion := QueryValue('FileVersion'); FInternalName := QueryValue('InternalName'); FLegalCopyright := QueryValue('LegalCopyright'); FLegalTradeMarks := QueryValue('LegalTradeMarks'); FOriginalFilename := QueryValue('OriginalFilename'); FProductName := QueryValue('ProductName'); FProductVersion := QueryValue('ProductVersion'); FComments := QueryValue('Comments'); VerQueryValue(Buffer, '\', Pointer(PInfoBlock), Dummy); FMajorVersion := PInfoBlock.dwFileVersionMS shr 16; FMinorVersion := PInfoBlock.dwFileVersionMS and 65535; FRevision := PInfoBlock.dwFileVersionLS shr 16; FBuild := PInfoBlock.dwFileVersionLS and 65535; FFlags := PInfoBlock.dwFileFlags and PInfoBlock.dwFileFlagsMask; FileTime.dwLowDateTime := PInfoBlock.dwFileDateLS; FileTime.dwHighDateTime := PInfoBlock.dwFileDateMS; if FileTimeToLocalFileTime(FileTime, FileTime) and FileTimeToSystemTime(FileTime, SysTime) and (SysTime.wYear > 1601) then FFileDateTime := SystemTimeToDateTime(SysTime); finally FreeMem(Buffer, BufferSize); end; end else begin FCompanyname := ''; FFileDescription := ''; FFileVersion := ''; FInternalname := ''; FLegalCopyright := ''; FLegalTradeMarks := ''; FOriginalFilename := ''; FProductName := ''; FProductVersion := ''; FComments := ''; FMajorVersion := 0; FMinorVersion := 0; FRevision := 0; FBuild := 0; end; end; function TFileVersionInfo.HasFlag(const Index: integer): boolean; begin Result := (FFlags and Index) <> 0; end; end. |
Changes to src/lib/NppDockingForms.pas.
︙ | ︙ | |||
147 148 149 150 151 152 153 | GetMem(self.ToolbarData.AdditionalInfo, 1000*sizeof(nppPChar)); {$IFDEF NPPUNICODE} StringToWideChar(self.Caption, self.ToolbarData.Title, 500); GetModuleFileNameW(HInstance, self.ToolbarData.ModuleName, 1000); StringToWideChar(ExtractFileName(self.ToolbarData.ModuleName), self.ToolbarData.ModuleName, 1000); StringToWideChar('', self.ToolbarData.AdditionalInfo, 1); | | | | 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 | GetMem(self.ToolbarData.AdditionalInfo, 1000*sizeof(nppPChar)); {$IFDEF NPPUNICODE} StringToWideChar(self.Caption, self.ToolbarData.Title, 500); GetModuleFileNameW(HInstance, self.ToolbarData.ModuleName, 1000); StringToWideChar(ExtractFileName(self.ToolbarData.ModuleName), self.ToolbarData.ModuleName, 1000); StringToWideChar('', self.ToolbarData.AdditionalInfo, 1); {r:=}SendMessageW(self.Npp.NppData.NppHandle, NPPM_DMMREGASDCKDLG, 0, NativeInt(@self.ToolbarData)); {$ELSE} StrCopy(self.ToolbarData.Title, PChar(self.Caption)); GetModuleFileNameA(HInstance, self.ToolbarData.ModuleName, 1000); StrLCopy(self.ToolbarData.ModuleName, PChar(ExtractFileName(self.ToolbarData.ModuleName)), 1000); StrCopy(self.ToolbarData.AdditionalInfo, PChar('')); {r:=} SendMessageA(self.Npp.NppData.NppHandle, NPPM_DMMREGASDCKDLG, 0, NativeInt(@self.ToolbarData)); {$ENDIF} self.Visible := true; end; procedure TNppDockingForm.Show; begin |
︙ | ︙ | |||
181 182 183 184 185 186 187 | // This hack prevents the Win Dialog default procedure from an endless loop while // looking for the prevoius component, while in a floating state. // I still don't know why the pointer climbs up to the docking dialog that holds this one // but this works for now. procedure TNppDockingForm.RemoveControlParent(control: TControl); var wincontrol: TWinControl; | | | 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 | // This hack prevents the Win Dialog default procedure from an endless loop while // looking for the prevoius component, while in a floating state. // I still don't know why the pointer climbs up to the docking dialog that holds this one // but this works for now. procedure TNppDockingForm.RemoveControlParent(control: TControl); var wincontrol: TWinControl; i, r: NativeInt; begin if (control is TWinControl) then begin wincontrol := control as TWinControl; wincontrol.HandleNeeded; r := Windows.GetWindowLong(wincontrol.Handle, GWL_EXSTYLE); if (r and WS_EX_CONTROLPARENT = WS_EX_CONTROLPARENT) then |
︙ | ︙ |
Changes to src/lib/nppplugin.pas.
︙ | ︙ | |||
395 396 397 398 399 400 401 | DMN_CLOSE = (DMN_FIRST + 1); //nmhdr.code = DWORD(DMN_CLOSE, 0)); //nmhdr.hwndFrom = hwndNpp; //nmhdr.idFrom = ctrlIdNpp; DMN_DOCK = (DMN_FIRST + 2); DMN_FLOAT = (DMN_FIRST + 3); //nmhdr.code = DWORD(DMN_XXX, int newContainer); //nmhdr.hwndFrom = hwndNpp; //nmhdr.idFrom = ctrlIdNpp; type {$IFDEF NPPUNICODE} | | | 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 | DMN_CLOSE = (DMN_FIRST + 1); //nmhdr.code = DWORD(DMN_CLOSE, 0)); //nmhdr.hwndFrom = hwndNpp; //nmhdr.idFrom = ctrlIdNpp; DMN_DOCK = (DMN_FIRST + 2); DMN_FLOAT = (DMN_FIRST + 3); //nmhdr.code = DWORD(DMN_XXX, int newContainer); //nmhdr.hwndFrom = hwndNpp; //nmhdr.idFrom = ctrlIdNpp; type {$IFDEF NPPUNICODE} nppString = UnicodeString; nppChar = WChar; nppPChar = PWChar; {$ELSE} nppString = AnsiString; nppChar = AnsiChar; nppPChar = PAnsiChar; {$ENDIF} |
︙ | ︙ |
Changes to src/prj/PreviewHTML.dproj.
1 2 3 4 5 6 | <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <ProjectGuid>{A2533A0E-8621-4A31-A675-059AFF5AA9FB}</ProjectGuid> <MainSource>PreviewHTML.dpr</MainSource> <Base>True</Base> <Config Condition="'$(Config)'==''">Debug</Config> | | | > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 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 50 51 52 53 | <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <ProjectGuid>{A2533A0E-8621-4A31-A675-059AFF5AA9FB}</ProjectGuid> <MainSource>PreviewHTML.dpr</MainSource> <Base>True</Base> <Config Condition="'$(Config)'==''">Debug</Config> <TargetedPlatforms>3</TargetedPlatforms> <AppType>Library</AppType> <FrameworkType>VCL</FrameworkType> <ProjectVersion>18.2</ProjectVersion> <Platform Condition="'$(Platform)'==''">Win64</Platform> </PropertyGroup> <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> <Base>true</Base> </PropertyGroup> <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> <Base_Win32>true</Base_Win32> <CfgParent>Base</CfgParent> <Base>true</Base> </PropertyGroup> <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''"> <Base_Win64>true</Base_Win64> <CfgParent>Base</CfgParent> <Base>true</Base> </PropertyGroup> <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> <Cfg_1>true</Cfg_1> <CfgParent>Base</CfgParent> <Base>true</Base> </PropertyGroup> <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> <Cfg_2>true</Cfg_2> <CfgParent>Base</CfgParent> <Base>true</Base> </PropertyGroup> <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''"> <Cfg_2_Win32>true</Cfg_2_Win32> <CfgParent>Cfg_2</CfgParent> <Cfg_2>true</Cfg_2> <Base>true</Base> </PropertyGroup> <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win64)'!=''"> <Cfg_2_Win64>true</Cfg_2_Win64> <CfgParent>Cfg_2</CfgParent> <Cfg_2>true</Cfg_2> <Base>true</Base> </PropertyGroup> <PropertyGroup Condition="'$(Base)'!=''"> <DCC_UNIT_PLATFORM>false</DCC_UNIT_PLATFORM> <DCC_SYMBOL_PLATFORM>false</DCC_SYMBOL_PLATFORM> <SanitizedProjectName>PreviewHTML</SanitizedProjectName> <VerInfo_MinorVer>4</VerInfo_MinorVer> <PostBuildEventCancelOnError>false</PostBuildEventCancelOnError> |
︙ | ︙ | |||
64 65 66 67 68 69 70 71 72 73 74 75 76 77 | <DCC_E>false</DCC_E> <DCC_DcuOutput>..\..\out\dcu\$(PLATFORM)\$(CONFIG)</DCC_DcuOutput> </PropertyGroup> <PropertyGroup Condition="'$(Base_Win32)'!=''"> <DCC_Namespace>System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes> </PropertyGroup> <PropertyGroup Condition="'$(Cfg_1)'!=''"> <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> <DCC_DebugInformation>0</DCC_DebugInformation> <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> </PropertyGroup> <PropertyGroup Condition="'$(Cfg_2)'!=''"> | > > > > | 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | <DCC_E>false</DCC_E> <DCC_DcuOutput>..\..\out\dcu\$(PLATFORM)\$(CONFIG)</DCC_DcuOutput> </PropertyGroup> <PropertyGroup Condition="'$(Base_Win32)'!=''"> <DCC_Namespace>System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes> </PropertyGroup> <PropertyGroup Condition="'$(Base_Win64)'!=''"> <DCC_Namespace>System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace)</DCC_Namespace> <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> </PropertyGroup> <PropertyGroup Condition="'$(Cfg_1)'!=''"> <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> <DCC_DebugInformation>0</DCC_DebugInformation> <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> </PropertyGroup> <PropertyGroup Condition="'$(Cfg_2)'!=''"> |
︙ | ︙ | |||
85 86 87 88 89 90 91 92 93 94 95 96 97 98 | <DCC_Optimize>false</DCC_Optimize> <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> </PropertyGroup> <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''"> <Debugger_HostApplication>C:\MC\Run\Office\Np++\unicode\notepad++</Debugger_HostApplication> <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes> </PropertyGroup> <ItemGroup> <DelphiCompile Include="$(MainSource)"> <MainSource>MainSource</MainSource> </DelphiCompile> <RcCompile Include="PreviewHTML_TB.rc"> <Form>PreviewHTML_TB.res</Form> </RcCompile> | > > > > > | 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | <DCC_Optimize>false</DCC_Optimize> <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> </PropertyGroup> <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''"> <Debugger_HostApplication>C:\MC\Run\Office\Np++\unicode\notepad++</Debugger_HostApplication> <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes> </PropertyGroup> <PropertyGroup Condition="'$(Cfg_2_Win64)'!=''"> <VerInfo_MinorVer>0</VerInfo_MinorVer> <Debugger_HostApplication>C:\MC\Run\Office\Np++\x64\notepad++.exe</Debugger_HostApplication> <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> </PropertyGroup> <ItemGroup> <DelphiCompile Include="$(MainSource)"> <MainSource>MainSource</MainSource> </DelphiCompile> <RcCompile Include="PreviewHTML_TB.rc"> <Form>PreviewHTML_TB.res</Form> </RcCompile> |
︙ | ︙ | |||
169 170 171 172 173 174 175 | <VersionInfoKeys Name="ProductName"/> <VersionInfoKeys Name="ProductVersion">6.0.0.0</VersionInfoKeys> <VersionInfoKeys Name="Comments"/> </VersionInfoKeys> </Delphi.Personality> <Platforms> <Platform value="Win32">True</Platform> | | | 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 | <VersionInfoKeys Name="ProductName"/> <VersionInfoKeys Name="ProductVersion">6.0.0.0</VersionInfoKeys> <VersionInfoKeys Name="Comments"/> </VersionInfoKeys> </Delphi.Personality> <Platforms> <Platform value="Win32">True</Platform> <Platform value="Win64">True</Platform> </Platforms> <Deployment Version="3"> <DeployFile LocalName="..\..\out\Win32\Debug\PreviewHTML.dll" Configuration="Debug" Class="ProjectOutput"> <Platform Name="Win32"> <RemoteName>PreviewHTML.dll</RemoteName> <Overwrite>true</Overwrite> </Platform> |
︙ | ︙ |