1 {******************************************************************************}
2 { }
3 { Windows Version 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: winver.h, released June 2000. The original Pascal }
9 { code is: WinVer.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: JwaWinVer.pas,v 1.12 2007/09/14 06:48:48 marquardt Exp $
44
45 {$IFNDEF JWA_OMIT_SECTIONS}
46 unit JwaWinVer;
47
48 {$WEAKPACKAGEUNIT}
49 {$ENDIF JWA_OMIT_SECTIONS}
50
51 {$HPPEMIT ''}
52 {$HPPEMIT '#include "WinVer.h"'}
53 {$HPPEMIT ''}
54
55 {$IFNDEF JWA_OMIT_SECTIONS}
56 {$I jediapilib.inc}
57
58 interface
59
60 uses
61 JwaWinUser, JwaWinType;
62 {$ENDIF JWA_OMIT_SECTIONS}
63
64 {$IFNDEF JWA_IMPLEMENTATIONSECTION}
65 const
66
67 // RT_VERSION = MAKEINTRESOURCE(16);
68
69 // ----- Symbols -----
70
71 VS_FILE_INFO = RT_VERSION;
72 {$EXTERNALSYM VS_FILE_INFO}
73 VS_VERSION_INFO = 1;
74 {$EXTERNALSYM VS_VERSION_INFO}
75 VS_USER_DEFINED = 100;
76 {$EXTERNALSYM VS_USER_DEFINED}
77
78 // ----- VS_VERSION.dwFileFlags -----
79
80 VS_FFI_SIGNATURE = $FEEF04BD;
81 {$EXTERNALSYM VS_FFI_SIGNATURE}
82 VS_FFI_STRUCVERSION = $00010000;
83 {$EXTERNALSYM VS_FFI_STRUCVERSION}
84 VS_FFI_FILEFLAGSMASK = $0000003F;
85 {$EXTERNALSYM VS_FFI_FILEFLAGSMASK}
86
87 // ----- VS_VERSION.dwFileFlags -----
88
89 VS_FF_DEBUG = $00000001;
90 {$EXTERNALSYM VS_FF_DEBUG}
91 VS_FF_PRERELEASE = $00000002;
92 {$EXTERNALSYM VS_FF_PRERELEASE}
93 VS_FF_PATCHED = $00000004;
94 {$EXTERNALSYM VS_FF_PATCHED}
95 VS_FF_PRIVATEBUILD = $00000008;
96 {$EXTERNALSYM VS_FF_PRIVATEBUILD}
97 VS_FF_INFOINFERRED = $00000010;
98 {$EXTERNALSYM VS_FF_INFOINFERRED}
99 VS_FF_SPECIALBUILD = $00000020;
100 {$EXTERNALSYM VS_FF_SPECIALBUILD}
101
102 // ----- VS_VERSION.dwFileOS -----
103
104 VOS_UNKNOWN = $00000000;
105 {$EXTERNALSYM VOS_UNKNOWN}
106 VOS_DOS = $00010000;
107 {$EXTERNALSYM VOS_DOS}
108 VOS_OS216 = $00020000;
109 {$EXTERNALSYM VOS_OS216}
110 VOS_OS232 = $00030000;
111 {$EXTERNALSYM VOS_OS232}
112 VOS_NT = $00040000;
113 {$EXTERNALSYM VOS_NT}
114 VOS_WINCE = $00050000;
115 {$EXTERNALSYM VOS_WINCE}
116
117 VOS__BASE = $00000000;
118 {$EXTERNALSYM VOS__BASE}
119 VOS__WINDOWS16 = $00000001;
120 {$EXTERNALSYM VOS__WINDOWS16}
121 VOS__PM16 = $00000002;
122 {$EXTERNALSYM VOS__PM16}
123 VOS__PM32 = $00000003;
124 {$EXTERNALSYM VOS__PM32}
125 VOS__WINDOWS32 = $00000004;
126 {$EXTERNALSYM VOS__WINDOWS32}
127
128 VOS_DOS_WINDOWS16 = $00010001;
129 {$EXTERNALSYM VOS_DOS_WINDOWS16}
130 VOS_DOS_WINDOWS32 = $00010004;
131 {$EXTERNALSYM VOS_DOS_WINDOWS32}
132 VOS_OS216_PM16 = $00020002;
133 {$EXTERNALSYM VOS_OS216_PM16}
134 VOS_OS232_PM32 = $00030003;
135 {$EXTERNALSYM VOS_OS232_PM32}
136 VOS_NT_WINDOWS32 = $00040004;
137 {$EXTERNALSYM VOS_NT_WINDOWS32}
138
139 // ----- VS_VERSION.dwFileType -----
140
141 VFT_UNKNOWN = $00000000;
142 {$EXTERNALSYM VFT_UNKNOWN}
143 VFT_APP = $00000001;
144 {$EXTERNALSYM VFT_APP}
145 VFT_DLL = $00000002;
146 {$EXTERNALSYM VFT_DLL}
147 VFT_DRV = $00000003;
148 {$EXTERNALSYM VFT_DRV}
149 VFT_FONT = $00000004;
150 {$EXTERNALSYM VFT_FONT}
151 VFT_VXD = $00000005;
152 {$EXTERNALSYM VFT_VXD}
153 VFT_STATIC_LIB = $00000007;
154 {$EXTERNALSYM VFT_STATIC_LIB}
155
156 // ----- VS_VERSION.dwFileSubtype for VFT_WINDOWS_DRV -----
157
158 VFT2_UNKNOWN = $00000000;
159 {$EXTERNALSYM VFT2_UNKNOWN}
160 VFT2_DRV_PRINTER = $00000001;
161 {$EXTERNALSYM VFT2_DRV_PRINTER}
162 VFT2_DRV_KEYBOARD = $00000002;
163 {$EXTERNALSYM VFT2_DRV_KEYBOARD}
164 VFT2_DRV_LANGUAGE = $00000003;
165 {$EXTERNALSYM VFT2_DRV_LANGUAGE}
166 VFT2_DRV_DISPLAY = $00000004;
167 {$EXTERNALSYM VFT2_DRV_DISPLAY}
168 VFT2_DRV_MOUSE = $00000005;
169 {$EXTERNALSYM VFT2_DRV_MOUSE}
170 VFT2_DRV_NETWORK = $00000006;
171 {$EXTERNALSYM VFT2_DRV_NETWORK}
172 VFT2_DRV_SYSTEM = $00000007;
173 {$EXTERNALSYM VFT2_DRV_SYSTEM}
174 VFT2_DRV_INSTALLABLE = $00000008;
175 {$EXTERNALSYM VFT2_DRV_INSTALLABLE}
176 VFT2_DRV_SOUND = $00000009;
177 {$EXTERNALSYM VFT2_DRV_SOUND}
178 VFT2_DRV_COMM = $0000000A;
179 {$EXTERNALSYM VFT2_DRV_COMM}
180 VFT2_DRV_INPUTMETHOD = $0000000B;
181 {$EXTERNALSYM VFT2_DRV_INPUTMETHOD}
182 VFT2_DRV_VERSIONED_PRINTER = $0000000C;
183 {$EXTERNALSYM VFT2_DRV_VERSIONED_PRINTER}
184
185 // ----- VS_VERSION.dwFileSubtype for VFT_WINDOWS_FONT -----
186
187 VFT2_FONT_RASTER = $00000001;
188 {$EXTERNALSYM VFT2_FONT_RASTER}
189 VFT2_FONT_VECTOR = $00000002;
190 {$EXTERNALSYM VFT2_FONT_VECTOR}
191 VFT2_FONT_TRUETYPE = $00000003;
192 {$EXTERNALSYM VFT2_FONT_TRUETYPE}
193
194 // ----- VerFindFile() flags -----
195
196 VFFF_ISSHAREDFILE = $0001;
197 {$EXTERNALSYM VFFF_ISSHAREDFILE}
198
199 VFF_CURNEDEST = $0001;
200 {$EXTERNALSYM VFF_CURNEDEST}
201 VFF_FILEINUSE = $0002;
202 {$EXTERNALSYM VFF_FILEINUSE}
203 VFF_BUFFTOOSMALL = $0004;
204 {$EXTERNALSYM VFF_BUFFTOOSMALL}
205
206 // ----- VerInstallFile() flags -----
207
208 VIFF_FORCEINSTALL = $0001;
209 {$EXTERNALSYM VIFF_FORCEINSTALL}
210 VIFF_DONTDELETEOLD = $0002;
211 {$EXTERNALSYM VIFF_DONTDELETEOLD}
212
213 VIF_TEMPFILE = $00000001;
214 {$EXTERNALSYM VIF_TEMPFILE}
215 VIF_MISMATCH = $00000002;
216 {$EXTERNALSYM VIF_MISMATCH}
217 VIF_SRCOLD = $00000004;
218 {$EXTERNALSYM VIF_SRCOLD}
219
220 VIF_DIFFLANG = $00000008;
221 {$EXTERNALSYM VIF_DIFFLANG}
222 VIF_DIFFCODEPG = $00000010;
223 {$EXTERNALSYM VIF_DIFFCODEPG}
224 VIF_DIFFTYPE = $00000020;
225 {$EXTERNALSYM VIF_DIFFTYPE}
226
227 VIF_WRITEPROT = $00000040;
228 {$EXTERNALSYM VIF_WRITEPROT}
229 VIF_FILEINUSE = $00000080;
230 {$EXTERNALSYM VIF_FILEINUSE}
231 VIF_OUTOFSPACE = $00000100;
232 {$EXTERNALSYM VIF_OUTOFSPACE}
233 VIF_ACCESSVIOLATION = $00000200;
234 {$EXTERNALSYM VIF_ACCESSVIOLATION}
235 VIF_SHARINGVIOLATION = $00000400;
236 {$EXTERNALSYM VIF_SHARINGVIOLATION}
237 VIF_CANNOTCREATE = $00000800;
238 {$EXTERNALSYM VIF_CANNOTCREATE}
239 VIF_CANNOTDELETE = $00001000;
240 {$EXTERNALSYM VIF_CANNOTDELETE}
241 VIF_CANNOTRENAME = $00002000;
242 {$EXTERNALSYM VIF_CANNOTRENAME}
243 VIF_CANNOTDELETECUR = $00004000;
244 {$EXTERNALSYM VIF_CANNOTDELETECUR}
245 VIF_OUTOFMEMORY = $00008000;
246 {$EXTERNALSYM VIF_OUTOFMEMORY}
247
248 VIF_CANNOTREADSRC = $00010000;
249 {$EXTERNALSYM VIF_CANNOTREADSRC}
250 VIF_CANNOTREADDST = $00020000;
251 {$EXTERNALSYM VIF_CANNOTREADDST}
252
253 VIF_BUFFTOOSMALL = $00040000;
254 {$EXTERNALSYM VIF_BUFFTOOSMALL}
255 VIF_CANNOTLOADLZ32 = $00080000;
256 {$EXTERNALSYM VIF_CANNOTLOADLZ32}
257 VIF_CANNOTLOADCABINET = $00100000;
258 {$EXTERNALSYM VIF_CANNOTLOADCABINET}
259
260 // ----- Types and structures -----
261
262 type
263 PVSFixedFileInfo = ^VS_FIXEDFILEINFO;
264 tagVS_FIXEDFILEINFO = record
265 dwSignature: DWORD; // e.g. 0xfeef04bd
266 dwStrucVersion: DWORD; // e.g. 0x00000042 = "0.42"
267 dwFileVersionMS: DWORD; // e.g. 0x00030075 = "3.75"
268 dwFileVersionLS: DWORD; // e.g. 0x00000031 = "0.31"
269 dwProductVersionMS: DWORD; // e.g. 0x00030010 = "3.10"
270 dwProductVersionLS: DWORD; // e.g. 0x00000031 = "0.31"
271 dwFileFlagsMask: DWORD; // = 0x3F for version "0.42"
272 dwFileFlags: DWORD; // e.g. VFF_DEBUG | VFF_PRERELEASE
273 dwFileOS: DWORD; // e.g. VOS_DOS_WINDOWS16
274 dwFileType: DWORD; // e.g. VFT_DRIVER
275 dwFileSubtype: DWORD; // e.g. VFT2_DRV_KEYBOARD
276 dwFileDateMS: DWORD; // e.g. 0
277 dwFileDateLS: DWORD; // e.g. 0
278 end;
279 {$EXTERNALSYM tagVS_FIXEDFILEINFO}
280 VS_FIXEDFILEINFO = tagVS_FIXEDFILEINFO;
281 {$EXTERNALSYM VS_FIXEDFILEINFO}
282 TVSFixedFileInfo = VS_FIXEDFILEINFO;
283
prototypesnull284 // ----- Function prototypes -----
285
286 function VerFindFileA(uFlags: DWORD; szFileName, szWinDir, szAppDir,
287 szCurDir: LPSTR; var lpuCurDirLen: UINT; szDestDir: LPSTR;
288 var lpuDestDirLen: UINT): DWORD; stdcall;
289 {$EXTERNALSYM VerFindFileA}
VerFindFileWnull290 function VerFindFileW(uFlags: DWORD; szFileName, szWinDir, szAppDir,
291 szCurDir: LPWSTR; var lpuCurDirLen: UINT; szDestDir: LPWSTR;
292 var lpuDestDirLen: UINT): DWORD; stdcall;
293 {$EXTERNALSYM VerFindFileW}
VerFindFilenull294 function VerFindFile(uFlags: DWORD; szFileName, szWinDir, szAppDir,
295 szCurDir: LPTSTR; var lpuCurDirLen: UINT; szDestDir: LPTSTR;
296 var lpuDestDirLen: UINT): DWORD; stdcall;
297 {$EXTERNALSYM VerFindFile}
298
VerInstallFileAnull299 function VerInstallFileA(uFlags: DWORD; szSrcFileName, szDestFileName, szSrcDir,
300 szDestDir, szCurDir, szTmpFile: LPSTR; var lpuTmpFileLen: UINT): DWORD; stdcall;
301 {$EXTERNALSYM VerInstallFileA}
VerInstallFileWnull302 function VerInstallFileW(uFlags: DWORD; szSrcFileName, szDestFileName, szSrcDir,
303 szDestDir, szCurDir, szTmpFile: LPWSTR; var lpuTmpFileLen: UINT): DWORD; stdcall;
304 {$EXTERNALSYM VerInstallFileW}
VerInstallFilenull305 function VerInstallFile(uFlags: DWORD; szSrcFileName, szDestFileName, szSrcDir,
306 szDestDir, szCurDir, szTmpFile: LPTSTR; var lpuTmpFileLen: UINT): DWORD; stdcall;
307 {$EXTERNALSYM VerInstallFile}
308
309 // Returns size of version info in bytes
310
GetFileVersionInfoSizeAnull311 function GetFileVersionInfoSizeA(lptstrFilename: LPCSTR; var lpdwHandle: DWORD): DWORD; stdcall;
312 {$EXTERNALSYM GetFileVersionInfoSizeA}
GetFileVersionInfoSizeWnull313 function GetFileVersionInfoSizeW(lptstrFilename: LPCWSTR; var lpdwHandle: DWORD): DWORD; stdcall;
314 {$EXTERNALSYM GetFileVersionInfoSizeW}
GetFileVersionInfoSizenull315 function GetFileVersionInfoSize(lptstrFilename: LPCTSTR; var lpdwHandle: DWORD): DWORD; stdcall;
316 {$EXTERNALSYM GetFileVersionInfoSize}
317
318 // Read version info into buffer
319
GetFileVersionInfoAnull320 function GetFileVersionInfoA(lptstrFilename: LPCSTR; dwHandle, dwLen: DWORD;
321 lpData: LPVOID): BOOL; stdcall;
322 {$EXTERNALSYM GetFileVersionInfoA}
GetFileVersionInfoWnull323 function GetFileVersionInfoW(lptstrFilename: LPCWSTR; dwHandle, dwLen: DWORD;
324 lpData: LPVOID): BOOL; stdcall;
325 {$EXTERNALSYM GetFileVersionInfoW}
GetFileVersionInfonull326 function GetFileVersionInfo(lptstrFilename: LPCTSTR; dwHandle, dwLen: DWORD;
327 lpData: LPVOID): BOOL; stdcall;
328 {$EXTERNALSYM GetFileVersionInfo}
329
VerLanguageNameAnull330 function VerLanguageNameA(wLang: DWORD; szLang: LPSTR; nSize: DWORD): DWORD; stdcall;
331 {$EXTERNALSYM VerLanguageNameA}
VerLanguageNameWnull332 function VerLanguageNameW(wLang: DWORD; szLang: LPWSTR; nSize: DWORD): DWORD; stdcall;
333 {$EXTERNALSYM VerLanguageNameW}
VerLanguageNamenull334 function VerLanguageName(wLang: DWORD; szLang: LPTSTR; nSize: DWORD): DWORD; stdcall;
335 {$EXTERNALSYM VerLanguageName}
336
VerQueryValueAnull337 function VerQueryValueA(pBlock: LPVOID; lpSubBlock: LPSTR; var lplpBuffer: LPVOID;
338 var puLen: UINT): BOOL; stdcall;
339 {$EXTERNALSYM VerQueryValueA}
VerQueryValueWnull340 function VerQueryValueW(pBlock: LPVOID; lpSubBlock: LPWSTR; var lplpBuffer: LPVOID;
341 var puLen: UINT): BOOL; stdcall;
342 {$EXTERNALSYM VerQueryValueW}
VerQueryValuenull343 function VerQueryValue(pBlock: LPVOID; lpSubBlock: LPTSTR; var lplpBuffer: LPVOID;
344 var puLen: UINT): BOOL; stdcall;
345 {$EXTERNALSYM VerQueryValue}
346
347 {$ENDIF JWA_IMPLEMENTATIONSECTION}
348
349 {$IFNDEF JWA_OMIT_SECTIONS}
350 implementation
351 //uses ...
352 {$ENDIF JWA_OMIT_SECTIONS}
353
354 {$IFNDEF JWA_INTERFACESECTION}
355 {$IFNDEF JWA_INCLUDEMODE}
356 const
357 versionlib = 'version.dll';
358 {$IFDEF UNICODE}
359 AWSuffix = 'W';
360 {$ELSE}
361 AWSuffix = 'A';
362 {$ENDIF UNICODE}
363 {$ENDIF JWA_INCLUDEMODE}
364
365 {$IFDEF DYNAMIC_LINK}
366
367 var
368 _VerFindFileA: Pointer;
369
VerFindFileAnull370 function VerFindFileA;
371 begin
372 GetProcedureAddress(_VerFindFileA, versionlib, 'VerFindFileA');
373 asm
374 MOV ESP, EBP
375 POP EBP
376 JMP [_VerFindFileA]
377 end;
378 end;
379
380 var
381 _VerFindFileW: Pointer;
382
VerFindFileWnull383 function VerFindFileW;
384 begin
385 GetProcedureAddress(_VerFindFileW, versionlib, 'VerFindFileW');
386 asm
387 MOV ESP, EBP
388 POP EBP
389 JMP [_VerFindFileW]
390 end;
391 end;
392
393 var
394 _VerFindFile: Pointer;
395
VerFindFilenull396 function VerFindFile;
397 begin
398 GetProcedureAddress(_VerFindFile, versionlib, 'VerFindFile' + AWSuffix);
399 asm
400 MOV ESP, EBP
401 POP EBP
402 JMP [_VerFindFile]
403 end;
404 end;
405
406 var
407 _VerInstallFileA: Pointer;
408
VerInstallFileAnull409 function VerInstallFileA;
410 begin
411 GetProcedureAddress(_VerInstallFileA, versionlib, 'VerInstallFileA');
412 asm
413 MOV ESP, EBP
414 POP EBP
415 JMP [_VerInstallFileA]
416 end;
417 end;
418
419 var
420 _VerInstallFileW: Pointer;
421
VerInstallFileWnull422 function VerInstallFileW;
423 begin
424 GetProcedureAddress(_VerInstallFileW, versionlib, 'VerInstallFileW');
425 asm
426 MOV ESP, EBP
427 POP EBP
428 JMP [_VerInstallFileW]
429 end;
430 end;
431
432 var
433 _VerInstallFile: Pointer;
434
VerInstallFilenull435 function VerInstallFile;
436 begin
437 GetProcedureAddress(_VerInstallFile, versionlib, 'VerInstallFile' + AWSuffix);
438 asm
439 MOV ESP, EBP
440 POP EBP
441 JMP [_VerInstallFile]
442 end;
443 end;
444
445 var
446 _GetFileVersionInfoSizeA: Pointer;
447
GetFileVersionInfoSizeAnull448 function GetFileVersionInfoSizeA;
449 begin
450 GetProcedureAddress(_GetFileVersionInfoSizeA, versionlib, 'GetFileVersionInfoSizeA');
451 asm
452 MOV ESP, EBP
453 POP EBP
454 JMP [_GetFileVersionInfoSizeA]
455 end;
456 end;
457
458 var
459 _GetFileVersionInfoSizeW: Pointer;
460
GetFileVersionInfoSizeWnull461 function GetFileVersionInfoSizeW;
462 begin
463 GetProcedureAddress(_GetFileVersionInfoSizeW, versionlib, 'GetFileVersionInfoSizeW');
464 asm
465 MOV ESP, EBP
466 POP EBP
467 JMP [_GetFileVersionInfoSizeW]
468 end;
469 end;
470
471 var
472 _GetFileVersionInfoSize: Pointer;
473
GetFileVersionInfoSizenull474 function GetFileVersionInfoSize;
475 begin
476 GetProcedureAddress(_GetFileVersionInfoSize, versionlib, 'GetFileVersionInfoSize' + AWSuffix);
477 asm
478 MOV ESP, EBP
479 POP EBP
480 JMP [_GetFileVersionInfoSize]
481 end;
482 end;
483
484 var
485 _GetFileVersionInfoA: Pointer;
486
GetFileVersionInfoAnull487 function GetFileVersionInfoA;
488 begin
489 GetProcedureAddress(_GetFileVersionInfoA, versionlib, 'GetFileVersionInfoA');
490 asm
491 MOV ESP, EBP
492 POP EBP
493 JMP [_GetFileVersionInfoA]
494 end;
495 end;
496
497 var
498 _GetFileVersionInfoW: Pointer;
499
GetFileVersionInfoWnull500 function GetFileVersionInfoW;
501 begin
502 GetProcedureAddress(_GetFileVersionInfoW, versionlib, 'GetFileVersionInfoW');
503 asm
504 MOV ESP, EBP
505 POP EBP
506 JMP [_GetFileVersionInfoW]
507 end;
508 end;
509
510 var
511 _GetFileVersionInfo: Pointer;
512
GetFileVersionInfonull513 function GetFileVersionInfo;
514 begin
515 GetProcedureAddress(_GetFileVersionInfo, versionlib, 'GetFileVersionInfo' + AWSuffix);
516 asm
517 MOV ESP, EBP
518 POP EBP
519 JMP [_GetFileVersionInfo]
520 end;
521 end;
522
523 var
524 _VerLanguageNameA: Pointer;
525
VerLanguageNameAnull526 function VerLanguageNameA;
527 begin
528 GetProcedureAddress(_VerLanguageNameA, versionlib, 'VerLanguageNameA');
529 asm
530 MOV ESP, EBP
531 POP EBP
532 JMP [_VerLanguageNameA]
533 end;
534 end;
535
536 var
537 _VerLanguageNameW: Pointer;
538
VerLanguageNameWnull539 function VerLanguageNameW;
540 begin
541 GetProcedureAddress(_VerLanguageNameW, versionlib, 'VerLanguageNameW');
542 asm
543 MOV ESP, EBP
544 POP EBP
545 JMP [_VerLanguageNameW]
546 end;
547 end;
548
549 var
550 _VerLanguageName: Pointer;
551
VerLanguageNamenull552 function VerLanguageName;
553 begin
554 GetProcedureAddress(_VerLanguageName, versionlib, 'VerLanguageName' + AWSuffix);
555 asm
556 MOV ESP, EBP
557 POP EBP
558 JMP [_VerLanguageName]
559 end;
560 end;
561
562 var
563 _VerQueryValueA: Pointer;
564
VerQueryValueAnull565 function VerQueryValueA;
566 begin
567 GetProcedureAddress(_VerQueryValueA, versionlib, 'VerQueryValueA');
568 asm
569 MOV ESP, EBP
570 POP EBP
571 JMP [_VerQueryValueA]
572 end;
573 end;
574
575 var
576 _VerQueryValueW: Pointer;
577
VerQueryValueWnull578 function VerQueryValueW;
579 begin
580 GetProcedureAddress(_VerQueryValueW, versionlib, 'VerQueryValueW');
581 asm
582 MOV ESP, EBP
583 POP EBP
584 JMP [_VerQueryValueW]
585 end;
586 end;
587
588 var
589 _VerQueryValue: Pointer;
590
VerQueryValuenull591 function VerQueryValue;
592 begin
593 GetProcedureAddress(_VerQueryValue, versionlib, 'VerQueryValue' + AWSuffix);
594 asm
595 MOV ESP, EBP
596 POP EBP
597 JMP [_VerQueryValue]
598 end;
599 end;
600
601 {$ELSE}
602
VerFindFileAnull603 function VerFindFileA; external versionlib name 'VerFindFileA';
VerFindFileWnull604 function VerFindFileW; external versionlib name 'VerFindFileW';
VerFindFilenull605 function VerFindFile; external versionlib name 'VerFindFile' + AWSuffix;
VerInstallFileAnull606 function VerInstallFileA; external versionlib name 'VerInstallFileA';
VerInstallFileWnull607 function VerInstallFileW; external versionlib name 'VerInstallFileW';
VerInstallFilenull608 function VerInstallFile; external versionlib name 'VerInstallFile' + AWSuffix;
GetFileVersionInfoSizeAnull609 function GetFileVersionInfoSizeA; external versionlib name 'GetFileVersionInfoSizeA';
GetFileVersionInfoSizeWnull610 function GetFileVersionInfoSizeW; external versionlib name 'GetFileVersionInfoSizeW';
GetFileVersionInfoSizenull611 function GetFileVersionInfoSize; external versionlib name 'GetFileVersionInfoSize' + AWSuffix;
GetFileVersionInfoAnull612 function GetFileVersionInfoA; external versionlib name 'GetFileVersionInfoA';
GetFileVersionInfoWnull613 function GetFileVersionInfoW; external versionlib name 'GetFileVersionInfoW';
GetFileVersionInfonull614 function GetFileVersionInfo; external versionlib name 'GetFileVersionInfo' + AWSuffix;
VerLanguageNameAnull615 function VerLanguageNameA; external versionlib name 'VerLanguageNameA';
VerLanguageNameWnull616 function VerLanguageNameW; external versionlib name 'VerLanguageNameW';
VerLanguageNamenull617 function VerLanguageName; external versionlib name 'VerLanguageName' + AWSuffix;
VerQueryValueAnull618 function VerQueryValueA; external versionlib name 'VerQueryValueA';
VerQueryValueWnull619 function VerQueryValueW; external versionlib name 'VerQueryValueW';
VerQueryValuenull620 function VerQueryValue; external versionlib name 'VerQueryValue' + AWSuffix;
621
622 {$ENDIF DYNAMIC_LINK}
623
624 {$ENDIF JWA_INTERFACESECTION}
625
626 {$IFNDEF JWA_OMIT_SECTIONS}
627 end.
628 {$ENDIF JWA_OMIT_SECTIONS}
629