Typische Aufrufsequenz

Die Methoden, die Sie zum Erstellen einer Freihanderkennung implementieren müssen, werden von den Tablet PC Platform-APIs und nicht direkt von einer Freihandanwendung aufgerufen.

Die folgenden Schritte stellen eine typische Aufrufsequenz für die Implementierung dieser Methoden dar:

  1. Die DLL wird geladen.
  2. Es wird ein HRECOGNIZER-Handle erstellt.
  3. Ein HRECOCONTEXT-Handle wird erstellt.
  4. Erkennungsoptionen und -modi werden für diesen Kontext festgelegt.
  5. Den Freihanddaten werden Striche hinzugefügt.
  6. Die Eingabe ist beendet.
  7. Die Freihandeingabe wird erkannt.
  8. Die Erkennungsergebnisse werden zurückgegeben.
  9. Der HRECOCONTEXT-Handle wird zerstört.
  10. Der HRECOGNIZER-Griff wird zerstört.

Die Aufrufsequenz wird auch in der folgenden Codegliederung veranschaulicht:

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);

Erkennungs-APIs

Erkennungs-API-Architektur