//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//
// V-ARG FORMAT FUNCTIONS OF "NLFailure" STATIC CLASS — PUBLIC METHODS ("...FmtVA"):
//
//==================================================================================================
// NativeLib::NLFailure:: >>
//==================================================================================================
// NativeLib DLL (for DotNetHelpers) | C+- (SysRoutine) | Author: Sergei Y.Kitáev

static bool SetErrorFmtVA($A, PCWSTR messageFmt, va_list argList );
static bool SetErrorFmtVA($A, INT code $optional,
                              PCWSTR messageFmt, va_list argList ) $ret_false;
static bool SetErrorFmtVA($A, UINT uCode $optional,
                              PCWSTR messageFmt, va_list argList ) $ret_false;
static bool SetErrorFmtVA($A, INT code $optional, DWORD value $optional,
                              PCWSTR messageFmt, va_list argList ) $ret_false;
static bool SetErrorFmtVA($A, UINT uCode $optional, DWORD value $optional,
                              PCWSTR messageFmt, va_list argList ) $ret_false;

static bool SetErrorFmtVA($A, NLErrorCat category $optional,
                              PCWSTR messageFmt, va_list argList ) $ret_false;
static bool SetErrorFmtVA($A, NLErrorCat category $optional, INT code $optional,
                              PCWSTR messageFmt, va_list argList ) $ret_false;
static bool SetErrorFmtVA($A, NLErrorCat category $optional, UINT uCode $optional,
                              PCWSTR messageFmt, va_list argList ) $ret_false;
static bool SetErrorFmtVA($A, NLErrorCat category $optional,
                              INT code $optional, DWORD value $optional,
                              PCWSTR messageFmt, va_list argList ) $ret_false;
static bool SetErrorFmtVA($A, NLErrorCat category $optional,
                              UINT uCode $optional, DWORD value $optional,
                              PCWSTR messageFmt, va_list argList ) $ret_false;

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

static bool SetArgumentErrorFmtVA($A, PCWSTR messageFmt, va_list argList ) $ret_false;

static bool SetSpecialErrorFmtVA($A, PCWSTR messageFmt, va_list argList );
static bool SetSpecialErrorFmtVA($A, INT code $optional,
                                     PCWSTR messageFmt, va_list argList ) $ret_false;
static bool SetSpecialErrorFmtVA($A, UINT uCode $optional,
                                     PCWSTR messageFmt, va_list argList ) $ret_false;
static bool SetSpecialErrorFmtVA($A, INT code $optional, DWORD value $optional,
                                     PCWSTR messageFmt, va_list argList ) $ret_false;
static bool SetSpecialErrorFmtVA($A, UINT uCode $optional, DWORD value $optional,
                                     PCWSTR messageFmt, va_list argList ) $ret_false;

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

static bool SetSystemErrorFmtVA($A, PCWSTR messageFmt, va_list argList ) $ret_false;

static bool SetWin32ErrorFmtVA($A, DWORD dwError, PCWSTR headerMessageFmt,
                                                  va_list argList ) $ret_false;

static bool SetCOMErrorFmtVA($A, HRESULT hResult, PCWSTR headerMessageFmtFmt,
                                                  va_list argList ) $ret_false;

static bool SetFromLastRTErrorFmtVA($A, PCWSTR headerMessageFmt, va_list argList ) $ret_false;

//==================================================================================================
