diff options
author | danglassey <danglassey> | 2002-08-14 09:57:17 +0000 |
---|---|---|
committer | danglassey <danglassey> | 2002-08-14 09:57:17 +0000 |
commit | c9458897ebbb739d8db83c80e06512d8a612f743 (patch) | |
tree | f8c5381045887e34388cc6b26cfccc254bf766dc /apps/windoze/CBuilder6/BibleCS/sword.cpp | |
download | sword-sf-cvs-c9458897ebbb739d8db83c80e06512d8a612f743.tar.gz |
*** empty log message ***
Diffstat (limited to 'apps/windoze/CBuilder6/BibleCS/sword.cpp')
-rw-r--r-- | apps/windoze/CBuilder6/BibleCS/sword.cpp | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/apps/windoze/CBuilder6/BibleCS/sword.cpp b/apps/windoze/CBuilder6/BibleCS/sword.cpp new file mode 100644 index 0000000..f474a29 --- /dev/null +++ b/apps/windoze/CBuilder6/BibleCS/sword.cpp @@ -0,0 +1,133 @@ +//--------------------------------------------------------------------------- +#include <vcl.h> +#pragma hdrstop +#include "SplashPage.h" +#include <winreg.h> +#include <dir.h> +#include "sword.h" + +USEFORM("..\..\CBuilder5\BibleCS\AboutBoxfrm.cpp", AboutBox); +USEFORM("..\..\CBuilder5\BibleCS\bookmarkfrm.cpp", Bookmarksfrm); +USEFORM("..\..\CBuilder5\BibleCS\DevOfTheDay.cpp", DevOfTheDay2); +USEFORM("..\..\CBuilder5\BibleCS\editentryfrm.cpp", EditEntry); +USEFORM("..\..\CBuilder5\BibleCS\FontSel.cpp", FontSelFrm); +USEFORM("..\..\CBuilder5\BibleCS\mainfrm.cpp", Form1); +USEFORM("..\..\CBuilder5\BibleCS\ModInstForm.cpp", ModInstFrm); +USEFORM("..\..\CBuilder5\BibleCS\ModVisFrm.cpp", ModVisForm); +USEFORM("..\..\CBuilder5\BibleCS\newbmfilefrm.cpp", NewBMfrm); +USEFORM("..\..\CBuilder5\BibleCS\optionfrm.cpp", Optionsfrm); +USEFORM("..\..\CBuilder5\BibleCS\RangeMaintFrm.cpp", RangeMaintForm); +USEFORM("..\..\CBuilder5\BibleCS\searchfrm.cpp", Form2); +USEFORM("..\..\CBuilder5\BibleCS\splashfrm.cpp", splashForm); +USEFORM("..\..\CBuilder5\BibleCS\SplashPage.cpp", SplashPg); +USEFORM("..\..\CBuilder5\BibleCS\StudyProfessor.cpp", Form3); +USEFORM("..\..\CBuilder5\BibleCS\versesel.cpp", VerseSelFrm); +USEFORM("..\..\CBuilder5\BibleCS\vrslstfrm.cpp", VerseListFrm); +//--------------------------------------------------------------------------- +WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { + + LONG result; + + result = Application->ExeName.Length(); + char * dir = new char[result + 1]; + strcpy (dir, Application->ExeName.c_str()); + for (;result > 0 && dir[result] != '\\'; result--) { + dir[result] = 0; + } + chdir(dir); + delete [] dir; + + try { + HKEY hkey; + HWND otherInst; + + // see if there's a previous instance running + otherInst = ::FindWindow(NULL, "The SWORD Project for Windows"); + // if so, and we have an argument, send the argument to the other instance + if (otherInst && *lpCmdLine) { + result = RegCreateKeyEx(HKEY_CLASSES_ROOT, "sword\\OpenVerse", NULL, "", NULL, KEY_READ | KEY_WRITE, NULL, &hkey, NULL); + result = RegSetValueEx(hkey, NULL, 0, REG_SZ, lpCmdLine, strlen(lpCmdLine) + 1); + result = RegCloseKey(hkey); + + PostMessage(otherInst, WM_VERSE, NULL, NULL); + return 0; + } + + // adjust the registry for our private protocol using the current path + result = RegCreateKeyEx(HKEY_CLASSES_ROOT, "sword", NULL, "", NULL, KEY_READ | KEY_WRITE, NULL, &hkey, NULL); + result = RegSetValueEx(hkey, NULL, 0, REG_SZ, "URL:SWORD Protocol", strlen("URL:SWORD Protocol") + 1); + result = RegSetValueEx(hkey, "URL Protocol", 0, REG_SZ, "", 1); + result = RegCloseKey(hkey); + result = RegCreateKeyEx(HKEY_CLASSES_ROOT, "sword\\DefaultIcon", NULL, "", NULL, KEY_READ | KEY_WRITE, NULL, &hkey, NULL); + result = RegSetValueEx(hkey, NULL, 0, REG_SZ, Application->ExeName.c_str(), Application->ExeName.Length() + 1); + result = RegCloseKey(hkey); + AnsiString opencommand = Application->ExeName + " \"%1\""; + result = RegCreateKeyEx(HKEY_CLASSES_ROOT, "sword\\shell\\open\\command", NULL, "", NULL, KEY_READ | KEY_WRITE, NULL, &hkey, NULL); + result = RegSetValueEx(hkey, NULL, 0, REG_SZ, opencommand.c_str(), opencommand.Length() + 1); + result = RegCloseKey(hkey); + + + /* + // don't override Logos' setting if it exists + result = RegOpenKeyEx(HKEY_CLASSES_ROOT, "libronixdls", 0, KEY_READ | KEY_WRITE, &hkey); + if (!result) { + char* libStr = new char[32]; + unsigned long libSize = 32; + result = RegQueryValueEx(hkey, NULL, NULL, NULL, libStr, &libSize); + if (!result) { + if (strstr(libStr, "SWORD")) { + result = 1; + } + } + } + if (result) { + result = RegCreateKeyEx(HKEY_CLASSES_ROOT, "libronixdls", NULL, "", NULL, KEY_READ | KEY_WRITE, NULL, &hkey, NULL); + result = RegSetValueEx(hkey, NULL, 0, REG_SZ, "URL:SWORD Protocol", strlen("URL:SWORD Protocol") + 1); + result = RegSetValueEx(hkey, "URL Protocol", 0, REG_SZ, "", 1); + result = RegCloseKey(hkey); + result = RegCreateKeyEx(HKEY_CLASSES_ROOT, "libronixdls\\DefaultIcon", NULL, "", NULL, KEY_READ | KEY_WRITE, NULL, &hkey, NULL); + result = RegSetValueEx(hkey, NULL, 0, REG_SZ, Application->ExeName.c_str(), Application->ExeName.Length() + 1); + result = RegCloseKey(hkey); + AnsiString opencommand = Application->ExeName + " \"%1\""; + result = RegCreateKeyEx(HKEY_CLASSES_ROOT, "libronixdls\\shell\\open\\command", NULL, "", NULL, KEY_READ | KEY_WRITE, NULL, &hkey, NULL); + result = RegSetValueEx(hkey, NULL, 0, REG_SZ, opencommand.c_str(), opencommand.Length() + 1); + result = RegCloseKey(hkey); + } + */ + } + catch (Exception &exception) { + Application->ShowException(&exception); + } + + try { + Application->Initialize(); + Application->Title = "The SWORD Project"; + Application->CreateForm(__classid(TAboutBox), &AboutBox); + Application->CreateForm(__classid(TBookmarksfrm), &Bookmarksfrm); + Application->CreateForm(__classid(TDevOfTheDay2), &DevOfTheDay2); + Application->CreateForm(__classid(TEditEntry), &EditEntry); + Application->CreateForm(__classid(TFontSelFrm), &FontSelFrm); + Application->CreateForm(__classid(TForm1), &Form1); + Application->CreateForm(__classid(TModInstFrm), &ModInstFrm); + Application->CreateForm(__classid(TModVisForm), &ModVisForm); + Application->CreateForm(__classid(TNewBMfrm), &NewBMfrm); + Application->CreateForm(__classid(TOptionsfrm), &Optionsfrm); + Application->CreateForm(__classid(TRangeMaintForm), &RangeMaintForm); + Application->CreateForm(__classid(TForm2), &Form2); + Application->CreateForm(__classid(TsplashForm), &splashForm); + Application->CreateForm(__classid(TSplashPg), &SplashPg); + Application->CreateForm(__classid(TForm3), &Form3); + Application->CreateForm(__classid(TVerseSelFrm), &VerseSelFrm); + Application->CreateForm(__classid(TVerseListFrm), &VerseListFrm); + SplashPg = new TSplashPg(static_cast<void*>(NULL)); + SplashPg->Show(); + Application->ProcessMessages(); + Application->Run(); + delete SplashPg; + } + catch (Exception &exception) { + Application->ShowException(&exception); + } + return 0; +} +//--------------------------------------------------------------------------- |