aboutsummaryrefslogtreecommitdiff
path: root/c/common.cpp
diff options
context:
space:
mode:
authorJohn Ankarström <john@ankarstrom.se>2022-07-10 23:23:09 +0200
committerJohn Ankarström <john@ankarstrom.se>2022-07-10 23:25:09 +0200
commit295d423cc47f9ee8a72134dc544892a03b279311 (patch)
tree3e89b0bbcf42b3053225eb0dff88b887dd16df48 /c/common.cpp
parent85a4ad2c184ed915915a2fb630415a80ed9a286f (diff)
downloadEpisodeBrowser-295d423cc47f9ee8a72134dc544892a03b279311.tar.gz
Convert to C++.
I already hit upon some object-oriented programming patterns in *listview.c, so I felt that it would be natural to use this as an opportunity to learn C++.
Diffstat (limited to 'c/common.cpp')
-rw-r--r--c/common.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/c/common.cpp b/c/common.cpp
new file mode 100644
index 0000000..63adb53
--- /dev/null
+++ b/c/common.cpp
@@ -0,0 +1,29 @@
+#include <windows.h>
+#include <SWI-Prolog.h>
+
+#include "resource.h"
+#include "defs.h"
+
+/* Convert normal string to TSTR using given codepage. */
+TCHAR *
+TszFromSz(const char *sz, int iCp)
+{
+ TCHAR *tsz;
+
+#ifdef UNICODE
+ int cbMultiByte, cchWideChar;
+
+ cbMultiByte = strlen(sz)+1;
+ cchWideChar = MultiByteToWideChar(iCp, 0, sz, cbMultiByte, NULL, 0);
+ tsz = (TCHAR *)malloc(cchWideChar*sizeof(WCHAR));
+ if (!tsz) return NULL;
+ if (!MultiByteToWideChar(iCp, 0, sz, cbMultiByte, tsz, cchWideChar))
+ return NULL;
+#else
+ tsz = malloc(strlen(sz)+1);
+ if (!tsz) return NULL;
+ strcpy(tsz, sz);
+#endif
+
+ return tsz;
+}