private void OnChanged(signals.IAttribute attr, object value) { lock (st_screenLock) { if (value == null) { Console.Out.WriteLine(String.Format("{0}: null", attr.Name)); } else { Console.Out.WriteLine(String.Format("{0}: ({1}){2}", attr.Name, value.GetType().Name, value)); } } }
private void OnAttrValueChanged(signals.IAttribute attr, object value) { if (attr == mBoundAttr) { Action action = delegate() { Value = Convert.ToInt64(value); }; if (InvokeRequired) { Invoke(action); } else { action(); } } }
public IEnumerator<signals.IAttribute> Itemize(signals.EAttrEnumFlags flags) { uint numAttr = m_native.Itemize(IntPtr.Zero, 0, (uint)flags); if (numAttr == 0) return ((IList<signals.IAttribute>)new signals.IAttribute[0]).GetEnumerator(); IntPtr[] ptrArr = new IntPtr[numAttr]; GCHandle pin = GCHandle.Alloc(ptrArr, GCHandleType.Pinned); uint numObj; try { numObj = m_native.Itemize(pin.AddrOfPinnedObject(), numAttr, (uint)flags); } finally { pin.Free(); } signals.IAttribute[] attrArray = new signals.IAttribute[numObj]; for (int idx = 0; idx < numObj; idx++) { if (ptrArr[idx] != IntPtr.Zero) { signals.IAttribute newObj = (signals.IAttribute)Registration.retrieveObject(ptrArr[idx]); if (newObj == null) newObj = new CppProxyAttribute(ptrArr[idx]); attrArray[idx] = newObj; } } return ((IList<signals.IAttribute>)attrArray).GetEnumerator(); }