Uniscribe for Win32 Unicoders

From: Glen Perkins (Glen.Perkins@nativeguide.com)
Date: Tue Sep 21 1999 - 00:07:22 EDT

In order to take Microsoft's suggestion and base most new applications on
Unicode (internally) and Uniscribe, we need to know some things about
Uniscribe that perhaps our Microsoft representatives could comment on:

1) Where can we obtain the current header (USP10.H) and library (USP10.LIB)
files to match the current (IE5) version of Uniscribe (USP10.DLL)? Are they
included in the Service Pack 3 update of Visual C++ 6? Are they available
for separate download as a part of some SDK for fans of Unicode and complex
scripts? ;-)

Now that the "real" release version of Uniscribe (USP10.DLL) is being
installed by the IE5 and Office2000 installers, the old pre-release header
and library files available from the online MSJ site (accompanying the Nov.
1998 article by Avery Bishop) are out of date and will conflict with the
"real" Uniscribe already on our development machines (courtesy of IE5). We
need to know how to update our development systems (VC++6) to incorporate
the release version of Uniscribe.

2) Does the use of Uniscribe require that the compiler options be set to
"_Unicode", or can we continue to use "_MBCS" and handle Unicode conversions
internally (e.g. MultiByteToWideChar)?

In the Nov. 1998 and Apr. 1999 articles on the various options for running
Unicode apps on Win9x, I couldn't quite tell whether the "Uniscribe option"
*required* compilation as a "_Unicode" app, or whether it didn't care.

3) Is there any tutorial information available for Uniscribe other than the
MSJ article? (Not tutorials on Unicode itself, but on the use of Uniscribe
for people who already understand Unicode.) Does the MSJ sample app still
work with the release version of Uniscribe?

4) The MSJ article, written nearly a year ago about the pre-release
Uniscribe, said it would work on any "Non-Far East" version of Win95 and on
all versions of Win98 and all WinNT versions 4.0 or later. The *current*
online MSDN docs say the following regarding almost every Uniscribe

  Windows NT/2000: Requires Windows 2000.
  Windows 95/98: Unsupported.
  Windows CE: Unsupported.
  Header: Declared in usp10.h.
  Import Library: Use usp10.lib.

See the docs for ScriptTextOut at:


for example. (Note, that's a single, long URL, not two.) This seems to say
that, while it may be hacked into appearing to work on Win9x and NT4, it
shouldn't be used on anything other than Win2000, because only Win2000 is
actually supported. It seems to be saying that smart developers will avoid
using Uniscribe on anything other than machines that may or may not begin to
appear next year. That's a difference between running on ~90% of the Win32
installed base and <0.1% of the Win32 installed base -- the difference
between a real business opportunity and a science project. What's the truth?

5) The MSJ article says that Uniscribe will be redistributable by
developers. Is it? How? Is it officially redistributable to Win9x users? Is
there an online installer at some URL we can point them to? (Something short
of the massive IE5, of course.) Can we include it in our own installer
program? Is the USP10.DLL sufficient, or would other auxiliary DLLs also
have to be distributed with it?

6) Is there any mailing list, newsgroup, bug list, even a FAQ, for
developers using Uniscribe? I note that there isn't a single instance of the
word "Uniscribe" anywhere in the Microsoft Knowledge Base. Either this
product is completely "issue"-free, or nobody is using it (yet?), or there
is a forum where all the issues and users go that I haven't managed to find

I hope I'm not the only one who would like to know the answers to these
questions. I think Uniscribe will do a lot for the cause of Unicode and
multilinual software on Win32 once a few of us figure out how to use it and
deploy it and start spreading the word.

Glen Perkins

This archive was generated by hypermail 2.1.2 : Tue Jul 10 2001 - 17:20:53 EDT