summaryrefslogtreecommitdiffstats
path: root/private/nw/nwscript/wide.c
diff options
context:
space:
mode:
Diffstat (limited to 'private/nw/nwscript/wide.c')
-rw-r--r--private/nw/nwscript/wide.c149
1 files changed, 149 insertions, 0 deletions
diff --git a/private/nw/nwscript/wide.c b/private/nw/nwscript/wide.c
new file mode 100644
index 000000000..09578c7bd
--- /dev/null
+++ b/private/nw/nwscript/wide.c
@@ -0,0 +1,149 @@
+/*************************************************************************
+*
+* WIDE.C
+*
+* Wide character translation routines
+*
+* Copyright (c) 1995 Microsoft Corporation
+*
+* $Log: N:\NT\PRIVATE\NW4\NWSCRIPT\VCS\WIDE.C $
+*
+* Rev 1.2 10 Apr 1996 14:24:14 terryt
+* Hotfix for 21181hq
+*
+* Rev 1.2 12 Mar 1996 19:56:36 terryt
+* Relative NDS names and merge
+*
+* Rev 1.1 22 Dec 1995 14:27:18 terryt
+* Add Microsoft headers
+*
+* Rev 1.0 15 Nov 1995 18:08:20 terryt
+* Initial revision.
+*
+* Rev 1.1 23 May 1995 19:37:32 terryt
+* Spruce up source
+*
+* Rev 1.0 15 May 1995 19:11:14 terryt
+* Initial revision.
+*
+*************************************************************************/
+
+#include <stdio.h>
+#include <direct.h>
+#include <time.h>
+#include <stdlib.h>
+
+#include <nt.h>
+#include <ntrtl.h>
+#include <nturtl.h>
+#include <windows.h>
+
+#include "nwscript.h"
+
+
+/********************************************************************
+
+ szToWide
+
+Routine Description:
+
+ Given a single byte character string, convert to wide
+
+Arguments:
+
+ lpszW - Wide character string returned
+ lpszC - Single character string input
+ nSize - length of Wide character buffer
+
+Return Value:
+ 0 = success
+ else NT error
+
+ *******************************************************************/
+DWORD
+szToWide(
+ LPWSTR lpszW,
+ LPCSTR lpszC,
+ INT nSize
+ )
+{
+ if (!MultiByteToWideChar(CP_OEMCP,
+ MB_PRECOMPOSED,
+ lpszC,
+ -1,
+ lpszW,
+ nSize))
+ {
+ return (GetLastError()) ;
+ }
+
+ return NO_ERROR ;
+}
+
+/********************************************************************
+
+ WideTosz
+
+Routine Description:
+
+ Given a wide character string, convert to single
+
+Arguments:
+
+ lpszC - Single character string returned
+ lpszW - Wide character string input
+ nSize - length of single character buffer
+
+Return Value:
+ 0 = success
+ else NT error
+
+ *******************************************************************/
+DWORD
+WideTosz(
+ LPSTR lpszC,
+ LPWSTR lpszW,
+ INT nSize
+ )
+{
+ if (!WideCharToMultiByte(CP_OEMCP,
+ 0,
+ (LPCWSTR) lpszW,
+ -1,
+ lpszC,
+ nSize,
+ NULL,
+ NULL))
+ {
+ return (GetLastError()) ;
+ }
+
+ return NO_ERROR ;
+}
+
+/********************************************************************
+
+ ConvertUnicodeToAscii
+
+Routine Description:
+
+ Given a wide character string, convert to single
+
+Arguments:
+
+ Buffer - buffer to be converted
+
+Return Value:
+ none
+
+ *******************************************************************/
+void
+ConvertUnicodeToAscii( PVOID Buffer )
+{
+ LPCWSTR lpszW = Buffer;
+ BYTE Destination[1024];
+
+ WideTosz( (LPSTR)Destination, (LPWSTR)Buffer, 1024 );
+
+ strcpy( Buffer, Destination );
+}