public void Browse(OpcBrowseType p_Type, out ArrayList p_Lst) { p_Lst = null; UCOMIEnumString l_Enumerator; BrowseOPCItemIDs(p_Type, "", VarEnum.VT_EMPTY, 0, out l_Enumerator); if (l_Enumerator == null) { return; } p_Lst = new ArrayList(500); int l_Cft; string[] l_StrF = new string[100]; int l_HResult; do { l_Cft = 0; l_HResult = l_Enumerator.Next(100, l_StrF, out l_Cft); if (l_Cft > 0) { for (int i = 0; i < l_Cft; ++i) { p_Lst.Add(l_StrF[i]); } } }while (l_HResult == HResults.S_OK); Marshal.ReleaseComObject(l_Enumerator); l_Enumerator = null; p_Lst.TrimToSize(); }
public string[] BrowseItemIds(OpcBrowseType browseType, string filterCriteria, short dataTypeFilter, int accessRightsFilter) { IEnumString ppIEnumString = null; _server.BrowseOPCItemIDs((OPCBROWSETYPE)browseType, filterCriteria, dataTypeFilter, accessRightsFilter, out ppIEnumString); var enumString = new EnumString(ppIEnumString, 100); return Enumerable.Repeat(enumString, int.MaxValue).Select(_ => _.Next()).TakeWhile(_ => _ != null).ToArray(); }
public void BrowseOPCItemIDs(OpcBrowseType p_FilterType, string p_FilterCriteria, VarEnum p_DataTypeFilter, OpcAccessRights p_AccessRightsFilter, out UCOMIEnumString p_StringEnumerator) { object l_EnumTemp; m_IfBrowse.BrowseOPCItemIDs(p_FilterType, p_FilterCriteria, (short)p_DataTypeFilter, p_AccessRightsFilter, out l_EnumTemp); p_StringEnumerator = (UCOMIEnumString)l_EnumTemp; }
public string[] BrowseItemIds(OpcBrowseType browseType, string filterCriteria, short dataTypeFilter, int accessRightsFilter) { IEnumString ppIEnumString = null; _server.BrowseOPCItemIDs((OPCBROWSETYPE)browseType, filterCriteria, dataTypeFilter, accessRightsFilter, out ppIEnumString); var enumString = new EnumString(ppIEnumString, 100); return(Enumerable.Repeat(enumString, int.MaxValue).Select(_ => _.Next()).TakeWhile(_ => _ != null).ToArray()); }