int BclComTypes.IEnumSTATDATA.Next(int celt, BclComTypes.STATDATA[] rgelt, int[] pceltFetched) { if (null != bclEnum) { return(bclEnum.Next(celt, rgelt, pceltFetched)); } OleInterop.STATDATA[] oleStat = new OleInterop.STATDATA[celt]; uint fetched; int hr = oleEnum.Next((uint)celt, oleStat, out fetched); if (NativeMethods.Failed(hr)) { return(hr); } if (null != pceltFetched) { pceltFetched[0] = (int)fetched; } for (int i = 0; i < fetched; i++) { rgelt[i] = StructConverter.OleSTATDATA2Bcl(ref oleStat[i]); } return(hr); }
static internal BclComTypes.STATDATA OleSTATDATA2Bcl(ref OleInterop.STATDATA oleData) { BclComTypes.STATDATA bclData; if (null == oleData.pAdvSink) { bclData.advSink = null; } else { bclData.advSink = oleData.pAdvSink as BclComTypes.IAdviseSink; if (null == bclData.advSink) { bclData.advSink = (BclComTypes.IAdviseSink)(new AdviseSink(oleData.pAdvSink)); } } bclData.advf = (BclComTypes.ADVF)oleData.ADVF; bclData.connection = (int)oleData.dwConnection; bclData.formatetc = OleFormatETC2Bcl(ref oleData.FORMATETC); return(bclData); }
int BclComTypes.IEnumSTATDATA.Next(int celt, BclComTypes.STATDATA[] rgelt, int[] pceltFetched) { if (null != bclEnum) { return bclEnum.Next(celt, rgelt, pceltFetched); } OleInterop.STATDATA[] oleStat = new OleInterop.STATDATA[celt]; uint fetched; int hr = oleEnum.Next((uint)celt, oleStat, out fetched); if (NativeMethods.Failed(hr)) return hr; if (null != pceltFetched) pceltFetched[0] = (int)fetched; for (int i = 0; i < fetched; i++) { rgelt[i] = StructConverter.OleSTATDATA2Bcl(ref oleStat[i]); } return hr; }