| Предыдущий | Следующий |
| VFW_E_NO_DISPLAY_PALETTE | VFW_E_TOO_MANY_COLORS |
TPC_E_INVALID_STROKE
Состояние объекта
Для TPC_E_INVALID_STROKE (0X80040222) рабочая граница — неверный / stroke. Код относится к Tablet PC ink, stylus packet и recognizer API. Сохраняйте первый native return и identity объекта: именно они определяют, проверяется ли здесь input, capability, ownership, lifecycle или transport.
Для queued recognition/stylus callbacks полезен lifecycle generation: он показывает, не пришёл ли результат уже после удаления или замены объекта.
Фрагменты исходного EN-описания
TPC_E_INVALID_STROKE is HRESULT 2147746338 ( 0x80040222 ; signed -2147220958).
Capture 1 for this result: stroke ID, owning ink object identity and edit generation.
Capture 2 for this result: delete, split, merge and transform events preceding the call.
Capture 3 for this result: collection membership immediately before the failing operation.
Что сравнивать
- tablet/recognizer/ink object identity и lifecycle generation.
- stroke/packet/property ID и collection membership.
- thread/event ordering и первый Tablet PC HRESULT.
Ink, stroke и recognizer objects меняются при edit/delete/merge и смене context. Сохранённый ID может стать stale даже без изменения вызывающего кода.
Изолированный тест
Сделайте минимальный before/after experiment для «неверный / stroke». Не меняйте одновременно provider, input и state — такой тест не показывает, что именно исправило результат.
Проверьте, что stroke всё ещё принадлежит текущему Ink object и не был удалён/заменён edit operation; stale stroke ID нельзя безопасно переиспользовать.
Повтор операции
Получите актуальный ink/tablet/recognizer object, исправьте конкретный descriptor/property/lifecycle condition и повторите минимальную операцию без replay устаревших strokes или packet sequence.
Технические ссылки
- Microsoft: generic COM error codes.
- Microsoft: IInkStrokeDisp and invalid strokes.
- Microsoft: RecognizerContext.
Нужно найти другой код? Найти другой код состояния или ошибки.
