You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
RnQ/RnQ/RnQx64.dpr

151 lines
5.0 KiB
Plaintext

program RnQx64;
{$I NoRTTI.inc}
{$I RnQConfig.inc}
{$R 'images.res' 'Res\images.rc'}
uses
{$IFDEF madExcept}
madExcept,
{$ENDIF madExcept}
Windows,
Forms,
SysUtils,
Sciter,
SciterApi,
mainDlg in 'mainDlg.pas' {},
RDGlobal in '..\For.RnQ\RTL\RDGlobal.pas',
RnQBinUtils in '..\For.RnQ\RTL\RnQBinUtils.pas',
RnQGraphics32 in '..\For.RnQ\RTL\RnQGraphics32.pas',
RnQGlobal in '..\For.RnQ\RnQGlobal.pas',
RQUtil in '..\For.RnQ\RQUtil.pas',
RnQLangs in '..\For.RnQ\RnQLangs.pas',
RnQStrings in '..\For.RnQ\RnQStrings.pas',
RQThemes in '..\For.RnQ\RQThemes.pas',
RnQNet in '..\For.RnQ\RnQNet.pas',
RQlog in '..\For.RnQ\RQlog.pas' {},
RnQDialogs in '..\For.RnQ\RnQDialogs.pas',
RnQPrefsLib in '..\For.RnQ\RnQPrefsLib.pas',
roasterLib in 'roasterLib.pas',
ThemesLib in 'ThemesLib.pas',
globalLib in 'globalLib.pas',
history in 'history.pas',
events in 'events.pas',
aboutDlg in 'aboutDlg.pas',
selectcontactsDlg in 'selectcontactsDlg.pas' {selectCntsFrm},
usersDlg in 'usersDlg.pas' {},
iniLib in 'iniLib.pas',
utilLib in 'utilLib.pas',
authreqDlg in 'authreqDlg.pas' {authreqFrm},
pluginLib in 'pluginLib.pas',
outboxLib in 'outboxLib.pas',
outboxDlg in 'outboxDlg.pas' {},
uinlistlib in 'uinlistlib.pas',
groupsLib in 'groupsLib.pas',
langLib in 'langLib.pas',
RnQdbDlg in 'RnQdbDlg.pas' {RnQdbFrm},
RnQMacros in 'RnQMacros.pas',
prefSheet in 'prefSheet.pas' {},
RnQ_Avatars in 'RnQ_Avatars.pas',
hook in 'hook.pas',
RnQTips in 'RnQTips.pas',
HistAllSearch in 'HistAllSearch.pas',
Protocols_All in 'Protocols_All.pas',
ICQContacts in 'ICQ\ICQContacts.pas',
RQCodes in 'ICQ\RQCodes.pas',
viewinfoDlg in 'ICQ\viewinfoDlg.pas',
ICQSession in 'ICQ\ICQSession.pas',
ICQConsts in 'ICQ\ICQConsts.pas',
StatusForm in 'StatusForm.pas',
Protocol_ICQ in 'ICQ\Protocol_ICQ.pas',
RnQTrayLib in '..\For.RnQ\RnQTrayLib.pas',
ICQClients in 'ICQ\ICQClients.pas',
RnQLangFrm in '..\For.RnQ\RnQLangFrm.pas' {},
RnQButtons in '..\For.RnQ\RnQButtons.pas',
tipDlg in '..\For.RnQ\tipDlg.pas',
RnQSysUtils in '..\For.RnQ\RnQSysUtils.pas',
RDUtils in '..\For.RnQ\RTL\RDUtils.pas',
Stickers in 'ICQ\Stickers.pas',
SQLiteDB in 'SQLiteDB.pas',
RDFileUtil in '..\For.RnQ\RTL\RDFileUtil.pas',
SpellCheck in 'SpellCheck.pas',
ChatBox in 'ChatBox.pas',
ICQCommon in 'ICQ\ICQCommon.pas',
CLBox in 'CLBox.pas',
SciterLib in 'SciterLib.pas',
Nodes in 'Nodes.pas',
HiddenForm in 'HiddenForm.pas' {HiddenForm},
BaseWindow in 'BaseWindow.pas';
var
HSCITER: HMODULE;
{$R *.RES}
//{$DYNAMICBASE ON} // ASLR - does not work when relocations are stripped
//{$SETPEOPTFLAGS $140} // NX + ASLR
{$SETPEOPTFLAGS $100} // NX
{$SETPEFlAGS IMAGE_FILE_LARGE_ADDRESS_AWARE or IMAGE_FILE_RELOCS_STRIPPED or IMAGE_FILE_DEBUG_STRIPPED or IMAGE_FILE_LINE_NUMS_STRIPPED or IMAGE_FILE_LOCAL_SYMS_STRIPPED}
{
IMAGE_FILE_LARGE_ADDRESS_AWARE - <20><>, <20><> <20><> <20><> <20> Sciter
IMAGE_FILE_RELOCS_STRIPPED - <20><> <20><>
IMAGE_FILE_DEBUG_STRIPPED - <20><> <20><> <20><> Debug <20><>
IMAGE_FILE_LINE_NUMS_STRIPPED - <20><> <20><> exe <20><> <20> <20><> <20><>
IMAGE_FILE_LOCAL_SYMS_STRIPPED - <20><> local symbols
IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP - <20><> <20><> exe <20> <20><>, <20><>, <20><> <20><> <20><>, <20><> exe <20> <20><> <20> <20><> <20><>.
<20><>, <20><> <20><> <20><> <20><> <20> <20><>, <20> <20><> <20><> <20><> <20><>...
IMAGE_FILE_NET_RUN_FROM_SWAP - <20><> <20><>, <20><> <20><> <20><> <20><>
}
begin
// Better for multiple cores/threads
System.NeverSleepOnMMThreadContention := True;
// logpref.evts.onwindow := False;
// logpref.evts.onfile := True;
Application.ShowMainForm := False;
Application.MainFormOnTaskBar := True;
SetCurrentDir(ExtractFilePath(Application.ExeName));
if Screen.Fonts.IndexOf('Segoe UI') >= 0 then
begin
Application.DefaultFont.Name := 'Segoe UI';
Screen.MenuFont.Name := 'Segoe UI';
Screen.HintFont.Name := 'Segoe UI';
Screen.MessageFont.Name := 'Segoe UI';
Screen.CaptionFont.Name := 'Segoe UI';
end;
Randomize;
// {$IFDEF CPUX64}
HSCITER := LoadLibrary(modulesPath + 'sciter.dll');
// {$ELSE}
// HSCITER := LoadLibrary(modulesPath + 'sciter32.dll');
// {$ENDIF CPUX64}
if HSCITER = 0 then
begin
MessageDlg(GetTranslation('Failed to load Sciter DLL'), mtError, [mbAbort]);
Exit;
end else
FreeLibrary(HSCITER);
// TStyleManager.LoadFromFile('RubyGraphite.vsf');
// SetCurrentThreadName('RnQMain');
// NameThreadForDebugging('RnQMain');
Application.CreateForm(THiddenForm, Hidden);
BeforeWindowsCreation;
Application.Title := 'R&Q';
theme.addHIco('rnq', Application.Icon.Handle, True);
// loggaEvt('Before main');
UI.CreateCL;
// loggaEvt('Before chat');
UI.CreateChat;
// loggaEvt('Before log');
UI.CreateLog;
// loggaEvt('Before after');
AfterWindowsCreation;
// loggaEvt('Before user');
StartUser;
Application.Run;
end.