RE: Uniscribe for Win32 Unicoders

From: F. Avery Bishop (Exchange) (
Date: Mon Sep 27 1999 - 18:14:32 EDT


Sorry it's taken me so long to respond this time. Pick your favorite excuse
-- it probably applies.

Anyway, my response to your Qs below are pre-pended by "fab>".

F. Avery Bishop
Program Manager, International Evangelism

-----Original Message-----
From: Glen Perkins []
Sent: Tuesday, September 21, 1999 1:50 PM
To: Unicode List
Subject: Re: Uniscribe for Win32 Unicoders

----- Original Message -----
From: F. Avery Bishop (Exchange) <>
To: Unicode List <>
Sent: Tuesday, September 21, 1999 8:04 AM
Subject: RE: Uniscribe for Win32 Unicoders

> Good Qs. Please see my As below.
> F. Avery Bishop
> Program Manager, International Evangelism

And good As. See more Qs below. ;-) (Thanks for your quick and helpful
answers, BTW.)

> The header and LIB files [for Uniscribe] will be available in the next
> available in October I believe.

Does this mean the "Platform SDK" or is it the "InetSDK" (since it's part of
IE5) or some other SDK?
fab> Platform SDK

> I don't know about any SPs of Visual Studio, but I'll see
> what I can find out.


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

> When you say conflict, do you mean you've found a binary incompatibility?
> Our plan and intent was to develop USP10.DLL to be binary compatible with
> any previous versions, so you should just be able to replace any existing
> version or USP10.DLL with the newer version with no ill effects. If you've
> run into problems when doing this (e.g., an AV in USP10.DLL) please let me
> know.

No, I haven't found any binary incompatibilities, but I've hardly tested it
exhaustively. I've only tested it by briefly running the CSSamp app from
last November. The README file that accompanied that code said the

"USP10.DLL, USP10.H and USP10.HTML represent a snapshot in the evolution of
the Uniscribe interface. Although we have no plans to make significant
changes to the interface, we will do so if we find serious compatability
issues or design or coding errors."

Since last year, I don't know what changes you might have made. The
USP10.DLL installed on our systems by IE5 is clearly a later version, and
since I didn't know whether that earlier "snapshot in the evolution" version
was considered API frozen or beta (or alpha), I was concerned about relying
on its interface in the development of production code.

It appears from your response that you consider the earlier one to be an
API-frozen release version of Uniscribe with which all later DLLs will have
to remain 100% compatible. That means I could start creating production code
with the header and LIB files from that MSJ article and it will still work
when the new header and LIB are available next month, right?
fab> Correct. Again, please let me know if you find problems.

> The CSSAMP sample that accompanied that article has been updated
> and added to the SDK.

Is this the same "SDK" as above (Platform, Inet, or whatever)? The one that
will ship in October, or is it already in there? There are a couple of
"issues" with the earlier version that I would just as soon not have to try
to track down and resolve myself, if I can avoid it.
fab> Platform SDK.

>> 5) The MSJ article says that Uniscribe will be redistributable by
>> developers. Is it? How? Is it officially redistributable to Win9x users?
>> there an online installer at some URL we can point them to? (Something
>> 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?

> USP10.DLL is redistributable through IE5. Microsoft views Internet
> Explorer as the platform, and Uniscribe is native to IE5. So it works with
> Windows 2000 because IE5 is integrated into Windows 2000. If you install
> on one of the downlevel platforms mentioned above, then Uniscribe will
> although the results for some scripts will not be correct on Far East
> versions of Windows 95.

IE5 is hundreds of times the size of USP10.DLL, and installing it is a
non-trivial decision for a customer. This isn't what I imagined was meant by
the claim that Uniscribe was "redistributable". ("But you said you sold
hubcaps...". "Sure, we sell hubcaps. Buy any of our cars and you get *four*
of them!") You don't make these policies, though, so I appreciate the
information. It appears that now the reality is that if I wanted to use
Uniscribe in a commercial product, I would simply have to tell people
"requires Microsoft Internet Explorer version 5.0 or later", which would
seriously reduce my potential market for at least another couple of years --
long enough to lose the market to a more sensible, less
multilingually-minded competitor.

I was hoping to use Uniscribe as the generic TextOut for our apps, in
preparation for a glorious pan-lingual future, but if it has this kind of
impact on our potential market size right now, it probably isn't worth it.
fab> OK. Sorry to hear it.

> Uniscribe is new, and fairly specialized in that it's only needed by apps
> that need to display formatted complex scripts. Most app developers get
> the complex script support they need through the standard Win32 API calls
> (ExtTextOutW, DrawTextW, GetTextExtentPointW, etc.) and standard system
> controls (edit, static, etc.). These standard components support complex
> scripts through Uniscribe, and hide it's complexity from developers. We
> encourage developers to use these simpler approaches if they can. This is
> why there are no KB articles and no FAQs yet. We do plan to add KB
> and other sources of information as required in the future.

Again, I was hoping to use Uniscribe, not for its greater specialization,
but for its greater generality. Having to install the whole car to get a
hubcap pretty much eliminates that "generality" argument (for now). I'll
continue kicking the tires, but I'll probably have to accept your advice to
look for a more practical solution than Uniscribe for the next couple of


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