[Mmclibrary-cvs] mmclibrary/MMCLib2/Core SnapinBase.cs,1.20,1.21
Brought to you by:
imjimmurphy,
kachalkov
From: Lesley v. Z. <ex...@us...> - 2005-01-19 22:39:25
|
Update of /cvsroot/mmclibrary/mmclibrary/MMCLib2/Core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30767 Modified Files: SnapinBase.cs Log Message: Changed some functions so that they start with a Capital letter (On* functions) Method parameter names should use a camel case for their names Changed a lot of protected variables that where storage for properties to private Added i18n support changed throw Exceptions to throw SnapinExceptions Index: SnapinBase.cs =================================================================== RCS file: /cvsroot/mmclibrary/mmclibrary/MMCLib2/Core/SnapinBase.cs,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** SnapinBase.cs 7 Nov 2004 14:44:36 -0000 1.20 --- SnapinBase.cs 19 Jan 2005 22:39:15 -0000 1.21 *************** *** 4,7 **** --- 4,8 ---- using System.Threading; using System.Reflection; + using System.Resources; using System.Collections; using System.Collections.Specialized; *************** *** 35,47 **** ,IPersistStream { - /// <summary> ! /// /// </summary> ! public System.Windows.Forms.ContextMenu FilterMenu; /////////////////////////////////////////////////////////////////////// // ! // Members // #region --- 36,48 ---- ,IPersistStream { /// <summary> ! /// Master list of all Nodes displayed in the snapin ! /// this collection "owns" them and assignes cookie values /// </summary> ! protected HybridDictionary _nodes = new HybridDictionary(8); /////////////////////////////////////////////////////////////////////// // ! // Private vars // #region *************** *** 50,103 **** /// We only want to see one Manager per Snapin /// </summary> ! protected bool showSnapinManager = true; /// <summary> /// Contained object that implements IComponent on our behalf /// </summary> ! protected Component m_Component = null; ! ! /// <summary> ! /// A cached reference to the MMC console ! /// </summary> ! protected IConsole2 m_Console = null; ! ! /// <summary> ! /// A cached reference to the MMC console namespace ! /// </summary> ! protected IConsoleNameSpace2 m_ConsoleNameSpace = null; ! ! /// <summary> ! /// Master list of all Nodes displayed in the snapin ! /// this collection "owns" them and assignes cookie values ! /// </summary> ! //protected ArrayList m_Nodes = new ArrayList(16); ! protected HybridDictionary m_Nodes = new HybridDictionary(8); ! ! /// <summary> ! /// ! /// </summary> ! protected int m_NodeId = 0; ! ! /// <summary> ! /// The scope node that is currently selected for this snapin. This is needed ! /// for component.cs which goes through hoops to get the currently selected ! /// ScopeNode. ! /// </summary> ! protected BaseNode m_currentScopeNode; ! ! /// <summary> ! /// global images collection ! /// </summary> ! protected ImageList m_Images = new ImageList(); ! ! /// <summary> ! /// Used for both ScopeNodeSelected and SelectedScopeNodes Property ! /// </summary> ! protected BaseNode m_selectedNodes = null; ! /// <summary> ! /// Represents the window handle that the control is bound to. ! /// </summary> ! protected IntPtr m_Handle; #endregion --- 51,70 ---- /// We only want to see one Manager per Snapin /// </summary> ! private bool _showSnapinManager = true; /// <summary> /// Contained object that implements IComponent on our behalf /// </summary> ! private Component _component = null; ! private IConsole2 _console = null; ! private IConsoleNameSpace2 _consoleNameSpace = null; ! private int _nodeId = 0; ! private BaseNode _currentScopeNode; ! private ImageList _images = new ImageList(); ! private BaseNode _selectedNodes = null; ! private IntPtr _handle; ! private System.Windows.Forms.ContextMenu _filterMenu; ! private static ResourceManager _translator; #endregion *************** *** 109,113 **** // Added by MAM /// <summary> ! /// The scope node that is currently selected for this snapin. This is needed /// for component.cs which goes through hoops to get the currently selected /// ScopeNode. --- 76,80 ---- // Added by MAM /// <summary> ! /// Get or set the scope node that is currently selected for this snapin. This is needed /// for component.cs which goes through hoops to get the currently selected /// ScopeNode. *************** *** 115,138 **** public BaseNode CurrentScopeNode { ! get { return m_currentScopeNode; } ! set { m_currentScopeNode = value; } } //Added by Alexander Kachalkov /// <summary> ! /// Global images collection /// Using it from Component class while creating Toolbar. /// </summary> public ImageList Images { ! get { return m_Images; } } /// <summary> ! /// Is there currently a scope node selected? /// </summary> public virtual bool ScopeNodeSelected { ! get { return m_selectedNodes != null; } } --- 82,105 ---- public BaseNode CurrentScopeNode { ! get { return _currentScopeNode; } ! set { _currentScopeNode = value; } } //Added by Alexander Kachalkov /// <summary> ! /// returns global images collection /// Using it from Component class while creating Toolbar. /// </summary> public ImageList Images { ! get { return _images; } } /// <summary> ! /// Returns if there is a scope node selected /// </summary> public virtual bool ScopeNodeSelected { ! get { return _selectedNodes != null; } } *************** *** 142,150 **** public virtual BaseNode SelectedScopeNodes { ! get { return this.m_selectedNodes; } } /// <summary> ! /// Is there currently a view-item selected? /// </summary> public virtual bool ViewItemSelected --- 109,117 ---- public virtual BaseNode SelectedScopeNodes { ! get { return _selectedNodes; } } /// <summary> ! /// returns if there is a view-item selected /// </summary> public virtual bool ViewItemSelected *************** *** 152,156 **** get { ! ReportNode rne = m_currentScopeNode as ReportNode; if(rne != null) { --- 119,123 ---- get { ! ReportNode rne = _currentScopeNode as ReportNode; if(rne != null) { *************** *** 170,174 **** public virtual BaseNode LastSelectedScopeNode { ! get { return this.m_currentScopeNode; } } --- 137,141 ---- public virtual BaseNode LastSelectedScopeNode { ! get { return _currentScopeNode; } } *************** *** 185,189 **** { ArrayList retval = new ArrayList(); ! ReportNode rne = m_currentScopeNode as ReportNode; if(rne != null) return rne.GetCurrentSelected(); --- 152,156 ---- { ArrayList retval = new ArrayList(); ! ReportNode rne = _currentScopeNode as ReportNode; if(rne != null) return rne.GetCurrentSelected(); *************** *** 194,203 **** /// <summary> ! /// The window handle property /// </summary> public IntPtr SnapinHandle { ! get {return m_Handle;} } #endregion --- 161,180 ---- /// <summary> ! /// returns the window handle that the control is bound to. /// </summary> public IntPtr SnapinHandle { ! get {return _handle;} ! } ! ! /// <summary> ! /// ! /// </summary> ! public System.Windows.Forms.ContextMenu FilterMenu ! { ! get { return _filterMenu; } ! set { _filterMenu = value; } } + #endregion *************** *** 208,216 **** internal void AddSelectedNode(BaseNode bn) { ! this.m_currentScopeNode = bn; ! ! this.m_selectedNodes = bn; ! System.Diagnostics.Debug.WriteLine("SnapinBaseExt::addSelectedNode - " + bn.DisplayName); } --- 185,191 ---- internal void AddSelectedNode(BaseNode bn) { ! _currentScopeNode = bn; ! _selectedNodes = bn; } *************** *** 221,226 **** internal void RemoveSelectedNode(BaseNode bn) { ! this.m_selectedNodes = null; ! System.Diagnostics.Debug.WriteLine("SnapinBaseExt::removeSelectedNode - " + bn.DisplayName); } --- 196,211 ---- internal void RemoveSelectedNode(BaseNode bn) { ! _selectedNodes = null; ! } ! ! /// <summary> ! /// Static function to help with internationalisation ! /// </summary> ! internal static string Translate(string key) ! { ! if(_translator == null) ! _translator = new ResourceManager("Ironring.MMC.Resources.i18n", ! System.Reflection.Assembly.GetExecutingAssembly()); ! return _translator.GetString(key); } *************** *** 236,241 **** { InitializeComponent(); ! // Get the window handle and keep it alive, as long as the MMC is. ! m_Handle = Handle; this.SnapinState = CreateSnapinState(); System.Diagnostics.Debug.WriteLine("Snapin<init>"); --- 221,226 ---- { InitializeComponent(); ! // Get the window handle and keep it alive, as long as the MMC is. ! _handle = Handle; this.SnapinState = CreateSnapinState(); System.Diagnostics.Debug.WriteLine("Snapin<init>"); *************** *** 265,270 **** public BaseNode RootNode { ! get { return (BaseNode)m_Nodes[0]; } ! set { m_Nodes[0] = value; } } --- 250,255 ---- public BaseNode RootNode { ! get { return (BaseNode)_nodes[0]; } ! set { _nodes[0] = value; } } *************** *** 274,278 **** public IConsole2 ResultViewConsole { ! get { return m_Component.Console; } } --- 259,263 ---- public IConsole2 ResultViewConsole { ! get { return _component.Console; } } *************** *** 282,286 **** public IConsole2 Console { ! get { return m_Console; } } --- 267,271 ---- public IConsole2 Console { ! get { return _console; } } *************** *** 290,294 **** public IConsoleNameSpace2 ConsoleNameSpace { ! get { return m_ConsoleNameSpace; } } --- 275,279 ---- public IConsoleNameSpace2 ConsoleNameSpace { ! get { return _consoleNameSpace; } } *************** *** 298,302 **** public IHeaderCtrl2 HeaderCtrl { ! get { return (IHeaderCtrl2)m_Console; } } --- 283,287 ---- public IHeaderCtrl2 HeaderCtrl { ! get { return (IHeaderCtrl2)_console; } } *************** *** 306,312 **** /// </summary> /// <param name="ResultData"></param> ! public virtual RESULTDATAITEM GetSelectedItem(IResultData ResultData) { ! return GetSelectedItem(ResultData, -1); // nIndex == -1 to start at first item } --- 291,297 ---- /// </summary> /// <param name="ResultData"></param> ! public virtual RESULTDATAITEM GetSelectedItem(IResultData resultData) { ! return GetSelectedItem(resultData, -1); // nIndex == -1 to start at first item } *************** *** 316,320 **** /// <param name="ResultData"></param> /// <param name="nIndex"></param> ! public virtual RESULTDATAITEM GetSelectedItem(IResultData ResultData, int nIndex) { RESULTDATAITEM rdi = new RESULTDATAITEM(); --- 301,305 ---- /// <param name="ResultData"></param> /// <param name="nIndex"></param> ! public virtual RESULTDATAITEM GetSelectedItem(IResultData resultData, int nIndex) { RESULTDATAITEM rdi = new RESULTDATAITEM(); *************** *** 327,331 **** try { ! ResultData.GetNextItem(ref rdi); } catch(Exception) --- 312,316 ---- try { ! resultData.GetNextItem(ref rdi); } catch(Exception) *************** *** 335,339 **** // I think it's because nothing is selected yet // that's why we catch the exception and won't handle it ! // maybe it's better to return null } //out --- 320,324 ---- // I think it's because nothing is selected yet // that's why we catch the exception and won't handle it ! // maybe it's better to return null } //out *************** *** 350,354 **** // so mask off this word to get the "real" cookie. int cleanCookie = cookie & 0xffff; ! BaseNode node = (BaseNode)m_Nodes[cleanCookie]; if (node == null) throw new SnapinException("Failed to find Node with cookie " + cleanCookie.ToString()); --- 335,339 ---- // so mask off this word to get the "real" cookie. int cleanCookie = cookie & 0xffff; ! BaseNode node = (BaseNode)_nodes[cleanCookie]; if (node == null) throw new SnapinException("Failed to find Node with cookie " + cleanCookie.ToString()); *************** *** 362,370 **** /// <param name="HScopeID"></param> /// <returns></returns> ! public BaseNode FindNodeByHScope(int HScopeID) { ! foreach(BaseNode node in m_Nodes.Values) { ! if (node.HScopeItem == HScopeID) return node; } --- 347,355 ---- /// <param name="HScopeID"></param> /// <returns></returns> ! public BaseNode FindNodeByHScope(int hScopeID) { ! foreach(BaseNode node in _nodes.Values) { ! if (node.HScopeItem == hScopeID) return node; } *************** *** 384,390 **** // We may change the collection strategy in the future if we need to // support bigger node sets. ! int id = m_NodeId; ! m_Nodes.Add(id, newNode); ! m_NodeId++; return id; } --- 369,375 ---- // We may change the collection strategy in the future if we need to // support bigger node sets. ! int id = _nodeId; ! _nodes.Add(id, newNode); ! _nodeId++; return id; } *************** *** 395,400 **** /// </summary> /// <param name="node"></param> ! public void Unregister(BaseNode node){ ! m_Nodes.Remove(node.Cookie); //Added by Alexander Ovchinnikov node.RemovePropertySheet( ); --- 380,386 ---- /// </summary> /// <param name="node"></param> ! public void Unregister(BaseNode node) ! { ! _nodes.Remove(node.Cookie); //Added by Alexander Ovchinnikov node.RemovePropertySheet( ); *************** *** 408,412 **** public int AddImage(string iconResourceName) { ! return m_Images.Add(iconResourceName); } --- 394,398 ---- public int AddImage(string iconResourceName) { ! return _images.Add(iconResourceName); } *************** *** 421,425 **** public int AddImage(string iconResourceName, Color transparentColor) { ! return m_Images.Add(iconResourceName, transparentColor); } --- 407,411 ---- public int AddImage(string iconResourceName, Color transparentColor) { ! return _images.Add(iconResourceName, transparentColor); } *************** *** 430,434 **** public int AddImage(Icon icon) { ! return m_Images.Add(icon); } #endregion --- 416,420 ---- public int AddImage(Icon icon) { ! return _images.Add(icon); } #endregion *************** *** 447,463 **** { // cache references to MMC interfaces ! m_Console = (IConsole2)pUnknown; ! m_ConsoleNameSpace = (IConsoleNameSpace2)pUnknown; // alow startup init for each node ! foreach(BaseNode node in m_Nodes.Values) node.Initialize(); // Now we'll add the images we need for the snapin IImageList il = null; ! m_Console.QueryScopeImageList(out il); // add the snapin - global images to the scope pane ! m_Images.LoadImageList(il); // forward to the root node to see if any nodes care to add their node specific --- 433,449 ---- { // cache references to MMC interfaces ! _console = (IConsole2)pUnknown; ! _consoleNameSpace = (IConsoleNameSpace2)pUnknown; // alow startup init for each node ! foreach(BaseNode node in _nodes.Values) node.Initialize(); // Now we'll add the images we need for the snapin IImageList il = null; ! _console.QueryScopeImageList(out il); // add the snapin - global images to the scope pane ! _images.LoadImageList(il); // forward to the root node to see if any nodes care to add their node specific *************** *** 481,488 **** { // Make sure we don't already have a component created ! if (m_Component == null) ! m_Component = new Component(this); ! ppComponent = m_Component; } --- 467,474 ---- { // Make sure we don't already have a component created ! if (_component == null) ! _component = new Component(this); ! ppComponent = _component; } *************** *** 513,519 **** switch(notify) { ! // If a data item is expanding, we need to tell MMC about it's children. ! // Note, this case doesn't necessarily mean the data item is expanding ! // visually.... MMC is just requesting information about it. case MMCN_Notify.EXPAND: { --- 499,505 ---- switch(notify) { ! // If a data item is expanding, we need to tell MMC about it's children. ! // Note, this case doesn't necessarily mean the data item is expanding ! // visually.... MMC is just requesting information about it. case MMCN_Notify.EXPAND: { *************** *** 530,534 **** break; } ! //---added by Roman Kiss case MMCN_Notify.DELETE: { --- 516,520 ---- break; } ! //---added by Roman Kiss case MMCN_Notify.DELETE: { *************** *** 536,540 **** break; } ! //Added by Alexander Kachalkov case MMCN_Notify.BTN_CLICK: { --- 522,526 ---- break; } ! //Added by Alexander Kachalkov case MMCN_Notify.BTN_CLICK: { *************** *** 544,548 **** break; } ! //Added by Alexander Kachalkov case MMCN_Notify.RENAME: { --- 530,534 ---- break; } ! //Added by Alexander Kachalkov case MMCN_Notify.RENAME: { *************** *** 598,615 **** } ! /// <summary> ! /// The IComponentData::QueryDataObject method returns a data object that can be used to retrieve ! /// the context information for the specified cookie. ! /// </summary> ! /// <param name="cookie">Specifies the unique identifier for which the data object is required.</param> ! /// <param name="type">Specifies the data object as one of the members of the CCT enum</param> ! /// <param name="ppDataObject">Pointer to the address of the returned data object</param> ! public virtual void QueryDataObject(int cookie, uint type, out IDataObject ppDataObject) { ! if(type == (uint)CCT.SNAPIN_MANAGER && showSnapinManager) { System.Diagnostics.Debug.WriteLine("Asks for Snapin Manager in SnapinBase"); // false so that it doesn't show up again ! showSnapinManager = false; this.ShowInitialisationWizard(); } --- 584,601 ---- } ! /// <summary> ! /// The IComponentData::QueryDataObject method returns a data object that can be used to retrieve ! /// the context information for the specified cookie. ! /// </summary> ! /// <param name="cookie">Specifies the unique identifier for which the data object is required.</param> ! /// <param name="type">Specifies the data object as one of the members of the CCT enum</param> ! /// <param name="ppDataObject">Pointer to the address of the returned data object</param> ! public virtual void QueryDataObject(int cookie, uint type, out IDataObject ppDataObject) { ! if(type == (uint)CCT.SNAPIN_MANAGER && _showSnapinManager) { System.Diagnostics.Debug.WriteLine("Asks for Snapin Manager in SnapinBase"); // false so that it doesn't show up again ! _showSnapinManager = false; this.ShowInitialisationWizard(); } *************** *** 835,838 **** --- 821,851 ---- } } + + // FIXME: http://sourceforge.net/tracker/index.php?func=detail&aid=832805&group_id=93348&atid=604010 + // public void AddMenuItems(IntPtr iDataObject, IContextMenuCallback piCallback, ref int pInsertionAllowed) + // { + // if (iDataObject == (IntPtr) DataObject.CUSTOMOCX || iDataObject == (IntPtr)DataObject.CUSTOMWEB) + // { + // } + // else + // { + // + // IDataObject piDataObject = (IDataObject)Marshal.GetObjectForIUnknown(iDataObject); + // + // // The piDataObject is really a DataObject is disguise.... + // + // DataObject item = (DataObject)piDataObject; + // + // if (item.Node != null) + // item.Node.AddMenuItems(piCallback, ref pInsertionAllowed); + // } + // } + + + + + + + /// <summary> /// Called when user invokes a menu command *************** *** 904,908 **** /// </summary> protected SnapinStateBase m_SnapinState; ! public virtual SnapinStateBase SnapinState { get { return this.m_SnapinState; } set { this.m_SnapinState = value; } --- 917,922 ---- /// </summary> protected SnapinStateBase m_SnapinState; ! public virtual SnapinStateBase SnapinState ! { get { return this.m_SnapinState; } set { this.m_SnapinState = value; } *************** *** 916,920 **** /// </summary> /// <returns></returns> ! public virtual SnapinStateBase CreateSnapinState() { SnapinStateBase ssb = new SnapinStateBase(); return ssb; --- 930,935 ---- /// </summary> /// <returns></returns> ! public virtual SnapinStateBase CreateSnapinState() ! { SnapinStateBase ssb = new SnapinStateBase(); return ssb; *************** *** 925,929 **** /// </summary> /// <param name="pClassID"></param> ! public void GetClassID(out Guid pClassID) { System.Diagnostics.Debug.WriteLine("GetClassID"); pClassID = this.Guid; --- 940,945 ---- /// </summary> /// <param name="pClassID"></param> ! public void GetClassID(out Guid pClassID) ! { System.Diagnostics.Debug.WriteLine("GetClassID"); pClassID = this.Guid; *************** *** 934,946 **** /// </summary> /// <returns></returns> ! public int IsDirty( ) { System.Diagnostics.Debug.WriteLine("IsDirty"); ! if(this.SnapinState != null) { ! if(this.SnapinState.Dirty) { return 0; ! } else { return 1; } ! } else { return 1; } --- 950,969 ---- /// </summary> /// <returns></returns> ! public int IsDirty( ) ! { System.Diagnostics.Debug.WriteLine("IsDirty"); ! if(this.SnapinState != null) ! { ! if(this.SnapinState.Dirty) ! { return 0; ! } ! else ! { return 1; } ! } ! else ! { return 1; } *************** *** 951,957 **** /// </summary> /// <param name="pStm"></param> ! public void Load(UCOMIStream pStm) ! { ! try { System.Diagnostics.Debug.WriteLine("Load"); ComStream cs = new ComStream(pStm); --- 974,981 ---- /// </summary> /// <param name="pStm"></param> ! public void Load(UCOMIStream pStm) ! { ! try ! { System.Diagnostics.Debug.WriteLine("Load"); ComStream cs = new ComStream(pStm); *************** *** 960,964 **** System.Diagnostics.Debug.WriteLine("Loaded state: " + this.SnapinState); } ! catch(Exception e) { System.Diagnostics.Debug.WriteLine("Exception in load: " + e); ceh.OnThreadException(this, new ThreadExceptionEventArgs(e)); --- 984,989 ---- System.Diagnostics.Debug.WriteLine("Loaded state: " + this.SnapinState); } ! catch(Exception e) ! { System.Diagnostics.Debug.WriteLine("Exception in load: " + e); ceh.OnThreadException(this, new ThreadExceptionEventArgs(e)); *************** *** 971,977 **** /// <param name="pStm"></param> /// <param name="fClearDirty"></param> ! public void Save(UCOMIStream pStm, [In, MarshalAs(UnmanagedType.Bool)] bool fClearDirty) ! { ! try { System.Diagnostics.Debug.WriteLine("Save"); ComStream cs = new ComStream(pStm); --- 996,1003 ---- /// <param name="pStm"></param> /// <param name="fClearDirty"></param> ! public void Save(UCOMIStream pStm, [In, MarshalAs(UnmanagedType.Bool)] bool fClearDirty) ! { ! try ! { System.Diagnostics.Debug.WriteLine("Save"); ComStream cs = new ComStream(pStm); *************** *** 979,983 **** cs.Close(); } ! catch(Exception e) { System.Diagnostics.Debug.WriteLine("Got an exception" + e + " stack " + e.StackTrace); ceh.OnThreadException(this, new ThreadExceptionEventArgs(e)); --- 1005,1010 ---- cs.Close(); } ! catch(Exception e) ! { System.Diagnostics.Debug.WriteLine("Got an exception" + e + " stack " + e.StackTrace); ceh.OnThreadException(this, new ThreadExceptionEventArgs(e)); *************** *** 992,998 **** /// </summary> /// <param name="pcbSize"></param> ! public void GetSizeMax(out long pcbSize) { System.Diagnostics.Debug.WriteLine("GetSizeMax"); ! throw new Exception("MMC didn't use to call GetSizeMax. Implement this."); } --- 1019,1026 ---- /// </summary> /// <param name="pcbSize"></param> ! public void GetSizeMax(out long pcbSize) ! { System.Diagnostics.Debug.WriteLine("GetSizeMax"); ! throw new SnapinException("MMC didn't use to call GetSizeMax. Implement this."); } *************** *** 1004,1014 **** /// </summary> /// <returns></returns> ! public int InitNew() { System.Diagnostics.Debug.WriteLine("InitNew"); ! if(this.SnapinState == null) { System.Diagnostics.Debug.WriteLine("No previous state"); this.SnapinState = CreateSnapinState(); return 0; ! } else { System.Diagnostics.Debug.WriteLine("Previous state found. Die!"); Marshal.ThrowExceptionForHR(unchecked((int)0x8000FFFF)); --- 1032,1046 ---- /// </summary> /// <returns></returns> ! public int InitNew() ! { System.Diagnostics.Debug.WriteLine("InitNew"); ! if(this.SnapinState == null) ! { System.Diagnostics.Debug.WriteLine("No previous state"); this.SnapinState = CreateSnapinState(); return 0; ! } ! else ! { System.Diagnostics.Debug.WriteLine("Previous state found. Die!"); Marshal.ThrowExceptionForHR(unchecked((int)0x8000FFFF)); *************** *** 1019,1023 **** //Added by Alexander Ovchinnikov ! internal void GetSelectedResultDataItem( ref RESULTDATAITEM rdi ){ rdi.mask = (uint)RDI.STATE; // nState is valid rdi.nCol = 0; --- 1051,1056 ---- //Added by Alexander Ovchinnikov ! internal void GetSelectedResultDataItem( ref RESULTDATAITEM rdi ) ! { rdi.mask = (uint)RDI.STATE; // nState is valid rdi.nCol = 0; *************** *** 1026,1030 **** ! IResultData ResultData = m_Component.Console as IResultData; ResultData.GetNextItem(ref rdi); } --- 1059,1063 ---- ! IResultData ResultData = _component.Console as IResultData; ResultData.GetNextItem(ref rdi); } |