无聊的时候突然想要看看VSS里面都发生了什么,好下面看一下怎么看VSS里面的东东。
本篇没有参考什么,纯属自编,如果有什么不对的地方请提出。
作为延伸,你可以考虑一下怎么把指定的时间点的vss内容取出编译。
提示:代码不太规范,请勿仿照。
放在首页一天,谢谢。
本篇没有参考什么,纯属自编,如果有什么不对的地方请提出。
作为延伸,你可以考虑一下怎么把指定的时间点的vss内容取出编译。
提示:代码不太规范,请勿仿照。
1
using System;
2
using System.Diagnostics;
3
using System.Drawing;
4
using System.Collections;
5
using System.ComponentModel;
6
using System.Threading;
7
using System.Windows.Forms;
8
using System.Data;
9
using DevExpress.XtraTreeList;
10
using DevExpress.XtraTreeList.Nodes;
11
using SourceSafeTypeLib;
12![](/Images/OutliningIndicators/None.gif)
13
namespace VssInfo
14
{
15
/// <summary>
16
/// Summary description for Form1.
17
/// </summary>
18
public class Form1 : System.Windows.Forms.Form
19
{
20
private DevExpress.XtraTreeList.TreeList treeList1;
21
private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn1;
22
private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn2;
23
private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn3;
24
private System.Windows.Forms.Panel panel1;
25
private DevExpress.XtraEditors.ComboBoxEdit comboBoxEdit1;
26
private DevExpress.XtraEditors.SimpleButton simpleButton1;
27
private DevExpress.XtraEditors.RadioGroup radioGroup1;
28
private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn4;
29
/// <summary>
30
/// Required designer variable.
31
/// </summary>
32
private System.ComponentModel.Container components = null;
33![](/Images/OutliningIndicators/InBlock.gif)
34
public Form1()
35
{
36
//
37
// Required for Windows Form Designer support
38
//
39
InitializeComponent();
40![](/Images/OutliningIndicators/InBlock.gif)
41
//
42
// TODO: Add any constructor code after InitializeComponent call
43
//
44
}
45![](/Images/OutliningIndicators/InBlock.gif)
46
private void ViewVSS(string srcsafeINI, string username, string password)
47
{
48
UIInvoke invoke = new UIInvoke(this);
49
invoke.DOLockReloadNodes();
50
invoke.DoClearNodes();
51
VSSDatabase database = new VSSDatabase();
52
53
database.Open(srcsafeINI, username, password);
54
IVSSItems items = database.get_VSSItem("$/", false).get_Items(false);
55
56
Loop(items);
57
invoke.DOUnlockReloadNodes();
58![](/Images/OutliningIndicators/InBlock.gif)
59
System.Runtime.InteropServices.Marshal.ReleaseComObject(database);
60
database = null;
61![](/Images/OutliningIndicators/InBlock.gif)
62
}
63![](/Images/OutliningIndicators/InBlock.gif)
64
private void Loop(IVSSItems items )
65
{
66
foreach(IVSSItem item in items)
67
{
68
if(!item.Deleted)
69
{
70
if(item.Type == (int) VSSItemType.VSSITEM_FILE)
71
{
72![](/Images/OutliningIndicators/InBlock.gif)
73
if(GetOPType == Type.CheckOut )
74
{
75
if(item.IsCheckedOut == (int) VSSFileStatus.VSSFILE_CHECKEDOUT || item.IsCheckedOut == (int) VSSFileStatus.VSSFILE_CHECKEDOUT_ME)
76
{
77
UIInvoke invoke = new UIInvoke(this);
78![](/Images/OutliningIndicators/InBlock.gif)
79
invoke.Spec = item.Spec;
80![](/Images/OutliningIndicators/InBlock.gif)
81
foreach(IVSSCheckout checkoutClass in item.Checkouts)
82
{
83
invoke.Username = checkoutClass.Username;
84
invoke.MachineName = checkoutClass.Machine;
85
invoke.Date = checkoutClass.Date.ToShortDateString();
86![](/Images/OutliningIndicators/InBlock.gif)
87
}
88
invoke.Invoke();
89
}
90
}
91
else
92
{
93
IVSSVersions versions = item.get_Versions(0);
94
IEnumerator enumerator = versions.GetEnumerator();
95
while(enumerator.MoveNext())
96
{
97
IVSSVersion version =(IVSSVersion) enumerator.Current;
98![](/Images/OutliningIndicators/InBlock.gif)
99![](/Images/OutliningIndicators/InBlock.gif)
100
if(version.VersionNumber == item.VersionNumber)
101
{
102
if(version.Date.DayOfYear >= DateTime.Now.DayOfYear -1 && version.Date.DayOfYear <= DateTime.Now.DayOfYear )
103
{
104
UIInvoke invoke = new UIInvoke(this);
105![](/Images/OutliningIndicators/InBlock.gif)
106
invoke.Spec = item.Spec;
107
invoke.Username = version.Username;
108
invoke.Date = version.Date.ToShortDateString();
109![](/Images/OutliningIndicators/InBlock.gif)
110
foreach(IVSSCheckout checkoutClass in item.get_Version(item.VersionNumber).Checkouts)
111
{
112
invoke.MachineName = checkoutClass.Machine;
113
}
114
invoke.Invoke();
115
}
116
while(enumerator.MoveNext())
117
{
118
119
}
120
121![](/Images/OutliningIndicators/InBlock.gif)
122
}
123![](/Images/OutliningIndicators/InBlock.gif)
124
}
125
}
126
}
127![](/Images/OutliningIndicators/InBlock.gif)
128
else
129
{
130
Loop(item.get_Items(false));
131
}
132
}
133![](/Images/OutliningIndicators/InBlock.gif)
134![](/Images/OutliningIndicators/InBlock.gif)
135
}
136![](/Images/OutliningIndicators/InBlock.gif)
137
}
138![](/Images/OutliningIndicators/InBlock.gif)
139![](/Images/OutliningIndicators/InBlock.gif)
140
private class UIInvoke
141
{
142
public string Spec;
143
public string Username;
144
public string MachineName;
145
public string Date;
146
Form1 _form1;
147
148
delegate void MyInvoke();
149
public UIInvoke(Form1 form1)
150
{
151
_form1 = form1;
152
}
153
public void Invoke()
154
{
155
_form1.treeList1.Invoke(new MyInvoke(DOInvoke));
156
}
157
public void DOLockReloadNodes()
158
{
159
_form1.treeList1.Invoke(new MyInvoke(BeginUnboundLoad));
160
}
161
public void DOUnlockReloadNodes()
162
{
163
_form1.treeList1.Invoke(new MyInvoke(EndUnboundLoad));
164
}
165
public void DoClearNodes()
166
{
167
_form1.treeList1.Invoke(new MyInvoke(ClearNodes));
168
}
169![](/Images/OutliningIndicators/InBlock.gif)
170
void BeginUnboundLoad()
171
{
172
_form1.treeList1.LockReloadNodes();
173
}
174
void EndUnboundLoad()
175
{
176
_form1.treeList1.UnlockReloadNodes();
177
}
178
void ClearNodes()
179
{
180
_form1.treeList1.ClearNodes();
181
}
182![](/Images/OutliningIndicators/InBlock.gif)
183![](/Images/OutliningIndicators/InBlock.gif)
184![](/Images/OutliningIndicators/InBlock.gif)
185![](/Images/OutliningIndicators/InBlock.gif)
186![](/Images/OutliningIndicators/InBlock.gif)
187![](/Images/OutliningIndicators/InBlock.gif)
188![](/Images/OutliningIndicators/InBlock.gif)
189![](/Images/OutliningIndicators/InBlock.gif)
190
void DOInvoke()
191
{
192
TreeListNode node = this._form1.treeList1.AppendNode(null, null);
193
node[_form1.treeListColumn2] = Spec;
194
node[_form1.treeListColumn1] = Username;
195
node[_form1.treeListColumn4] = Date;
196
node[_form1.treeListColumn3] = MachineName;
197
}
198![](/Images/OutliningIndicators/InBlock.gif)
199
200
}
201![](/Images/OutliningIndicators/InBlock.gif)
202![](/Images/OutliningIndicators/InBlock.gif)
203![](/Images/OutliningIndicators/InBlock.gif)
204
/// <summary>
205
/// Clean up any resources being used.
206
/// </summary>
207
protected override void Dispose( bool disposing )
208
{
209
if( disposing )
210
{
211
if(thread != null && thread.IsAlive)
212
{
213
try
214
{
215
thread.Abort();
216
}
217
catch
218
{
219
}
220
finally
221
{
222
thread = null;
223
}
224
}
225
if (components != null)
226
{
227![](/Images/OutliningIndicators/InBlock.gif)
228
components.Dispose();
229
}
230
231
}
232
base.Dispose( disposing );
233
}
234![](/Images/OutliningIndicators/InBlock.gif)
235
Windows Form Designer generated code
379![](/Images/OutliningIndicators/InBlock.gif)
380
/// <summary>
381
/// The main entry point for the application.
382
/// </summary>
383
[STAThread]
384
static void Main()
385
{
386
Application.Run(new Form1());
387
}
388
Thread thread = null;
389
private void simpleButton1_Click(object sender, System.EventArgs e)
390
{
391
this.simpleButton1.Enabled = false;
392
thread = new Thread(new ThreadStart(DoOP));
393
thread.Start();
394
}
395
private void DoOP()
396
{
397![](/Images/OutliningIndicators/InBlock.gif)
398
string v3 = @"xxxxx\srcsafe.ini";
399
string xxx_net = @"xxxx\srcsafe.ini";
400
string v4 = @"xxxxxxx\srcsafe.ini";
401
string username = "xxxx";
402
string password = "";
403![](/Images/OutliningIndicators/InBlock.gif)
404
switch(this.comboBoxEdit1.SelectedIndex)
405
{
406
case 0:
407
ViewVSS(v3, username , password);
408
break;
409
case 1:
410
ViewVSS(cmp_net, username, password);
411
break;
412
case 2:
413
ViewVSS(v4, username, password);
414
break;
415
default:
416
break;
417
}
418
this.simpleButton1.Enabled = true;
419
}
420![](/Images/OutliningIndicators/InBlock.gif)
421
Type GetOPType
422
{
423
get
424
{
425
return radioGroup1.SelectedIndex == 0 ? Type.Now : Type.CheckOut;
426
}
427
}
428![](/Images/OutliningIndicators/InBlock.gif)
429
private enum Type
430
{
431
Now,
432
CheckOut
433
}
434![](/Images/OutliningIndicators/InBlock.gif)
435![](/Images/OutliningIndicators/InBlock.gif)
436
437![](/Images/OutliningIndicators/InBlock.gif)
438
439![](/Images/OutliningIndicators/InBlock.gif)
440
}
441
}
442![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
8
![](/Images/OutliningIndicators/None.gif)
9
![](/Images/OutliningIndicators/None.gif)
10
![](/Images/OutliningIndicators/None.gif)
11
![](/Images/OutliningIndicators/None.gif)
12
![](/Images/OutliningIndicators/None.gif)
13
![](/Images/OutliningIndicators/None.gif)
14
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
15
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
16
![](/Images/OutliningIndicators/InBlock.gif)
17
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
18
![](/Images/OutliningIndicators/InBlock.gif)
19
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/InBlock.gif)
24
![](/Images/OutliningIndicators/InBlock.gif)
25
![](/Images/OutliningIndicators/InBlock.gif)
26
![](/Images/OutliningIndicators/InBlock.gif)
27
![](/Images/OutliningIndicators/InBlock.gif)
28
![](/Images/OutliningIndicators/InBlock.gif)
29
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
30
![](/Images/OutliningIndicators/InBlock.gif)
31
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
32
![](/Images/OutliningIndicators/InBlock.gif)
33
![](/Images/OutliningIndicators/InBlock.gif)
34
![](/Images/OutliningIndicators/InBlock.gif)
35
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
36
![](/Images/OutliningIndicators/InBlock.gif)
37
![](/Images/OutliningIndicators/InBlock.gif)
38
![](/Images/OutliningIndicators/InBlock.gif)
39
![](/Images/OutliningIndicators/InBlock.gif)
40
![](/Images/OutliningIndicators/InBlock.gif)
41
![](/Images/OutliningIndicators/InBlock.gif)
42
![](/Images/OutliningIndicators/InBlock.gif)
43
![](/Images/OutliningIndicators/InBlock.gif)
44
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
45
![](/Images/OutliningIndicators/InBlock.gif)
46
![](/Images/OutliningIndicators/InBlock.gif)
47
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
48
![](/Images/OutliningIndicators/InBlock.gif)
49
![](/Images/OutliningIndicators/InBlock.gif)
50
![](/Images/OutliningIndicators/InBlock.gif)
51
![](/Images/OutliningIndicators/InBlock.gif)
52
![](/Images/OutliningIndicators/InBlock.gif)
53
![](/Images/OutliningIndicators/InBlock.gif)
54
![](/Images/OutliningIndicators/InBlock.gif)
55
![](/Images/OutliningIndicators/InBlock.gif)
56
![](/Images/OutliningIndicators/InBlock.gif)
57
![](/Images/OutliningIndicators/InBlock.gif)
58
![](/Images/OutliningIndicators/InBlock.gif)
59
![](/Images/OutliningIndicators/InBlock.gif)
60
![](/Images/OutliningIndicators/InBlock.gif)
61
![](/Images/OutliningIndicators/InBlock.gif)
62
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
63
![](/Images/OutliningIndicators/InBlock.gif)
64
![](/Images/OutliningIndicators/InBlock.gif)
65
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
66
![](/Images/OutliningIndicators/InBlock.gif)
67
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
68
![](/Images/OutliningIndicators/InBlock.gif)
69
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
70
![](/Images/OutliningIndicators/InBlock.gif)
71
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
72
![](/Images/OutliningIndicators/InBlock.gif)
73
![](/Images/OutliningIndicators/InBlock.gif)
74
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
75
![](/Images/OutliningIndicators/InBlock.gif)
76
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
77
![](/Images/OutliningIndicators/InBlock.gif)
78
![](/Images/OutliningIndicators/InBlock.gif)
79
![](/Images/OutliningIndicators/InBlock.gif)
80
![](/Images/OutliningIndicators/InBlock.gif)
81
![](/Images/OutliningIndicators/InBlock.gif)
82
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
83
![](/Images/OutliningIndicators/InBlock.gif)
84
![](/Images/OutliningIndicators/InBlock.gif)
85
![](/Images/OutliningIndicators/InBlock.gif)
86
![](/Images/OutliningIndicators/InBlock.gif)
87
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
88
![](/Images/OutliningIndicators/InBlock.gif)
89
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
90
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
91
![](/Images/OutliningIndicators/InBlock.gif)
92
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
93
![](/Images/OutliningIndicators/InBlock.gif)
94
![](/Images/OutliningIndicators/InBlock.gif)
95
![](/Images/OutliningIndicators/InBlock.gif)
96
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
97
![](/Images/OutliningIndicators/InBlock.gif)
98
![](/Images/OutliningIndicators/InBlock.gif)
99
![](/Images/OutliningIndicators/InBlock.gif)
100
![](/Images/OutliningIndicators/InBlock.gif)
101
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
102
![](/Images/OutliningIndicators/InBlock.gif)
103
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
104
![](/Images/OutliningIndicators/InBlock.gif)
105
![](/Images/OutliningIndicators/InBlock.gif)
106
![](/Images/OutliningIndicators/InBlock.gif)
107
![](/Images/OutliningIndicators/InBlock.gif)
108
![](/Images/OutliningIndicators/InBlock.gif)
109
![](/Images/OutliningIndicators/InBlock.gif)
110
![](/Images/OutliningIndicators/InBlock.gif)
111
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
112
![](/Images/OutliningIndicators/InBlock.gif)
113
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
114
![](/Images/OutliningIndicators/InBlock.gif)
115
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
116
![](/Images/OutliningIndicators/InBlock.gif)
117
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
118
![](/Images/OutliningIndicators/InBlock.gif)
119
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
120
![](/Images/OutliningIndicators/InBlock.gif)
121
![](/Images/OutliningIndicators/InBlock.gif)
122
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
123
![](/Images/OutliningIndicators/InBlock.gif)
124
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
125
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
126
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
127
![](/Images/OutliningIndicators/InBlock.gif)
128
![](/Images/OutliningIndicators/InBlock.gif)
129
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
130
![](/Images/OutliningIndicators/InBlock.gif)
131
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
132
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
133
![](/Images/OutliningIndicators/InBlock.gif)
134
![](/Images/OutliningIndicators/InBlock.gif)
135
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
136
![](/Images/OutliningIndicators/InBlock.gif)
137
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
138
![](/Images/OutliningIndicators/InBlock.gif)
139
![](/Images/OutliningIndicators/InBlock.gif)
140
![](/Images/OutliningIndicators/InBlock.gif)
141
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
142
![](/Images/OutliningIndicators/InBlock.gif)
143
![](/Images/OutliningIndicators/InBlock.gif)
144
![](/Images/OutliningIndicators/InBlock.gif)
145
![](/Images/OutliningIndicators/InBlock.gif)
146
![](/Images/OutliningIndicators/InBlock.gif)
147
![](/Images/OutliningIndicators/InBlock.gif)
148
![](/Images/OutliningIndicators/InBlock.gif)
149
![](/Images/OutliningIndicators/InBlock.gif)
150
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
151
![](/Images/OutliningIndicators/InBlock.gif)
152
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
153
![](/Images/OutliningIndicators/InBlock.gif)
154
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
155
![](/Images/OutliningIndicators/InBlock.gif)
156
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
157
![](/Images/OutliningIndicators/InBlock.gif)
158
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
159
![](/Images/OutliningIndicators/InBlock.gif)
160
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
161
![](/Images/OutliningIndicators/InBlock.gif)
162
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
163
![](/Images/OutliningIndicators/InBlock.gif)
164
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
165
![](/Images/OutliningIndicators/InBlock.gif)
166
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
167
![](/Images/OutliningIndicators/InBlock.gif)
168
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
169
![](/Images/OutliningIndicators/InBlock.gif)
170
![](/Images/OutliningIndicators/InBlock.gif)
171
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
172
![](/Images/OutliningIndicators/InBlock.gif)
173
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
174
![](/Images/OutliningIndicators/InBlock.gif)
175
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
176
![](/Images/OutliningIndicators/InBlock.gif)
177
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
178
![](/Images/OutliningIndicators/InBlock.gif)
179
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
180
![](/Images/OutliningIndicators/InBlock.gif)
181
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
182
![](/Images/OutliningIndicators/InBlock.gif)
183
![](/Images/OutliningIndicators/InBlock.gif)
184
![](/Images/OutliningIndicators/InBlock.gif)
185
![](/Images/OutliningIndicators/InBlock.gif)
186
![](/Images/OutliningIndicators/InBlock.gif)
187
![](/Images/OutliningIndicators/InBlock.gif)
188
![](/Images/OutliningIndicators/InBlock.gif)
189
![](/Images/OutliningIndicators/InBlock.gif)
190
![](/Images/OutliningIndicators/InBlock.gif)
191
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
192
![](/Images/OutliningIndicators/InBlock.gif)
193
![](/Images/OutliningIndicators/InBlock.gif)
194
![](/Images/OutliningIndicators/InBlock.gif)
195
![](/Images/OutliningIndicators/InBlock.gif)
196
![](/Images/OutliningIndicators/InBlock.gif)
197
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
198
![](/Images/OutliningIndicators/InBlock.gif)
199
![](/Images/OutliningIndicators/InBlock.gif)
200
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
201
![](/Images/OutliningIndicators/InBlock.gif)
202
![](/Images/OutliningIndicators/InBlock.gif)
203
![](/Images/OutliningIndicators/InBlock.gif)
204
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
205
![](/Images/OutliningIndicators/InBlock.gif)
206
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
207
![](/Images/OutliningIndicators/InBlock.gif)
208
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
209
![](/Images/OutliningIndicators/InBlock.gif)
210
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
211
![](/Images/OutliningIndicators/InBlock.gif)
212
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
213
![](/Images/OutliningIndicators/InBlock.gif)
214
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
215
![](/Images/OutliningIndicators/InBlock.gif)
216
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
217
![](/Images/OutliningIndicators/InBlock.gif)
218
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
219
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
220
![](/Images/OutliningIndicators/InBlock.gif)
221
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
222
![](/Images/OutliningIndicators/InBlock.gif)
223
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
224
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
225
![](/Images/OutliningIndicators/InBlock.gif)
226
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
227
![](/Images/OutliningIndicators/InBlock.gif)
228
![](/Images/OutliningIndicators/InBlock.gif)
229
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
230
![](/Images/OutliningIndicators/InBlock.gif)
231
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
232
![](/Images/OutliningIndicators/InBlock.gif)
233
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
234
![](/Images/OutliningIndicators/InBlock.gif)
235
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
379
![](/Images/OutliningIndicators/InBlock.gif)
380
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
381
![](/Images/OutliningIndicators/InBlock.gif)
382
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
383
![](/Images/OutliningIndicators/InBlock.gif)
384
![](/Images/OutliningIndicators/InBlock.gif)
385
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
386
![](/Images/OutliningIndicators/InBlock.gif)
387
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
388
![](/Images/OutliningIndicators/InBlock.gif)
389
![](/Images/OutliningIndicators/InBlock.gif)
390
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
391
![](/Images/OutliningIndicators/InBlock.gif)
392
![](/Images/OutliningIndicators/InBlock.gif)
393
![](/Images/OutliningIndicators/InBlock.gif)
394
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
395
![](/Images/OutliningIndicators/InBlock.gif)
396
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
397
![](/Images/OutliningIndicators/InBlock.gif)
398
![](/Images/OutliningIndicators/InBlock.gif)
399
![](/Images/OutliningIndicators/InBlock.gif)
400
![](/Images/OutliningIndicators/InBlock.gif)
401
![](/Images/OutliningIndicators/InBlock.gif)
402
![](/Images/OutliningIndicators/InBlock.gif)
403
![](/Images/OutliningIndicators/InBlock.gif)
404
![](/Images/OutliningIndicators/InBlock.gif)
405
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
406
![](/Images/OutliningIndicators/InBlock.gif)
407
![](/Images/OutliningIndicators/InBlock.gif)
408
![](/Images/OutliningIndicators/InBlock.gif)
409
![](/Images/OutliningIndicators/InBlock.gif)
410
![](/Images/OutliningIndicators/InBlock.gif)
411
![](/Images/OutliningIndicators/InBlock.gif)
412
![](/Images/OutliningIndicators/InBlock.gif)
413
![](/Images/OutliningIndicators/InBlock.gif)
414
![](/Images/OutliningIndicators/InBlock.gif)
415
![](/Images/OutliningIndicators/InBlock.gif)
416
![](/Images/OutliningIndicators/InBlock.gif)
417
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
418
![](/Images/OutliningIndicators/InBlock.gif)
419
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
420
![](/Images/OutliningIndicators/InBlock.gif)
421
![](/Images/OutliningIndicators/InBlock.gif)
422
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
423
![](/Images/OutliningIndicators/InBlock.gif)
424
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
425
![](/Images/OutliningIndicators/InBlock.gif)
426
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
427
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
428
![](/Images/OutliningIndicators/InBlock.gif)
429
![](/Images/OutliningIndicators/InBlock.gif)
430
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
431
![](/Images/OutliningIndicators/InBlock.gif)
432
![](/Images/OutliningIndicators/InBlock.gif)
433
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
434
![](/Images/OutliningIndicators/InBlock.gif)
435
![](/Images/OutliningIndicators/InBlock.gif)
436
![](/Images/OutliningIndicators/InBlock.gif)
437
![](/Images/OutliningIndicators/InBlock.gif)
438
![](/Images/OutliningIndicators/InBlock.gif)
439
![](/Images/OutliningIndicators/InBlock.gif)
440
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
441
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
442
![](/Images/OutliningIndicators/None.gif)
放在首页一天,谢谢。