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

168 lines
6.2 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' {RnQmain},
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',
RQmsgs in '..\for.RnQ\RQmsgs.pas' {msgsFrm},
RnQNet in '..\for.RnQ\RnQNet.pas',
RQMenuItem in '..\for.RnQ\RQMenuItem.pas',
RQlog in '..\for.RnQ\RQlog.pas' {LogFrm},
RnQDialogs in '..\for.RnQ\RnQDialogs.pas',
RnQPrefsLib in '..\for.RnQ\RnQPrefsLib.pas',
addContactDlg in 'addContactDlg.pas' {addContactFrm},
roasterLib in 'roasterLib.pas',
ThemesLib in 'ThemesLib.pas',
globalLib in 'globalLib.pas',
history in 'history.pas',
events in 'events.pas',
aboutDlg in 'aboutDlg.pas' {aboutFrm},
selectcontactsDlg in 'selectcontactsDlg.pas' {selectCntsFrm},
usersDlg in 'usersDlg.pas' {usersFrm},
iniLib in 'iniLib.pas',
utilLib in 'utilLib.pas',
authreqDlg in 'authreqDlg.pas' {authreqFrm},
changepwddlg in 'changepwddlg.pas' {changePwdFrm},
chatDlg in 'chatDlg.pas' {chatFrm},
pluginLib in 'pluginLib.pas',
outboxLib in 'outboxLib.pas',
outboxDlg in 'outboxDlg.pas' {outboxFrm},
lockDlg in 'lockDlg.pas' {lockFrm},
uinlistlib in 'uinlistlib.pas',
groupsLib in 'groupsLib.pas',
langLib in 'langLib.pas',
pwdDlg in 'pwdDlg.pas' {msgFrm},
RnQdbDlg in 'RnQdbDlg.pas' {RnQdbFrm},
menusUnit in 'menusUnit.pas',
RnQMacros in 'RnQMacros.pas',
prefSheet in 'prefSheet.pas' {PrefSheetFrm},
RnQ_Avatars in 'RnQ_Avatars.pas',
hook in 'hook.pas',
RnQTips in 'RnQTips.pas',
HistAllSearch in 'HistAllSearch.pas' {AllHistSrchForm},
Protocols_All in 'Protocols_All.pas',
NewAccount in 'NewAccount.pas' {NewAccFrm},
ICQContacts in 'ICQ\ICQContacts.pas',
RQCodes in 'ICQ\RQCodes.pas',
viewinfoDlg in 'ICQ\viewinfoDlg.pas' {InfoDlg},
ICQSession in 'ICQ\ICQSession.pas',
ICQConsts in 'ICQ\ICQConsts.pas',
StatusForm in 'StatusForm.pas' {xStatusForm},
wpDlg in 'ICQ\wpDlg.pas' {wpFrm},
Protocol_ICQ in 'ICQ\Protocol_ICQ.pas',
RnQTrayLib in '..\for.RnQ\RnQTrayLib.pas',
ICQClients in 'ICQ\ICQClients.pas',
RnQLangFrm in '..\for.RnQ\RnQLangFrm.pas' {FrmLangs},
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';
var
HSCITER: HMODULE;
{$R *.RES}
// The UnicodeString in Delphi can contain Unicode or ANSI data at any given time,
// and in order to ensure that C++Builder code can correctly index the items,
// a hidden call to UniqueStringX is being made.
// If you only create Delphi stand-alone applications,
// you can avoid these calls with the STRINGCHECKS OFF compiler option:
{$STRINGCHECKS OFF}
// {$DYNAMICBASE ON} // ASLR
// {$SETPEOPTFLAGS $100} // NX
{$SETPEOPTFLAGS $140} // NX + ASLR
{$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.MainFormOnTaskBar := False;
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;
// TStyleManager.LoadFromFile('RubyGraphite.vsf');
// SetCurrentThreadName('RnQMain');
// NameThreadForDebugging('RnQMain');
beforeWindowsCreation;
// {$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], 0);
Exit;
end else
FreeLibrary(HSCITER);
API.SciterSetOption(0, SCITER_SET_SCRIPT_RUNTIME_FEATURES, UINT_PTR(ALLOW_FILE_IO) or UINT_PTR(ALLOW_SOCKET_IO) or UINT_PTR(ALLOW_EVAL) or UINT_PTR(ALLOW_SYSINFO));
Application.Title := 'R&Q';
theme.addHIco('rnq', Application.Icon.Handle, True);
// loggaEvt('Before main');
Application.CreateForm(TRnQmain, RnQmain);
// loggaEvt('Before chat');
Application.CreateForm(TchatFrm, chatFrm);
// loggaEvt('Before msgs');
Application.CreateForm(TmsgsFrm, msgsFrm);
// loggaEvt('Before log');
Application.CreateForm(TLogFrm, LogFrm);
// loggaEvt('Before after');
Application.ShowMainForm := False;
afterWindowsCreation;
// if startminimized and formvisible(RnQmain) then RnQmain.toggleVisible;
// loggaEvt('Before user');
startUser;
// SetDliFailureHook(DelayedFailureHook);
// SetDliFailureHook(DelayLoadFailureHook);
Application.Run;
end.