Поделиться через


Типичная последовательность вызовов

Методы, которые необходимо реализовать для создания распознавателя рукописного ввода, вызываются API платформы планшетного компьютера, а не непосредственно приложением с поддержкой рукописного ввода.

Следующие шаги представляют собой типичную последовательность вызовов для реализации этих методов:

  1. Загружается библиотека DLL.
  2. Создается дескриптор HRECOGNIZER .
  3. Создается дескриптор HRECOCONTEXT .
  4. Для этого контекста задаются параметры и режимы распознавателя.
  5. Росчерки добавляются к данным рукописного ввода.
  6. Входные данные завершены.
  7. Рукописный ввод распознается.
  8. Возвращаются результаты распознавания.
  9. Дескриптор HRECOCONTEXT уничтожен.
  10. Дескриптор HRECOGNIZER уничтожен.

Последовательность вызовов также показана в следующей структуре кода:

CreateRecognizer(CLSID, &hrec);
while (more pieces of ink to recognize ... )
{
  // Create a context, once per piece of ink to be recognized
  hrc = CreateContext(hrec, &hrc);

  // Functions to set up options and modes for this context
  SetGuide(hrc, pGuide, 0);
  SetFactoid(hrc, 5, PHONE); // only if in application with forms
  SetFlags(hrc, RECOFLAG_WORDMODE); // rare, only if wanting word mode, no out-of-dictionary, or single segmentation
  SetWordList(hrc, hwl);

  // Adding all the strokes in this piece of ink
  while (more strokes ... )
  {
    AddStroke(hrc, NULL, 800, pPacket, pXForm);  // one call per stroke
  }
  EndInkInput(hrc);

  // This gets the ink recognized
  Process(hrc);

  // If this is a simple application, it calls this for a simple answer
  GetBestResultString(hrc, length, buffer);

  // If this is a complex application, it calls this for a complete answer
  GetLatticePtr(hrc, &pLattice);

  // Destroy the context
  DestroyContext(hrc);
}
// Called just before the application shuts down
DestroyRecognizer(hrec);

API распознавателя

Архитектура API распознавания