cvs server: Diffing .
Index: dso.c
===================================================================
RCS file: /home/cvspublic/apr/dso/win32/dso.c,v
retrieving revision 1.27
diff -u -r1.27 dso.c
--- dso.c	28 Jan 2002 15:56:08 -0000	1.27
+++ dso.c	28 Jan 2002 21:44:57 -0000
@@ -86,7 +86,9 @@
 {
     HINSTANCE os_handle;
     apr_status_t rv;
+#ifndef _WIN32_WCE
     UINT em;
+#endif
 
 #if APR_HAS_UNICODE_FS
     IF_WIN_OS_IS_UNICODE 
@@ -99,13 +101,17 @@
             return ((*res_handle)->load_error = rv);
         }
         /* Prevent ugly popups from killing our app */
+#ifndef _WIN32_WCE
         em = SetErrorMode(SEM_FAILCRITICALERRORS);
+#endif
         os_handle = LoadLibraryExW(wpath, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
         if (!os_handle)
             os_handle = LoadLibraryExW(wpath, NULL, 0);
         if (!os_handle)
             rv = apr_get_os_error();
+#ifndef _WIN32_WCE
         SetErrorMode(em);
+#endif
     }
 #endif
 #if APR_HAS_ANSI_FS
@@ -158,8 +164,14 @@
                          struct apr_dso_handle_t *handle, 
                          const char *symname)
 {
-    *ressym = (apr_dso_handle_sym_t)GetProcAddress(handle->handle, symname);
+#if _WIN32_WCE
+    apr_wchar_t wsymname[256];
 
+    MultiByteToWideChar(CP_ACP, 0, symname, strlen(symname), wsymname, 255);
+    *ressym = (apr_dso_handle_sym_t)GetProcAddressW(handle->handle, wsymname);
+#else
+    *ressym = (apr_dso_handle_sym_t)GetProcAddress(handle->handle, symname);
+#endif
     if (!*ressym) {
         return apr_get_os_error();
     }
