从Excel OLE对象获取图像(图元文件)C#

我正在做一个添加到Excel在OLE对象上执行一些操作。 它需要从工作表中编程embeddedOLE对象的一些数据(从mathtypes转换为TeX语言)。 到目前为止,我已经处理了大部分问题,如将其添加到Excel工作表,从mathtypesOLE对象中获取公式,并设置公式。 但是还有最后一件事情要做。

我需要提取mathtypes的OLE对象所设置的公式的图像的图元文件。 我想提取图像并将其保存为内存位图,然后以某种控件显示。 问题是 – 我有代码从OLE对象获取图元文件:

MTSDKDN.MathTypeSDK.IOleObject oleObject = null; oleDataObject = dataObject as IDataObject; oleObject = dataObject as MTSDKDN.MathTypeSDK.IOleObject; ConnectFORMATETC formatEtc = new ConnectFORMATETC(); ConnectSTGMEDIUM stgMedium = new ConnectSTGMEDIUM(); DataFormats.Format dataFormat; obj.Verb((Excel.XlOLEVerb)3); dataObject = obj.Object; formatEtc.cfFormat =(Int16)DataFormats.GetFormat(DataFormats.MetafilePict ).Id; formatEtc.dwAspect = System.Runtime.InteropServices.ComTypes.DVASPECT.DVASPECT_CONTENT; formatEtc.lindex = -1; formatEtc.ptd = (IntPtr)0; formatEtc.tymed = TYMED.TYMED_MFPICT; stgMedium.unionmember=(IntPtr)0; stgMedium.tymed=TYMED.TYMED_NULL; stgMedium.pUnkForRelease=0; oleDataObject.GetData(ref formatEtc,out stgMedium); //from this point no idea what to do IntPtr ptr; ptr = stgMedium.unionmember; HandleRef handleRef = new HandleRef(null, ptr); IntPtr ptrToHandle = GlobalLock(handleRef); int Length = GlobalSize(handleRef); 

我不知道我是否正确地获取图元文件,最重要的是(假设可以通过这种方式获取元文件):如何pipe理图元文件以将图像数据保存为位图加载项的内存。

我会真的为你的答案giteful。