/// <summary> /// Creates an enumerator for the current browse position. /// </summary> /// <param name="sources">if set to <c>true</c> then sources are enumerated.</param> /// <returns>The wrapped enumerator.</returns> private EnumString CreateEnumerator(bool sources) { IEnumString unknown = null; string methodName = "IOPCEventAreaBrowser.BrowseOPCAreas"; try { IOPCEventAreaBrowser server = BeginComCall <IOPCEventAreaBrowser>(methodName, true); OPCAEBROWSETYPE browseType = OPCAEBROWSETYPE.OPC_AREA; if (sources) { browseType = OPCAEBROWSETYPE.OPC_SOURCE; } server.BrowseOPCAreas(browseType, String.Empty, out unknown); } catch (Exception e) { ComCallError(methodName, e); return(null); } finally { EndComCall(methodName); } // wrapper the enumrator. hardcoding a buffer size of 256. return(new EnumString(unknown, 256)); }
/// <summary> /// Gets the qualified name for the source. /// </summary> /// <param name="name">The name.</param> /// <returns>The qualified name for the area.</returns> private string GetQualifiedSourceName(string name) { string methodName = "IOPCEventAreaBrowser.GetQualifiedSourceName"; string qualifiedName = null; try { IOPCEventAreaBrowser server = BeginComCall <IOPCEventAreaBrowser>(methodName, true); server.GetQualifiedSourceName(name, out qualifiedName); } catch (Exception e) { ComCallError(methodName, e); return(null); } finally { EndComCall(methodName); } return(qualifiedName); }
/// <summary> /// Changes the browse position. /// </summary> /// <param name="direction">The direction.</param> /// <param name="qualifiedName">The qualified area name.</param> private bool ChangeBrowsePosition(OPCAEBROWSEDIRECTION direction, string qualifiedName) { string methodName = "IOPCEventAreaBrowser.CreateAreaBrowser"; try { IOPCEventAreaBrowser server = BeginComCall <IOPCEventAreaBrowser>(methodName, true); server.ChangeBrowsePosition(direction, qualifiedName); return(true); } catch (Exception e) { if (ComUtils.IsUnknownError(e, ResultIds.E_FAIL)) { ComCallError(methodName, e); } return(false); } finally { EndComCall(methodName); } }