14#if defined(BI_COMP_BORLANDC)
18#if defined(BI_COMP_GNUC) || defined(BI_COMP_CLANG)
27#if defined(__BORLANDC__)
41#if defined(BI_COMP_GNUC) || defined(BI_COMP_CLANG)
49 auto ParseCmdLine_(
const tstring& cmd) -> vector<tstring>
51 using TIt = tstring::const_iterator;
52 const auto quote =
_T(
'\"');
54 auto parseQuotedString = [&](TIt& i, TIt end) ->
tstring
57 const auto e = find(++i, end, quote);
58 if (e == end)
throw TXOwl{
_T(
"Unpaired quote in command-line.")};
64 auto parseString = [](TIt& i, TIt end) ->
tstring
67 const auto e = find_if(i, end, [](
tchar c) {
return _istspace(c); });
73 auto a = vector<tstring>{};
74 for (
auto i = cmd.begin(); i != cmd.end();)
80 a.push_back(parseQuotedString(i, cmd.end()));
82 a.push_back(parseString(i, cmd.end()));
92#if !defined(_BUILDOWLDLL) && !defined(_OWLDLL)
93#if defined(BI_COMP_BORLANDC)
100static void __initOWL()
104#pragma startup __initOWL 31
107static void __termOWL()
111#pragma exit __termOWL 31
115#if defined(BI_COMP_BORLANDC) && defined(_UNICODE)
117extern "C" int WINAPI
_tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR cmdLine,
int cmdShow);
119#elif defined(BI_COMP_GNUC)
121extern "C" int WINAPI
_tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR cmdLine,
int cmdShow);
129_tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR cmdLine,
int cmdShow)
132 << hex <<
static_cast<void*
>(hInstance) <<
_T(
", ")
133 << hex <<
static_cast<void*
>(hPrevInstance) <<
_T(
", \"")
135 << cmdShow <<
_T(
") called"));
137 Gdiplus::GdiplusStartupInput gdiplusStartupInput;
138 ULONG_PTR gdiplusToken;
139 Gdiplus::GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
148#if defined(BI_COMP_GNUC) || defined(BI_COMP_CLANG)
152 auto a = ParseCmdLine_(::GetCommandLine());
153 auto argv = vector<LPTSTR>{a.size()};
154 transform(a.begin(), a.end(), argv.begin(), [](
tstring& s) {return &s[0];});
155 retVal =
OwlMain(argv.size(), &argv[0]);
157#elif defined(BI_COMP_BORLANDC)
159 retVal =
OwlMain(_argc, _targv);
163 retVal =
OwlMain(__argc, __targv);
171 Gdiplus::GdiplusShutdown(gdiplusToken);
Definition of class TApplication.
#define PRECONDITION(condition)
#define TRACEX(group, level, message)
static void SetWinMainParams(HINSTANCE hInstance, HINSTANCE hPrevInstance, const tstring &cmdLine, int cmdShow)
Set the data members with data from WinMain.
Derived from xmsg, TXBase is the base class for ObjectWindows and ObjectComponents exception-handling...
TXEndSession is thrown from TWindow's handler for WM_ENDSESSION.
TXOwl is root class of the ObjectWindows exception hierarchy.
Utilities for GDI+ interoperability.
TLocaleString - localized name support.
STDAPI_(owl::TDocTemplate **) GetDocTemplateHead(owl STDAPI_(owl::TModule **) GetModulePtr(owl int OwlMain(int argc, TCHAR *argv[])
Main entry point for an Owl application.
Object Windows Library (OWLNext Core).
int HandleGlobalException(owl::TXBase &x, LPCTSTR caption, LPCTSTR canResume=nullptr)
void InitGlobalModule(HINSTANCE hInstance)
DIAG_DECLARE_GROUP(OwlThread)
General definitions used by all ObjectWindows programs.