コード例 #1
0
        private void SaveHistoryHelper(object comIStream, bool persistEntireJournal, out int entryIndex, out string uri, out string title)
        {
            string text;

            title      = (text = null);
            uri        = text;
            entryIndex = -1;
            if (this._appProxyInternal == null || !RemotingServices.IsTransparentProxy(this._appProxyInternal))
            {
                return;
            }
            DocObjHost.SecuritySuppressedIStream securitySuppressedIStream = comIStream as DocObjHost.SecuritySuppressedIStream;
            if (securitySuppressedIStream == null)
            {
                return;
            }
            byte[] saveHistoryBytes = this._appProxyInternal.GetSaveHistoryBytes(persistEntireJournal, out entryIndex, out uri, out title);
            if (saveHistoryBytes == null)
            {
                return;
            }
            int num  = saveHistoryBytes.Length;
            int num2 = 0;

            securitySuppressedIStream.Write(saveHistoryBytes, num, out num2);
            Invariant.Assert(num2 == num, "Error saving journal stream to native IStream");
        }
コード例 #2
0
        internal static MemoryStream ExtractComStream(object comIStream)
        {
            DocObjHost.SecuritySuppressedIStream securitySuppressedIStream = comIStream as DocObjHost.SecuritySuppressedIStream;
            if (securitySuppressedIStream == null)
            {
                throw new ArgumentNullException("comIStream");
            }
            MemoryStream memoryStream = new MemoryStream();

            byte[] array = new byte[1024];
            int    num   = 0;

            do
            {
                num = 0;
                securitySuppressedIStream.Read(array, 1024, out num);
                memoryStream.Write(array, 0, num);
            }while (num > 0);
            Invariant.Assert(memoryStream.Length > 0L, "Error reading journal stream from native IStream");
            return(memoryStream);
        }