+#if defined(WIN32) && defined(UNICODE)
+ size_needed = MultiByteToWideChar(CP_UTF8, 0, msh->FilNam, strlen(msh->FilNam), NULL, 0);
+ encoded = malloc((size_needed + 1)*sizeof(wchar_t));
+ MultiByteToWideChar(CP_UTF8, 0, msh->FilNam, strlen(msh->FilNam), encoded, size_needed);
+ encoded[size_needed] = '\0';
+ if (!(msh->hdl = _wfopen(encoded, L"rb")))
+#else
+ if (!(msh->hdl = fopen(msh->FilNam, "rb")))
+#endif