From a79efabe45cbe4f2ccc87ee5928e1dc0fd408440 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Mon, 8 Oct 2012 19:38:29 +0000 Subject: compilation fix git-svn-id: http://svn.miranda-ng.org/main/trunk@1824 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/Watrack/PsAPI.pas | 418 ++++++++++++++++++++++++++++++++++++++++++++++ plugins/Watrack/make.bat | 39 +++-- 2 files changed, 437 insertions(+), 20 deletions(-) create mode 100644 plugins/Watrack/PsAPI.pas diff --git a/plugins/Watrack/PsAPI.pas b/plugins/Watrack/PsAPI.pas new file mode 100644 index 0000000000..2fe6ed2be7 --- /dev/null +++ b/plugins/Watrack/PsAPI.pas @@ -0,0 +1,418 @@ +unit PsAPI; + +interface + +{$WEAKPACKAGEUNIT} + +uses Windows; + +{$HPPEMIT '#include '} + +type + PPointer = ^Pointer; + + TEnumProcesses = function (lpidProcess: LPDWORD; cb: DWORD; var cbNeeded: DWORD): BOOL stdcall; + TEnumProcessModules = function (hProcess: THandle; lphModule: LPDWORD; cb: DWORD; + var lpcbNeeded: DWORD): BOOL stdcall; + TGetModuleBaseNameA = function (hProcess: THandle; hModule: HMODULE; + lpBaseName: PAnsiChar; nSize: DWORD): DWORD stdcall; + TGetModuleBaseNameW = function (hProcess: THandle; hModule: HMODULE; + lpBaseName: PWideChar; nSize: DWORD): DWORD stdcall; + TGetModuleBaseName = TGetModuleBaseNameA; + TGetModuleFileNameExA = function (hProcess: THandle; hModule: HMODULE; + lpFilename: PAnsiChar; nSize: DWORD): DWORD stdcall; + TGetModuleFileNameExW = function (hProcess: THandle; hModule: HMODULE; + lpFilename: PWideChar; nSize: DWORD): DWORD stdcall; + TGetModuleFileNameEx = TGetModuleFileNameExA; + + {$EXTERNALSYM _MODULEINFO} + _MODULEINFO = packed record + lpBaseOfDll: Pointer; + SizeOfImage: DWORD; + EntryPoint: Pointer; + end; + {$EXTERNALSYM MODULEINFO} + MODULEINFO = _MODULEINFO; + {$EXTERNALSYM LPMODULEINFO} + LPMODULEINFO = ^_MODULEINFO; + TModuleInfo = _MODULEINFO; + PModuleInfo = LPMODULEINFO; + + TGetModuleInformation = function (hProcess: THandle; hModule: HMODULE; + lpmodinfo: LPMODULEINFO; cb: DWORD): BOOL stdcall; + TEmptyWorkingSet = function (hProcess: THandle): BOOL stdcall; + TQueryWorkingSet = function (hProcess: THandle; pv: Pointer; cb: DWORD): BOOL stdcall; + TInitializeProcessForWsWatch = function (hProcess: THandle): BOOL stdcall; + + {$EXTERNALSYM _PSAPI_WS_WATCH_INFORMATION} + _PSAPI_WS_WATCH_INFORMATION = packed record + FaultingPc: Pointer; + FaultingVa: Pointer; + end; + {$EXTERNALSYM PSAPI_WS_WATCH_INFORMATION} + PSAPI_WS_WATCH_INFORMATION = _PSAPI_WS_WATCH_INFORMATION; + {$EXTERNALSYM PPSAPI_WS_WATCH_INFORMATION} + PPSAPI_WS_WATCH_INFORMATION = ^_PSAPI_WS_WATCH_INFORMATION; + TPSAPIWsWatchInformation = _PSAPI_WS_WATCH_INFORMATION; + PPSAPIWsWatchInformation = PPSAPI_WS_WATCH_INFORMATION; + + TGetWsChanges = function (hProcess: THandle; lpWatchInfo: PPSAPI_WS_WATCH_INFORMATION; + cb: DWORD): BOOL stdcall; + + TGetMappedFileNameA = function (hProcess: THandle; lpv: Pointer; + lpFilename: PAnsiChar; nSize: DWORD): DWORD stdcall; + TGetMappedFileNameW = function (hProcess: THandle; lpv: Pointer; + lpFilename: PWideChar; nSize: DWORD): DWORD stdcall; + TGetMappedFileName = TGetMappedFileNameA; + TGetDeviceDriverBaseNameA = function (ImageBase: Pointer; lpBaseName: PAnsiChar; + nSize: DWORD): DWORD stdcall; + TGetDeviceDriverBaseNameW = function (ImageBase: Pointer; lpBaseName: PWideChar; + nSize: DWORD): DWORD stdcall; + TGetDeviceDriverBaseName = TGetDeviceDriverBaseNameA; + TGetDeviceDriverFileNameA = function (ImageBase: Pointer; lpFileName: PAnsiChar; + nSize: DWORD): DWORD stdcall; + TGetDeviceDriverFileNameW = function (ImageBase: Pointer; lpFileName: PWideChar; + nSize: DWORD): DWORD stdcall; + TGetDeviceDriverFileName = TGetDeviceDriverFileNameA; + + TEnumDeviceDrivers = function (lpImageBase: PPointer; cb: DWORD; + var lpcbNeeded: DWORD): BOOL stdcall; + + {$EXTERNALSYM _PROCESS_MEMORY_COUNTERS} + _PROCESS_MEMORY_COUNTERS = packed record + cb: DWORD; + PageFaultCount: DWORD; + PeakWorkingSetSize: DWORD; + WorkingSetSize: DWORD; + QuotaPeakPagedPoolUsage: DWORD; + QuotaPagedPoolUsage: DWORD; + QuotaPeakNonPagedPoolUsage: DWORD; + QuotaNonPagedPoolUsage: DWORD; + PagefileUsage: DWORD; + PeakPagefileUsage: DWORD; + end; + {$EXTERNALSYM PROCESS_MEMORY_COUNTERS} + PROCESS_MEMORY_COUNTERS = _PROCESS_MEMORY_COUNTERS; + {$EXTERNALSYM PPROCESS_MEMORY_COUNTERS} + PPROCESS_MEMORY_COUNTERS = ^_PROCESS_MEMORY_COUNTERS; + TProcessMemoryCounters = _PROCESS_MEMORY_COUNTERS; + PProcessMemoryCounters = ^_PROCESS_MEMORY_COUNTERS; + + TGetProcessMemoryInfo = function (Process: THandle; + ppsmemCounters: PPROCESS_MEMORY_COUNTERS; cb: DWORD): BOOL stdcall; + +{$EXTERNALSYM EnumProcesses} +function EnumProcesses(lpidProcess: LPDWORD; cb: DWORD; var cbNeeded: DWORD): BOOL; +{$EXTERNALSYM EnumProcessModules} +function EnumProcessModules(hProcess: THandle; lphModule: LPDWORD; cb: DWORD; + var lpcbNeeded: DWORD): BOOL; +{$EXTERNALSYM GetModuleBaseName} +function GetModuleBaseName(hProcess: THandle; hModule: HMODULE; + lpBaseName: PChar; nSize: DWORD): DWORD; +{$EXTERNALSYM GetModuleBaseNameA} +function GetModuleBaseNameA(hProcess: THandle; hModule: HMODULE; + lpBaseName: PAnsiChar; nSize: DWORD): DWORD; +{$EXTERNALSYM GetModuleBaseNameW} +function GetModuleBaseNameW(hProcess: THandle; hModule: HMODULE; + lpBaseName: PWideChar; nSize: DWORD): DWORD; +{$EXTERNALSYM GetModuleFileNameEx} +function GetModuleFileNameEx(hProcess: THandle; hModule: HMODULE; + lpFilename: PChar; nSize: DWORD): DWORD; +{$EXTERNALSYM GetModuleFileNameExA} +function GetModuleFileNameExA(hProcess: THandle; hModule: HMODULE; + lpFilename: PAnsiChar; nSize: DWORD): DWORD; +{$EXTERNALSYM GetModuleFileNameExW} +function GetModuleFileNameExW(hProcess: THandle; hModule: HMODULE; + lpFilename: PWideChar; nSize: DWORD): DWORD; +{$EXTERNALSYM GetModuleInformation} +function GetModuleInformation(hProcess: THandle; hModule: HMODULE; + lpmodinfo: LPMODULEINFO; cb: DWORD): BOOL; +{$EXTERNALSYM EmptyWorkingSet} +function EmptyWorkingSet(hProcess: THandle): BOOL; +{$EXTERNALSYM QueryWorkingSet} +function QueryWorkingSet(hProcess: THandle; pv: Pointer; cb: DWORD): BOOL; +{$EXTERNALSYM InitializeProcessForWsWatch} +function InitializeProcessForWsWatch(hProcess: THandle): BOOL; +{$EXTERNALSYM GetMappedFileName} +function GetMappedFileName(hProcess: THandle; lpv: Pointer; + lpFilename: PChar; nSize: DWORD): DWORD; +{$EXTERNALSYM GetMappedFileNameA} +function GetMappedFileNameA(hProcess: THandle; lpv: Pointer; + lpFilename: PAnsiChar; nSize: DWORD): DWORD; +{$EXTERNALSYM GetMappedFileNameW} +function GetMappedFileNameW(hProcess: THandle; lpv: Pointer; + lpFilename: PWideChar; nSize: DWORD): DWORD; +{$EXTERNALSYM GetDeviceDriverBaseName} +function GetDeviceDriverBaseName(ImageBase: Pointer; lpBaseName: PChar; + nSize: DWORD): DWORD; +{$EXTERNALSYM GetDeviceDriverBaseNameA} +function GetDeviceDriverBaseNameA(ImageBase: Pointer; lpBaseName: PAnsiChar; + nSize: DWORD): DWORD; +{$EXTERNALSYM GetDeviceDriverBaseNameW} +function GetDeviceDriverBaseNameW(ImageBase: Pointer; lpBaseName: PWideChar; + nSize: DWORD): DWORD; +{$EXTERNALSYM GetDeviceDriverFileName} +function GetDeviceDriverFileName(ImageBase: Pointer; lpFileName: PChar; + nSize: DWORD): DWORD; +{$EXTERNALSYM GetDeviceDriverFileNameA} +function GetDeviceDriverFileNameA(ImageBase: Pointer; lpFileName: PAnsiChar; + nSize: DWORD): DWORD; +{$EXTERNALSYM GetDeviceDriverFileNameW} +function GetDeviceDriverFileNameW(ImageBase: Pointer; lpFileName: PWideChar; + nSize: DWORD): DWORD; +{$EXTERNALSYM EnumDeviceDrivers} +function EnumDeviceDrivers(lpImageBase: PPointer; cb: DWORD; + var lpcbNeeded: DWORD): BOOL; +{$EXTERNALSYM GetProcessMemoryInfo} +function GetProcessMemoryInfo(Process: THandle; + ppsmemCounters: PPROCESS_MEMORY_COUNTERS; cb: DWORD): BOOL; + +implementation + +var + hPSAPI: THandle; + _EnumProcesses: TEnumProcesses; + _EnumProcessModules: TEnumProcessModules; + {procedure}_GetModuleBaseName: TGetModuleBaseNameA; + {procedure}_GetModuleFileNameEx: TGetModuleFileNameExA; + {procedure}_GetModuleBaseNameA: TGetModuleBaseNameA; + {procedure}_GetModuleFileNameExA: TGetModuleFileNameExA; + {procedure}_GetModuleBaseNameW: TGetModuleBaseNameW; + {procedure}_GetModuleFileNameExW: TGetModuleFileNameExW; + _GetModuleInformation: TGetModuleInformation; + _EmptyWorkingSet: TEmptyWorkingSet; + _QueryWorkingSet: TQueryWorkingSet; + _InitializeProcessForWsWatch: TInitializeProcessForWsWatch; + {procedure}_GetMappedFileName: TGetMappedFileNameA; + {procedure}_GetDeviceDriverBaseName: TGetDeviceDriverBaseNameA; + {procedure}_GetDeviceDriverFileName: TGetDeviceDriverFileNameA; + {procedure}_GetMappedFileNameA: TGetMappedFileNameA; + {procedure}_GetDeviceDriverBaseNameA: TGetDeviceDriverBaseNameA; + {procedure}_GetDeviceDriverFileNameA: TGetDeviceDriverFileNameA; + {procedure}_GetMappedFileNameW: TGetMappedFileNameW; + {procedure}_GetDeviceDriverBaseNameW: TGetDeviceDriverBaseNameW; + {procedure}_GetDeviceDriverFileNameW: TGetDeviceDriverFileNameW; + _EnumDeviceDrivers: TEnumDeviceDrivers; + _GetProcessMemoryInfo: TGetProcessMemoryInfo; + +function CheckPSAPILoaded: Boolean; +begin + if hPSAPI = 0 then + begin +{$IFDEF MSWINDOWS} + hPSAPI := LoadLibrary('PSAPI.dll'); + if hPSAPI < 32 then + begin + hPSAPI := 0; + Result := False; + Exit; + end; +{$ENDIF} + @_EnumProcesses := GetProcAddress(hPSAPI, 'EnumProcesses'); + @_EnumProcessModules := GetProcAddress(hPSAPI, 'EnumProcessModules'); + {procedure}@_GetModuleBaseName := GetProcAddress(hPSAPI, 'GetModuleBaseNameA'); + {procedure}@_GetModuleFileNameEx := GetProcAddress(hPSAPI, 'GetModuleFileNameExA'); + {procedure}@_GetModuleBaseNameA := GetProcAddress(hPSAPI, 'GetModuleBaseNameA'); + {procedure}@_GetModuleFileNameExA := GetProcAddress(hPSAPI, 'GetModuleFileNameExA'); + {procedure}@_GetModuleBaseNameW := GetProcAddress(hPSAPI, 'GetModuleBaseNameW'); + {procedure}@_GetModuleFileNameExW := GetProcAddress(hPSAPI, 'GetModuleFileNameExW'); + @_GetModuleInformation := GetProcAddress(hPSAPI, 'GetModuleInformation'); + @_EmptyWorkingSet := GetProcAddress(hPSAPI, 'EmptyWorkingSet'); + @_QueryWorkingSet := GetProcAddress(hPSAPI, 'QueryWorkingSet'); + @_InitializeProcessForWsWatch := GetProcAddress(hPSAPI, 'InitializeProcessForWsWatch'); + {procedure}@_GetMappedFileName := GetProcAddress(hPSAPI, 'GetMappedFileNameA'); + {procedure}@_GetDeviceDriverBaseName := GetProcAddress(hPSAPI, 'GetDeviceDriverBaseNameA'); + {procedure}@_GetDeviceDriverFileName := GetProcAddress(hPSAPI, 'GetDeviceDriverFileNameA'); + {procedure}@_GetMappedFileNameA := GetProcAddress(hPSAPI, 'GetMappedFileNameA'); + {procedure}@_GetDeviceDriverBaseNameA := GetProcAddress(hPSAPI, 'GetDeviceDriverBaseNameA'); + {procedure}@_GetDeviceDriverFileNameA := GetProcAddress(hPSAPI, 'GetDeviceDriverFileNameA'); + {procedure}@_GetMappedFileNameW := GetProcAddress(hPSAPI, 'GetMappedFileNameW'); + {procedure}@_GetDeviceDriverBaseNameW := GetProcAddress(hPSAPI, 'GetDeviceDriverBaseNameW'); + {procedure}@_GetDeviceDriverFileNameW := GetProcAddress(hPSAPI, 'GetDeviceDriverFileNameW'); + @_EnumDeviceDrivers := GetProcAddress(hPSAPI, 'EnumDeviceDrivers'); + @_GetProcessMemoryInfo := GetProcAddress(hPSAPI, 'GetProcessMemoryInfo'); + end; + Result := True; +end; + +function EnumProcesses(lpidProcess: LPDWORD; cb: DWORD; var cbNeeded: DWORD): BOOL; +begin + if CheckPSAPILoaded then + Result := _EnumProcesses(lpidProcess, cb, cbNeeded) + else Result := False; +end; + +function EnumProcessModules(hProcess: THandle; lphModule: LPDWORD; cb: DWORD; + var lpcbNeeded: DWORD): BOOL; +begin + if CheckPSAPILoaded then + Result := _EnumProcessModules(hProcess, lphModule, cb, lpcbNeeded) + else Result := False; +end; + +function GetModuleBaseName(hProcess: THandle; hModule: HMODULE; + lpBaseName: PChar; nSize: DWORD): DWORD; +begin + if CheckPSAPILoaded then + Result := _GetModuleBaseName(hProcess, hModule, lpBaseName, nSize) + else Result := 0; +end; + +function GetModuleBaseNameA(hProcess: THandle; hModule: HMODULE; + lpBaseName: PAnsiChar; nSize: DWORD): DWORD; +begin + if CheckPSAPILoaded then + Result := _GetModuleBaseNameA(hProcess, hModule, lpBaseName, nSize) + else Result := 0; +end; + +function GetModuleBaseNameW(hProcess: THandle; hModule: HMODULE; + lpBaseName: PWideChar; nSize: DWORD): DWORD; +begin + if CheckPSAPILoaded then + Result := _GetModuleBaseNameW(hProcess, hModule, lpBaseName, nSize) + else Result := 0; +end; + +function GetModuleFileNameEx(hProcess: THandle; hModule: HMODULE; + lpFilename: PChar; nSize: DWORD): DWORD; +begin + if CheckPSAPILoaded then + Result := _GetModuleFileNameEx(hProcess, hModule, lpFileName, nSize) + else Result := 0; +end; + +function GetModuleFileNameExA(hProcess: THandle; hModule: HMODULE; + lpFilename: PAnsiChar; nSize: DWORD): DWORD; +begin + if CheckPSAPILoaded then + Result := _GetModuleFileNameExA(hProcess, hModule, lpFileName, nSize) + else Result := 0; +end; + +function GetModuleFileNameExW(hProcess: THandle; hModule: HMODULE; + lpFilename: PWideChar; nSize: DWORD): DWORD; +begin + if CheckPSAPILoaded then + Result := _GetModuleFileNameExW(hProcess, hModule, lpFileName, nSize) + else Result := 0; +end; + +function GetModuleInformation(hProcess: THandle; hModule: HMODULE; + lpmodinfo: LPMODULEINFO; cb: DWORD): BOOL; +begin + if CheckPSAPILoaded then + Result := _GetModuleInformation(hProcess, hModule, lpmodinfo, cb) + else Result := False; +end; + +function EmptyWorkingSet(hProcess: THandle): BOOL; +begin + if CheckPSAPILoaded then + Result := _EmptyWorkingSet(hProcess) + else Result := False; +end; + +function QueryWorkingSet(hProcess: THandle; pv: Pointer; cb: DWORD): BOOL; +begin + if CheckPSAPILoaded then + Result := _QueryWorkingSet(hProcess, pv, cb) + else Result := False; +end; + +function InitializeProcessForWsWatch(hProcess: THandle): BOOL; +begin + if CheckPSAPILoaded then + Result := _InitializeProcessForWsWatch(hProcess) + else Result := False; +end; + +function GetMappedFileName(hProcess: THandle; lpv: Pointer; + lpFilename: PChar; nSize: DWORD): DWORD; +begin + if CheckPSAPILoaded then + Result := _GetMappedFileName(hProcess, lpv, lpFileName, nSize) + else Result := 0; +end; + +function GetMappedFileNameA(hProcess: THandle; lpv: Pointer; + lpFilename: PAnsiChar; nSize: DWORD): DWORD; +begin + if CheckPSAPILoaded then + Result := _GetMappedFileNameA(hProcess, lpv, lpFileName, nSize) + else Result := 0; +end; + +function GetMappedFileNameW(hProcess: THandle; lpv: Pointer; + lpFilename: PWideChar; nSize: DWORD): DWORD; +begin + if CheckPSAPILoaded then + Result := _GetMappedFileNameW(hProcess, lpv, lpFileName, nSize) + else Result := 0; +end; + +function GetDeviceDriverBaseName(ImageBase: Pointer; lpBaseName: PChar; + nSize: DWORD): DWORD; +begin + if CheckPSAPILoaded then + Result := _GetDeviceDriverBasename(ImageBase, lpBaseName, nSize) + else Result := 0; +end; + +function GetDeviceDriverBaseNameA(ImageBase: Pointer; lpBaseName: PAnsiChar; + nSize: DWORD): DWORD; +begin + if CheckPSAPILoaded then + Result := _GetDeviceDriverBasenameA(ImageBase, lpBaseName, nSize) + else Result := 0; +end; + +function GetDeviceDriverBaseNameW(ImageBase: Pointer; lpBaseName: PWideChar; + nSize: DWORD): DWORD; +begin + if CheckPSAPILoaded then + Result := _GetDeviceDriverBasenameW(ImageBase, lpBaseName, nSize) + else Result := 0; +end; + +function GetDeviceDriverFileName(ImageBase: Pointer; lpFileName: PChar; + nSize: DWORD): DWORD; +begin + if CheckPSAPILoaded then + Result := _GetDeviceDriverFileName(ImageBase, lpFileName, nSize) + else Result := 0; +end; + +function GetDeviceDriverFileNameA(ImageBase: Pointer; lpFileName: PAnsiChar; + nSize: DWORD): DWORD; +begin + if CheckPSAPILoaded then + Result := _GetDeviceDriverFileNameA(ImageBase, lpFileName, nSize) + else Result := 0; +end; + +function GetDeviceDriverFileNameW(ImageBase: Pointer; lpFileName: PWideChar; + nSize: DWORD): DWORD; +begin + if CheckPSAPILoaded then + Result := _GetDeviceDriverFileNameW(ImageBase, lpFileName, nSize) + else Result := 0; +end; + +function EnumDeviceDrivers(lpImageBase: PPointer; cb: DWORD; + var lpcbNeeded: DWORD): BOOL; +begin + if CheckPSAPILoaded then + Result := _EnumDeviceDrivers(lpImageBase, cb, lpcbNeeded) + else Result := False; +end; + +function GetProcessMemoryInfo(Process: THandle; + ppsmemCounters: PPROCESS_MEMORY_COUNTERS; cb: DWORD): BOOL; +begin + if CheckPSAPILoaded then + Result := _GetProcessMemoryInfo(Process, ppsmemCounters, cb) + else Result := False; +end; + +end. diff --git a/plugins/Watrack/make.bat b/plugins/Watrack/make.bat index cfaf1df3e1..5ca83288a4 100644 --- a/plugins/Watrack/make.bat +++ b/plugins/Watrack/make.bat @@ -1,26 +1,25 @@ -@echo off -set myopts=-dMiranda +rem @echo off +md tmp +set myopts=-Sd -dMiranda -FEtmp -Fi..\Utils.pas -Fu..\Utils.pas -Fu..\..\include\delphi -Fu..\..\include\delphi\reserve set dprname=watrack.dpr -..\delphi\brcc32.exe res\watrack.rc -fores\watrack.res -..\delphi\brcc32.exe lastfm\lastfm.rc -folastfm\lastfm.res -..\delphi\brcc32.exe myshows\myshows.rc -fomyshows\myshows.res -..\delphi\brcc32.exe players\mradio.rc -foplayers\mradio.res -..\delphi\brcc32.exe kolframe\frm.rc -fokolframe\frm.res -..\delphi\brcc32.exe popup\popup.rc -fopopup\popup.res -..\delphi\brcc32.exe proto\proto.rc -foproto\proto.res -..\delphi\brcc32.exe stat\stat.rc -fostat\stat.res -..\delphi\brcc32.exe status\status.rc -fostatus\status.res -..\delphi\brcc32.exe templates\templates.rc -fotemplates\templates.res +rem brcc32.exe res\watrack.rc -fores\watrack.res +rem brcc32.exe lastfm\lastfm.rc -folastfm\lastfm.res +rem brcc32.exe myshows\myshows.rc -fomyshows\myshows.res +rem brcc32.exe players\mradio.rc -foplayers\mradio.res +rem brcc32.exe kolframe\frm.rc -fokolframe\frm.res +rem brcc32.exe popup\popup.rc -fopopup\popup.res +rem brcc32.exe proto\proto.rc -foproto\proto.res +rem brcc32.exe stat\stat.rc -fostat\stat.res +rem brcc32.exe status\status.rc -fostatus\status.res +rem brcc32.exe templates\templates.rc -fotemplates\templates.res if /i '%1' == 'fpc' ( - ..\FPC\bin\fpc.exe %myopts% %dprname% %2 %3 %4 %5 %6 %7 %8 %9 + fpc.exe %myopts% %dprname% %2 %3 %4 %5 %6 %7 %8 %9 ) else if /i '%1' == 'fpc64' ( - ..\FPC\bin64\ppcrossx64.exe %myopts% %dprname% %2 %3 %4 %5 %6 %7 %8 %9 -) else if /i '%1' == 'xe2' ( - ..\XE2\BIN\dcc32.exe%myopts% %dprname% %2 %3 %4 %5 %6 %7 %8 %9 -) else if /i '%1' == 'xe64' ( - ..\XE2\BIN\dcc64.exe %myopts% %dprname% %2 %3 %4 %5 %6 %7 %8 %9 -) else ( - ..\delphi\dcc32 -b -dKOL_MCK -dUNICODE_CTRLS %myopts% %dprname% %1 %2 %3 %4 %5 %6 %7 %8 %9 + ppcrossx64.exe %myopts% %dprname% %2 %3 %4 %5 %6 %7 %8 %9 ) + +move tmp\watrack.dll . +del /Q tmp\* +rd tmp -- cgit v1.2.3