/// <summary>
        /// Prompts the user to create a new subscription.
        /// </summary>
        internal void CreateSubscription()
        {
            OpcDa.SubscriptionState     subscription;
            SubscriptionTreeNodeSession node;

            using (SubscriptionCreateDlg dial = new SubscriptionCreateDlg())
            {
                dial.ShowDialog(Tag, DefaultBrowseFilters, m_SupportedLocales, this);
                if (dial.DialogResult != DialogResult.OK)
                {
                    return;
                }
                subscription = dial.State;
                if (subscription == null)
                {
                    return;
                }
                node = new SubscriptionTreeNodeSession(subscription, dial.GetItems, this);
                if (!string.IsNullOrEmpty(dial.Locale))
                {
                    node.Locale = dial.Locale;
                }
                node.Filter = dial.Filter;
            }
            if (Tag.IsConnected)
            {
                node.Subscribe();
            }
        }
 public SubscriptionItems(SubscriptionTreeNodeSession node)
 {
     foreach (TagTreeNode item in node.Nodes)
     {
         myChildren.Add((Guid)item.Tag.ClientHandle, item.Tag);
     }
     srcItems = new OpcDa.Item[myChildren.Count];
     for (int ii = 0; ii < srcItems.Length; ii++)
     {
         srcItems[ii] = myChildren.Values[ii].GetItem;
         myChildren.Values[ii].Invalidate();
     }
 }