WinSCP.cpp 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. #include <PuttyTools.h>
  15. #include <GUITools.h>
  16. //---------------------------------------------------------------------------
  17. WINAPI wWinMain(HINSTANCE, HINSTANCE, LPWSTR, int)
  18. {
  19. AddStartupSequence(L"M");
  20. DllHijackingProtection();
  21. AddStartupSequence(L"T");
  22. int Result = 0;
  23. try
  24. {
  25. WinInitialize();
  26. Application->Initialize();
  27. Application->MainFormOnTaskBar = true;
  28. Application->ModalPopupMode = pmAuto;
  29. SetEnvironmentVariable(L"WINSCP_PATH",
  30. ExcludeTrailingBackslash(ExtractFilePath(Application->ExeName)).c_str());
  31. CoreInitialize();
  32. InitializeWinHelp();
  33. InitializeSystemSettings();
  34. AddStartupSequence(L"S");
  35. try
  36. {
  37. try
  38. {
  39. ConfigureInterface();
  40. SetupInitialize();
  41. Application->Title = AppName;
  42. Result = Execute();
  43. }
  44. catch (Exception & E)
  45. {
  46. // Capture most errors before Usage class is released,
  47. // so that we can count them
  48. Configuration->Usage->Inc(L"GlobalFailures");
  49. // After we get WM_QUIT (posted by Application->Terminate()), i.e once Application->Run() exits,
  50. // the message just blinks
  51. ShowExtendedException(&E);
  52. }
  53. }
  54. __finally
  55. {
  56. GUIFinalize();
  57. FinalizeSystemSettings();
  58. FinalizeWinHelp();
  59. CoreFinalize();
  60. WinFinalize();
  61. }
  62. }
  63. catch (Exception &E)
  64. {
  65. ShowExtendedException(&E);
  66. }
  67. return Result;
  68. }
  69. //---------------------------------------------------------------------------