예제 #1
0
 public CEnumDebugProperty2(IEnumDebugProperty enumDebugProperty, uint dwRadix, DEBUGPROP_INFO_FLAGS dwFields, uint timeout)
 {
     this.enumDebugProperty = enumDebugProperty;
     this.dwFields          = dwFields;
     this.dwRadix           = dwRadix;
     this.timeout           = timeout;
 }
예제 #2
0
        // Enum the children of this property
        public void EnumChildren(
            DEBUGPROP_INFO_FLAGS dwFields,
            uint dwRadix,
            ref Guid guidFilter,
            DBG_ATTRIB_FLAGS dwAttribFilter,
            String pszNameFilter,
            uint dwTimeout,
            out IEnumDebugPropertyInfo2 ppEnum)
        {
            ppEnum = null;
            EnumerationKind kind;

            if (guidFilter == FilterGuids.guidFilterArgs)
            {
                kind = EnumerationKind.Arguments;
            }
            //kind = EnumerationKind.Locals;
            else if (guidFilter == FilterGuids.guidFilterLocals)
            {
                kind = EnumerationKind.Locals;
            }
            else if (guidFilter == FilterGuids.guidFilterLocalsPlusArgs)
            {
                kind = EnumerationKind.LocalsPlusArguments;
            }
            else if (guidFilter == FilterGuids.guidFilterThis)
            {
                kind = EnumerationKind.This;
            }
            else
            {
                kind = EnumerationKind.None;
            }

            IEnumDebugProperty enumProperty = null;

            enumProperty = this.prop.EnumChildren(kind, (int )dwRadix, (int )dwTimeout,
                                                  (0 != (dwFields & DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_NOFUNCEVAL)) ? false : true);

            ppEnum = new CEnumDebugProperty2(enumProperty, dwRadix, dwFields, dwTimeout);
        }
예제 #3
0
 public  CEnumDebugProperty2(IEnumDebugProperty enumDebugProperty, uint dwRadix, DEBUGPROP_INFO_FLAGS dwFields, uint timeout) {
   this.enumDebugProperty = enumDebugProperty;
   this.dwFields = dwFields;
   this.dwRadix = dwRadix;
   this.timeout = timeout;
 }
예제 #4
0
    // Enum the children of this property
    public  void EnumChildren(
      DEBUGPROP_INFO_FLAGS dwFields, 
      uint dwRadix, 
      ref Guid guidFilter, 
      DBG_ATTRIB_FLAGS dwAttribFilter, 
      String pszNameFilter, 
      uint dwTimeout, 
      out IEnumDebugPropertyInfo2 ppEnum) {

      ppEnum = null;
      EnumerationKind kind;
      if (guidFilter == FilterGuids.guidFilterArgs)
        kind = EnumerationKind.Arguments;
        //kind = EnumerationKind.Locals;
      else if (guidFilter == FilterGuids.guidFilterLocals)
        kind = EnumerationKind.Locals;
      else if (guidFilter == FilterGuids.guidFilterLocalsPlusArgs)
        kind = EnumerationKind.LocalsPlusArguments;
      else if (guidFilter == FilterGuids.guidFilterThis)
        kind = EnumerationKind.This;
      else
        kind = EnumerationKind.None;

      IEnumDebugProperty enumProperty = null;
      enumProperty = this.prop.EnumChildren(kind, (int ) dwRadix, (int ) dwTimeout, 
        (0 != (dwFields & DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_NOFUNCEVAL)) ? false : true);

      ppEnum = new CEnumDebugProperty2(enumProperty, dwRadix, dwFields, dwTimeout);

    }
예제 #5
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;
        
      }
    }
예제 #6
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;
                }
            }
        }