Пример #1
0
    public  void Next(
      System.UInt32 celt, 
      DEBUG_PROPERTY_INFO []rgelt, 
      out System.Int32 pceltFetched) {
      
      pceltFetched = 0;
      if (rgelt == null)
        rgelt	= new DEBUG_PROPERTY_INFO[celt];

      for (ulong i = 0; i < celt; i++){
        IDebugProperty debugProperty = null;
        debugProperty = this.enumDebugProperty.Current;
        if (null != debugProperty) {
          CDebugProperty prop = new CDebugProperty(debugProperty);
          if (null != prop){
            prop.GetPropertyInfo(this.dwFields, this.dwRadix, this.timeout, null, 0, out rgelt[i]);
          } 
        }

        pceltFetched++;

        bool success = false;
        success = this.enumDebugProperty.MoveNext();
        if (success == false && i < celt-1) {
          break;
        }
      }
    }
Пример #2
0
    // Get the DEBUG_PROPERTY_INFO that describes this property
    public  void GetPropertyInfo(
      DEBUGPROP_INFO_FLAGS dwFields, 
      uint dwRadix, 
      uint dwTimeout, 
      IDebugReference2 []rgpArgs, 
      uint dwArgCount, 
      out DEBUG_PROPERTY_INFO pPropertyInfo) {

      pPropertyInfo = new DEBUG_PROPERTY_INFO();

      if (0 != (dwFields & DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_FULLNAME)) {
				
        pPropertyInfo.dwFields       |= DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_FULLNAME;
        pPropertyInfo.bstrFullName    = this.prop.FullName;
      }

      if (0 != (dwFields & DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_NAME)) {
        pPropertyInfo.dwFields     |= DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_NAME;
        pPropertyInfo.bstrName     = this.prop.Name;
      }

      if (0 != (dwFields & DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_TYPE)) {
        pPropertyInfo.dwFields     |= DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_TYPE;
        pPropertyInfo.bstrType    = this.prop.Type;
      }

      if (0 != (dwFields & DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_PROP)) {
        pPropertyInfo.dwFields     |= DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_PROP;
        pPropertyInfo.pProperty     = this as IDebugProperty2;
      }

      if (0 != (dwFields & DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_VALUE)) {
        pPropertyInfo.dwFields |= DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_VALUE;
        pPropertyInfo.bstrValue    = this.prop.GetValue(dwRadix, dwTimeout);
      }

      if (0 != (dwFields & DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_VALUE_AUTOEXPAND)) {
        pPropertyInfo.dwFields   |= DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_VALUE_AUTOEXPAND;
      }

      if (0 != (dwFields & DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_ATTRIB)){
        pPropertyInfo.dwFields |= DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_ATTRIB;

        DebugPropertyAttributes attrib;
        attrib = this.prop.Attributes;

        pPropertyInfo.dwAttrib = 0;
        if (0 != (attrib & DebugPropertyAttributes.Expandable))
          pPropertyInfo.dwAttrib |= DBG_ATTRIB_FLAGS.DBG_ATTRIB_OBJ_IS_EXPANDABLE;
        if (0 != (attrib & DebugPropertyAttributes.ReadOnly))
          pPropertyInfo.dwAttrib |= DBG_ATTRIB_FLAGS.DBG_ATTRIB_VALUE_READONLY;
        if (0 != (attrib & DebugPropertyAttributes.Error))
          pPropertyInfo.dwAttrib |= DBG_ATTRIB_FLAGS.DBG_ATTRIB_VALUE_ERROR;
        if (0 != (attrib & DebugPropertyAttributes.SideEffect))
          pPropertyInfo.dwAttrib |= DBG_ATTRIB_FLAGS.DBG_ATTRIB_VALUE_SIDE_EFFECT;
        if (0 != (attrib & DebugPropertyAttributes.OverloadedContainer))
          pPropertyInfo.dwAttrib |= DBG_ATTRIB_FLAGS.DBG_ATTRIB_OVERLOADED_CONTAINER;
        if (0 != (attrib & DebugPropertyAttributes.Boolean))
          pPropertyInfo.dwAttrib |= DBG_ATTRIB_FLAGS.DBG_ATTRIB_VALUE_BOOLEAN;
        if (0 != (attrib & DebugPropertyAttributes.BooleanTrue))
          pPropertyInfo.dwAttrib |= DBG_ATTRIB_FLAGS.DBG_ATTRIB_VALUE_BOOLEAN_TRUE;
        if (0 != (attrib & DebugPropertyAttributes.Invalid))
          pPropertyInfo.dwAttrib |= DBG_ATTRIB_FLAGS.DBG_ATTRIB_VALUE_INVALID;
        
      }
    }