int BclComTypes.IEnumFORMATETC.Next(int celt, BclComTypes.FORMATETC[] rgelt, int[] pceltFetched) { if (null != bclEnum) { return(bclEnum.Next(celt, rgelt, pceltFetched)); } OleInterop.FORMATETC[] oleStat = new OleInterop.FORMATETC[celt]; uint[] fetched = new uint[1]; int hr = oleEnum.Next((uint)celt, oleStat, fetched); if (NativeMethods.Failed(hr)) { return(hr); } if (null != pceltFetched) { pceltFetched[0] = (int)fetched[0]; } for (uint i = 0; i < fetched[0]; i++) { rgelt[i] = StructConverter.OleFormatETC2Bcl(ref oleStat[i]); } return(hr); }
static internal BclComTypes.FORMATETC OleFormatETC2Bcl(ref OleInterop.FORMATETC oleFormat) { BclComTypes.FORMATETC bclFormat; bclFormat.cfFormat = (short)oleFormat.cfFormat; bclFormat.dwAspect = (BclComTypes.DVASPECT)oleFormat.dwAspect; bclFormat.lindex = oleFormat.lindex; bclFormat.ptd = oleFormat.ptd; bclFormat.tymed = (BclComTypes.TYMED)oleFormat.tymed; return(bclFormat); }
int BclComTypes.IDataObject.QueryGetData(ref BclComTypes.FORMATETC format) { if (null != bclData) { return(bclData.QueryGetData(ref format)); } OleInterop.FORMATETC[] oleFormat = new OleInterop.FORMATETC[1]; oleFormat[0] = StructConverter.BclFormatETC2Ole(ref format); return(oleData.QueryGetData(oleFormat)); }
void BclComTypes.IDataObject.GetData(ref BclComTypes.FORMATETC format, out BclComTypes.STGMEDIUM medium) { if (null != bclData) { bclData.GetData(ref format, out medium); return; } OleInterop.FORMATETC[] oleFormat = new OleInterop.FORMATETC[1]; oleFormat[0] = StructConverter.BclFormatETC2Ole(ref format); OleInterop.STGMEDIUM[] oleMedium = new OleInterop.STGMEDIUM[1]; oleData.GetData(oleFormat, oleMedium); medium = StructConverter.OleSTGMEDIUM2Bcl(ref oleMedium[0]); }
void BclComTypes.IDataObject.SetData(ref BclComTypes.FORMATETC formatIn, ref BclComTypes.STGMEDIUM medium, bool release) { if (null != bclData) { bclData.SetData(ref formatIn, ref medium, release); return; } OleInterop.FORMATETC[] oleFormat = new OleInterop.FORMATETC[1]; oleFormat[0] = StructConverter.BclFormatETC2Ole(ref formatIn); OleInterop.STGMEDIUM[] oleMedium = new OleInterop.STGMEDIUM[1]; oleMedium[0] = StructConverter.BclSTGMEDIUM2Ole(ref medium); oleData.SetData(oleFormat, oleMedium, release ? 1 : 0); }
int BclComTypes.IDataObject.GetCanonicalFormatEtc(ref BclComTypes.FORMATETC formatIn, out BclComTypes.FORMATETC formatOut) { if (null != bclData) { return(bclData.GetCanonicalFormatEtc(ref formatIn, out formatOut)); } OleInterop.FORMATETC[] oleFormatIn = new OleInterop.FORMATETC[1]; OleInterop.FORMATETC[] oleFormatOut = new OleInterop.FORMATETC[1]; oleFormatIn[0] = StructConverter.BclFormatETC2Ole(ref formatIn); int hr = oleData.GetCanonicalFormatEtc(oleFormatIn, oleFormatOut); NativeMethods.ThrowOnFailure(hr); formatOut = StructConverter.OleFormatETC2Bcl(ref oleFormatOut[0]); return(hr); }
void IBclAdviseSink.OnDataChange(ref BclComTypes.FORMATETC format, ref BclComTypes.STGMEDIUM stgmedium) { if (null != bclSink) { bclSink.OnDataChange(ref format, ref stgmedium); } else { // As in the previous case we have to copy the parameters. OleInterop.FORMATETC[] pFormatetc = new OleInterop.FORMATETC[1]; pFormatetc[0] = StructConverter.BclFormatETC2Ole(ref format); OleInterop.STGMEDIUM[] pStgmed = new OleInterop.STGMEDIUM[1]; pStgmed[0] = StructConverter.BclSTGMEDIUM2Ole(ref stgmedium); // Call the original interface. oleSink.OnDataChange(pFormatetc, pStgmed); } }
int BclComTypes.IDataObject.DAdvise(ref BclComTypes.FORMATETC pFormatetc, BclComTypes.ADVF advf, BclComTypes.IAdviseSink adviseSink, out int connection) { if (null != bclData) { return(bclData.DAdvise(ref pFormatetc, advf, adviseSink, out connection)); } OleInterop.FORMATETC[] oleFormat = new OleInterop.FORMATETC[1]; oleFormat[0] = StructConverter.BclFormatETC2Ole(ref pFormatetc); uint result; OleInterop.IAdviseSink oleSink = adviseSink as OleInterop.IAdviseSink; if (null == oleSink) { oleSink = (OleInterop.IAdviseSink)(new AdviseSink(adviseSink)); } int hr = oleData.DAdvise(oleFormat, (uint)advf, oleSink, out result); NativeMethods.ThrowOnFailure(hr); connection = (int)result; return(hr); }
int BclComTypes.IDataObject.QueryGetData(ref BclComTypes.FORMATETC format) { if (null != bclData) return bclData.QueryGetData(ref format); OleInterop.FORMATETC[] oleFormat = new OleInterop.FORMATETC[1]; oleFormat[0] = StructConverter.BclFormatETC2Ole(ref format); return oleData.QueryGetData(oleFormat); }
void BclComTypes.IDataObject.GetDataHere(ref BclComTypes.FORMATETC format, ref BclComTypes.STGMEDIUM medium) { if (null != bclData) { bclData.GetDataHere(ref format, ref medium); return; } OleInterop.FORMATETC[] oleFormat = new OleInterop.FORMATETC[1]; oleFormat[0] = StructConverter.BclFormatETC2Ole(ref format); OleInterop.STGMEDIUM[] oleMedium = new OleInterop.STGMEDIUM[1]; oleMedium[0] = StructConverter.BclSTGMEDIUM2Ole(ref medium); oleData.GetDataHere(oleFormat, oleMedium); medium = StructConverter.OleSTGMEDIUM2Bcl(ref oleMedium[0]); }
int BclComTypes.IDataObject.GetCanonicalFormatEtc(ref BclComTypes.FORMATETC formatIn, out BclComTypes.FORMATETC formatOut) { if (null != bclData) return bclData.GetCanonicalFormatEtc(ref formatIn, out formatOut); OleInterop.FORMATETC[] oleFormatIn = new OleInterop.FORMATETC[1]; OleInterop.FORMATETC[] oleFormatOut = new OleInterop.FORMATETC[1]; oleFormatIn[0] = StructConverter.BclFormatETC2Ole(ref formatIn); int hr = oleData.GetCanonicalFormatEtc(oleFormatIn, oleFormatOut); NativeMethods.ThrowOnFailure(hr); formatOut = StructConverter.OleFormatETC2Bcl(ref oleFormatOut[0]); return hr; }
int BclComTypes.IDataObject.DAdvise(ref BclComTypes.FORMATETC pFormatetc, BclComTypes.ADVF advf, BclComTypes.IAdviseSink adviseSink, out int connection) { if (null != bclData) return bclData.DAdvise(ref pFormatetc, advf, adviseSink, out connection); OleInterop.FORMATETC[] oleFormat = new OleInterop.FORMATETC[1]; oleFormat[0] = StructConverter.BclFormatETC2Ole(ref pFormatetc); uint result; OleInterop.IAdviseSink oleSink = adviseSink as OleInterop.IAdviseSink; if (null == oleSink) oleSink = (OleInterop.IAdviseSink)(new AdviseSink(adviseSink)); int hr = oleData.DAdvise(oleFormat, (uint)advf, oleSink, out result); NativeMethods.ThrowOnFailure(hr); connection = (int)result; return hr; }
int BclComTypes.IEnumFORMATETC.Next(int celt, BclComTypes.FORMATETC[] rgelt, int[] pceltFetched) { if (null != bclEnum) { return bclEnum.Next(celt, rgelt, pceltFetched); } OleInterop.FORMATETC[] oleStat = new OleInterop.FORMATETC[celt]; uint[] fetched = new uint[1]; int hr = oleEnum.Next((uint)celt, oleStat, fetched); if (NativeMethods.Failed(hr)) return hr; if (null != pceltFetched) pceltFetched[0] = (int)fetched[0]; for (uint i = 0; i < fetched[0]; i++) { rgelt[i] = StructConverter.OleFormatETC2Bcl(ref oleStat[i]); } return hr; }