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.