Example #1
0
 private int CountUndos(Interop.IEnumOleUndoUnits enumerator)
 {
     int num2 = 0;
     IntPtr zero = IntPtr.Zero;
     enumerator.Reset();
     try
     {
         int num;
         while (enumerator.Next(1, out zero, out num) == 0)
         {
             Interop.IOleUndoUnit objectForIUnknown = (Interop.IOleUndoUnit) Marshal.GetObjectForIUnknown(zero);
             Marshal.Release(zero);
             if ((enumerator == null) || (num == 0))
             {
                 return num2;
             }
             num2++;
         }
     }
     catch (Exception exception)
     {
         MessageBox.Show(exception.ToString(), "Exception in CountUndos");
     }
     return num2;
 }
Example #2
0
 private void Pack(Interop.IEnumOleUndoUnits enumerator)
 {
     int num;
     enumerator.Reset();
     Interop.IOleUndoUnit[] unitArray = new Interop.IOleUndoUnit[this._startIndex];
     this._undoUnits = new Interop.IOleUndoUnit[this._numUndos];
     IntPtr zero = IntPtr.Zero;
     for (int i = 0; i < this._startIndex; i++)
     {
         enumerator.Next(1, out zero, out num);
         unitArray[i] = (Interop.IOleUndoUnit) Marshal.GetObjectForIUnknown(zero);
         Marshal.Release(zero);
     }
     for (int j = 0; j < this._numUndos; j++)
     {
         enumerator.Next(1, out zero, out num);
         this._undoUnits[j] = (Interop.IOleUndoUnit) Marshal.GetObjectForIUnknown(zero);
         Marshal.Release(zero);
     }
     this._undoManager.DiscardFrom(null);
     for (int k = 0; k < this._startIndex; k++)
     {
         this._undoManager.Add(unitArray[k]);
     }
     this._undoManager.Add(this);
 }