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 (http://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.