public void wordBreak(string text, Action <PutTypes, Int16, Int16> onPutWord) { if (string.IsNullOrEmpty(text)) { return; } if (breaker == null && item != null) { breaker = item.getWordBreaker(); } if (breaker == null) { breaker = Lib.items[Langs._].getWordBreaker(); //neutral word breaker } if (breaker == null) { throw new Exception("breaker == null"); } BreakSink cws = new BreakSink(onPutWord); //CPhraseSink cps = new CPhraseSink(res); TEXT_SOURCE pTextSource = new TEXT_SOURCE(); pTextSource.pfnFillTextBuffer += fillTextBuffer; pTextSource.awcBuffer = text; pTextSource.iCur = 0; pTextSource.iEnd = text.Length; breaker.BreakText(ref pTextSource, cws, /*cps*/ null); }
//**************** private static uint fillTextBuffer(ref TEXT_SOURCE ts) { return(WBREAK_E_END_OF_TEXT); }