| Предыдущий | Следующий |
| VFW_S_RESOURCE_NOT_NEEDED | TPC_S_INTERRUPTED |
TPC_S_TRUNCATED
Причина на native boundary
Для TPC_S_TRUNCATED (0X00040252) рабочая граница — tpc / s / усечено. Код относится к Tablet PC ink, stylus packet и recognizer API. Сохраняйте первый native return и identity объекта: именно они определяют, проверяется ли здесь input, capability, ownership, lifecycle или transport.
Ink, stroke и recognizer objects меняются при edit/delete/merge и смене context. Сохранённый ID может стать stale даже без изменения вызывающего кода.
Фрагменты исходного EN-описания
TPC_S_TRUNCATED is HRESULT 262738 ( 0x00040252 ) from winerror.h.
The ink or recognition operation succeeded but the output string was shortened to fit an available limit.
Present the available prefix only as partial data, allocate a larger destination when supported, and preserve the recognition result object until the full text is obtained.
A note application recognizes a long handwritten line into a legacy fixed buffer.
Поля корреляции
- tablet/recognizer/ink object identity и lifecycle generation.
- stroke/packet/property ID и collection membership.
- thread/event ordering и первый Tablet PC HRESULT.
Packet descriptor, input rectangle, property ID и recognizer registration относятся к разным Tablet PC contract boundaries; проверяйте ровно то поле, которое названо кодом.
Проверка гипотезы
Сопоставьте первый producer с условием «tpc / s / усечено»: если producer, object generation или method отличаются, это уже другой инцидент, даже при похожем пользовательском сообщении.
Сопоставьте ink/tablet lifecycle с условием «tpc / s / усечено» и сохраните generation объекта, чтобы отличить stale reference от unsupported operation.
Завершение диагностики
Получите актуальный ink/tablet/recognizer object, исправьте конкретный descriptor/property/lifecycle condition и повторите минимальную операцию без replay устаревших strokes или packet sequence.
Частичный, но успешный output
Операция распознавания дала полезный результат, однако доступный destination или заданный лимит не вместил его полностью. Сохраните фактическую длину текста/данных, заявленный capacity и признак, можно ли запросить полный размер или повторно получить результат. Caller не должен считать уже возвращённый prefix полной строкой. Если API позволяет, выделите больший destination и повторите чтение того же recognition result; в отличие от `TPC_S_NO_DATA_TO_PROCESS`, здесь данные были обработаны и output действительно существует.
Технические ссылки
- Microsoft: COM success codes.
- Microsoft: Pen input, ink, and recognition.
- Microsoft: IInkRecognizerContext::Recognize.
Нужно найти другой код? Найти другой код состояния или ошибки.
