Beispiel #1
0
 internal static OpcRcw.Da.OPCBROWSEELEMENT[] GetBrowseElements(IntPtr BrowseElements, int BrowseElementCount)
 {
     if (BrowseElements != IntPtr.Zero && BrowseElementCount > 0)
     {
         OpcRcw.Da.OPCBROWSEELEMENT[] ret = new OpcRcw.Da.OPCBROWSEELEMENT[BrowseElementCount];
         IntPtr pos = BrowseElements;
         for (int i = 0; i < BrowseElementCount; i++)
         {
             OpcRcw.Da.OPCBROWSEELEMENT element = (OpcRcw.Da.OPCBROWSEELEMENT)Marshal.PtrToStructure(pos, typeof(OpcRcw.Da.OPCBROWSEELEMENT));
             Marshal.StructureToPtr(element, pos, false);
             pos    = (IntPtr)(pos.ToInt32() + Marshal.SizeOf(typeof(OpcRcw.Da.OPCBROWSEELEMENT)));
             ret[i] = element;
         }
         return(ret);
     }
     return(new OpcRcw.Da.OPCBROWSEELEMENT[0]);
 }
Beispiel #2
0
		/// <summary>
		/// Allocates and marshals an OPCBROWSEELEMENT structure.
		/// </summary>
		internal static OpcRcw.Da.OPCBROWSEELEMENT GetBrowseElement(BrowseElement input)
		{
			OpcRcw.Da.OPCBROWSEELEMENT output = new OpcRcw.Da.OPCBROWSEELEMENT();
			
			if (input != null)
			{
				output.szName         = input.Name;
				output.szItemID       = input.ItemId;
				output.dwFlagValue    = 0;
				output.ItemProperties = GetItemProperties(input.Properties);

				if (input.IsItem)
				{
					output.dwFlagValue |= OpcRcw.Da.Constants.OPC_BROWSE_ISITEM;
				}

				if (input.HasChildren)
				{
					output.dwFlagValue |= OpcRcw.Da.Constants.OPC_BROWSE_HASCHILDREN;
				}
			}

			return output;
		}