Beispiel #1
0
        //                                                                      STGMEDIUM
        ///////////////////////////////////////////////////////////////////////////////////

        ///////////////////////////////////////////////////////////////////////////////////
        // STATDATA
        static internal OleInterop.STATDATA BclSTATDATA2Ole(ref BclComTypes.STATDATA bclData)
        {
            OleInterop.STATDATA oleData;
            if (null == bclData.advSink)
            {
                oleData.pAdvSink = null;
            }
            else
            {
                oleData.pAdvSink = bclData.advSink as OleInterop.IAdviseSink;
                if (null == oleData.pAdvSink)
                {
                    oleData.pAdvSink = (new AdviseSink(bclData.advSink));
                }
            }
            oleData.ADVF         = (uint)bclData.advf;
            oleData.dwConnection = (uint)bclData.connection;
            oleData.FORMATETC    = BclFormatETC2Ole(ref bclData.formatetc);
            return(oleData);
        }
Beispiel #2
0
        //
        //////////////////////////////////////////////////////////////

        //////////////////////////////////////////////////////////////
        // Next
        int OleInterop.IEnumSTATDATA.Next(uint celt, OleInterop.STATDATA[] rgelt, out uint pceltFetched)
        {
            pceltFetched = 0;
            if (null != oleEnum)
            {
                return(oleEnum.Next(celt, rgelt, out pceltFetched));
            }

            BclComTypes.STATDATA[] bclStat = new BclComTypes.STATDATA[celt];
            int[] fetched = { (int)pceltFetched };
            int   hr      = bclEnum.Next((int)celt, bclStat, fetched);

            if (NativeMethods.Failed(hr))
            {
                return(hr);
            }
            pceltFetched = (uint)fetched[0];
            for (int i = 0; i < pceltFetched; i++)
            {
                rgelt[i] = StructConverter.BclSTATDATA2Ole(ref bclStat[i]);
            }
            return(hr);
        }
Beispiel #3
0
        //
        //////////////////////////////////////////////////////////////
        //////////////////////////////////////////////////////////////
        // Next
        int OleInterop.IEnumSTATDATA.Next(uint celt, OleInterop.STATDATA[] rgelt, out uint pceltFetched)
        {
            pceltFetched = 0;
            if (null != oleEnum)
            {
                return oleEnum.Next(celt, rgelt, out pceltFetched);
            }

            BclComTypes.STATDATA[] bclStat = new BclComTypes.STATDATA[celt];
            int[] fetched = { (int)pceltFetched };
            int hr = bclEnum.Next((int)celt, bclStat, fetched);
            if (NativeMethods.Failed(hr))
                return hr;
            pceltFetched = (uint)fetched[0];
            for (int i = 0; i < pceltFetched; i++)
            {
                rgelt[i] = StructConverter.BclSTATDATA2Ole(ref bclStat[i]);
            }
            return hr;
        }