public static extern int ScriptApplyDigitSubstitution(
   [In] SCRIPT_DIGITSUBSTITUTE psds, 
   out SCRIPT_CONTROL psc, 
   out SCRIPT_STATE pss);
 public static extern int ScriptItemizeOpenType(
   [In] [MarshalAs(UnmanagedType.LPWStr)] string pwcInChars, 
   int cInChars, 
   int cMaxItems, 
   ref SCRIPT_CONTROL psControl, 
   ref SCRIPT_STATE psState, 
   [Out] SCRIPT_ITEM[] pItems, 
   [Out] uint[] pScriptTags, 
   ref int pcItems);
 public static extern int ScriptStringAnalyse(
   IntPtr hdc, 
   IntPtr pString, 
   int cString, 
   int cGlyphs, 
   int iCharset, 
   uint dwFlags, 
   int iReqWidth, 
   ref SCRIPT_CONTROL psControl, 
   ref SCRIPT_STATE psState, 
   [In] int[] piDx, 
   ref SCRIPT_TABDEF pTabdef, 
   ref byte pbInClass, 
   ref IntPtr pssa);