如何从System.Windows.Forms.IDataObject中获取innerData
我正在尝试在一个WinForms应用程序中实现从WhatsApp的拖放操作。我找到了这篇文章,它解释说我需要获取innerData对象。
我有一个处理拖放事件的处理程序,在其中可以获取IDataObject。但是,当我尝试访问innerData时,该字段无效。
ASSIGN comDataObject = CAST(e:Data, "System.Runtime.InteropServices.ComTypes.IDataObject").
MESSAGE VALID-OBJECT(comDataObject)
VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
innerDataField = comDataObject:GetField("innerData", System.Reflection.BindingFlags:NonPublic ).
innerDataField:GetValue( comDataObject ).
MESSAGE VALID-OBJECT( innerDataField ) // Not valid
VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
// invoke the GetDataFromHGLOBLAL method
解决方案
如果把它改成与最后两行中的任意一行类似,是否能得到一个有效的对象?:
DEFINE VARIABLE innerDataField AS System.Reflection.FieldInfo NO-UNDO.
innerDataField = comDataObject:GetType():GetField("innerData", System.Reflection.BindingFlags:NonPublic).
// or innerDataField = comDataObject:GetType():GetField("innerData", System.Reflection.BindingFlags:Instance).
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。