private void PackThis() { _undoUnits.Reset(); Interop.IOleUndoUnit[] startunits = new Interop.IOleUndoUnit[(uint)_startIndex]; Interop.IOleUndoUnit[] currentunits = new Interop.IOleUndoUnit[(uint)_numUndos]; //IntPtr j1 = IntPtr.Zero; Interop.IOleUndoUnit unit = null; int su = 0; for (int k = 0; k < _startIndex; k++) { _undoUnits.Next(1, out unit, out su); startunits[k] = unit; } for (int i = 0; i < _numUndos; i++) { _undoUnits.Next(1, out unit, out su); currentunits[i] = unit; } ((Interop.IOleUndoManager)_undoManager).DiscardFrom(null); for (int j = 0; j < _startIndex; j++) { if (startunits[j] == null) { continue; } ((Interop.IOleUndoManager)_undoManager).Add(startunits[j]); } if (unit != null) { UndoUnit uu = new UndoUnit(unit, ((Interop.IOleUndoManager)_undoManager)); ((Interop.IOleUndoManager)_undoManager).Add(uu); } }
private void Pack(Interop.IEnumOleUndoUnits enumerator) { enumerator.Reset(); Interop.IOleUndoUnit[] units = new Interop.IOleUndoUnit[(uint)_startIndex]; _undoUnits = new Interop.IOleUndoUnit[(uint)_numUndos]; //IntPtr j1 = IntPtr.Zero; Interop.IOleUndoUnit unit; int i1 = 0; for (int k = 0; k < _startIndex; k++) { enumerator.Next(1, out unit, out i1); units[k] = unit; // (Interop.IOleUndoUnit)Marshal.GetObjectForIUnknown(unit); //Marshal.Release(unit); } for (int i2 = 0; i2 < _numUndos; i2++) { enumerator.Next(1, out unit, out i1); _undoUnits[i2] = unit; // (Interop.IOleUndoUnit)Marshal.GetObjectForIUnknown(unit); //Marshal.Release(unit); } undoManager.DiscardFrom(null); for (int j2 = 0; j2 < _startIndex; j2++) { if (units[j2] == null) { continue; } undoManager.Add(units[j2]); } undoManager.Add(this); }
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); }
/// <summary> /// Ctor for IOleUndoUnit object. /// </summary> /// <param name="unit"></param> /// <param name="undoManager"></param> public UndoUnit(Interop.IOleUndoUnit unit, Interop.IOleUndoManager undoManager) { _unit = unit; _undoManager = undoManager; }
/// <summary> /// Not Implemented. /// </summary> /// <param name="undoUnit"></param> /// <returns></returns> public int FindUnit(Interop.IOleUndoUnit undoUnit) { throw new NotImplementedException(); }