[CRT]
[reactos.git] / reactos / lib / sdk / crt / include / internal / safecrt.h
index ad948fe..ec5c930 100644 (file)
@@ -11,10 +11,12 @@ void _invalid_parameter(
    uintptr_t pReserved);
 
 #ifndef _LIBCNT_
-#define MSVCRT_INVALID_PMT(x) _invalid_parameter(NULL, NULL, NULL, 0, 0)
-#define MSVCRT_CHECK_PMT(x)   ((x) || (MSVCRT_INVALID_PMT(0),0))
+#define MSVCRT_INVALID_PMT(x,err)   (*_errno() = (err), _invalid_parameter(NULL, NULL, NULL, 0, 0))
+#define MSVCRT_CHECK_PMT_ERR(x,err) ((x) || (MSVCRT_INVALID_PMT( 0, (err) ), 0))
+#define MSVCRT_CHECK_PMT(x)         MSVCRT_CHECK_PMT_ERR((x), EINVAL)
 #else
 /* disable secure crt parameter checks */
-#define MSVCRT_CHECK_PMT
-#define MSVCRT_INVALID_PMT
+#define MSVCRT_INVALID_PMT(x,err)
+#define MSVCRT_CHECK_PMT_ERR(x,err)
+#define MSVCRT_CHECK_PMT(x) (x)
 #endif