WCHAR *Format(const WCHAR *fmt, ...) { va_list args; va_start(args, fmt); WCHAR *res = FmtV(fmt, args); va_end(args); return res; }
CEx2 &CEx2::FmtF(int ID, const char *m, ...) { va_list vargs; va_start( vargs, ID ); Msg<<gEx2Prefix<<m; return FmtV(ID, Msg, ((char *)vargs)-sizeof(int)); }
CEx2 &CEx2::FmtRc(int ID, ...) { va_list vargs; va_start( vargs, ID ); Msg.Grow(QEX_MAXMSG); char data[QEX_MAXMSG]; long len = resLoad(ghRes, ID, data, QEX_MAXMSG); if (len <= 0) Msg = "Unknown error."; else { Msg = CStr(data, len); } return FmtV(ID, Msg, vargs); }
CEx2 &CEx2::FmtRcF(int ID, ...) { va_list vargs; va_start( vargs, ID ); Msg=gEx2Prefix; Msg.Grow(QEX_MAXMSG); char data[QEX_MAXMSG]; long len = resLoad(ghRes, ID, data, QEX_MAXMSG); if (len <= 0) { strcpy(Msg + gEx2PrefixLen, "Unknown error."); } else { strncpy(Msg + gEx2PrefixLen, data, QEX_MAXMSG - gEx2PrefixLen); Msg[QEX_MAXMSG - gEx2PrefixLen - 1] = 0; } Msg.Shrink(); return FmtV(ID, Msg, ((char *)vargs)-sizeof(int)); }
CEx2 &CEx2::Fmt(int ID, const char *Msg, ...) { va_list vargs; va_start( vargs, ID ); return FmtV(ID, Msg, vargs); }