unsafe uint Win32Com.IDataObject.GetDataHere(FORMATETC *format, Interop.STGMEDIUM *medium) { if (_wrapped is Win32Com.IDataObject ole) { return(ole.GetDataHere(format, medium)); } if (medium->tymed != TYMED.TYMED_HGLOBAL || !format->tymed.HasAllFlags(TYMED.TYMED_HGLOBAL)) { return(DV_E_TYMED); } if (format->dwAspect != DVASPECT.DVASPECT_CONTENT) { return(DV_E_DVASPECT); } string fmt = ClipboardFormats.GetFormat(format->cfFormat); if (string.IsNullOrEmpty(fmt) || !_wrapped.Contains(fmt)) { return(DV_E_FORMATETC); } if (medium->unionmember == IntPtr.Zero) { return(STG_E_MEDIUMFULL); } return(WriteDataToHGlobal(fmt, ref medium->unionmember)); }
unsafe uint Win32Com.IDataObject.SetData(FORMATETC *pformatetc, Interop.STGMEDIUM *pmedium, int fRelease) { if (_wrapped is Win32Com.IDataObject ole) { return(ole.SetData(pformatetc, pmedium, fRelease)); } return((uint)UnmanagedMethods.HRESULT.E_NOTIMPL); }