msvcp90: Added basic_ios::widen implementation.
diff --git a/dlls/msvcp90/ios.c b/dlls/msvcp90/ios.c
index c69b5c5..2b43123 100644
--- a/dlls/msvcp90/ios.c
+++ b/dlls/msvcp90/ios.c
@@ -3259,8 +3259,8 @@
 DEFINE_THISCALL_WRAPPER(basic_ios_char_widen, 8)
 char __thiscall basic_ios_char_widen(basic_ios_char *this, char ch)
 {
-    FIXME("(%p %c) stub\n", this, ch);
-    return 0;
+    TRACE("(%p %c)\n", this, ch);
+    return ctype_char_widen_ch(ctype_char_use_facet(this->strbuf->loc), ch);
 }
 
 
@@ -3539,8 +3539,8 @@
 DEFINE_THISCALL_WRAPPER(basic_ios_wchar_widen, 8)
 wchar_t __thiscall basic_ios_wchar_widen(basic_ios_wchar *this, char ch)
 {
-    FIXME("(%p %c)\n", this, ch);
-    return 0;
+    TRACE("(%p %c)\n", this, ch);
+    return ctype_wchar_widen_ch(ctype_wchar_use_facet(this->strbuf->loc), ch);
 }
 
 /* Caution: basic_ostream uses virtual inheritance.
diff --git a/dlls/msvcp90/msvcp90.h b/dlls/msvcp90/msvcp90.h
index 8550ad8..36c4034 100644
--- a/dlls/msvcp90/msvcp90.h
+++ b/dlls/msvcp90/msvcp90.h
@@ -332,6 +332,7 @@
 
 MSVCP_bool __thiscall ctype_char_is_ch(const ctype_char*, short, char);
 char __thiscall ctype_char_narrow_ch(const ctype_char*, char, char);
+char __thiscall ctype_char_widen_ch(const ctype_char*, char);
 
 typedef struct {
     LCID handle;
@@ -346,6 +347,7 @@
 } ctype_wchar;
 
 char __thiscall ctype_wchar_narrow_ch(const ctype_wchar*, wchar_t, char);
+wchar_t __thiscall ctype_wchar_widen_ch(const ctype_wchar*, char);
 
 /* class locale */
 typedef struct