/// <summary> /// Initializes a new instance of the <see cref="DataObject"/> class. /// </summary> /// <param name="underlyingDataObject">The underlying data object to wrap.</param> public DataObject(IDataObject underlyingDataObject) { //get the underlying dataobject and its ComType IDataObject interface to it _underlyingDataObject = underlyingDataObject; _comUnderlyingDataObject = (System.Runtime.InteropServices.ComTypes.IDataObject)_underlyingDataObject; //get the internal ole dataobject and its GetDataFromHGLOBLAL so it can be called later var innerDataField = _underlyingDataObject.GetType().GetField("innerData", BindingFlags.NonPublic | BindingFlags.Instance); // ReSharper disable once PossibleNullReferenceException _oleUnderlyingDataObject = (IDataObject)innerDataField.GetValue(_underlyingDataObject); _getDataFromHgloblalMethod = _oleUnderlyingDataObject.GetType() .GetMethod("GetDataFromHGLOBLAL", BindingFlags.NonPublic | BindingFlags.Instance); }
/// <summary> /// Initializes a new instance of the <see cref="DataObject"/> class. /// </summary> /// <param name="underlyingDataObject">The underlying data object to wrap.</param> public DataObject(IDataObject underlyingDataObject) { //get the underlying dataobject and its ComType IDataObject interface to it _underlyingDataObject = underlyingDataObject; _comUnderlyingDataObject = (System.Runtime.InteropServices.ComTypes.IDataObject)_underlyingDataObject; //get the internal ole dataobject and its GetDataFromHGLOBLAL so it can be called later var innerDataField = _underlyingDataObject.GetType().GetField("innerData", BindingFlags.NonPublic | BindingFlags.Instance); // ReSharper disable once PossibleNullReferenceException _oleUnderlyingDataObject = (IDataObject)innerDataField.GetValue(_underlyingDataObject); _getDataFromHgloblalMethod = _oleUnderlyingDataObject.GetType() .GetMethod("GetDataFromHGLOBLAL", BindingFlags.NonPublic | BindingFlags.Instance); }