File:  [WindowsNT SDKs] / q_a / samples / uniput / uniput.rtf
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Thu Aug 9 18:29:48 2018 UTC (7 years, 9 months ago) by root
Branches: msft, MAIN
CVS tags: ntsdk-nov-1993, ntsdk-jul-1993, HEAD
Microsoft Windows NT Build 511 (SDK Final Release) 07-24-1993

{\rtf1\ansi \deff0\deflang1024{\fonttbl{\f0\froman Times New Roman;}{\f1\froman Symbol;}{\f2\fswiss Arial;}{\f3\fnil Times;}{\f4\fnil Helvetica;}{\f5\fmodern Courier;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;
\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue127;\red0\green127\blue127;\red0\green127\blue0;\red127\green0\blue127;\red127\green0\blue0;
\red127\green127\blue0;\red127\green127\blue127;\red192\green192\blue192;}{\stylesheet{\s242\fi-1886\li360\sb60\keep\keepn\brdrb\brdrs\brdrw30\brsp20\brdrcf2 \tx1440\tx2340\tqc\tx4320\tqr\tx8640 \b\f5\fs20\up6 \sbasedon0\snext242 footer;}{
\s243\tqc\tx4320\tqr\tx8640 \f3\fs12\lang1033 \sbasedon0\snext243 header;}{\s244\fi-1886\li360\sb60\keep\keepn\brdrb\brdrs\brdrw30\brsp20\brdrcf2 \tx1440\tx2340\tqc\tx4320\tqr\tx8640 \b\f5\fs16\up6 \sbasedon0\snext0 footnote reference;}{
\s245\fi-1886\li360\sb60\keep\keepn\brdrb\brdrs\brdrw30\brsp20\brdrcf2 \tx1440\tx2340\tqc\tx4320\tqr\tx8640 \b\f5\fs20\up6 \sbasedon0\snext245 footnote text;}{\s246\li720 \i\f3\fs20\lang1033 \sbasedon0\snext255 heading 9;}{\s247\li720 \i\f3\fs20 
\sbasedon0\snext255 heading 8;}{\s248\li720 \i\f3\fs20\lang1033 \sbasedon0\snext255 heading 7;}{\s249\li720 \f3\fs20\ul\lang1033 \sbasedon0\snext255 heading 6;}{\s250\li720 \b\f3\fs20\lang1033 \sbasedon0\snext255 heading 5;}{\s251\li360 \f3\ul\lang10 
\sbasedon0\snext255 heading 4;}{\s252\li360 \b\f3\lang1033 \sbasedon0\snext255 heading 3;}{\s253\sb120 \b\f4\lang1033 \sbasedon0\snext0 heading 2;}{\s254\sb240 \b\f4\ul\lang1033 \sbasedon0\snext0 heading 1;}{\s255\li720 \f3\fs12\lang1033 
\sbasedon0\snext255 Normal Indent;}{\f3\fs12\lang1033 \snext0 Normal;}{\s2 \b\f4\fs28\lang1033 \sbasedon0\snext2 Title;}{\s3\li720 \b\f4\fs28\lang1033 \sbasedon0\snext3 Body;}{\s4\li270\sb60\tx1440\tx2340 \b\f4\fs28\lang1033 \sbasedon0\snext4 List;}{
\s5\li270\sb60\tx1440\tx2340 \b\f4\fs20\lang1033 \sbasedon3\snext5 JumpBody;}{\s6\li270\sb60\brdrb\brdrs\brdrw30\brsp20\brdrcf2 \tx1440\tx2340 \b\f4\fs28\lang1033 \sbasedon0\snext6 PopUpTitle;}{\s7\li180\sb60\keep\brdrb\brdrs\brdrw30\brsp20\brdrcf2 
\tx1440\tx2340 \b\f4\fs20\lang1033 \sbasedon5\snext7 PopUpBody;}{\s8\fi-1886\li2160\sb60\brdrb\brdrs\brdrw30\brsp20\brdrcf2 \tx1440\tx2340 \b\f4\fs20\lang1033 \sbasedon4\snext8 GlossaryEntry;}{\s9\fi-1886\li360\sb60\keep\brdrb
\brdrs\brdrw30\brsp20\brdrcf2 \tx1440\tx2340 \b\f5\fs8 \snext0 FixedText;}{\s10\fi-1886\li360\sb60\keep\brdrb\brdrs\brdrw30\brsp20\brdrcf2 \tx1440\tx2340 \b\f5\fs20\up6 \snext0 ControlCodes;}}{\info{\author Steve Firebaugh}{\operator Steve Firebaugh}
{\creatim\yr1992\mo10\dy9\hr15\min50}{\revtim\yr1992\mo10\dy9\hr15\min50}{\version2}{\edmins167}{\nofpages0}{\nofwords65536}{\nofchars65536}{\vern16433}}\paperw12240\paperh15840\margl1800\margr1800\margt1440\margb1440\gutter0 \sectd \linex0 \pard\plain 
\s6\brdrb\brdrs\brdrw30\brsp20\brdrcf2 \tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760 \b\f4\fs28\lang1033 #{\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1033 # Uniput}}${\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1033 
$ Uniput}}{\plain \f4\fs28\lang1033 K{\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1033 K Uniput}}}{\plain \b\f4\fs28 Uniput}{\plain \b\f4\fs28 -- Input of Unicode characters}{\plain \b\f4\fs28\up6 
\par }\pard\plain \s4\sb60\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760 \b\f4\fs28\lang1033 {\plain \f3\ul\lang1033 
\par }{\plain \f3\ul\lang1033 Quick Start:}{\plain \f3\lang1033 
\par }\pard \s4\fi-360\li360\sb60\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760 {\plain \f3\lang1033 0.  (Make sure that the UCLUCIDA.TTF font file has been installed.)}{\plain \f3\lang1033 
\par }{\plain \f3\lang1033 1.  Run uniput and unipad (distributed on the Win32 SDK) side by side.}{\plain \f3\lang1033 
\par }{\plain \f3\lang1033 2}{\plain \f3\lang1033 .  Mouse click on characters displayed in the main uniput window.  Drag them to unipad.}{\plain \f3\lang1033 
\par }{\plain \f3\lang1033 3.  Scroll through character point ranges with the horizontal scroll bar.}{\plain \f3\lang1033 
\par }{\plain \f3\lang1033 4.  Create additional MDI windows as necessary.}{\plain \f3\lang1033 
\par }\pard \s4\sb60\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760 {\plain \f3\lang1033 
\par }{\plain \f3\ul\lang1033 Introduction:}{\plain \f3\ul\lang1033 
\par }{\plain \f3\lang1033 
Uniput provides a method for inputing unicode character to any application which is unicode enabled.  The user can grab any character displayed in the uniput window, drag it to another application, and drop the character there.  The second application wil
}{\plain \f3\lang1033 l receive a WM_CHAR message}{\plain \f3\lang1033 
 with the proper 16 bit characer code if the second application is unicode enabled.  There is no special programming required for the second application.  If it is a Windows program that takes character input, it will work with uniput.}{\plain 
\f3\lang1033 
\par }{\plain \f3\lang1033 
\par }{\plain \f3\ul\lang1033 More Information:}{\plain \f3\ul\lang1033 
\par }{\plain \f3\lang1033 
\par }{\plain \f3\uldb\lang1033 Overview}{\plain \v\f3\lang1033 Overview}{\plain \f3\lang1033 \tab }{\plain \f3\lang1033 \tab \tab \tab }{\plain \f3\uldb\lang1033 Advanced Features}{\plain \v\f3 Advanced}{\plain \f3\lang1033 
\par }{\plain \f3\uldb\lang1033 Font Support}{\plain \v\f3\uldb\lang1033 Fonts}{\plain \f3\lang1033 \tab \tab \tab \tab }{\plain \f3\uldb\lang1033 References}{\plain \v\f3\lang1033 References}{\plain \f3\lang1033 
\par }{\plain \f3\lang1033 
\par }\pard\plain \s6\sb60\brdrb\brdrs\brdrw30\brsp20\brdrcf2 \tx720\tx1440\tx2160\tx2340\tx2880\tx3600\tx4320\tx5040\tx5760 \b\f4\fs28\lang1033 \page #{\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1033 # Overview}}${\footnote \pard\plain 
\f3\fs12\lang1033 {\plain \f3\lang1033 $ Overview}}{\plain \f4\fs28\lang1033 K{\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1033 K Overview}}}Overview{\up6 
\par }\pard\plain \s4\sb60\tx720\tx1440\tx2160\tx2340\tx2880\tx3600\tx4320\tx5040\tx5760 \b\f4\fs28\lang1033 {\plain \f3\lang1033 The Uniput program was written to provide an interim input method for entering unicode characters.  }{\plain \f3\lang1033 
The UNIPAD application distributed with the October beta of Windows/NT is able to properly display left-to-right unicode strings.  However, it allows no practical input method.  That is the reason for Uniput.  In a sense, it serves as a crude input method
}{\plain \f3\lang1033  for the UNIPAD application.  Notice that this is an interim solution.  It is not part of Microsoft's future direction for input methods.}{\plain \f3\lang1033 
\par }{\plain \f3\lang1033 
\par }{\plain \f3\lang1033 The status bar currently has three fields.  The left most field displays the name of the window that a character was}{\plain \f3\lang1033 
 last dropped on.  The center field provides the type of that window, either "unicode" or "Ansi."  The right most field shows the stream of characters which have been chosen.  Notice that this is actually a static text window with the font set to be "Luci
}{\plain \f3\lang1033 da Sans Unicode."  As such, it is one way to see how Windows/NT will write a unicode string.  For example, diacritical (non spacing) marks are currently handled correctly.}{\plain \f3\lang1033 
\par }\pard\plain \s6\brdrb\brdrs\brdrw30\brsp20\brdrcf2 \tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760 \b\f4\fs28\lang1033 \page {\plain \f4\fs28\lang1033 #{\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1033 # Advanced}}}{\plain \f3  }
{\plain \f4\fs28\lang1033 ${\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1033 $ Advanced}}}{\plain \f4\fs28\lang1033 K{\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1033 K Advanced}}}{\plain \b\f4\fs28 Advanced Features}{\plain 
\b\f4\fs28\up6 
\par }\pard\plain \s4\sb60\tx720\tx1440\tx2160\tx2340\tx2880\tx3600\tx4320\tx5040\tx5760 \b\f4\fs28\lang1033 {\plain \f3\lang1033 
\par }{\plain \f3\lang1033 
By using the multiple document interface features fully, it is possible to tailor the application somewhat to the user's input needs.  For example, it is easy to create two windows (use the "Window, New" menu), one with the desired character range, and th
}{\plain \f3\lang1033 
e other with diacritical marks.  Then, by tiling the two windows, it is easy to quickly pick characters, and modify them as needed with the diacritical marks.  It is also possible to create multiple windows, and scroll them to different character ranges i
}{\plain \f3\lang1033 nd}{\plain \f3\lang1033 ependently.}{\plain \f3\lang1033 
\par }{\plain \f3\lang1033 
\par }{\plain \f3\lang1033 
The "Options" menu allows the user to set four preferences.  The later two, the font size, and the number of characters per line are self explanatory.  They may be different for each child window.  The first two preferences are Boolean, and the applicatio
}{\plain \f3\lang1033 
n starts with them being checked ON.  The first controls whether the hexadecimal value for the code point is displayed in the square with the character glyph.  The second affects the title of the child window.  With the item checked on, the t}{\plain 
\f3\lang1033 itle attempts to display the name of the character point range that the displayed characters are from.  Both of these Boolean options apply to ALL of the child windows in the application.}{\plain \f3\lang1033 
\par }\pard\plain \s6\brdrb\brdrs\brdrw30\brsp20\brdrcf2 \tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760 \b\f4\fs28\lang1033 {\plain \b\f4\lang1033 \page }{\plain \f4\fs28\lang1033 #{\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1 # }{\plain 
\b\f3 Fonts}}}{\plain \f4\fs28\lang1033 ${\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1033 $ }{\plain \b\f3 Font Support}}}{\plain \f4\fs28\lang1033 K{\footnote \pard\plain \f3\fs12\lang1033 {\plain \f3\lang1033 K }{\plain \b\f3 Font Support}}
}{\plain \b\f4\fs28 F}{\plain \b\f4\fs28 ont Support}{\plain \b\f4\fs28\up6 
\par }\pard\plain \s4\sb60\tx720\tx1440\tx2160\tx2340\tx2880\tx3600\tx4320\tx5040\tx5760 \b\f4\fs28\lang1033 {\plain \f3\lang1033 
In order for the Uniput program to work, it is necessary to have a font which covers a significant number of unicode code points.  The "Lucida Sans Unicode" font has about eleven hundred as of the October beta.  When the application first begins, it tries
}{\plain \f3\lang1033  }{\plain \f3\lang1033 
to create a logical font with that face name.  It then counts the number of character ranges in the realized font.  If it is less than some threshold (currently 30), the user is warned with a message box.  In this case, the user should quit the applicatio
}{\plain \f3\lang1033 n, install the UCLUCIDA.TTF font with the control panel, and try the application again.  This same procedure is true for the NTFONTS and SHOWUNI samples distributed on the SDK.}{\plain \f3\lang1033 
\par }\pard\plain \keepn \f3\fs12\lang1033 \page {\b\fs36 #{\footnote \pard\plain \f3\fs12\lang1033 {\plain \b\f3\lang1033 # }{\plain \f3 References}}}{\b\fs36 ${\footnote \pard\plain \f3\fs12\lang1033 {\plain \b\f3\lang1033 $ }{\plain \f3 
References/more information}}}{\b\fs36 K{\footnote \pard\plain \f3\fs12\lang1033 {\plain \b\f3\lang1033 K }{\plain \f3 References/more information}}}{\b\fs36 References}{\b\fs36\up6 
\par }\pard {\plain \f3\lang1033 NTFonts was written by Steve Firebaugh in Microsoft's Developer Support.  Look for us in the MSWIN32}{\plain \f3\lang1033  forum of Compuserve.  Questions or bug reports related to this program should be posted there.}{\plain 
\f3\lang1033 
\par }{\plain \f3\lang1033 
\par }{\plain \f3\lang1033 
\par }{\plain \f3\lang1033 Understanding the 'cmap' table is most easily possible with a specification for TrueType font files.  This is available from many sources including the following:}{\plain \f3\lang1033 
\par }{\plain \f3\lang1033 \tab }{\plain \f3\lang1033 Microsoft Software Library.  (Available on Compuserve by "GO MDKB" then search for keyword TTSPEC1.)}{\plain \f3\lang1033 
\par }{\plain \f3\lang1033 \tab }{\plain \f3\lang1033 Anonymous ftp on ftp.uu.net in vendor/microsoft/TrueType-Info.}{\plain \f3\lang1033 
\par }{\plain \f3\lang1033 
\par }{\plain \f3\lang1033 
\par }{\plain \f3\lang1033 To learn all about unicode, including the names given to the different code}{\plain \f3\lang1033  point ranges, the best reference is the following two volume book available from Addison-Wesley:}{\plain \f3\lang1033 
\par }{\plain \f3\lang1033 \tab }{\plain \f3\lang1033 The Unicode Standard}{\plain \f3\lang1033 
\par }{\plain \f3\lang1033 \tab }{\plain \f3\lang1033 World-wide character encoding}{\plain \f3\lang1033 
\par }{\plain \f3\lang1033 \tab }{\plain \f3\lang1033 Version 1.0}{\plain \f3\lang1033 
\par }{\plain \f3\lang1033 \tab }{\plain \f3\lang1033 Vol 1: ISBN 0-201-56788-1}{\plain \f3\lang1033 
\par }{\plain \f3\lang1033 \tab }{\plain \f3\lang1033 Vol 2: ISBN 0-201-60845-6}{\plain \f3\lang1033 
\par }\pard\plain \s4\sb60\tx720\tx1440\tx2160\tx2340\tx2880\tx3600\tx4320\tx5040\tx5760 \b\f4\fs28\lang1033 {\plain \b\f4\lang1033 \page }{\plain \b\f3\lang1033 
\par }}

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.