今天我發現,Windows 7自帶了非常可觀的MathPanel工具,用於執行方程的手寫識別:我如何接受MathML?
這很好。 (這裏我已經輸入了sRGB色彩空間伽瑪轉換部分的公式)
但是現在我似乎無法用做什麼了。
有一個插入按鈕。我假設一下插入將它插入這是它背後活躍的應用程序(很像屏幕鍵盤作品):
除了我相信它會爲粘貼操作運行。
我無法找到幫助應用程序使其工作所需的信息。沒有提及某些軟件必須支持的特殊API。
我也無法在MSDN上找到任何有關接受插入方程所需的特殊API的信息。
什麼API,註冊,回調,偵聽器,消息,COM對象我必須實現,以便我將接收MathPanel輸入?
我提到MATHML的唯一原因是因爲SuperUser mentioned MathML答案:
理論上,支持MATHML(數學標記語言)的任何應用程序可以與Windows 7數學輸入面板使用。數學輸入面板僅適用於支持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演示」
- 「MATHML」
我仍然無法找到MSDN上任何事情無論是剪貼板格式。
看起來應用程序有責任註冊剪貼板更新,然後將「MathML」條目作爲XML; http://dpcarlisle.blogspot.com/2010/01/mathml-on-clipboard.html – 2012-02-20 17:13:53