We recommend using Visual Studio 2017

range (C++)

 

The latest version of this topic can be found at range (C++).

Specifies a range of allowable values for arguments or fields whose values are set at run time.

  
      [ range(  
   low,   
   high  
) ]  

Parameters

low
The low range value.

high
The high range value.

The range C++ attribute has the same functionality as the range MIDL attribute.

// cpp_attr_ref_range.cpp  
// compile with: /LD  
#include <unknwn.h>  
[module(name="MyLib")];  
  
[object, uuid("9E66A290-4365-11D2-A997-00C04FA37DDB")]  
__interface ICustom {  
   HRESULT Custom([in] long l, [out, retval] long *pLong);  
   HRESULT length_is1([in, range(0, 999)] long f, [in, length_is(f)] char array[10]);  
   HRESULT length_is2([in, range(-99, -1)] long f, [in, length_is("f"), size_is(10)] char *array);  
};  

Attribute Context

Applies toInterface method, interface parameter
RepeatableNo
Required attributesNone
Invalid attributesNone

For more information about the attribute contexts, see Attribute Contexts.

IDL Attributes
Method Attributes
Parameter Attributes
Data Member Attributes
Attributes Samples

Show: