add winpcap 4.0.2 from url http://www.winpcap.org/
[natblaster.git] / winpcap / packetNtx / Dll / strsafe.h
blob2a3be0ef03c43509f2311d99e6e05456879a6ff5
1 #ifndef __STRSAFE_GCC__383773443
2 #define __STRSAFE_GCC__383773443
4 #include <stdlib.h>
5 #include <stdarg.h>
6 #include <string.h>
8 #ifdef _MSC_VER
9 #error Trying to use strsafe.h for GCC within Visual Studio
10 #endif
12 static int vsnprintf(char *buffer,size_t count, const char *format, va_list argptr )
14 return vsprintf(buffer, format, argptr);
18 static void StringCchPrintfA(char *pszDest,size_t cbDest, char *pszFormat, ...)
20 va_list marker;
21 va_start( marker, pszFormat ); /* Initialize variable arguments. */
23 if (cbDest == 0 || pszDest == NULL || pszFormat == NULL)
24 return;
27 pszDest[cbDest - 1] = '\0';
28 vsnprintf(pszDest, cbDest - 1, pszFormat, marker);
30 va_end(marker);
33 static void StringCchPrintfW( WCHAR *pszDest,size_t cbDest, WCHAR *pszFormat, ...)
35 va_list marker;
36 va_start( marker, pszFormat ); /* Initialize variable arguments. */
38 if (cbDest == 0 || pszDest == NULL || pszFormat == NULL)
39 return;
42 pszDest[cbDest - 1] = L'\0';
43 _vsnwprintf(pszDest, cbDest - 1, pszFormat, marker);
45 va_end(marker);
49 static void StringCchCopyA(char *pszDest,size_t cbDest, const char* pszSrc)
51 if (cbDest == 0 || pszDest == NULL || pszSrc == NULL)
52 return;
54 pszDest[cbDest - 1] = '\0';
56 strncpy(pszDest, pszSrc, cbDest - 1);
60 static void StringCchCatA(char* pszDest, size_t cbDest,const char* pszSrc)
62 if (cbDest == 0 || pszDest == NULL || pszSrc == NULL)
63 return;
65 pszDest[cbDest - 1] = '\0';
67 strncat(pszDest, pszSrc, cbDest - 1);
71 #ifdef UNICODE
72 #define StringCchPrintf StringCchPrintfW
73 #else
74 #define StringCchPrintf StringCchPrintfA
75 #endif
78 #endif