Secuencia de llamadas típica

Los métodos que debe implementar para crear un reconocedor de entrada de lápiz son llamados por las API de plataforma de PC tableta y no directamente por una aplicación habilitada para entrada de lápiz.

Los pasos siguientes representan una secuencia de llamada típica para la implementación de estos métodos:

  1. El archivo DLL se carga.
  2. Se crea un identificador HRECOGNIZER .
  3. Se crea un identificador HRECOCONTEXT .
  4. Las opciones y modos del reconocedor se establecen para este contexto.
  5. Los trazos se agregan a los datos de entrada de lápiz.
  6. La entrada ha finalizado.
  7. Se reconoce la entrada de lápiz.
  8. Se devuelven los resultados del reconocimiento.
  9. El identificador HRECOCONTEXT se destruye.
  10. El controlador HRECOGNIZER se destruye.

La secuencia de llamada también se ilustra en el siguiente esquema de código:

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 de Recognizer

Arquitectura de la API de reconocimiento