WinSCP.cpp 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #pragma hdrstop
  4. USEFORM("forms\CustomScpExplorer.cpp", CustomScpExplorerForm);
  5. USEFORM("forms\NonVisual.cpp", NonVisualDataModule); /* TDataModule: File Type */
  6. USEFORM("forms\ScpCommander.cpp", ScpCommanderForm);
  7. USEFORM("forms\ScpExplorer.cpp", ScpExplorerForm);
  8. //---------------------------------------------------------------------------
  9. #include <CoreMain.h>
  10. #include <WinInterface.h>
  11. #include <ProgParams.h>
  12. #include <VCLCommon.h>
  13. #include <Setup.h>
  14. //---------------------------------------------------------------------------
  15. WINAPI wWinMain(HINSTANCE, HINSTANCE, LPWSTR, int)
  16. {
  17. int Result = 0;
  18. try
  19. {
  20. WinInitialize();
  21. Application->Initialize();
  22. Application->MainFormOnTaskBar = true;
  23. Application->ModalPopupMode = pmAuto;
  24. SetEnvironmentVariable(L"WINSCP_PATH",
  25. ExcludeTrailingBackslash(ExtractFilePath(Application->ExeName)).c_str());
  26. CoreInitialize();
  27. InitializeWinHelp();
  28. InitializeSystemSettings();
  29. try
  30. {
  31. try
  32. {
  33. ConfigureInterface();
  34. SetupInitialize();
  35. Application->Title = AppName;
  36. Result = Execute();
  37. }
  38. catch (Exception & E)
  39. {
  40. // Capture most errors before Usage class is released,
  41. // so that we can count them
  42. Configuration->Usage->Inc(L"GlobalFailures");
  43. // After we get WM_QUIT (posted by Application->Terminate()), i.e once Application->Run() exits,
  44. // the message just blinks
  45. ShowExtendedException(&E);
  46. }
  47. }
  48. __finally
  49. {
  50. FinalizeSystemSettings();
  51. FinalizeWinHelp();
  52. CoreFinalize();
  53. WinFinalize();
  54. }
  55. }
  56. catch (Exception &E)
  57. {
  58. ShowExtendedException(&E);
  59. }
  60. return Result;
  61. }
  62. //---------------------------------------------------------------------------