13.07.2015 Views

Unicode 3.x and String- Related APIs in InDesign ... - Adobe Partners

Unicode 3.x and String- Related APIs in InDesign ... - Adobe Partners

Unicode 3.x and String- Related APIs in InDesign ... - Adobe Partners

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-<strong>Related</strong> <strong>APIs</strong> <strong>in</strong><strong>InDesign</strong> CS/InCopy CS # 10078 <strong>InDesign</strong> CS InCopy CS2003 9 12 <strong>Adobe</strong> Solutions Networkhttp://partners.adobe.com/asn/japan/developer/benefits.jsp


Copyright 2003 <strong>Adobe</strong> Systems Incorporated.All rights reserved.<strong>Adobe</strong> Systems Incorporated<strong>Adobe</strong><strong>Adobe</strong> After Effects<strong>Adobe</strong> <strong>InDesign</strong><strong>Adobe</strong> PhotoDeluxe<strong>Adobe</strong> Premiere<strong>Adobe</strong> Photoshop<strong>Adobe</strong> Illustrator<strong>Adobe</strong> Type ManagerATM PostScript Mac<strong>in</strong>tosh Apple AppleComputer, Inc. Mac OS MicrosoftW<strong>in</strong>dowsW<strong>in</strong>dows 95W<strong>in</strong>dows 98 W<strong>in</strong>dows NT MicrosoftCorporation 0.1 2003 1 23 Ken Sadahiro 1.0 2003 1 27 Ken Sadahiro John Hake Lee Huang DocBook 1.0a 2003 1 30 Ken Sadahiro <strong>InDesign</strong><strong>InDesign</strong> InCopyAlpha IComposeScanner::QueryData() 1.0b 2003 4 14 Ken Sadahiro <strong>Unicode</strong> TM SDK API 1.1 2003 7 14 Ken Sadahiro <strong>InDesign</strong> CSInCopy CSAPI 1.2 2003 9 3 Ken Sadahiro 1.3 2003 9 12 Ken Sadahiro ObsoleteLength()


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 <strong>InDesign</strong> InCopy <strong>Unicode</strong> . . . . . . . . . . . . . . . 6<strong>Unicode</strong> <strong>3.x</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . 7<strong>InDesign</strong> CS InCopy CS <strong>Unicode</strong> . . . . . . . . . . . . . . . . . . 8 <strong>Unicode</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8W<strong>in</strong>32 API <strong>Unicode</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10UTF16TextChar UTF32TextChar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<strong>Unicode</strong>Savvy<strong>Str<strong>in</strong>g</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Wide<strong>Str<strong>in</strong>g</strong>ConstUTF32Iter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11PM<strong>Str<strong>in</strong>g</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Wide<strong>Str<strong>in</strong>g</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16TextCharBuffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19TextIterator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20IComposeScanner::QueryDataAt(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21TextChar.h #def<strong>in</strong>es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<strong>Unicode</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23W<strong>in</strong>32 API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25iii


iv 2003 9 12 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-<strong>Related</strong> <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS


1#10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>related<strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS<strong>InDesign</strong> CS InCopy CS API API <strong>InDesign</strong> InCopy <strong>Unicode</strong> <strong>InDesign</strong> CS InCopy CS <strong>InDesign</strong> InCopy 2.0 • API• Basic Multil<strong>in</strong>gual PlaneBMP 16 U+0000 FFFF<strong>Unicode</strong> 1.0 • <strong>Unicode</strong> • CJK• 1 2 • • Input Method EditorIMEOSMicrosoft IME2000AppleErgoSoft EGBridge • JISISO-8859-1 • API <strong>InDesign</strong> CS InCopy CS API • 1 <strong>Unicode</strong> <strong>Unicode</strong> Tranformation Format UTF#10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS 5


#10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS• <strong>Unicode</strong>http://www.unicode.org • <strong>Unicode</strong> Scalar ValueUSV<strong>Unicode</strong> U+3000CJK 16 • <strong>Unicode</strong> Tranformation FormatUTF <strong>Unicode</strong> 3 1. UTF-81 4 http://www.unicode.org/faq/utf_bom.html#2 2. UTF-1616 http://www.unicode.org/faq/utf_bom.html#6 3. UTF-32 32 3 <strong>Unicode</strong> <strong>InDesign</strong> InCopy <strong>Unicode</strong> <strong>InDesign</strong> InCopy <strong>Unicode</strong> OpenType <strong>Unicode</strong> <strong>Unicode</strong> 2.0 <strong>InDesign</strong> InCopy <strong>Unicode</strong> • UTF-16 <strong>Unicode</strong> 3.0 16 1 <strong>InDesign</strong> InCopy 1.x 2.x textchar 16 • <strong>Unicode</strong> <strong>InDesign</strong> InCopy 1.x 2.x <strong>Unicode</strong> <strong>Unicode</strong><strong>Unicode</strong> <strong>Unicode</strong> <strong>InDesign</strong> InCopy <strong>Unicode</strong> • [ 1 ]• • <strong>Unicode</strong> SS 6


#10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS<strong>InDesign</strong> CS InCopy CS <strong>Unicode</strong> <strong>Unicode</strong> <strong>InDesign</strong> CS InCopy CS API API<strong>Unicode</strong> <strong>3.x</strong> <strong>InDesign</strong> CS InCopy CS SDK API <strong>Unicode</strong> <strong>3.x</strong> <strong>Unicode</strong> <strong>Unicode</strong> 3.2<strong>Unicode</strong> <strong>3.x</strong> • <strong>Unicode</strong> 3.1 <strong>Unicode</strong> BMP U+10000 1FFFFU+20000 2FFFF U+E0000 EFFFF • <strong>Unicode</strong> 3.2 U+100000 10FFFF 40000 JIS X 0213• <strong>Unicode</strong> <strong>3.x</strong> 3 <strong>Unicode</strong> Tranformation FormatUTF 1.1 UTF-88 1 4USV Unit1 Unit2 Unit3 Unit4U+0000 007FU+0080 07FF0xxxxxxx110xxxxx10xxxxxxU+0800 D7FFE000 FFFFU+10000 10FFFF1110xxxx 10xxxxxx 10xxxxxx11110xxx 10xxxxxx 10xxxxxx 10xxxxxx1 0 xUTF U+0080 07FF 11 x 11 U+10000 10FFFF 21 UTF-8 U+F03F 11101111 10000000 10111111 EF 80 BF 3 #10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS 7


#10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS<strong>InDesign</strong> CS InCopy CS <strong>Unicode</strong> 1.2 UTF-1616 1 2USV Unit1 Unit2U+0000 D7FFE000 FFFFU+10000 10FFFF10000 xxxxxxxxxxxxxxxx110110xxxxxxxxxx110111xxxxxxxxxx 3 UTF-16BEUTF-16LE UTF-16 1.3 UTF-3232 1<strong>Unicode</strong> 3.1 http://www.unicode.org/reports/tr19/ USVU+0000 D7FFE000 10FFFFUnit100000000000xxxxxxxxxxxxxxxxxxxxx 3 UTF-32BEUTF-32LE UTF-32 <strong>Unicode</strong> http://www.unicode.org/st<strong>and</strong>ard/st<strong>and</strong>ard.html <strong>InDesign</strong> CS InCopy CS <strong>Unicode</strong> <strong>Unicode</strong> <strong>Unicode</strong> <strong>3.x</strong> 16 16 32 API API API • <strong>InDesign</strong> CS InCopy CS SDK API— UTF16TextChar UTF32TextChar— <strong>Unicode</strong>Savvy<strong>Str<strong>in</strong>g</strong>8


#10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS<strong>InDesign</strong> CS InCopy CS <strong>Unicode</strong> — Wide<strong>Str<strong>in</strong>g</strong>ConstUTF32Iter• <strong>InDesign</strong> InCopy 2.0 SDK API API — PM<strong>Str<strong>in</strong>g</strong>— Wide<strong>Str<strong>in</strong>g</strong><strong>Unicode</strong> — TextCharBuffertextchar — TextIterator IComposeScanner::QueryDataAt()W<strong>in</strong>32 API <strong>Unicode</strong> <strong>InDesign</strong> CS InCopy CS <strong>InDesign</strong> InCopy API W<strong>in</strong>dows <strong>Unicode</strong> _<strong>Unicode</strong> precomp/msvc/VCSett<strong>in</strong>gs.h <strong>InDesign</strong> CS InCopy CS <strong>Unicode</strong> ANSI <strong>Unicode</strong> W<strong>in</strong>32 API W<strong>in</strong>32API IME <strong>Unicode</strong> • <strong>Unicode</strong> IME • W<strong>in</strong>32 API <strong>Unicode</strong> OS <strong>Unicode</strong> • <strong>Unicode</strong> • Visual C++ wchar_t W<strong>in</strong>32 <strong>Unicode</strong> API http://www.microsoft.com/msj/0499/multilangunicode/multilangunicode.htm <strong>InDesign</strong> CS InCopy CS Mac<strong>in</strong>tosh IME <strong>Unicode</strong> W<strong>in</strong>dows #10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS 9


#10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS API API<strong>InDesign</strong> CS InCopy CS SDK <strong>Unicode</strong> API API UTF16TextChar UTF32TextChar<strong>Unicode</strong>Savvy<strong>Str<strong>in</strong>g</strong> Wide<strong>Str<strong>in</strong>g</strong>ConstUTF32Iter UTF16TextChar UTF32TextCharAPI {SDK}/source/public/<strong>in</strong>cludes/BaseType.h <strong>Unicode</strong> UTF16TextChar uchar16 typedef textchar UTF32TextChar 32 <strong>Unicode</strong> UTF16TextChar UTF32TextChar <strong>Unicode</strong> textchar typedef UTF16TextChar UTF32TextChar BMP <strong>Unicode</strong> U+FFFF PM<strong>Str<strong>in</strong>g</strong>TextCharBufferTextIteratorWide<strong>Str<strong>in</strong>g</strong>Wide<strong>Str<strong>in</strong>g</strong>ConstUTF32Iter<strong>Unicode</strong>Savvy<strong>Str<strong>in</strong>g</strong>API {SDK}/source/public/<strong>in</strong>cludes/<strong>Unicode</strong>Savvy<strong>Str<strong>in</strong>g</strong>.hPM<strong>Str<strong>in</strong>g</strong> Wide<strong>Str<strong>in</strong>g</strong> <strong>Unicode</strong>Savvy<strong>Str<strong>in</strong>g</strong> <strong>Unicode</strong> UTF16TextChar UTF16TextChar UTF32TextChar UTF-16 UTF-32 UTF16TextCharUTF32TextChar <strong>Unicode</strong>Savvy<strong>Str<strong>in</strong>g</strong> PM<strong>Str<strong>in</strong>g</strong>Wide<strong>Str<strong>in</strong>g</strong>10


#10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS API Wide<strong>Str<strong>in</strong>g</strong>ConstUTF32IterAPI {SDK}/source/public/<strong>in</strong>cludes/Wide<strong>Str<strong>in</strong>g</strong>.hC++ STLWide<strong>Str<strong>in</strong>g</strong> operator* UTF32TextChar Wide<strong>Str<strong>in</strong>g</strong>ConstUTF32Iter Wide<strong>Str<strong>in</strong>g</strong> Wide<strong>Str<strong>in</strong>g</strong> API PM<strong>Str<strong>in</strong>g</strong>API {SDK}/source/public/<strong>in</strong>cludes/PM<strong>Str<strong>in</strong>g</strong>.hPM<strong>Str<strong>in</strong>g</strong> <strong>InDesign</strong> CS InCopy CS API 1 • PM<strong>Str<strong>in</strong>g</strong> • PM<strong>Str<strong>in</strong>g</strong> Pascal • <strong>Unicode</strong> • Hash()AppendNumber()AsNumber()AppendFixed()SetHexChar()• <strong>Unicode</strong> 16 <strong>Unicode</strong> <strong>Unicode</strong> • PM<strong>Str<strong>in</strong>g</strong> PM<strong>Str<strong>in</strong>g</strong> PM<strong>Str<strong>in</strong>g</strong> <strong>Unicode</strong> <strong>3.x</strong> UTF-16 UTF-32 <strong>Unicode</strong> <strong>3.x</strong> BMP #10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS 11


#10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS API textchar PM<strong>Str<strong>in</strong>g</strong> PM<strong>Str<strong>in</strong>g</strong> • PM<strong>Str<strong>in</strong>g</strong> Wide<strong>Str<strong>in</strong>g</strong> • IsValidL<strong>in</strong>eBreak() CJK • <strong>Unicode</strong> <strong>Unicode</strong> <strong>Unicode</strong> • <strong>InDesign</strong> InCopy 2.0 PM<strong>Str<strong>in</strong>g</strong> API 3 <strong>Unicode</strong> • <strong>Unicode</strong> <strong>Unicode</strong> PM<strong>Str<strong>in</strong>g</strong> • PM<strong>Str<strong>in</strong>g</strong> <strong>Unicode</strong>Savvy<strong>Str<strong>in</strong>g</strong> UTF16TextChar UTF32TextChar UTF32TextChar UTF16TextChar* API uchar16 • <strong>Unicode</strong> • NULL U+0000• • PM<strong>Str<strong>in</strong>g</strong> const 12


#10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS API <strong>InDesign</strong> InCopy 2.x • <strong>Unicode</strong> textchar UTF32TextChar 1.4 textchar UTF32TextChar PM<strong>Str<strong>in</strong>g</strong> <strong>InDesign</strong> 2.x InCopyTextchar GetWChar(<strong>in</strong>t32 pos) const;void AppendW(textchar wc);<strong>InDesign</strong> CS InCopy CSUTF32TextChar GetWChar(<strong>in</strong>t32 pos) const;void AppendW (UTF32TextChar wc);void InsertW(textchar wc, <strong>in</strong>t32 pos = 0); void InsertW (UTF32TextChar wc, <strong>in</strong>t32 pos = 0);<strong>in</strong>t32 IndexOfWChar(textchar wc, <strong>in</strong>t32 pos = 0) const;<strong>in</strong>t32 LastIndexOfWChar(textchar wc) const;CharCounter IndexOfWChar (UTF32TextChar wc, <strong>in</strong>t32pos = 0) const;CharCounter LastIndexOfWChar (UTF32TextChar wc)const;UTF32TextChar 16 16 somestr<strong>in</strong>g.AppendW(0x0020); // Insert a space• textchar*W<strong>Str<strong>in</strong>g</strong> ConstW<strong>Str<strong>in</strong>g</strong> UTF16TextChar* 1.5 textchar*/W<strong>Str<strong>in</strong>g</strong>/ConstW<strong>Str<strong>in</strong>g</strong> UTF16TextChar* PM<strong>Str<strong>in</strong>g</strong> <strong>InDesign</strong> InCopy 2.xPM<strong>Str<strong>in</strong>g</strong>(ConstW<strong>Str<strong>in</strong>g</strong> str<strong>in</strong>g, <strong>in</strong>t32 numChars, <strong>in</strong>t16script = -1);void SetX<strong>Str<strong>in</strong>g</strong>(const textchar* x, <strong>in</strong>t32 nDblBytes);void AppendW(ConstW<strong>Str<strong>in</strong>g</strong> ws, <strong>in</strong>t32 nDblBytes =kMaxInt32);void InsertW(ConstW<strong>Str<strong>in</strong>g</strong> ws, <strong>in</strong>t32 nDblBytes =kMaxInt32, <strong>in</strong>t32 pos = 0);<strong>InDesign</strong> CS InCopy CSPM<strong>Str<strong>in</strong>g</strong>(const UTF16TextChar * str<strong>in</strong>g, <strong>in</strong>t32nDblBytes, <strong>in</strong>t16 script = -1);void SetX<strong>Str<strong>in</strong>g</strong> (const UTF16TextChar* x, <strong>in</strong>t32nDblBytes);void AppendW(const UTF16TextChar * ws, <strong>in</strong>t32nDblBytes = kMaxInt32);void InsertW(const UTF16TextChar *ws, <strong>in</strong>t32nDblBytes = kMaxInt32, <strong>in</strong>t32 pos = 0);UTF16TextChar textchar 16 UTF16TextChar1 1 UTF16TextChar* 16 UTF16TextChar* #10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS 13


#10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS API • SetScript() SetEncod<strong>in</strong>g() PM<strong>Str<strong>in</strong>g</strong>.h SetEncod<strong>in</strong>g() PM<strong>Str<strong>in</strong>g</strong> <strong>Unicode</strong> SetEncod<strong>in</strong>g() • PM<strong>Str<strong>in</strong>g</strong> PM<strong>Str<strong>in</strong>g</strong> <strong>Unicode</strong> PM<strong>Str<strong>in</strong>g</strong> • PM<strong>Str<strong>in</strong>g</strong>::Length() 1.6 PM<strong>Str<strong>in</strong>g</strong>::Length() CharCounter Length(void) const; — CharCounter CharCount()GetCharSubstr<strong>in</strong>gTruncateConta<strong>in</strong>s CharCounter — <strong>in</strong>t32 WCharLength() <strong>in</strong>t32NumUTF16TextChars()GrabUTF16Buffer <strong>Unicode</strong> PM<strong>Str<strong>in</strong>g</strong> 0 — <strong>in</strong>t32 ByteLength()GrabC<strong>Str<strong>in</strong>g</strong>() if (aPM<strong>Str<strong>in</strong>g</strong>::Length() == 0) PM<strong>Str<strong>in</strong>g</strong> bool16 IsEmpty() PM<strong>Str<strong>in</strong>g</strong> IsEmpty() 14


#10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS API 1.7 PM<strong>Str<strong>in</strong>g</strong> <strong>InDesign</strong> InCopy 2.x<strong>InDesign</strong> InCopy 2.x <strong>InDesign</strong> InCopy 2.x void SetX<strong>Str<strong>in</strong>g</strong>(const textchar* x, <strong>in</strong>t32 nDblBytes);W<strong>Str<strong>in</strong>g</strong> GrabPlatformEncodedW<strong>Str<strong>in</strong>g</strong>(void);void ConvertToPlatformEncod<strong>in</strong>g(void);C<strong>Str<strong>in</strong>g</strong> GrabT<strong>Str<strong>in</strong>g</strong>(void);ConstC<strong>Str<strong>in</strong>g</strong> GrabT<strong>Str<strong>in</strong>g</strong>(void) const;<strong>InDesign</strong> InCopy 2.x PlatformChar GetChar(CharCounter pos) const;textchar GetWChar(<strong>in</strong>t32 pos) const;CharCounter Length(void) const;void AppendW(textchar wc);void InsertW(textchar wc, <strong>in</strong>t32 pos = 0);<strong>in</strong>t32 IndexOfWChar(textchar wc, <strong>in</strong>t32 pos = 0) const;<strong>in</strong>t32 LastIndexOfWChar(textchar wc) const;<strong>InDesign</strong> CS InCopy CSenum { kEncod<strong>in</strong>gASCII,kEncod<strong>in</strong>gShiftJIS,kEncod<strong>in</strong>gCh<strong>in</strong>eseBig5,kEncod<strong>in</strong>gKorean,kEncod<strong>in</strong>gArabic,kEncod<strong>in</strong>gHebrew,kEncod<strong>in</strong>gGreek,kEncod<strong>in</strong>gCyrillic,kEncod<strong>in</strong>gThai = 21,kEncod<strong>in</strong>gCh<strong>in</strong>eseGBK = 25,kEncod<strong>in</strong>gEastEuropean = 29,kEncod<strong>in</strong>gVietnamese };typedef <strong>in</strong>t8 <strong>Str<strong>in</strong>g</strong>Encod<strong>in</strong>g;PM<strong>Str<strong>in</strong>g</strong>(const Wide<strong>Str<strong>in</strong>g</strong>& s);void SetX<strong>Str<strong>in</strong>g</strong>(const UTF16TextChar* x, <strong>in</strong>t32nDblBytes);ConstW<strong>Str<strong>in</strong>g</strong> GrabPlatformEncodedW<strong>Str<strong>in</strong>g</strong>(void)const;<strong>InDesign</strong> CS InCopy CS IEncod<strong>in</strong>gUtils TCHAR* GrabT<strong>Str<strong>in</strong>g</strong>(void);const TCHAR* GrabT<strong>Str<strong>in</strong>g</strong>(void) const;void SetT<strong>Str<strong>in</strong>g</strong>(const TCHAR* x);u<strong>in</strong>t32 GetTLength() const;const PlatformChar GetChar(CharCounter pos) const;UTF32TextChar GetWChar(<strong>in</strong>t32 pos) const;CharCounter ObsoleteLength(void) const;CharCounter Length(void) const PM<strong>Str<strong>in</strong>g</strong>::Length() void AppendW(UTF32TextChar wc);void InsertW(UTF32TextChar wc, <strong>in</strong>t32 pos = 0);CharCounter IndexOfWChar(UTF32TextChar wc, <strong>in</strong>t32pos = 0) const;CharCounter LastIndexOfWChar(UTF32TextChar wc)const;#10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS 15


#10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS API <strong>InDesign</strong> InCopy 2.xvoid Truncate(CharCounter count = 1, bool16h<strong>and</strong>leTwoByte = kTrue);bool16 ValidL<strong>in</strong>eBreakAfterIndex(CharCounter <strong>in</strong>dex);PlatformChar operator[](CharCounter <strong>in</strong>dex) const;u<strong>in</strong>t8 GetScript() const;void SetScript(u<strong>in</strong>t8 script);ConstW<strong>Str<strong>in</strong>g</strong> GrabW<strong>Str<strong>in</strong>g</strong>(void) const;<strong>InDesign</strong> InCopy 2.x <strong>InDesign</strong> CS InCopy CSvoid Truncate(CharCounter count = 1);void ObsoleteTruncate(CharCounter count = 1, bool16h<strong>and</strong>leTwoByte = kTrue);<strong>InDesign</strong> CS InCopy CS PM<strong>Str<strong>in</strong>g</strong> IEncod<strong>in</strong>gUtils const PlatformChar operator[](CharCounter <strong>in</strong>dex)const;PM<strong>Str<strong>in</strong>g</strong>::<strong>Str<strong>in</strong>g</strong>Encod<strong>in</strong>g GetEncod<strong>in</strong>g() const;void SetEncod<strong>in</strong>g(PM<strong>Str<strong>in</strong>g</strong>::<strong>Str<strong>in</strong>g</strong>Encod<strong>in</strong>g encod<strong>in</strong>g);const UTF16TextChar* GrabUTF16Buffer(<strong>in</strong>t32*numUTF16s) const;<strong>in</strong>t32 NumUTF16TextChars() const;UTF32TextChar GetUTF32TextChar(<strong>in</strong>t32 pos) const;PM<strong>Str<strong>in</strong>g</strong>* GetItem(const PM<strong>Str<strong>in</strong>g</strong>& delimiter, const<strong>in</strong>t32 nItem) const;Wide<strong>Str<strong>in</strong>g</strong>API {SDK}/source/public/<strong>in</strong>cludes/Wide<strong>Str<strong>in</strong>g</strong>.hWide<strong>Str<strong>in</strong>g</strong> <strong>Unicode</strong> API Wide<strong>Str<strong>in</strong>g</strong> PM<strong>Str<strong>in</strong>g</strong> Wide<strong>Str<strong>in</strong>g</strong> • <strong>InDesign</strong> InCopy 2.x API uchar16 UTFTextChar32• uchar16 raw UTF32TextChar UTF32TextChar 16


#10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS API • const UTF-16 <strong>InDesign</strong> InCopy 2.x Wide<strong>Str<strong>in</strong>g</strong>::iterator iter = ws.beg<strong>in</strong>();Wide<strong>Str<strong>in</strong>g</strong>::iterator last = ws.end();while (iter != last) {uchar16 tc = *iter;++iter;}<strong>InDesign</strong> CS InCopy CS Wide<strong>Str<strong>in</strong>g</strong>::const_iterator iter = ws.beg<strong>in</strong>();Wide<strong>Str<strong>in</strong>g</strong>::const_iterator last = ws.end();while (iter != last) {UTF32TextChar tc = *iter;++iter;}// NOTE:any place where a textchar or uchar16 was used// should be replaced with UTF32TextChar. 1.8 Wide<strong>Str<strong>in</strong>g</strong> <strong>InDesign</strong> InCopy 2.xtypedef uchar16& reference;typedef const uchar16& const_reference;typedef uchar16 value_type;typedef uchar16* po<strong>in</strong>ter;typedef const uchar16* const_po<strong>in</strong>ter;typedef uchar16* iterator;typedef const uchar16* const_iterator;typedef K2Reverse_iterator reverse_iterator;typedef K2Reverse_iteratorconst_reverse_iterator;<strong>InDesign</strong> InCopy 2.x <strong>InDesign</strong> CS InCopy CStypedef UTF32TextChar& reference;typedef const UTF32TextChar& const_reference;typedef UTF32TextChar value_type;typedef UTF32TextChar* po<strong>in</strong>ter;typedef const UTF32TextChar* const_po<strong>in</strong>ter;typedef Wide<strong>Str<strong>in</strong>g</strong>ConstUTF32Iter const_iterator;typedef K2Reverse_iterator reverse_iterator_raw;typedef K2Reverse_iterator const_reverse_iterator_raw;typedef UTF16TextChar& reference_raw;typedef const UTF16TextChar& const_reference_raw;typedef UTF16TextChar value_type_raw;typedef UTF16TextChar* po<strong>in</strong>ter_raw;typedef const UTF16TextChar* const_po<strong>in</strong>ter_raw;typedef UTF16TextChar* iterator_raw;typedef const UTF16TextChar* const_iterator_raw;#10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS 17


#10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS API <strong>InDesign</strong> InCopy 2.x<strong>InDesign</strong> InCopy 2.x <strong>InDesign</strong> CS InCopy CSiterator_raw beg<strong>in</strong>_raw();const_iterator_raw beg<strong>in</strong>_raw() const;iterator_raw end_raw();const_iterator_raw end_raw() const;reverse_iterator_raw rbeg<strong>in</strong>_raw();const_reverse_iterator_raw rbeg<strong>in</strong>_raw() const;reverse_iterator_raw rend_raw();const_reverse_iterator_raw rend_raw() const;Wide<strong>Str<strong>in</strong>g</strong>(const uchar16* s, <strong>in</strong>t32 len = LONG_MAX); explicit Wide<strong>Str<strong>in</strong>g</strong>(const UTF16TextChar* s, <strong>in</strong>t32 len =LONG_MAX, <strong>in</strong>t32 numChars = -1);<strong>InDesign</strong> InCopy 2.x void SetX16<strong>Str<strong>in</strong>g</strong>(const uchar16* x, <strong>in</strong>t32 len =LONG_MAX);iterator beg<strong>in</strong>();reverse_iterator rbeg<strong>in</strong>();const_reverse_iterator rbeg<strong>in</strong>() const;reverse_iterator rend();const_reverse_iterator rend() const;uchar16* GrabX16<strong>Str<strong>in</strong>g</strong>();const uchar16* GrabX16<strong>Str<strong>in</strong>g</strong>() const;<strong>in</strong>t32 size() const;<strong>InDesign</strong> InCopy 2.x uchar16 GetChar(<strong>in</strong>t32 pos) const;uchar16 LastChar() const;uchar16 FirstChar() const;void push_back(uchar16 c);void Append(const uchar16* buf, <strong>in</strong>t32 len);void Append(uchar16 c);void Append(uchar c);void Insert(const uchar16* buf, <strong>in</strong>t32 len, <strong>in</strong>t32 position= 0);void Insert(uchar16 c, <strong>in</strong>t32 pos = 0);void Insert(uchar c, <strong>in</strong>t32 pos = 0);<strong>in</strong>t32 Strip(uchar16 c);Wide<strong>Str<strong>in</strong>g</strong>(const Wide<strong>Str<strong>in</strong>g</strong>ConstUTF32Iter& iter,<strong>in</strong>t32 numChars);explicit Wide<strong>Str<strong>in</strong>g</strong>(ConstC<strong>Str<strong>in</strong>g</strong> str<strong>in</strong>g);void SetX16<strong>Str<strong>in</strong>g</strong>(const UTF16TextChar* x, <strong>in</strong>t32 len =LONG_MAX, <strong>in</strong>t32 numChars = -1);<strong>InDesign</strong> CS InCopy CS <strong>in</strong>t32 CharCount() const;<strong>in</strong>t32 UTF16IndexToCodePo<strong>in</strong>tIndex(<strong>in</strong>t32 <strong>in</strong>dex) const;UTF32TextChar GetChar(<strong>in</strong>t32 pos) const;UTF32TextChar LastChar() const;UTF32TextChar FirstChar() const;void push_back(UTF32TextChar c);void Append(const Wide<strong>Str<strong>in</strong>g</strong>ConstUTF32Iter& iter,<strong>in</strong>t32 numChars);void Append(const UTF16TextChar* buf, <strong>in</strong>t32 n, <strong>in</strong>t32numChars = -1);void Append(UTF32TextChar c32);void Insert(const UTF16TextChar* buf, <strong>in</strong>t32 len, <strong>in</strong>t32pos = 0);void Insert(UTF32TextChar c, <strong>in</strong>t32 pos = 0);<strong>in</strong>t32 Strip(UTF32TextChar c);<strong>in</strong>t32 IndexOf(uchar16 c, <strong>in</strong>t32 position = 0) const; <strong>in</strong>t32 IndexOf(UTF32TextChar c, <strong>in</strong>t32 position = 0)const;18


#10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS API <strong>InDesign</strong> InCopy 2.x<strong>InDesign</strong> InCopy 2.x uchar16 operator[](<strong>in</strong>t32 <strong>in</strong>dex) const;uchar16& operator[](<strong>in</strong>t32 <strong>in</strong>dex);<strong>InDesign</strong> InCopy 2.x <strong>InDesign</strong> CS InCopy CSWide<strong>Str<strong>in</strong>g</strong>& operator = (const UTF16TextChar* copy);Const UTF32TextChar operator[](<strong>in</strong>t32 <strong>in</strong>dex) const;void SetChar(<strong>in</strong>t32 <strong>in</strong>dex, const UTF32TextChar& c32);bool16 operator == (const UTF16TextChar* b) const;bool16 operator != (const UTF16TextChar* b) const;TextCharBufferAPI {SDK}/source/public/<strong>in</strong>cludes/TextCharBuffer.hTextCharBuffer Wide<strong>Str<strong>in</strong>g</strong> <strong>Unicode</strong> textchar 32 <strong>Unicode</strong> TextCharBuffer textchar* Wide<strong>Str<strong>in</strong>g</strong>ConstUTF32Iter <strong>InDesign</strong> InCopy 2.x Wide<strong>Str<strong>in</strong>g</strong> ws = ". . .";TextCharBuffer tcb(ws);<strong>in</strong>t32 len = tcb.Length();textchar* iter = tcb.beg<strong>in</strong>();while (iter != tcb.end()) {textchar tc = *iter;++iter;}<strong>InDesign</strong> CS InCopy CS Wide<strong>Str<strong>in</strong>g</strong> ws = . . .;TextCharBuffer tcb(ws);<strong>in</strong>t32 len = tcb.CharCount();Wide<strong>Str<strong>in</strong>g</strong>ConstUTF32Iter iter = tcb.beg<strong>in</strong>();while (iter != tcb.end()) {UTF32TextChar tc = *iter;++iter;}#10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS 19


#10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS API 1.9 TextCharBuffer <strong>InDesign</strong> InCopy 2.xTextCharBuffer(const textchar* b, <strong>in</strong>t32 l);<strong>InDesign</strong> CS InCopy CS<strong>InDesign</strong> CS InCopy CS <strong>InDesign</strong> InCopy 2.x TextCharBuffer(Wide<strong>Str<strong>in</strong>g</strong>ConstUTF32Iter b,Wide<strong>Str<strong>in</strong>g</strong>ConstUTF32Iter e)TextCharBuffer();textchar First() const;textchar Last() const;textchar operator[] (<strong>in</strong>t32 i) const;<strong>InDesign</strong> InCopy 2.x const textchar* beg<strong>in</strong>() const;const textchar* end() const;<strong>in</strong>t32 Length() const;void Remove(<strong>in</strong>t32 position, <strong>in</strong>t32 count);<strong>InDesign</strong> CS InCopy CS UTF32TextChar First() const;UTF32TextChar Last() const;UTF32TextChar operator[] (<strong>in</strong>t32 i) const;const UTF16TextChar* beg<strong>in</strong>_raw() const;const UTF16TextChar* end_raw() const;Wide<strong>Str<strong>in</strong>g</strong>ConstUTF32Iter beg<strong>in</strong>() const;Wide<strong>Str<strong>in</strong>g</strong>ConstUTF32Iter end() const;<strong>in</strong>t32 CharCount() const;<strong>in</strong>t32 BufferLength() const;void remove_raw(<strong>in</strong>t32 utf16Pos, <strong>in</strong>t32 utf16Count);TextIteratorAPI {SDK}/source/public/<strong>in</strong>cludes/textiterator.hTextIterator textchar 32 <strong>Unicode</strong> TextCharBuffer TextIterator textchar* Wide<strong>Str<strong>in</strong>g</strong>ConstUTF32Iter <strong>InDesign</strong> InCopy 2.x ITextModel* textModel = . . .;TextIndex pos = . . .;TextIterator iter(textModel, pos);while(/*some term<strong>in</strong>at<strong>in</strong>g condition with TextIndex*/){20


#10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS API }textchar tc = *iter;<strong>InDesign</strong> CS InCopy CS ITextModel* textModel = . . .;TextIndex pos = . . .;TextIterator iter(textModel, pos);if (!iter.IsNull()) {while ( iter.IterAt() != nil ) {UTF32TextChar tc = *iter;}} 1.10 TextIterator <strong>InDesign</strong> InCopy 2.x<strong>InDesign</strong> InCopy 2.x const textchar& operator* () const;const textchar* operator -> () const;const textchar& operator [] (<strong>in</strong>t32 i) const;<strong>InDesign</strong> CS InCopy CSWide<strong>Str<strong>in</strong>g</strong>ConstUTF32Iter IterAt() const;bool16 IsNull() const;UTF32TextChar operator* () const;Wide<strong>Str<strong>in</strong>g</strong>ConstUTF32Iter operator -> () const;UTF32TextChar operator [] (<strong>in</strong>t32 i) const;IComposeScanner::QueryDataAt()API {SDK}/source/public/<strong>in</strong>terfaces/text/IComposeScanner.hQueryDataAt() textchar BMP <strong>Unicode</strong> • QueryDataAt() textchar* TextIterator <strong>InDesign</strong> InCopy 2.x TextIndex position = . . .;IDraw<strong>in</strong>gStyle* newStyle = nil;<strong>in</strong>t32 length = 0;const textchar* ptc = composeScanner->QueryDataAt(#10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS 21


#10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS API position, &newStyle, &length);// length has the number of textchars// ptc po<strong>in</strong>ts to the first textchar obta<strong>in</strong>edfor (<strong>in</strong>t32 i = 0; i < length ; i++) {// get the characterconst textchar tc = *(ptc + i);}<strong>InDesign</strong> CS InCopy CS TextIndex position = . . .;IDraw<strong>in</strong>gStyle* newStyle = nil;<strong>in</strong>t32 numChars = 0;TextIterator iter = composeScanner->QueryDataAt(position, &newStyle, &numChars);// numChars has the number of textchars// iter po<strong>in</strong>ts to the first UTF32TextChar obta<strong>in</strong>ed<strong>in</strong>t32 i = 0;while ((iter.IsNull() == kFalse) && (i < numChars)) {// get the characterconst UTF32TextChar tc = *iter;// goto the next character++iter;++i;} 1.11 IComposeScanner::QueryDataAt() <strong>InDesign</strong> InCopy 2.xvirtual const textchar* QueryDataAt(TextIndex position,IDraw<strong>in</strong>gStyle **newstyle, <strong>in</strong>t32 *length) = 0;<strong>InDesign</strong> CS InCopy CSvirtual TextIterator QueryDataAt(TextIndex position,IDraw<strong>in</strong>gStyle **newstyle, <strong>in</strong>t32 *numChars) = 0;TextChar.h #def<strong>in</strong>es <strong>Unicode</strong> 1.12 TextChar.h #def<strong>in</strong>es <strong>InDesign</strong> InCopy 2.xkTextChar_CancelkTextChar_EndOfMediumkTextChar_Substitute<strong>InDesign</strong> CS InCopy CS<strong>InDesign</strong> CS InCopy CS 22


#10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS<strong>Unicode</strong> <strong>InDesign</strong> InCopy 2.x<strong>InDesign</strong> InCopy 2.x namespace TextChar {bool16 IsSpecialChar(textchar n);bool16 IsControlChar(textchar n); }<strong>InDesign</strong> CS InCopy CSkTextChar_BreakRunInStylekTextChar_GreekOmegakTextChar_ThirdSpacekTextChar_QuarterSpacekTextChar_SixthSpacekTextChar_CJKIdeographExtensionAStartkTextChar_CJKIdeographExtensionAEndkTextChar_HighSurrogateStartkTextChar_HighSurrogateEndkTextChar_LowSurrogateStartkTextChar_LowSurrogateEndkTextChar_CJKCompatibilityIdeographsStartkTextChar_CJKCompatibilityIdeographsEndkTextChar_FullWidthCentSignnamespace TextChar {bool16 IsK2SpecificChar(UTF32TextChar c);bool16 IsLeadByte(uchar* buffer, <strong>in</strong>t <strong>in</strong>dex);bool16 IsIllegalControlChar(UTF32TextChar n);bool16 IsIgnoredCharacter(UTF32TextChar n); }<strong>Unicode</strong> W<strong>in</strong>32 API ANSI <strong>Unicode</strong>Wide W<strong>in</strong>32 API W<strong>in</strong>32 API MSDN http://msdn.microsoft.com W<strong>in</strong>dows W<strong>in</strong>32API OSCallNameA OSCallNameW 1 TCHAR* TCHAR* ANSI <strong>Unicode</strong>Wide W<strong>in</strong>API ANSI <strong>Unicode</strong> char* buf = "textstr<strong>in</strong>g";<strong>in</strong>t result = ::DrawTextEx(gc->GetSysPort(), buf, strlen(buf), &textBounds,formatOptions, nil);#10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS 23


#10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS <strong>Unicode</strong> <strong>Unicode</strong> TCHAR* buf = TEXT("textstr<strong>in</strong>g");<strong>in</strong>t result = ::DrawTextEx(gc->GetSysPort(), buf, _tcslen(buf), &textBounds,formatOptions, nil);// alternatively, us<strong>in</strong>g PM<strong>Str<strong>in</strong>g</strong>:PM<strong>Str<strong>in</strong>g</strong> buf("textstr<strong>in</strong>g");<strong>in</strong>t result = ::DrawTextEx(gc->GetSysPort(), buf.GrabT<strong>Str<strong>in</strong>g</strong>(), buf.GetTLength(),&textBounds, formatOptions, nil);Web • <strong>Unicode</strong> — http://www.unicode.org— <strong>Unicode</strong> <strong>Unicode</strong>© http://www.unicode.org/iuc/iuc17/papers.html— <strong>Unicode</strong>http://www.unicode.org/st<strong>and</strong>ard/st<strong>and</strong>ard.html— <strong>Unicode</strong> 3.2http://www.unicode.org/reports/tr28/— <strong>Unicode</strong> 3.1http://www.unicode.org/reports/tr19/• Apple Computer Inc.— Apple http://www.apple.com/developer— <strong>Unicode</strong> http://developer.apple.com/techpubs/macosx/Carbon/pdf/Support<strong>in</strong>g<strong>Unicode</strong>Input.pdf— http://developer.apple.com/techpubs/macosx/Carbon/text/Multil<strong>in</strong>gualTextEng<strong>in</strong>e/multil<strong>in</strong>gualtexteng<strong>in</strong>e.html— http://developer.apple.com/techpubs/macosx/Carbon/text/Multil<strong>in</strong>gualTextEng<strong>in</strong>e/H<strong>and</strong>l<strong>in</strong>g<strong>Unicode</strong>Text_MLTE/<strong>in</strong>dex.html• Microsoft CorporationMSDN — Microsoft http://msdn.microsoft.com— International Programm<strong>in</strong>g Topicshttp://msdn.microsoft.com/library/enus/vccore98/HTML/_core_<strong>in</strong>ternational_programm<strong>in</strong>g_topics.asp24


#10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS— Design a S<strong>in</strong>gle <strong>Unicode</strong> App that Runs on Both W<strong>in</strong>dows 98 <strong>and</strong> W<strong>in</strong>dows 2000W<strong>in</strong>32 <strong>Unicode</strong> API http://www.microsoft.com/msj/0499/multilangunicode/multilangunicode.htm• ErgoSoft http://www.ergo.co.jp• CJKV Information Process<strong>in</strong>gKen Lunde O'Reilly & Associates, Inc.1999 ISBN 1-56592-224-7#10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS 25


#10078 <strong>Unicode</strong> <strong>3.x</strong> <strong>and</strong> <strong>Str<strong>in</strong>g</strong>-related <strong>APIs</strong> <strong>in</strong> <strong>InDesign</strong> CS/InCopy CS26

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!