: ( -- struct ) [ SCRIPT_TABDEF 1 >>cTabStops 4 malloc-byte-array &free >>pTabStops ] with-destructors ; : make-script-string ( dc string -- script-string ) dup selection? [ string>> ] when [ utf16n encode ] ! pString [ length ] bi ! cString dup 1.5 * 16 + >integer ! cGlyphs -- MSDN says this is "recommended size" -1 ! iCharset -- Unicode SSA_GLYPHS SSA_TAB bitor ! dwFlags 0 ! iReqWidth f ! psControl f ! psState f ! piDx ! pTabdef f ! pbInClass f ! pssa [ ScriptStringAnalyse ] keep [ ole32-error ] [ |ScriptStringFree *void* ] bi* ;