Example #1
0
    public IntPtr GetParameterText( int method, int parameter, ParameterTextType type ){      
      if (this.methods == null) return IntPtr.Zero;
      if (method < 0 || method >= GetOverloadCount()) return IntPtr.Zero;
      if (parameter < 0 || parameter >= GetParameterCount( method )) return IntPtr.Zero;
      
      string name;
      string description;
      string display;
      this.methods.GetParameterInfo( method, parameter, out name, out display, out description );
      string result = null;

      switch (type) {
        case ParameterTextType.PTT_NAME:        
          result = name; 
          break;
        case ParameterTextType.PTT_DESCRIPTION: 
          //result = description;
          break;
        case ParameterTextType.PTT_DECLARATION: 
          result = display; 
          break;
        default:              
          break;
      }
      return result == null ? IntPtr.Zero : Marshal.StringToBSTR(result);
    }
Example #2
0
 private static int IndexOfParameterTextType(ParameterTextType parameterTextType)
 {
     switch (parameterTextType)
     {
         case ParameterTextType.PTT_DECLARATION:
             return 0;
         case ParameterTextType.PTT_DESCRIPTION:
             return 1;
         case ParameterTextType.PTT_NAME:
             return 2;
     }
     throw new ArgumentOutOfRangeException("parameterTextType");
 }
Example #3
0
 public IntPtr GetOrCreateParameter(int index, ParameterTextType parameterTextType, Func<string> factory)
 {
     var p = parametersCache[index] ?? (parametersCache[index] = new NativeStringsCacheForParameter());
     return p.GetOrCreate(parameterTextType, factory);
 }
Example #4
0
 public IntPtr GetOrCreate(ParameterTextType parameterTextType, Func<string> factory)
 {
     return nativeStringCache.GetOrCreateStringPointer(IndexOfParameterTextType(parameterTextType), factory);
 }
Example #5
0
        public IntPtr GetParameterText(int method, int parameter, ParameterTextType type)
        {
            if (this.methods == null) return IntPtr.Zero;

            if (method < 0 || method >= GetOverloadCount()) return IntPtr.Zero;

            if (parameter < 0 || parameter >= GetParameterCount(method)) return IntPtr.Zero;

            var overload = nativeStringsCacheForOverloads.GetOverload(method);
            return overload.GetOrCreateParameter(
                parameter,
                type,
                () =>
                    {
                        string name;
                        string description;
                        string display;

                        this.methods.GetParameterInfo(method, parameter, out name, out display, out description);

                        switch (type)
                        {
                            case ParameterTextType.PTT_NAME:
                                return name;

                            case ParameterTextType.PTT_DESCRIPTION:
                                return description;

                            case ParameterTextType.PTT_DECLARATION:
                                return display;

                            default:
                                throw new ArgumentOutOfRangeException("type");
                        }
                    }
                );
        }