// RuntimeForStatic base library | C+- (SysRoutine) | Author: Sergei Y.Kitáev
#include "Precompiled.h"
#include "SharedIncludes.h"
namespace RuntimeForStatic {
//==================================================================================================
static PCWSTR CANT_OBTAIN_EXE_NAME()
{
   return $TEXT(
      L"Can not obtain executable module name (current process).",
      L"Не удаётся получить имя исполняемого модуля (текущий процесс)." );
}
static PCWSTR CANT_OBTAIN_EXE_PATH()
{
   return $TEXT(
      L"Can not obtain executable module path (current process).",
      L"Не удаётся получить путь исполняемого модуля (текущий процесс)." );
}
static PCWSTR CANT_OBTAIN_EXE_BASE_NAME()
{
   return $TEXT(
      L"Can not obtain executable module base name (current process).",
      L"Не удаётся получить базовое имя исполняемого модуля (текущий процесс)." );
}
//==================================================================================================

$DynText $RootInfo::ExeName() $fatal_error_on_failure
{
   PWSTR pExeName = HelpersRT::GetExeName($);
   if ( !pExeName )
      $FATAL_ERROR( CANT_OBTAIN_EXE_NAME() );
   return $DynText($, pExeName, true );
}
$DynText $RootInfo::ExePath() $fatal_error_on_failure
{
   PWSTR pExePath = HelpersRT::GetExePath($);
   if ( !pExePath )
      $FATAL_ERROR( CANT_OBTAIN_EXE_PATH() );
   return $DynText($, pExePath, true );
}
$DynText $RootInfo::ExeBaseName() $fatal_error_on_failure
{
   PWSTR pExeBaseName = HelpersRT::GetExeBaseName($);
   if ( !pExeBaseName )
      $FATAL_ERROR( CANT_OBTAIN_EXE_BASE_NAME() );
   return $DynText($, pExeBaseName, true );
}

//--------------------------------------------------------------------------------------------------

$DynText $RootInfo::GetExeName() $null_on_failure $last_error
{
   PWSTR pExeName = HelpersRT::GetExeName($);
   if ( !pExeName )
      $SET_ERROR_LE( CANT_OBTAIN_EXE_NAME() );
   return $RESET_LE( $DynText($, pExeName, true ) );
}
$DynText $RootInfo::GetExePath() $null_on_failure $last_error
{
   PWSTR pExePath = HelpersRT::GetExePath($);
   if ( !pExePath )
      $SET_ERROR_LE( CANT_OBTAIN_EXE_PATH() );
   return $RESET_LE( $DynText($, pExePath, true ) );
}
$DynText $RootInfo::GetExeBaseName() $null_on_failure $last_error
{
   PWSTR pExeBaseName = HelpersRT::GetExeBaseName($);
   if ( !pExeBaseName )
      $SET_ERROR_LE( CANT_OBTAIN_EXE_BASE_NAME() );
   return $RESET_LE( $DynText($, pExeBaseName, true ) );
}

//==================================================================================================
} // RuntimeForStatic
