aboutsummaryrefslogtreecommitdiffstats
path: root/src/native/windows/msofficecomm/StringUtils.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/native/windows/msofficecomm/StringUtils.cxx')
-rw-r--r--src/native/windows/msofficecomm/StringUtils.cxx54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/native/windows/msofficecomm/StringUtils.cxx b/src/native/windows/msofficecomm/StringUtils.cxx
new file mode 100644
index 0000000..71beed0
--- /dev/null
+++ b/src/native/windows/msofficecomm/StringUtils.cxx
@@ -0,0 +1,54 @@
+/*
+ * Jitsi, the OpenSource Java VoIP and Instant Messaging client.
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+#include "StringUtils.h"
+
+LPWSTR StringUtils::MultiByteToWideChar(LPCSTR str)
+{
+ int wsize = ::MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0);
+ LPWSTR wstr;
+
+ if (wsize)
+ {
+ wstr = (LPWSTR) ::malloc(wsize * sizeof(WCHAR));
+ if (str && !::MultiByteToWideChar(CP_ACP, 0, str, -1, wstr, wsize))
+ {
+ ::free(wstr);
+ wstr = NULL;
+ }
+ }
+ else
+ wstr = NULL;
+ return wstr;
+}
+
+LPSTR StringUtils::WideCharToMultiByte(LPCWSTR wstr)
+{
+ int size = ::WideCharToMultiByte(CP_ACP, 0, wstr, -1, NULL, 0, NULL, NULL);
+ LPSTR str;
+
+ if (size)
+ {
+ str = (LPSTR) ::malloc(size);
+ if (str
+ && !::WideCharToMultiByte(
+ CP_ACP,
+ 0,
+ wstr,
+ -1,
+ str,
+ size,
+ NULL,
+ NULL))
+ {
+ ::free(str);
+ str = NULL;
+ }
+ }
+ else
+ str = NULL;
+ return str;
+}