Сегодня я обнаружил, что Windows 7 поставляется с очень впечатляющей утилитой MathPanel для распознавания уравнений почерком:
![enter image description here](https://i.stack.imgur.com/7nlvp.png)
Это нормально.(Здесь я ввел формулу для части гамма-преобразования цветового пространства sRGB)
Но теперь я, похоже, не могу делать что-либо с ним.
Есть кнопка Вставить .я бы предположил, что нажатие Вставить вставит его в приложение, которое за ним активно (так же, как работает экранная клавиатура):
![enter image description here](https://i.stack.imgur.com/jY1XX.png)
За исключениемя предполагаю, что это будет работать как операция вставки.
Я не могу найти в справке никакой информации о том, что требуется приложению для его работы.Нет никакого упоминания о каком-либо специальном API, который должно поддерживать некоторое программное обеспечение.
Также я не могу найти в MSDN никакой информации о том, какой специальный API требуется для принятия вставки уравнения.
Какой API, регистрация, обратный вызов, слушатель, сообщение, COM-объект у меня естьреализовать так, чтобы я получал входные данные MathPanel?
Единственная причина, о которой я упоминаю MathML , заключается в том, что в ответе SuperUser упоминается MathML :
Теоретически любое приложение, поддерживающее MathML (язык математической разметки), можно использовать с панелью ввода Windows 7 Math.Панель ввода Math работает только с программами, поддерживающими MathML.Вот несколько таких приложений: StarOffice, OpenOffice, Opera и Maple.
Ну, как мне заставить мою программу поддерживать MathML?
Насколько язнать MathML - язык разметки;не Windows API.Это все равно что сказать: «Как мне заставить мою программу поддерживать HTML?»Html - это текст, и вы можете вставить его куда угодно.
MathPad отказывается вставлять, если я не "поддерживаю" MathML?
Обновление
Осматривая IDataObject
в буфере обмена после нажатия Вставить , я вижу два доступных формата (ни один из которых не является текстовым, что объясняет, почему я не получаю никакой разметки):
Формат 1:
CLIPFORMAT cfFormat: "MathML Presentation" (49839)
PDVTargetDevice ptd: 0x00000000
DWORD dwAspect: DVASPECT_CONTENT
DWORD lindex: -1
DWORD tymed: 1 (TYMED_HGLOBAL)
Формат 2:
CLIPFORMAT cfFormat:"MathML" (49838)
PDVTargetDevice ptd: 0x00000000
DWORD dwAspect: DVASPECT_CONTENT
DWORD lindex: -1
DWORD tymed: 1 (TYMED_HGLOBAL)
Так что, по крайней мере, теперь у меня есть несколько форматов буфера обмена:
- "MathML Presentation"
- "MathML"
Я до сих пор не могу найти в MSDN ничего о форматах буфера обмена.