|
|
program RnQx64;
|
|
|
|
|
|
{$I NoRTTI.inc}
|
|
|
{$I RnQConfig.inc}
|
|
|
{$R 'images.res' 'Res\images.rc'}
|
|
|
|
|
|
uses
|
|
|
{$IFDEF madExcept}
|
|
|
madExcept,
|
|
|
{$ENDIF madExcept}
|
|
|
Winapi.Windows,
|
|
|
System.Win.ComObj,
|
|
|
System.SysUtils,
|
|
|
Vcl.Forms,
|
|
|
SciterLib in 'SciterLib.pas',
|
|
|
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',
|
|
|
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',
|
|
|
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',
|
|
|
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',
|
|
|
Nodes in 'Nodes.pas',
|
|
|
HiddenForm in 'HiddenForm.pas' {HiddenForm},
|
|
|
BaseWindow in 'BaseWindow.pas',
|
|
|
RnQPics in '..\For.RnQ\RnQPics.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_RELOCS_STRIPPED or IMAGE_FILE_DEBUG_STRIPPED or IMAGE_FILE_LINE_NUMS_STRIPPED or IMAGE_FILE_LOCAL_SYMS_STRIPPED}
|
|
|
{
|
|
|
IMAGE_FILE_LARGE_ADDRESS_AWARE - 2+<2B><>
|
|
|
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
|
|
|
CoInitFlags := 0; // COINIT_MULTITHREADED;
|
|
|
// 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;
|
|
|
|
|
|
HSCITER := LoadLibrary(modulesPath + 'sciter.dll');
|
|
|
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 tips');
|
|
|
UI.CreateTips;
|
|
|
AfterWindowsCreation;
|
|
|
// loggaEvt('Before user');
|
|
|
StartUser;
|
|
|
Application.Run;
|
|
|
end.
|