Thanks to visit codestin.com
Credit goes to sourceforge.net

Menu

[r3]: / BinaryControlTest / MDIChild.cs  Maximize  Restore  History

Download this file

256 lines (211 with data), 9.7 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
using System;
using System.Collections.Generic;
using System.IO;
using System.Windows.Forms;
using ComponentsAdv;
using CompoundFileBinary;
namespace BinaryControlTest
{
public partial class MDIChild : AbstractMDIChild
{
string CurrentFileName;
TNComparator_Marker m_MarkerComparator = new TNComparator_Marker();
public MDIChild(Stream s, string filename, bool openasbiff)
{
InitializeComponent();
CurrentFileName = filename;
treeListViewAdv1.Nodes.Comparer = m_MarkerComparator;
binaryControl2.Root.MarkerAdded += new MarkerRoot.MarkerAdded_Handler(Root_MarkerAdded);
binaryControl2.Root.MarkerRemoved += new MarkerRoot.MarkerRemoved_Handler(Root_MarkerRemoved);
binaryControl2.Root.ChildStartAtChanged += new IMarkerGroup.ChildStartAtChanged_Handler(Root_ChildStartAtChanged);
if (openasbiff)
{
ZBiffFile zbiffile = new ZBiffFile(s);
zbiffile.Read();
TreeNode tn = new TreeNode(Path.GetFileName(filename));
zbiffile.Root.PopulateTreeView(tn);
treeView1.Nodes.Add(tn);
s.Close();
}
else
{
splitContainer2.Panel1Collapsed = true;
binaryControl2.DataStream = s;
}
}
void Root_ChildStartAtChanged(object sender, IMarker value)
{
foreach (Node n in treeListViewAdv1.Nodes)
{
if (n.Tag == value)
{
// That's the easiest way for now to "sort" the tree.
treeListViewAdv1.Nodes.Remove(n);
treeListViewAdv1.Nodes.Add(n);
break;
}
}
}
void Root_MarkerAdded(object sender, IMarker m)
{
if (m is IMarkerPrimitive)
treeListViewAdv1.Nodes.Add(new TN_MarkerPrimitive(m as IMarkerPrimitive));
else if (m is MarkerStructure)
treeListViewAdv1.Nodes.Add(new TN_MarkerStructure(m as MarkerStructure));
else if (m is MarkerArray)
treeListViewAdv1.Nodes.Add(new TN_MarkerArray(m as MarkerArray));
else
throw new Exception("Invalid type of object to add to the TreeListView.");
}
void Root_MarkerRemoved(object sender, IMarker value)
{
foreach (Node n in treeListViewAdv1.Nodes)
{
if (n.Tag == value)
{
treeListViewAdv1.Nodes.Remove(n);
break;
}
}
}
// For biff file only:
TreeNode lastnode = null;
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
// Open new stream
treeListViewAdv1.Nodes.Clear();
if (e.Node.Tag is ZBiffDirectoryStream)
binaryControl2.DataStream = new MemoryStream((e.Node.Tag as ZBiffDirectoryStream).Data);
else
binaryControl2.DataStream = null;
lastnode = e.Node;
}
private void copySelectionToolStripMenuItem_Click(object sender, System.EventArgs e)
{
}
private void markToolStripMenuItem_Click(object sender, System.EventArgs e)
{
binaryControl2.Root.Add(new MarkerPrimitiveBloc("", "", binaryControl2.SelectionStart, (int)binaryControl2.SelectionLenght + 1));
}
private void floatToolStripMenuItem_Click(object sender, System.EventArgs e)
{
binaryControl2.Root.Add(new MarkerPrimitiveFloat("", "", binaryControl2.CaretPos));
}
private void double64bitsToolStripMenuItem_Click(object sender, System.EventArgs e)
{
binaryControl2.Root.Add(new MarkerPrimitiveDouble("", "", binaryControl2.CaretPos));
}
private void byteToolStripMenuItem_Click(object sender, EventArgs e)
{
binaryControl2.Root.Add(new MarkerPrimitiveByte("", "", binaryControl2.CaretPos));
}
private void int16ToolStripMenuItem_Click(object sender, System.EventArgs e)
{
binaryControl2.Root.Add(new MarkerPrimitiveInt16("", "", binaryControl2.CaretPos));
}
private void int32ToolStripMenuItem_Click(object sender, System.EventArgs e)
{
binaryControl2.Root.Add(new MarkerPrimitiveInt32("", "", binaryControl2.CaretPos));
}
private void int64ToolStripMenuItem_Click(object sender, System.EventArgs e)
{
binaryControl2.Root.Add(new MarkerPrimitiveInt64("", "", binaryControl2.CaretPos));
}
private void guidToolStripMenuItem_Click(object sender, System.EventArgs e)
{
binaryControl2.Root.Add(new MarkerPrimitiveGuid("", "", binaryControl2.CaretPos));
}
private void aSCIIStringToolStripMenuItem_Click(object sender, System.EventArgs e)
{
binaryControl2.Root.Add(new MarkerPrimitiveASCIIStringEndByZero("", "", binaryControl2.CaretPos));
}
private void aSCIIString8bitLengthToolStripMenuItem_Click(object sender, System.EventArgs e)
{
binaryControl2.Root.Add(new MarkerPrimitiveASCIIString8bitLength("", "", binaryControl2.CaretPos));
}
private void aSCIIString16bitLengthToolStripMenuItem_Click(object sender, System.EventArgs e)
{
binaryControl2.Root.Add(new MarkerPrimitiveASCIIString16bitLength("", "", binaryControl2.CaretPos));
}
private void aSCIIString32bitLengthToolStripMenuItem_Click(object sender, System.EventArgs e)
{
binaryControl2.Root.Add(new MarkerPrimitiveASCIIString32bitLength("", "", binaryControl2.CaretPos));
}
private void aSCIIStringFixedLengthToolStripMenuItem_Click(object sender, EventArgs e)
{
binaryControl2.Root.Add(new MarkerPrimitiveFixedLengthASCIIString("", "", binaryControl2.SelectionStart, binaryControl2.SelectionLenght));
}
private void unicodeStringToolStripMenuItem_Click(object sender, System.EventArgs e)
{
binaryControl2.Root.Add(new MarkerPrimitiveUnicodeStringEndByZero("", "", binaryControl2.CaretPos));
}
private void unicodeString8bitLengthToolStripMenuItem_Click(object sender, System.EventArgs e)
{
binaryControl2.Root.Add(new MarkerPrimitiveUnicodeString8bitLength("", "", binaryControl2.CaretPos));
}
private void unicodeString16bitLengthToolStripMenuItem_Click(object sender, System.EventArgs e)
{
binaryControl2.Root.Add(new MarkerPrimitiveUnicodeString16bitLength("", "", binaryControl2.CaretPos));
}
private void unicodeString32bitLengthToolStripMenuItem_Click(object sender, System.EventArgs e)
{
binaryControl2.Root.Add(new MarkerPrimitiveUnicodeString32bitLength("", "", binaryControl2.CaretPos));
}
private void unicodeStringFixedLengthToolStripMenuItem_Click(object sender, EventArgs e)
{
binaryControl2.Root.Add(new MarkerPrimitiveFixedLengthUnicodeString("", "", binaryControl2.SelectionStart, binaryControl2.SelectionLenght / 2));
}
private void removeToolStripMenuItem_Click(object sender, System.EventArgs e)
{
IMarker m = (IMarker)contextMenuStrip2.Tag;
binaryControl2.RemoveMarker(m.StartAt);
contextMenuStrip2.Tag = null;
}
private void structuredStorageHeaderToolStripMenuItem_Click(object sender, System.EventArgs e)
{
}
public override BinaryControl GetBinaryControl()
{
return binaryControl2;
}
private void binaryControl2_MarkerAdded(object sender, IMarker m)
{
}
private void renameToolStripMenuItem_Click(object sender, EventArgs e)
{
FormMarkerRename frm = new FormMarkerRename();
frm.textBox1.Text = treeListViewAdv1.FocusedNode.Text;
if (frm.ShowDialog(this) == DialogResult.OK)
{
(treeListViewAdv1.FocusedNode.Tag as IMarker).Name = frm.textBox1.Text;
}
}
private void groupToolStripMenuItem_Click(object sender, EventArgs e)
{
MarkerStructure s = new MarkerStructure("", "");
binaryControl2.Root.Add(s);
foreach (Node nn in treeListViewAdv1.NodesSelection)
{
if (nn.Tag is IMarker)
{
IMarker m = nn.Tag as IMarker;
if (m.Parent != null &&
m.Parent is IMarkerList)
{
IMarkerList p = m.Parent as IMarkerList;
p.Remove(m);
s.Add(m);
}
}
else
throw new Exception("Node.Tag have to be of type IMarker.");
}
}
private void createAGroupToolStripMenuItem_Click(object sender, EventArgs e)
{
}
private void createAnArrayToolStripMenuItem_Click(object sender, EventArgs e)
{
}
}
}