summaryrefslogtreecommitdiff
path: root/src/libcrawler/win32
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcrawler/win32')
-rwxr-xr-xsrc/libcrawler/win32/errormsg.cpp27
-rwxr-xr-xsrc/libcrawler/win32/stringutils.cpp21
2 files changed, 48 insertions, 0 deletions
diff --git a/src/libcrawler/win32/errormsg.cpp b/src/libcrawler/win32/errormsg.cpp
new file mode 100755
index 0000000..c0a65d8
--- /dev/null
+++ b/src/libcrawler/win32/errormsg.cpp
@@ -0,0 +1,27 @@
+#include "win32/errormsg.hpp"
+
+using namespace std;
+
+#define WIN32_MEAN_AND_LEAN
+#include <windows.h>
+
+string getLastError( )
+{
+ LPTSTR buf;
+ DWORD size;
+
+ DWORD lastErr = GetLastError( );
+
+ if( !FormatMessage(
+ FORMAT_MESSAGE_ALLOCATE_BUFFER |
+ FORMAT_MESSAGE_FROM_SYSTEM |
+ FORMAT_MESSAGE_IGNORE_INSERTS |
+ FORMAT_MESSAGE_MAX_WIDTH_MASK,
+ NULL, lastErr, 0, (LPTSTR)&buf,
+ 0, NULL ) ) {
+ return "<no message available>";
+ }
+
+ return string( buf );
+}
+
diff --git a/src/libcrawler/win32/stringutils.cpp b/src/libcrawler/win32/stringutils.cpp
new file mode 100755
index 0000000..607735c
--- /dev/null
+++ b/src/libcrawler/win32/stringutils.cpp
@@ -0,0 +1,21 @@
+#include "win32/stringutils.hpp"
+
+using namespace std;
+
+#define WIN32_MEAN_AND_LEAN
+#include <windows.h>
+
+std::wstring s2ws( const std::string &s )
+{
+ // get size for buffer and allocate it
+ int len;
+ int slength = (int)s.length( )+1;
+ len = MultiByteToWideChar( CP_ACP, 0, s.c_str( ), slength, 0, 0 );
+ wchar_t *buf = new wchar_t[len];
+
+ // convert
+ MultiByteToWideChar( CP_ACP, 0, s.c_str( ), slength, buf, len );
+ std::wstring res( buf );
+ delete[] buf;
+ return res;
+}