Initializing the DomainProjectPicker dialog
One of my goals for the TFS Administration Tool 2.0 CTP was to improve the connectivity experience of the tool. To achieve that I wanted to allow users to connect to multiple Team Foundation Servers at the same time, and to allow users to connect only to a subset of team projects from a particular Team Foundation Server.
The tool was already using the DomainProjectPicker dialog but I had to make minor changes in the code in order to allow users to select a subset of team projects. Soon I got to the point where I wanted to initialize the DomainProjectPicker dialog with the team projects to which the user was already connected.
With the help of the documentation and this MSDN forum thread I have implemented my initialization logic. I started testing the new connectivity experience and I noticed that it worked fine with my Team Foundation Server 2005 and Team Foundation Server 2008 servers but it did not work with my Team Foundation Server 2010 Beta 2 server. That seemed like the right time to switch my “developer” hat to my “escalation engineer” hat.
In order to make sure that it is not something specific to Team Foundation Server 2010 Beta 2, I checked if the dialog works as expected in Team Explorer 2008. The fact that the dialog worked fine from Team Explorer 2008 meant that I was doing something wrong. In order to take a closer look at the DomainProjectPicker dialog in Team Explorer 2008, I have attached WinDbg (comes with Debugging Tools for Windows) to devenv.exe.
After I have loaded the SOS debugging extension I have taken a look at the managed callstack:
1: 0:000> !clrstack
2: OS Thread Id: 0x24f8 (0)
3: ESP EIP
4: 0026eab4 77a864f4 [InlinedCallFrame: 0026eab4] System.Windows.Forms.UnsafeNativeMethods.WaitMessage()
5: 0026eab0 53cbf270 System.Windows.Forms.Application+ThreadContext.LocalModalMessageLoop(System.Windows.Forms.Form)
6: 0026eb2c 537a87c8 System.Windows.Forms.Application+ThreadContext.RunMessageLoopInner(Int32, System.Windows.Forms.ApplicationContext)
7: 0026eb80 537a85a1 System.Windows.Forms.Application+ThreadContext.RunMessageLoop(Int32, System.Windows.Forms.ApplicationContext)
8: 0026ebb0 53cbde17 System.Windows.Forms.Application.RunDialog(System.Windows.Forms.Form)
9: 0026ebc4 53cf2618 System.Windows.Forms.Form.ShowDialog(System.Windows.Forms.IWin32Window)
10: 0026ec50 093c8a70 Microsoft.VisualStudio.TeamFoundation.VsipHost+VsipHostWrapper.ShowModalDialog(System.Windows.Forms.Form, System.Windows.Forms.IWin32Window, Boolean)
11: 0026ec64 5db69f59 Microsoft.TeamFoundation.Client.UIHost.ShowModalDialog(System.Windows.Forms.Form, System.Windows.Forms.IWin32Window)
12: 0026eca0 5db6d240 Microsoft.TeamFoundation.Client.BaseDialog.ShowDialog()
13: 0026ecac 5b35585b Microsoft.TeamFoundation.Proxy.DomainProjectPicker.ShowDialog()
14: 0026ecc0 093c8783 Microsoft.VisualStudio.TeamFoundation.PortfolioExplorer.LaunchPickerDialog(Boolean, Boolean)
15: 0026ed10 093c861f Microsoft.VisualStudio.TeamFoundation.PortfolioExplorer.OnAddExistingTeamProject(System.Object, System.EventArgs)
16: 0026ed40 655e99a2 Microsoft.VisualStudio.Shell.OleMenuCommand.Invoke(System.Object, IntPtr)
17: 0026ed6c 6561aaef Microsoft.VisualStudio.Shell.OleMenuCommandService.Microsoft.VisualStudio.OLE.Interop.IOleCommandTarget.Exec(System.Guid ByRef, UInt32, UInt32, IntPtr, IntPtr)
18: 0026ed98 655e406c Microsoft.VisualStudio.Shell.Package.Microsoft.VisualStudio.OLE.Interop.IOleCommandTarget.Exec(System.Guid ByRef, UInt32, UInt32, IntPtr, IntPtr)
19: 0026ef78 5b500256 [GCFrame: 0026ef78]
20: 0026f0d4 5b500256 [ComMethodFrame: 0026f0d4]
Line 13 of the output has confirmed that this is the managed callstack which displays the DomainProjectPicker dialog so I checked the parameters of the methods:
1: 0:000> !clrstack -p
2: OS Thread Id: 0x24f8 (0)
3: ESP EIP
4: 0026eab4 77a864f4 [InlinedCallFrame: 0026eab4] System.Windows.Forms.UnsafeNativeMethods.WaitMessage()
5: 0026eab0 53cbf270 System.Windows.Forms.Application+ThreadContext.LocalModalMessageLoop(System.Windows.Forms.Form)
6: PARAMETERS:
7: this = 0x0320787c
8: form = 0x03922c68
9:
10: 0026eb2c 537a87c8 System.Windows.Forms.Application+ThreadContext.RunMessageLoopInner(Int32, System.Windows.Forms.ApplicationContext)
11: PARAMETERS:
12: this = 0x0320787c
13: reason = 0x00000004
14: context = 0x03988bc0
15:
16: 0026eb80 537a85a1 System.Windows.Forms.Application+ThreadContext.RunMessageLoop(Int32, System.Windows.Forms.ApplicationContext)
17: PARAMETERS:
18: this = <no data>
19: reason = <no data>
20: context = <no data>
21:
22: 0026ebb0 53cbde17 System.Windows.Forms.Application.RunDialog(System.Windows.Forms.Form)
23: PARAMETERS:
24: form = <no data>
25:
26: 0026ebc4 53cf2618 System.Windows.Forms.Form.ShowDialog(System.Windows.Forms.IWin32Window)
27: PARAMETERS:
28: this = 0x03922c68
29: owner = <no data>
30:
31: 0026ec50 093c8a70 Microsoft.VisualStudio.TeamFoundation.VsipHost+VsipHostWrapper.ShowModalDialog(System.Windows.Forms.Form, System.Windows.Forms.IWin32Window, Boolean)
32: PARAMETERS:
33: this = <no data>
34: form = <no data>
35: parent = <no data>
36: showHelpButton = <no data>
37:
38: 0026ec64 5db69f59 Microsoft.TeamFoundation.Client.UIHost.ShowModalDialog(System.Windows.Forms.Form, System.Windows.Forms.IWin32Window)
39: PARAMETERS:
40: form = <no data>
41: parent = <no data>
42:
43: 0026eca0 5db6d240 Microsoft.TeamFoundation.Client.BaseDialog.ShowDialog()
44: PARAMETERS:
45: this = <no data>
46:
47: 0026ecac 5b35585b Microsoft.TeamFoundation.Proxy.DomainProjectPicker.ShowDialog()
48: PARAMETERS:
49: this = 0x03922c58
50:
51: 0026ecc0 093c8783 Microsoft.VisualStudio.TeamFoundation.PortfolioExplorer.LaunchPickerDialog(Boolean, Boolean)
52: PARAMETERS:
53: this = 0x03201ed4
54: initWithDefaultServer = <no data>
55: chooseProjectMode = 0x00000001
56:
57: 0026ed10 093c861f Microsoft.VisualStudio.TeamFoundation.PortfolioExplorer.OnAddExistingTeamProject(System.Object, System.EventArgs)
58: PARAMETERS:
59: this = 0x03201ed4
60: sender = <no data>
61: e = <no data>
62:
63: 0026ed40 655e99a2 Microsoft.VisualStudio.Shell.OleMenuCommand.Invoke(System.Object, IntPtr)
64: PARAMETERS:
65: this = <no data>
66: inArg = <no data>
67: outArg = <no data>
68:
69: 0026ed6c 6561aaef Microsoft.VisualStudio.Shell.OleMenuCommandService.Microsoft.VisualStudio.OLE.Interop.IOleCommandTarget.Exec(System.Guid ByRef, UInt32, UInt32, IntPtr, IntPtr)
70: PARAMETERS:
71: this = <no data>
72: guidGroup = <no data>
73: nCmdId = <no data>
74: nCmdExcept = <no data>
75: pIn = <no data>
76: vOut = <no data>
77:
78: 0026ed98 655e406c Microsoft.VisualStudio.Shell.Package.Microsoft.VisualStudio.OLE.Interop.IOleCommandTarget.Exec(System.Guid ByRef, UInt32, UInt32, IntPtr, IntPtr)
79: PARAMETERS:
80: this = <no data>
81: guidGroup = <no data>
82: nCmdId = <no data>
83: nCmdExcept = <no data>
84: pIn = <no data>
85: vOut = <no data>
86:
87: 0026ef78 5b500256 [GCFrame: 0026ef78]
88: 0026f0d4 5b500256 [ComMethodFrame: 0026f0d4]
I got lucky with !clrstack and I could get the address (0x03922c58, line 49) of the DomainProjectPicker dialog. I have used !do (DumpObj) to view the DomainProjectPicker and DomainProjectPickerInternal objects. The DomainProjectPickerInternal class had the m_defaultSelectedProjects (line 550) property that stored the SortedList with the default team project selection.
1: 0:000> !do 0x03922c58
2: Name: Microsoft.TeamFoundation.Proxy.DomainProjectPicker
3: MethodTable: 5b37c4bc
4: EEClass: 5b186740
5: Size: 16(0x10) bytes
6: (C:\Windows\assembly\GAC_32\Microsoft.TeamFoundation\9.0.0.0__b03f5f7f11d50a3a\Microsoft.TeamFoundation.dll)
7: Fields:
8: MT Field Offset Type VT Attr Value Name
9: 5b37ade8 4000499 4 ...ectPickerInternal 0 instance 03922c68 m_picker
10: 568beadc 400049a 8 System.Boolean 1 instance 0 m_disposed
11: 0:000> !do 03922c68
12: Name: Microsoft.TeamFoundation.Proxy.DomainProjectPickerInternal
13: MethodTable: 5b37ade8
14: EEClass: 5b186420
15: Size: 428(0x1ac) bytes
16: (C:\Windows\assembly\GAC_32\Microsoft.TeamFoundation\9.0.0.0__b03f5f7f11d50a3a\Microsoft.TeamFoundation.dll)
17: Fields:
18: MT Field Offset Type VT Attr Value Name
19: 568b84dc 400018a 4 System.Object 0 instance 00000000 __identity
20: 56045dec 40008cc 8 ...ponentModel.ISite 0 instance 00000000 site
21: 560600a0 40008cd c ....EventHandlerList 0 instance 0397f074 events
22: 568b84dc 40008cb 104 System.Object 0 shared static EventDisposed
23: >> Domain:Value 0049cff0:03201e0c 05cc68b8:NotInit <<
24: 537f0e14 4001122 10 ...ntrolNativeWindow 0 instance 03922e24 window
25: 537ef734 4001123 14 ...ows.Forms.Control 0 instance 00000000 parent
26: 537ef734 4001124 18 ...ows.Forms.Control 0 instance 00000000 reflectParent
27: 537f154c 4001125 1c ...orms.CreateParams 0 instance 03922e9c createParams
28: 568bab0c 4001126 34 System.Int32 1 instance 380 x
29: 568bab0c 4001127 38 System.Int32 1 instance 198 y
30: 568bab0c 4001128 3c System.Int32 1 instance 467 width
31: 568bab0c 4001129 40 System.Int32 1 instance 382 height
32: 568bab0c 400112a 44 System.Int32 1 instance 461 clientWidth
33: 568bab0c 400112b 48 System.Int32 1 instance 354 clientHeight
34: 568bab0c 400112c 4c System.Int32 1 instance 17432623 state
35: 568bab0c 400112d 50 System.Int32 1 instance 2124 state2
36: 53f3faf8 400112e 54 System.Int32 1 instance 267011 controlStyle
37: 568bab0c 400112f 58 System.Int32 1 instance -1 tabIndex
38: 568b88c0 4001130 20 System.String 0 instance 00000000 text
39: 568bb3e0 4001131 62 System.Byte 1 instance 0 layoutSuspendCount
40: 568bb3e0 4001132 63 System.Byte 1 instance 3 requiredScaling
41: 537f0dbc 4001133 24 ...rms.PropertyStore 0 instance 03922e14 propertyStore
42: 537f6954 4001134 28 ...s+TRACKMOUSEEVENT 0 instance 039f38c4 trackMouseEvent
43: 568bbc5c 4001135 60 System.Int16 1 instance 0 updateCount
44: 537f45d4 4001136 2c ...s.LayoutEventArgs 0 instance 0398d8e0 cachedLayoutEventArgs
45: 568c5d0c 4001137 30 ...Collections.Queue 0 instance 0398fc08 threadCallbackList
46: 568bab0c 4001138 5c System.Int32 1 instance 17 uiCuesState
47: 5605aecc 40010a5 184 ...stics.TraceSwitch 0 shared static ControlKeyboardRouting
48: >> Domain:Value 0049cff0:00000000 05cc68b8:NotInit <<
49: 5605aecc 40010a6 188 ...stics.TraceSwitch 0 shared static PaletteTracing
50: >> Domain:Value 0049cff0:00000000 05cc68b8:NotInit <<
51: 5605aecc 40010a7 18c ...stics.TraceSwitch 0 shared static FocusTracing
52: >> Domain:Value 0049cff0:00000000 05cc68b8:NotInit <<
53: 56060050 40010a8 190 ...ics.BooleanSwitch 0 shared static BufferPinkRect
54: >> Domain:Value 0049cff0:00000000 05cc68b8:NotInit <<
55: 568bab0c 40010a9 99c System.Int32 1 shared static WM_GETCONTROLNAME
56: >> Domain:Value 0049cff0:49580 05cc68b8:NotInit <<
57: 568bab0c 40010aa 9a0 System.Int32 1 shared static WM_GETCONTROLTYPE
58: >> Domain:Value 0049cff0:49581 05cc68b8:NotInit <<
59: 568b84dc 40010ab 194 System.Object 0 shared static EventAutoSizeChanged
60: >> Domain:Value 0049cff0:031e4cf8 05cc68b8:NotInit <<
61: 568b84dc 40010ac 198 System.Object 0 shared static EventKeyDown
62: >> Domain:Value 0049cff0:031e4d04 05cc68b8:NotInit <<
63: 568b84dc 40010ad 19c System.Object 0 shared static EventKeyPress
64: >> Domain:Value 0049cff0:031e4d10 05cc68b8:NotInit <<
65: 568b84dc 40010ae 1a0 System.Object 0 shared static EventKeyUp
66: >> Domain:Value 0049cff0:031e4d1c 05cc68b8:NotInit <<
67: 568b84dc 40010af 1a4 System.Object 0 shared static EventMouseDown
68: >> Domain:Value 0049cff0:031e4d28 05cc68b8:NotInit <<
69: 568b84dc 40010b0 1a8 System.Object 0 shared static EventMouseEnter
70: >> Domain:Value 0049cff0:031e4d34 05cc68b8:NotInit <<
71: 568b84dc 40010b1 1ac System.Object 0 shared static EventMouseLeave
72: >> Domain:Value 0049cff0:031e4d40 05cc68b8:NotInit <<
73: 568b84dc 40010b2 1b0 System.Object 0 shared static EventMouseHover
74: >> Domain:Value 0049cff0:031e4d4c 05cc68b8:NotInit <<
75: 568b84dc 40010b3 1b4 System.Object 0 shared static EventMouseMove
76: >> Domain:Value 0049cff0:031e4d58 05cc68b8:NotInit <<
77: 568b84dc 40010b4 1b8 System.Object 0 shared static EventMouseUp
78: >> Domain:Value 0049cff0:031e4d64 05cc68b8:NotInit <<
79: 568b84dc 40010b5 1bc System.Object 0 shared static EventMouseWheel
80: >> Domain:Value 0049cff0:031e4d70 05cc68b8:NotInit <<
81: 568b84dc 40010b6 1c0 System.Object 0 shared static EventClick
82: >> Domain:Value 0049cff0:031e4d7c 05cc68b8:NotInit <<
83: 568b84dc 40010b7 1c4 System.Object 0 shared static EventClientSize
84: >> Domain:Value 0049cff0:031e4d88 05cc68b8:NotInit <<
85: 568b84dc 40010b8 1c8 System.Object 0 shared static EventDoubleClick
86: >> Domain:Value 0049cff0:031e4d94 05cc68b8:NotInit <<
87: 568b84dc 40010b9 1cc System.Object 0 shared static EventMouseClick
88: >> Domain:Value 0049cff0:031e4da0 05cc68b8:NotInit <<
89: 568b84dc 40010ba 1d0 System.Object 0 shared static EventMouseDoubleClick
90: >> Domain:Value 0049cff0:031e4dac 05cc68b8:NotInit <<
91: 568b84dc 40010bb 1d4 System.Object 0 shared static EventMouseCaptureChanged
92: >> Domain:Value 0049cff0:031e4db8 05cc68b8:NotInit <<
93: 568b84dc 40010bc 1d8 System.Object 0 shared static EventMove
94: >> Domain:Value 0049cff0:031e4dc4 05cc68b8:NotInit <<
95: 568b84dc 40010bd 1dc System.Object 0 shared static EventResize
96: >> Domain:Value 0049cff0:031e4dd0 05cc68b8:NotInit <<
97: 568b84dc 40010be 1e0 System.Object 0 shared static EventLayout
98: >> Domain:Value 0049cff0:031e4ddc 05cc68b8:NotInit <<
99: 568b84dc 40010bf 1e4 System.Object 0 shared static EventGotFocus
100: >> Domain:Value 0049cff0:031e4de8 05cc68b8:NotInit <<
101: 568b84dc 40010c0 1e8 System.Object 0 shared static EventLostFocus
102: >> Domain:Value 0049cff0:031e4df4 05cc68b8:NotInit <<
103: 568b84dc 40010c1 1ec System.Object 0 shared static EventEnabledChanged
104: >> Domain:Value 0049cff0:031e4e00 05cc68b8:NotInit <<
105: 568b84dc 40010c2 1f0 System.Object 0 shared static EventEnter
106: >> Domain:Value 0049cff0:031e4e0c 05cc68b8:NotInit <<
107: 568b84dc 40010c3 1f4 System.Object 0 shared static EventLeave
108: >> Domain:Value 0049cff0:031e4e18 05cc68b8:NotInit <<
109: 568b84dc 40010c4 1f8 System.Object 0 shared static EventHandleCreated
110: >> Domain:Value 0049cff0:031e4e24 05cc68b8:NotInit <<
111: 568b84dc 40010c5 1fc System.Object 0 shared static EventHandleDestroyed
112: >> Domain:Value 0049cff0:031e4e30 05cc68b8:NotInit <<
113: 568b84dc 40010c6 200 System.Object 0 shared static EventVisibleChanged
114: >> Domain:Value 0049cff0:031e4e3c 05cc68b8:NotInit <<
115: 568b84dc 40010c7 204 System.Object 0 shared static EventControlAdded
116: >> Domain:Value 0049cff0:031e4e48 05cc68b8:NotInit <<
117: 568b84dc 40010c8 208 System.Object 0 shared static EventControlRemoved
118: >> Domain:Value 0049cff0:031e4e54 05cc68b8:NotInit <<
119: 568b84dc 40010c9 20c System.Object 0 shared static EventChangeUICues
120: >> Domain:Value 0049cff0:031e4e60 05cc68b8:NotInit <<
121: 568b84dc 40010ca 210 System.Object 0 shared static EventSystemColorsChanged
122: >> Domain:Value 0049cff0:031e4e6c 05cc68b8:NotInit <<
123: 568b84dc 40010cb 214 System.Object 0 shared static EventValidating
124: >> Domain:Value 0049cff0:031e4e78 05cc68b8:NotInit <<
125: 568b84dc 40010cc 218 System.Object 0 shared static EventValidated
126: >> Domain:Value 0049cff0:031e4e84 05cc68b8:NotInit <<
127: 568b84dc 40010cd 21c System.Object 0 shared static EventStyleChanged
128: >> Domain:Value 0049cff0:031e4e90 05cc68b8:NotInit <<
129: 568b84dc 40010ce 220 System.Object 0 shared static EventImeModeChanged
130: >> Domain:Value 0049cff0:031e4e9c 05cc68b8:NotInit <<
131: 568b84dc 40010cf 224 System.Object 0 shared static EventHelpRequested
132: >> Domain:Value 0049cff0:031e4ea8 05cc68b8:NotInit <<
133: 568b84dc 40010d0 228 System.Object 0 shared static EventPaint
134: >> Domain:Value 0049cff0:031e4eb4 05cc68b8:NotInit <<
135: 568b84dc 40010d1 22c System.Object 0 shared static EventInvalidated
136: >> Domain:Value 0049cff0:031e4ec0 05cc68b8:NotInit <<
137: 568b84dc 40010d2 230 System.Object 0 shared static EventQueryContinueDrag
138: >> Domain:Value 0049cff0:031e4ecc 05cc68b8:NotInit <<
139: 568b84dc 40010d3 234 System.Object 0 shared static EventGiveFeedback
140: >> Domain:Value 0049cff0:031e4ed8 05cc68b8:NotInit <<
141: 568b84dc 40010d4 238 System.Object 0 shared static EventDragEnter
142: >> Domain:Value 0049cff0:031e4ee4 05cc68b8:NotInit <<
143: 568b84dc 40010d5 23c System.Object 0 shared static EventDragLeave
144: >> Domain:Value 0049cff0:031e4ef0 05cc68b8:NotInit <<
145: 568b84dc 40010d6 240 System.Object 0 shared static EventDragOver
146: >> Domain:Value 0049cff0:031e4efc 05cc68b8:NotInit <<
147: 568b84dc 40010d7 244 System.Object 0 shared static EventDragDrop
148: >> Domain:Value 0049cff0:031e4f08 05cc68b8:NotInit <<
149: 568b84dc 40010d8 248 System.Object 0 shared static EventQueryAccessibilityHelp
150: >> Domain:Value 0049cff0:031e4f14 05cc68b8:NotInit <<
151: 568b84dc 40010d9 24c System.Object 0 shared static EventBackgroundImage
152: >> Domain:Value 0049cff0:031e4f20 05cc68b8:NotInit <<
153: 568b84dc 40010da 250 System.Object 0 shared static EventBackgroundImageLayout
154: >> Domain:Value 0049cff0:031e4f2c 05cc68b8:NotInit <<
155: 568b84dc 40010db 254 System.Object 0 shared static EventBindingContext
156: >> Domain:Value 0049cff0:031e4f38 05cc68b8:NotInit <<
157: 568b84dc 40010dc 258 System.Object 0 shared static EventBackColor
158: >> Domain:Value 0049cff0:031e4f44 05cc68b8:NotInit <<
159: 568b84dc 40010dd 25c System.Object 0 shared static EventParent
160: >> Domain:Value 0049cff0:031e4f50 05cc68b8:NotInit <<
161: 568b84dc 40010de 260 System.Object 0 shared static EventVisible
162: >> Domain:Value 0049cff0:031e4f5c 05cc68b8:NotInit <<
163: 568b84dc 40010df 264 System.Object 0 shared static EventText
164: >> Domain:Value 0049cff0:031e4f68 05cc68b8:NotInit <<
165: 568b84dc 40010e0 268 System.Object 0 shared static EventTabStop
166: >> Domain:Value 0049cff0:031e4f74 05cc68b8:NotInit <<
167: 568b84dc 40010e1 26c System.Object 0 shared static EventTabIndex
168: >> Domain:Value 0049cff0:031e4f80 05cc68b8:NotInit <<
169: 568b84dc 40010e2 270 System.Object 0 shared static EventSize
170: >> Domain:Value 0049cff0:031e4f8c 05cc68b8:NotInit <<
171: 568b84dc 40010e3 274 System.Object 0 shared static EventRightToLeft
172: >> Domain:Value 0049cff0:031e4f98 05cc68b8:NotInit <<
173: 568b84dc 40010e4 278 System.Object 0 shared static EventLocation
174: >> Domain:Value 0049cff0:031e4fa4 05cc68b8:NotInit <<
175: 568b84dc 40010e5 27c System.Object 0 shared static EventForeColor
176: >> Domain:Value 0049cff0:031e4fb0 05cc68b8:NotInit <<
177: 568b84dc 40010e6 280 System.Object 0 shared static EventFont
178: >> Domain:Value 0049cff0:031e4fbc 05cc68b8:NotInit <<
179: 568b84dc 40010e7 284 System.Object 0 shared static EventEnabled
180: >> Domain:Value 0049cff0:031e4fc8 05cc68b8:NotInit <<
181: 568b84dc 40010e8 288 System.Object 0 shared static EventDock
182: >> Domain:Value 0049cff0:031e4fd4 05cc68b8:NotInit <<
183: 568b84dc 40010e9 28c System.Object 0 shared static EventCursor
184: >> Domain:Value 0049cff0:031e4fe0 05cc68b8:NotInit <<
185: 568b84dc 40010ea 290 System.Object 0 shared static EventContextMenu
186: >> Domain:Value 0049cff0:031e4fec 05cc68b8:NotInit <<
187: 568b84dc 40010eb 294 System.Object 0 shared static EventContextMenuStrip
188: >> Domain:Value 0049cff0:031e4ff8 05cc68b8:NotInit <<
189: 568b84dc 40010ec 298 System.Object 0 shared static EventCausesValidation
190: >> Domain:Value 0049cff0:031e5004 05cc68b8:NotInit <<
191: 568b84dc 40010ed 29c System.Object 0 shared static EventRegionChanged
192: >> Domain:Value 0049cff0:031e5010 05cc68b8:NotInit <<
193: 568b84dc 40010ee 2a0 System.Object 0 shared static EventMarginChanged
194: >> Domain:Value 0049cff0:031e501c 05cc68b8:NotInit <<
195: 568b84dc 40010ef 2a4 System.Object 0 shared static EventPaddingChanged
196: >> Domain:Value 0049cff0:031e5028 05cc68b8:NotInit <<
197: 568b84dc 40010f0 2a8 System.Object 0 shared static EventPreviewKeyDown
198: >> Domain:Value 0049cff0:031e5034 05cc68b8:NotInit <<
199: 568bab0c 40010f1 9a4 System.Int32 1 shared static mouseWheelMessage
200: >> Domain:Value 0049cff0:522 05cc68b8:NotInit <<
201: 568beadc 40010f2 9a8 System.Boolean 1 shared static mouseWheelRoutingNeeded
202: >> Domain:Value 0049cff0:0 05cc68b8:NotInit <<
203: 568beadc 40010f3 9ac System.Boolean 1 shared static mouseWheelInit
204: >> Domain:Value 0049cff0:1 05cc68b8:NotInit <<
205: 568bab0c 40010f4 9b0 System.Int32 1 shared static threadCallbackMessage
206: >> Domain:Value 0049cff0:49708 05cc68b8:NotInit <<
207: 568beadc 40010f5 9b4 System.Boolean 1 shared static checkForIllegalCrossThreadCalls
208: >> Domain:Value 0049cff0:0 05cc68b8:NotInit <<
209: 56895204 40010f6 2ac ...g.ContextCallback 0 shared static invokeMarshaledCallbackHelperDelegate
210: >> Domain:Value 0049cff0:03492704 05cc68b8:NotInit <<
211: 568beadc 40010f7 0 System.Boolean 1 shared TLstatic inCrossThreadSafeCall
212: >> Thread:Value 24f8:0 <<
213: 53f61f74 40010f8 4 ...ws.Forms.HelpInfo 0 shared TLstatic currentHelpInfo
214: >> Thread:Value 24f8:00000000 <<
215: 537f51ec 40010f9 2b0 ...FontHandleWrapper 0 shared static defaultFontHandleWrapper
216: >> Domain:Value 0049cff0:03466ae8 05cc68b8:NotInit <<
217: 5d2bb3f4 40010fa 2b4 System.Drawing.Font 0 shared static defaultFont
218: >> Domain:Value 0049cff0:0320bf78 05cc68b8:NotInit <<
219: 568bab0c 40010fb 9b8 System.Int32 1 shared static PropName
220: >> Domain:Value 0049cff0:0 05cc68b8:NotInit <<
221: 568bab0c 40010fc 9bc System.Int32 1 shared static PropBackBrush
222: >> Domain:Value 0049cff0:1 05cc68b8:NotInit <<
223: 568bab0c 40010fd 9c0 System.Int32 1 shared static PropFontHeight
224: >> Domain:Value 0049cff0:2 05cc68b8:NotInit <<
225: 568bab0c 40010fe 9c4 System.Int32 1 shared static PropCurrentAmbientFont
226: >> Domain:Value 0049cff0:3 05cc68b8:NotInit <<
227: 568bab0c 40010ff 9c8 System.Int32 1 shared static PropControlsCollection
228: >> Domain:Value 0049cff0:4 05cc68b8:NotInit <<
229: 568bab0c 4001100 9cc System.Int32 1 shared static PropBackColor
230: >> Domain:Value 0049cff0:5 05cc68b8:NotInit <<
231: 568bab0c 4001101 9d0 System.Int32 1 shared static PropForeColor
232: >> Domain:Value 0049cff0:6 05cc68b8:NotInit <<
233: 568bab0c 4001102 9d4 System.Int32 1 shared static PropFont
234: >> Domain:Value 0049cff0:7 05cc68b8:NotInit <<
235: 568bab0c 4001103 9d8 System.Int32 1 shared static PropBackgroundImage
236: >> Domain:Value 0049cff0:8 05cc68b8:NotInit <<
237: 568bab0c 4001104 9dc System.Int32 1 shared static PropFontHandleWrapper
238: >> Domain:Value 0049cff0:9 05cc68b8:NotInit <<
239: 568bab0c 4001105 9e0 System.Int32 1 shared static PropUserData
240: >> Domain:Value 0049cff0:10 05cc68b8:NotInit <<
241: 568bab0c 4001106 9e4 System.Int32 1 shared static PropContextMenu
242: >> Domain:Value 0049cff0:11 05cc68b8:NotInit <<
243: 568bab0c 4001107 9e8 System.Int32 1 shared static PropCursor
244: >> Domain:Value 0049cff0:12 05cc68b8:NotInit <<
245: 568bab0c 4001108 9ec System.Int32 1 shared static PropRegion
246: >> Domain:Value 0049cff0:13 05cc68b8:NotInit <<
247: 568bab0c 4001109 9f0 System.Int32 1 shared static PropRightToLeft
248: >> Domain:Value 0049cff0:14 05cc68b8:NotInit <<
249: 568bab0c 400110a 9f4 System.Int32 1 shared static PropBindings
250: >> Domain:Value 0049cff0:15 05cc68b8:NotInit <<
251: 568bab0c 400110b 9f8 System.Int32 1 shared static PropBindingManager
252: >> Domain:Value 0049cff0:16 05cc68b8:NotInit <<
253: 568bab0c 400110c 9fc System.Int32 1 shared static PropAccessibleDefaultActionDescription
254: >> Domain:Value 0049cff0:17 05cc68b8:NotInit <<
255: 568bab0c 400110d a00 System.Int32 1 shared static PropAccessibleDescription
256: >> Domain:Value 0049cff0:18 05cc68b8:NotInit <<
257: 568bab0c 400110e a04 System.Int32 1 shared static PropAccessibility
258: >> Domain:Value 0049cff0:19 05cc68b8:NotInit <<
259: 568bab0c 400110f a08 System.Int32 1 shared static PropNcAccessibility
260: >> Domain:Value 0049cff0:20 05cc68b8:NotInit <<
261: 568bab0c 4001110 a0c System.Int32 1 shared static PropAccessibleName
262: >> Domain:Value 0049cff0:21 05cc68b8:NotInit <<
263: 568bab0c 4001111 a10 System.Int32 1 shared static PropAccessibleRole
264: >> Domain:Value 0049cff0:22 05cc68b8:NotInit <<
265: 568bab0c 4001112 a14 System.Int32 1 shared static PropPaintingException
266: >> Domain:Value 0049cff0:23 05cc68b8:NotInit <<
267: 568bab0c 4001113 a18 System.Int32 1 shared static PropActiveXImpl
268: >> Domain:Value 0049cff0:24 05cc68b8:NotInit <<
269: 568bab0c 4001114 a1c System.Int32 1 shared static PropControlVersionInfo
270: >> Domain:Value 0049cff0:25 05cc68b8:NotInit <<
271: 568bab0c 4001115 a20 System.Int32 1 shared static PropBackgroundImageLayout
272: >> Domain:Value 0049cff0:26 05cc68b8:NotInit <<
273: 568bab0c 4001116 a24 System.Int32 1 shared static PropAccessibleHelpProvider
274: >> Domain:Value 0049cff0:27 05cc68b8:NotInit <<
275: 568bab0c 4001117 a28 System.Int32 1 shared static PropContextMenuStrip
276: >> Domain:Value 0049cff0:28 05cc68b8:NotInit <<
277: 568bab0c 4001118 a2c System.Int32 1 shared static PropAutoScrollOffset
278: >> Domain:Value 0049cff0:29 05cc68b8:NotInit <<
279: 568bab0c 4001119 a30 System.Int32 1 shared static PropUseCompatibleTextRendering
280: >> Domain:Value 0049cff0:30 05cc68b8:NotInit <<
281: 568bab0c 400111a a34 System.Int32 1 shared static PropImeWmCharsToIgnore
282: >> Domain:Value 0049cff0:31 05cc68b8:NotInit <<
283: 568bab0c 400111b a38 System.Int32 1 shared static PropImeMode
284: >> Domain:Value 0049cff0:32 05cc68b8:NotInit <<
285: 568bab0c 400111c a3c System.Int32 1 shared static PropDisableImeModeChangedCount
286: >> Domain:Value 0049cff0:33 05cc68b8:NotInit <<
287: 568bab0c 400111d a40 System.Int32 1 shared static PropLastCanEnableIme
288: >> Domain:Value 0049cff0:34 05cc68b8:NotInit <<
289: 568bab0c 400111e a44 System.Int32 1 shared static PropCacheTextCount
290: >> Domain:Value 0049cff0:35 05cc68b8:NotInit <<
291: 568bab0c 400111f a48 System.Int32 1 shared static PropCacheTextField
292: >> Domain:Value 0049cff0:36 05cc68b8:NotInit <<
293: 568bab0c 4001120 a4c System.Int32 1 shared static PropAmbientPropertiesService
294: >> Domain:Value 0049cff0:37 05cc68b8:NotInit <<
295: 568beadc 4001121 a50 System.Boolean 1 shared static UseCompatibleTextRenderingDefault
296: >> Domain:Value 0049cff0:0 05cc68b8:NotInit <<
297: 537f5664 4001139 a54 System.Int32 1 shared static propagatingImeMode
298: >> Domain:Value 0049cff0:-1 05cc68b8:NotInit <<
299: 568beadc 400113a a58 System.Boolean 1 shared static ignoreWmImeNotify
300: >> Domain:Value 0049cff0:0 05cc68b8:NotInit <<
301: 5d2bcddc 40011d7 78 System.Drawing.Size 1 instance 03922ce0 userAutoScrollMinSize
302: 5d2bb264 40011d8 80 ...Drawing.Rectangle 1 instance 03922ce8 displayRect
303: 5d2bcddc 40011d9 90 System.Drawing.Size 1 instance 03922cf8 scrollMargin
304: 5d2bcddc 40011da 98 System.Drawing.Size 1 instance 03922d00 requestedScrollMargin
305: 5d2bbd7c 40011db a0 System.Drawing.Point 1 instance 03922d08 scrollPosition
306: 53f578e4 40011dc 64 ...+DockPaddingEdges 0 instance 00000000 dockPadding
307: 568bab0c 40011dd 70 System.Int32 1 instance 0 scrollState
308: 537f4580 40011de 68 ...VScrollProperties 0 instance 03922ef8 verticalScroll
309: 537f44d8 40011df 6c ...HScrollProperties 0 instance 03922ed0 horizontalScroll
310: 568beadc 40011e1 74 System.Boolean 1 instance 0 resetRTLHScrollValue
311: 5605aecc 40011d6 2f0 ...stics.TraceSwitch 0 shared static AutoScrolling
312: >> Domain:Value 0049cff0:00000000 05cc68b8:NotInit <<
313: 568b84dc 40011e0 2f4 System.Object 0 shared static EVENT_SCROLL
314: >> Domain:Value 0049cff0:032074c4 05cc68b8:NotInit <<
315: 537ef734 40011e8 a8 ...ows.Forms.Control 0 instance 03923d40 activeControl
316: 537ef734 40011e9 ac ...ows.Forms.Control 0 instance 03923d40 focusedControl
317: 537ef734 40011ea b0 ...ows.Forms.Control 0 instance 00000000 unvalidatedControl
318: 53f3acf8 40011eb b8 System.Int32 1 instance -1 autoValidate
319: 5689914c 40011ec b4 System.EventHandler 0 instance 00000000 autoValidateChanged
320: 5d2bbd1c 40011ed c0 System.Drawing.SizeF 1 instance 03922d28 autoScaleDimensions
321: 5d2bbd1c 40011ee c8 System.Drawing.SizeF 1 instance 03922d30 currentAutoScaleDimensions
322: 537fb014 40011ef bc System.Int32 1 instance 1 autoScaleMode
323: 56060130 40011f0 d0 ...lized.BitVector32 1 instance 03922d38 state
324: 568bab0c 40011f1 ad0 System.Int32 1 shared static stateScalingNeededOnLayout
325: >> Domain:Value 0049cff0:1 05cc68b8:NotInit <<
326: 568bab0c 40011f2 ad4 System.Int32 1 shared static stateValidating
327: >> Domain:Value 0049cff0:2 05cc68b8:NotInit <<
328: 568bab0c 40011f3 ad8 System.Int32 1 shared static stateProcessingMnemonic
329: >> Domain:Value 0049cff0:4 05cc68b8:NotInit <<
330: 568bab0c 40011f4 adc System.Int32 1 shared static stateScalingChild
331: >> Domain:Value 0049cff0:8 05cc68b8:NotInit <<
332: 568bab0c 40011f5 ae0 System.Int32 1 shared static stateParentChanged
333: >> Domain:Value 0049cff0:16 05cc68b8:NotInit <<
334: 568bab0c 40011f6 ae4 System.Int32 1 shared static PropAxContainer
335: >> Domain:Value 0049cff0:38 05cc68b8:NotInit <<
336: 56060130 4001e89 104 ...lized.BitVector32 1 instance 03922d6c formState
337: 56060130 4001e8a 108 ...lized.BitVector32 1 instance 03922d70 formStateEx
338: 5d2bbdf0 4001e8b d4 System.Drawing.Icon 0 instance 00000000 icon
339: 5d2bbdf0 4001e8c d8 System.Drawing.Icon 0 instance 00000000 smallIcon
340: 5d2bcddc 4001e8d 10c System.Drawing.Size 1 instance 03922d74 autoScaleBaseSize
341: 5d2bcddc 4001e8e 114 System.Drawing.Size 1 instance 03922d7c minAutoSize
342: 5d2bb264 4001e8f 11c ...Drawing.Rectangle 1 instance 03922d84 restoredWindowBounds
343: 53f3db58 4001e90 f4 System.Int32 1 instance 0 restoredWindowBoundsSpecified
344: 537f7a04 4001e91 f8 System.Int32 1 instance 0 dialogResult
345: 537f4a5c 4001e92 dc ...s.Forms.MdiClient 0 instance 00000000 ctlClient
346: 537f0ec4 4001e93 e0 ...orms.NativeWindow 0 instance 03988a28 ownerWindow
347: 568b88c0 4001e94 e4 System.String 0 instance 039404ac userWindowText
348: 568b88c0 4001e95 e8 System.String 0 instance 00000000 securityZone
349: 568b88c0 4001e96 ec System.String 0 instance 00000000 securitySite
350: 568beadc 4001e97 100 System.Boolean 1 instance 0 rightToLeftLayout
351: 5d2bb264 4001e98 12c ...Drawing.Rectangle 1 instance 03922d94 restoreBounds
352: 53f3e81c 4001e99 fc System.Int32 1 instance 0 closeReason
353: 537fc390 4001e9a f0 ...sualStyleRenderer 0 instance 00000000 sizeGripRenderer
354: 568b84dc 4001e2e b64 System.Object 0 shared static EVENT_ACTIVATED
355: >> Domain:Value 0049cff0:03461890 05cc68b8:NotInit <<
356: 568b84dc 4001e2f b68 System.Object 0 shared static EVENT_CLOSING
357: >> Domain:Value 0049cff0:0346189c 05cc68b8:NotInit <<
358: 568b84dc 4001e30 b6c System.Object 0 shared static EVENT_CLOSED
359: >> Domain:Value 0049cff0:034618a8 05cc68b8:NotInit <<
360: 568b84dc 4001e31 b70 System.Object 0 shared static EVENT_FORMCLOSING
361: >> Domain:Value 0049cff0:034618b4 05cc68b8:NotInit <<
362: 568b84dc 4001e32 b74 System.Object 0 shared static EVENT_FORMCLOSED
363: >> Domain:Value 0049cff0:034618c0 05cc68b8:NotInit <<
364: 568b84dc 4001e33 b78 System.Object 0 shared static EVENT_DEACTIVATE
365: >> Domain:Value 0049cff0:034618cc 05cc68b8:NotInit <<
366: 568b84dc 4001e34 b7c System.Object 0 shared static EVENT_LOAD
367: >> Domain:Value 0049cff0:034618d8 05cc68b8:NotInit <<
368: 568b84dc 4001e35 b80 System.Object 0 shared static EVENT_MDI_CHILD_ACTIVATE
369: >> Domain:Value 0049cff0:034618e4 05cc68b8:NotInit <<
370: 568b84dc 4001e36 b84 System.Object 0 shared static EVENT_INPUTLANGCHANGE
371: >> Domain:Value 0049cff0:034618f0 05cc68b8:NotInit <<
372: 568b84dc 4001e37 b88 System.Object 0 shared static EVENT_INPUTLANGCHANGEREQUEST
373: >> Domain:Value 0049cff0:034618fc 05cc68b8:NotInit <<
374: 568b84dc 4001e38 b8c System.Object 0 shared static EVENT_MENUSTART
375: >> Domain:Value 0049cff0:03461908 05cc68b8:NotInit <<
376: 568b84dc 4001e39 b90 System.Object 0 shared static EVENT_MENUCOMPLETE
377: >> Domain:Value 0049cff0:03461914 05cc68b8:NotInit <<
378: 568b84dc 4001e3a b94 System.Object 0 shared static EVENT_MAXIMUMSIZECHANGED
379: >> Domain:Value 0049cff0:03461920 05cc68b8:NotInit <<
380: 568b84dc 4001e3b b98 System.Object 0 shared static EVENT_MINIMUMSIZECHANGED
381: >> Domain:Value 0049cff0:0346192c 05cc68b8:NotInit <<
382: 568b84dc 4001e3c b9c System.Object 0 shared static EVENT_HELPBUTTONCLICKED
383: >> Domain:Value 0049cff0:03461938 05cc68b8:NotInit <<
384: 568b84dc 4001e3d ba0 System.Object 0 shared static EVENT_SHOWN
385: >> Domain:Value 0049cff0:03461944 05cc68b8:NotInit <<
386: 568b84dc 4001e3e ba4 System.Object 0 shared static EVENT_RESIZEBEGIN
387: >> Domain:Value 0049cff0:03461950 05cc68b8:NotInit <<
388: 568b84dc 4001e3f ba8 System.Object 0 shared static EVENT_RESIZEEND
389: >> Domain:Value 0049cff0:0346195c 05cc68b8:NotInit <<
390: 568b84dc 4001e40 bac System.Object 0 shared static EVENT_RIGHTTOLEFTLAYOUTCHANGED
391: >> Domain:Value 0049cff0:03461968 05cc68b8:NotInit <<
392: 56060168 4001e41 ab8 ...tVector32+Section 1 shared static FormStateAllowTransparency
393: >> Domain:Value 0049cff0:0346167c 05cc68b8:NotInit <<
394: 56060168 4001e42 abc ...tVector32+Section 1 shared static FormStateBorderStyle
395: >> Domain:Value 0049cff0:03461688 05cc68b8:NotInit <<
396: 56060168 4001e43 ac0 ...tVector32+Section 1 shared static FormStateTaskBar
397: >> Domain:Value 0049cff0:03461694 05cc68b8:NotInit <<
398: 56060168 4001e44 ac4 ...tVector32+Section 1 shared static FormStateControlBox
399: >> Domain:Value 0049cff0:034616a0 05cc68b8:NotInit <<
400: 56060168 4001e45 ac8 ...tVector32+Section 1 shared static FormStateKeyPreview
401: >> Domain:Value 0049cff0:034616ac 05cc68b8:NotInit <<
402: 56060168 4001e46 acc ...tVector32+Section 1 shared static FormStateLayered
403: >> Domain:Value 0049cff0:034616b8 05cc68b8:NotInit <<
404: 56060168 4001e47 ad0 ...tVector32+Section 1 shared static FormStateMaximizeBox
405: >> Domain:Value 0049cff0:034616c4 05cc68b8:NotInit <<
406: 56060168 4001e48 ad4 ...tVector32+Section 1 shared static FormStateMinimizeBox
407: >> Domain:Value 0049cff0:034616d0 05cc68b8:NotInit <<
408: 56060168 4001e49 ad8 ...tVector32+Section 1 shared static FormStateHelpButton
409: >> Domain:Value 0049cff0:034616dc 05cc68b8:NotInit <<
410: 56060168 4001e4a adc ...tVector32+Section 1 shared static FormStateStartPos
411: >> Domain:Value 0049cff0:034616e8 05cc68b8:NotInit <<
412: 56060168 4001e4b ae0 ...tVector32+Section 1 shared static FormStateWindowState
413: >> Domain:Value 0049cff0:034616f4 05cc68b8:NotInit <<
414: 56060168 4001e4c ae4 ...tVector32+Section 1 shared static FormStateShowWindowOnCreate
415: >> Domain:Value 0049cff0:03461700 05cc68b8:NotInit <<
416: 56060168 4001e4d ae8 ...tVector32+Section 1 shared static FormStateAutoScaling
417: >> Domain:Value 0049cff0:0346170c 05cc68b8:NotInit <<
418: 56060168 4001e4e aec ...tVector32+Section 1 shared static FormStateSetClientSize
419: >> Domain:Value 0049cff0:03461718 05cc68b8:NotInit <<
420: 56060168 4001e4f af0 ...tVector32+Section 1 shared static FormStateTopMost
421: >> Domain:Value 0049cff0:03461724 05cc68b8:NotInit <<
422: 56060168 4001e50 af4 ...tVector32+Section 1 shared static FormStateSWCalled
423: >> Domain:Value 0049cff0:03461730 05cc68b8:NotInit <<
424: 56060168 4001e51 af8 ...tVector32+Section 1 shared static FormStateMdiChildMax
425: >> Domain:Value 0049cff0:0346173c 05cc68b8:NotInit <<
426: 56060168 4001e52 afc ...tVector32+Section 1 shared static FormStateRenderSizeGrip
427: >> Domain:Value 0049cff0:03461748 05cc68b8:NotInit <<
428: 56060168 4001e53 b00 ...tVector32+Section 1 shared static FormStateSizeGripStyle
429: >> Domain:Value 0049cff0:03461754 05cc68b8:NotInit <<
430: 56060168 4001e54 b04 ...tVector32+Section 1 shared static FormStateIsRestrictedWindow
431: >> Domain:Value 0049cff0:03461760 05cc68b8:NotInit <<
432: 56060168 4001e55 b08 ...tVector32+Section 1 shared static FormStateIsRestrictedWindowChecked
433: >> Domain:Value 0049cff0:0346176c 05cc68b8:NotInit <<
434: 56060168 4001e56 b0c ...tVector32+Section 1 shared static FormStateIsWindowActivated
435: >> Domain:Value 0049cff0:03461778 05cc68b8:NotInit <<
436: 56060168 4001e57 b10 ...tVector32+Section 1 shared static FormStateIsTextEmpty
437: >> Domain:Value 0049cff0:03461784 05cc68b8:NotInit <<
438: 56060168 4001e58 b14 ...tVector32+Section 1 shared static FormStateIsActive
439: >> Domain:Value 0049cff0:03461790 05cc68b8:NotInit <<
440: 56060168 4001e59 b18 ...tVector32+Section 1 shared static FormStateIconSet
441: >> Domain:Value 0049cff0:0346179c 05cc68b8:NotInit <<
442: 56060168 4001e5a b1c ...tVector32+Section 1 shared static FormStateExCalledClosing
443: >> Domain:Value 0049cff0:034617a8 05cc68b8:NotInit <<
444: 56060168 4001e5b b20 ...tVector32+Section 1 shared static FormStateExUpdateMenuHandlesSuspendCount
445: >> Domain:Value 0049cff0:034617b4 05cc68b8:NotInit <<
446: 56060168 4001e5c b24 ...tVector32+Section 1 shared static FormStateExUpdateMenuHandlesDeferred
447: >> Domain:Value 0049cff0:034617c0 05cc68b8:NotInit <<
448: 56060168 4001e5d b28 ...tVector32+Section 1 shared static FormStateExUseMdiChildProc
449: >> Domain:Value 0049cff0:034617cc 05cc68b8:NotInit <<
450: 56060168 4001e5e b2c ...tVector32+Section 1 shared static FormStateExCalledOnLoad
451: >> Domain:Value 0049cff0:034617d8 05cc68b8:NotInit <<
452: 56060168 4001e5f b30 ...tVector32+Section 1 shared static FormStateExCalledMakeVisible
453: >> Domain:Value 0049cff0:034617e4 05cc68b8:NotInit <<
454: 56060168 4001e60 b34 ...tVector32+Section 1 shared static FormStateExCalledCreateControl
455: >> Domain:Value 0049cff0:034617f0 05cc68b8:NotInit <<
456: 56060168 4001e61 b38 ...tVector32+Section 1 shared static FormStateExAutoSize
457: >> Domain:Value 0049cff0:034617fc 05cc68b8:NotInit <<
458: 56060168 4001e62 b3c ...tVector32+Section 1 shared static FormStateExInUpdateMdiControlStrip
459: >> Domain:Value 0049cff0:03461808 05cc68b8:NotInit <<
460: 56060168 4001e63 b40 ...tVector32+Section 1 shared static FormStateExShowIcon
461: >> Domain:Value 0049cff0:03461814 05cc68b8:NotInit <<
462: 56060168 4001e64 b44 ...tVector32+Section 1 shared static FormStateExMnemonicProcessed
463: >> Domain:Value 0049cff0:03461820 05cc68b8:NotInit <<
464: 56060168 4001e65 b48 ...tVector32+Section 1 shared static FormStateExInScale
465: >> Domain:Value 0049cff0:0346182c 05cc68b8:NotInit <<
466: 56060168 4001e66 b4c ...tVector32+Section 1 shared static FormStateExInModalSizingLoop
467: >> Domain:Value 0049cff0:03461838 05cc68b8:NotInit <<
468: 56060168 4001e67 b50 ...tVector32+Section 1 shared static FormStateExSettingAutoScale
469: >> Domain:Value 0049cff0:03461844 05cc68b8:NotInit <<
470: 56060168 4001e68 b54 ...tVector32+Section 1 shared static FormStateExWindowBoundsWidthIsClientSize
471: >> Domain:Value 0049cff0:03461850 05cc68b8:NotInit <<
472: 56060168 4001e69 b58 ...tVector32+Section 1 shared static FormStateExWindowBoundsHeightIsClientSize
473: >> Domain:Value 0049cff0:0346185c 05cc68b8:NotInit <<
474: 56060168 4001e6a b5c ...tVector32+Section 1 shared static FormStateExWindowClosing
475: >> Domain:Value 0049cff0:03461868 05cc68b8:NotInit <<
476: 5d2bbdf0 4001e6b bb0 System.Drawing.Icon 0 shared static defaultIcon
477: >> Domain:Value 0049cff0:0348ba48 05cc68b8:NotInit <<
478: 5d2bbdf0 4001e6c bb4 System.Drawing.Icon 0 shared static defaultRestrictedIcon
479: >> Domain:Value 0049cff0:00000000 05cc68b8:NotInit <<
480: 537f123c 4001e6d b60 ...ows.Forms.Padding 1 shared static FormPadding
481: >> Domain:Value 0049cff0:03461874 05cc68b8:NotInit <<
482: 568b84dc 4001e6e bb8 System.Object 0 shared static internalSyncObject
483: >> Domain:Value 0049cff0:03461974 05cc68b8:NotInit <<
484: 568bab0c 4001e6f f8c System.Int32 1 shared static PropAcceptButton
485: >> Domain:Value 0049cff0:49 05cc68b8:NotInit <<
486: 568bab0c 4001e70 f90 System.Int32 1 shared static PropCancelButton
487: >> Domain:Value 0049cff0:50 05cc68b8:NotInit <<
488: 568bab0c 4001e71 f94 System.Int32 1 shared static PropDefaultButton
489: >> Domain:Value 0049cff0:51 05cc68b8:NotInit <<
490: 568bab0c 4001e72 f98 System.Int32 1 shared static PropDialogOwner
491: >> Domain:Value 0049cff0:52 05cc68b8:NotInit <<
492: 568bab0c 4001e73 f9c System.Int32 1 shared static PropMainMenu
493: >> Domain:Value 0049cff0:53 05cc68b8:NotInit <<
494: 568bab0c 4001e74 fa0 System.Int32 1 shared static PropDummyMenu
495: >> Domain:Value 0049cff0:54 05cc68b8:NotInit <<
496: 568bab0c 4001e75 fa4 System.Int32 1 shared static PropCurMenu
497: >> Domain:Value 0049cff0:55 05cc68b8:NotInit <<
498: 568bab0c 4001e76 fa8 System.Int32 1 shared static PropMergedMenu
499: >> Domain:Value 0049cff0:56 05cc68b8:NotInit <<
500: 568bab0c 4001e77 fac System.Int32 1 shared static PropOwner
501: >> Domain:Value 0049cff0:57 05cc68b8:NotInit <<
502: 568bab0c 4001e78 fb0 System.Int32 1 shared static PropOwnedForms
503: >> Domain:Value 0049cff0:58 05cc68b8:NotInit <<
504: 568bab0c 4001e79 fb4 System.Int32 1 shared static PropMaximizedBounds
505: >> Domain:Value 0049cff0:59 05cc68b8:NotInit <<
506: 568bab0c 4001e7a fb8 System.Int32 1 shared static PropOwnedFormsCount
507: >> Domain:Value 0049cff0:60 05cc68b8:NotInit <<
508: 568bab0c 4001e7b fbc System.Int32 1 shared static PropMinTrackSizeWidth
509: >> Domain:Value 0049cff0:61 05cc68b8:NotInit <<
510: 568bab0c 4001e7c fc0 System.Int32 1 shared static PropMinTrackSizeHeight
511: >> Domain:Value 0049cff0:62 05cc68b8:NotInit <<
512: 568bab0c 4001e7d fc4 System.Int32 1 shared static PropMaxTrackSizeWidth
513: >> Domain:Value 0049cff0:63 05cc68b8:NotInit <<
514: 568bab0c 4001e7e fc8 System.Int32 1 shared static PropMaxTrackSizeHeight
515: >> Domain:Value 0049cff0:64 05cc68b8:NotInit <<
516: 568bab0c 4001e7f fcc System.Int32 1 shared static PropFormMdiParent
517: >> Domain:Value 0049cff0:65 05cc68b8:NotInit <<
518: 568bab0c 4001e80 fd0 System.Int32 1 shared static PropActiveMdiChild
519: >> Domain:Value 0049cff0:66 05cc68b8:NotInit <<
520: 568bab0c 4001e81 fd4 System.Int32 1 shared static PropFormerlyActiveMdiChild
521: >> Domain:Value 0049cff0:67 05cc68b8:NotInit <<
522: 568bab0c 4001e82 fd8 System.Int32 1 shared static PropMdiChildFocusable
523: >> Domain:Value 0049cff0:68 05cc68b8:NotInit <<
524: 568bab0c 4001e83 fdc System.Int32 1 shared static PropMainMenuStrip
525: >> Domain:Value 0049cff0:69 05cc68b8:NotInit <<
526: 568bab0c 4001e84 fe0 System.Int32 1 shared static PropMdiWindowListStrip
527: >> Domain:Value 0049cff0:70 05cc68b8:NotInit <<
528: 568bab0c 4001e85 fe4 System.Int32 1 shared static PropMdiControlStrip
529: >> Domain:Value 0049cff0:71 05cc68b8:NotInit <<
530: 568bab0c 4001e86 fe8 System.Int32 1 shared static PropSecurityTip
531: >> Domain:Value 0049cff0:72 05cc68b8:NotInit <<
532: 568bab0c 4001e87 fec System.Int32 1 shared static PropOpacity
533: >> Domain:Value 0049cff0:73 05cc68b8:NotInit <<
534: 568bab0c 4001e88 ff0 System.Int32 1 shared static PropTransparencyKey
535: >> Domain:Value 0049cff0:74 05cc68b8:NotInit <<
536: 568b84dc 4001e9b bbc System.Object 0 shared static EVENT_MAXIMIZEDBOUNDSCHANGED
537: >> Domain:Value 0049cff0:03461980 05cc68b8:NotInit <<
538: 5db92afc 400013c 13c ...olbarEventHandler 0 instance 00000000 FocusToolbar
539: 568beadc 400013d 148 System.Boolean 1 instance 0 m_wasSizedMoved
540: 568beadc 400013e 149 System.Boolean 1 instance 1 m_saveRestorePosition
541: 53f3cd68 400013f 140 ...ms.IMessageFilter 0 instance 00000000 m_messageFilter
542: 568b88c0 4000140 144 System.String 0 instance 037bada4 m_helpTopic
543: 568beadc 4000141 14a System.Boolean 1 instance 1 m_alwaysShowHelpButton
544: 568beadc 4000142 14b System.Boolean 1 instance 0 m_forwardWndMsgOutsideVS
545: 568beadc 4000476 1a0 System.Boolean 1 instance 1 m_multiSelect
546: 568beadc 4000477 1a1 System.Boolean 1 instance 1 m_chooseProjectMode
547: 568beadc 4000478 1a2 System.Boolean 1 instance 0 m_disableServerSelect
548: 568beadc 4000479 1a3 System.Boolean 1 instance 1 m_loaded
549: 5db9b3cc 400047a 14c ...mFoundationServer 0 instance 037bf9d0 m_selectedServer
550: 568c1628 400047b 150 ...ctions.SortedList 0 instance 03202a60 m_defaultSelectedProjects
551: 56894eec 400047c 154 System.Object[] 0 instance 039886a0 m_servers
552: 5db9b3cc 400047d 158 ...mFoundationServer 0 instance 00000000 m_lastAddedServer
553: 568beadc 400047e 1a4 System.Boolean 1 instance 0 m_suspendItemCheckEvent
554: 5db9b3cc 400047f 15c ...mFoundationServer 0 instance 037bf9d0 m_hostActiveServer
555: 537eaf74 4000480 160 ...ws.Forms.ComboBox 0 instance 03923160 domainComboBox
556: 537ea8e8 4000481 164 ...dows.Forms.Button 0 instance 039236d0 okButton
557: 537ea8e8 4000482 168 ...dows.Forms.Button 0 instance 0392384c cancelButton
558: 537eeff4 4000483 16c ...ndows.Forms.Label 0 instance 039233c0 selectTfsServerLabel
559: 537eeff4 4000484 170 ...ndows.Forms.Label 0 instance 03923548 selectProjectLabel
560: 537e58f0 4000485 174 ...ws.Forms.CheckBox 0 instance 03923d40 projectSelectAll
561: 537e6a50 4000486 178 ...ows.Forms.ListBox 0 instance 03923b94 projectListView
562: 53f5c740 4000487 17c ...ms.CheckedListBox 0 instance 03923b94 projectCheckedListView
563: 537feafc 4000488 180 ...ndows.Forms.Panel 0 instance 039239c8 checkboxListViewPanel
564: 537ea8e8 4000489 184 ...dows.Forms.Button 0 instance 03923ee0 addDomain
565: 56895388 400048a 188 ...s.ResourceManager 0 instance 03982360 resources
566: 537e8f14 400048e 18c ....TableLayoutPanel 0 instance 0392405c okCancelTableLayoutPanel
567: 537e8f14 400048f 190 ....TableLayoutPanel 0 instance 03924240 serversTableLayoutPanel
568: 537e8f14 4000490 194 ....TableLayoutPanel 0 instance 03924424 overarchingTableLayoutPanel
569: 537eeff4 4000491 198 ...ndows.Forms.Label 0 instance 03924608 hiddenListViewAALabel
570: 560455ac 4000492 19c ...ntModel.Container 0 instance 00000000 components
571: 568b88c0 400048b 5c System.String 0 shared static FORM_CHOOSE_PROJECT_MULTISELECT
572: >> Domain:Value 0049cff0:037bacdc 05cc68b8:NotInit <<
573: 568b88c0 400048c 60 System.String 0 shared static FORM_CHOOSE_PROJECT_SINGLESELECT
574: >> Domain:Value 0049cff0:037bad1c 05cc68b8:NotInit <<
575: 568b88c0 400048d 64 System.String 0 shared static FORM_NO_PROJECT
576: >> Domain:Value 0049cff0:037bad60 05cc68b8:NotInit <<
Here are the details of the SortedList:
1: 0:000> !do 03202a60
2: Name: System.Collections.SortedList
3: MethodTable: 568c1628
4: EEClass: 566e4460
5: Size: 40(0x28) bytes
6: (C:\Windows\assembly\GAC_32\mscorlib\2.0.0.0__b77a5c561934e089\mscorlib.dll)
7: Fields:
8: MT Field Offset Type VT Attr Value Name
9: 56894eec 4000982 4 System.Object[] 0 instance 03203fd4 keys
10: 56894eec 4000983 8 System.Object[] 0 instance 03204024 values
11: 568bab0c 4000984 1c System.Int32 1 instance 4 _size
12: 568bab0c 4000985 20 System.Int32 1 instance 4 version
13: 568bfdf8 4000986 c ...ections.IComparer 0 instance 031ea54c comparer
14: 568b76a4 4000987 10 ...ortedList+KeyList 0 instance 00000000 keyList
15: 568b24a8 4000988 14 ...tedList+ValueList 0 instance 00000000 valueList
16: 568b84dc 4000989 18 System.Object 0 instance 00000000 _syncRoot
17: 56894eec 400098a 1e0 System.Object[] 0 shared static emptyArray
18: >> Domain:Value 0049cff0:03202a50 05cc68b8:NotInit <<
Using a combination of !do and !da (DumpArray) commands I was able to confirm that the SortedList used in Team Explorer 2008 contained the same keys and values as the SortedList that I was passing to the dialog in my application. Then I have noticed that the SortedList passed in Team Explorer 2008 is using a comparer (line 13):
1: 0:000> !do 031ea54c
2: Name: System.OrdinalComparer
3: MethodTable: 568c0f00
4: EEClass: 566e42c4
5: Size: 12(0xc) bytes
6: (C:\Windows\assembly\GAC_32\mscorlib\2.0.0.0__b77a5c561934e089\mscorlib.dll)
7: Fields:
8: MT Field Offset Type VT Attr Value Name
9: 568c0dc8 400009e 18 ...em.StringComparer 0 shared static _invariantCulture
10: >> Domain:Value 0049cff0:031ea0ac 05cc68b8:0325b71c <<
11: 568c0dc8 400009f 1c ...em.StringComparer 0 shared static _invariantCultureIgnoreCase
12: >> Domain:Value 0049cff0:031ea530 05cc68b8:0325b72c <<
13: 568c0dc8 40000a0 20 ...em.StringComparer 0 shared static _ordinal
14: >> Domain:Value 0049cff0:031ea540 05cc68b8:0325b73c <<
15: 568c0dc8 40000a1 24 ...em.StringComparer 0 shared static _ordinalIgnoreCase
16: >> Domain:Value 0049cff0:031ea54c 05cc68b8:0325b748 <<
17: 568beadc 40000a4 4 System.Boolean 1 instance 1 _ignoreCase
The SortedList used by Team Explorer 2008 was using StringComparer.OrdinalIgnoreCase (line 17). After taking a closer look at the URIs of my registered servers and I noticed that only my Team Foundation Server 2010 Beta 2 had a URI which contained both lower and upper cases (https://lszomoru-tfs10:8080/tfs/DefaultCollection). The casing of the URI and the fact that I did not use a case insensitive SortedList was the root cause of the problem.
To fix my problem, I changed the constructor of the SortedList.
1: SortedList selectedProjects = new SortedList(StringComparer.OrdinalIgnoreCase);
In the Team Foundation Server 2010 object model, the DomainProjectPicker class has been marked as obsolete. A new TeamProjectPicker class has been implemented which replaces the DomainProjectPicker class. In couple of weeks I will start working on the next release of the TFS Administration Tool which will use the Team Foundation Server 2010 object model so I will have the chance to play around with the TeamProjectPicker class.