### IVolumeIterator

  Iterates over over all mounted volumes on the system.

  This class is designed to mimic a C++ pointer, similar to the iterator classes in the ANSI/ISO C++ draft standard. When the C++ Standard Library is available, IDirectoryIterator will inherit from input_iterator.

  Typical usage is as follows: `for (IVolumeIterator aVolume; aVolume; aVolume++) { DoSomething( *aVolume ); }`

### IVolumeIterator - Member Functions and Data by Group

### Constructors & Destructor

Use these functions to construct and destroy objects of class IVolumeIterator.

~IVolumeIterator
  Destructor.

      public:
      virtual ~IVolumeIterator()

  Destroys the IVolumeIterator object.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

IVolumeIterator
  Constructs an object of class IVolumeIterator.

  Overload 1
  Copy Constructor

      public:
      IVolumeIterator(const IVolumeIterator& copy)

  Use this constructor to create an IVolumeIterator object that is copied from the given one.

  Note that copying a volume iterator does not do what you might expect. It creates another iterator object which refers to the same iteration. If you increment the new iterator, the original iterator is also incremented, because both objects actually refer to the same iteration.

  copy
    A constant reference to the object to be copied.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 2
  Default constructor.

      public:
      IVolumeIterator()

  Use this constructor to create an empty IVolumeIteratorObject.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Assignment Operator

Use the function in this group to create a volume iterator object copied from the given one. Incrementing the new one causes the original one to be incremented too.

operator =
  Assignment operator.

      public:
      IVolumeIterator& operator =(const IVolumeIterator& copy)

  Assigning a volume iterator does not do what you might expect. It creates another iterator object which refers to the same iteration. If you increment the new iterator, the original iterator is also incremented, because both objects actually refer to the same iteration.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Iterating Through Volumes

Use these iteration operators to iterator through the volumes.

operator *

      public:
      IVolume operator *() const

  Returns the IVolume that this iterator is iterating.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

operator ++
  Proceeds to the next volume in the iteration.

  Overload 1
  Pre-increment operator used for expressions such as ++iterator.

      public:
      IVolumeIterator& operator ++()

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 2
  Post-increment operator used for expressions such as iterator++.

      public:
      IVolumeIterator operator ++(int)

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

operator ->
  Returns a pointer to the current volume in the iteration.

      public:
      IVolume* operator ->()

  This member function allows the iterator to be used as if it were a normal C++ pointer, in expressions like: `anIterator->name()`

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Testing and Comparing Volume Iterators

Use these functions to compare volume iterators or validate them.

operator !=
  Inequality operator.

      public:
      bool operator !=(const IVolumeIterator& other) const

  This function test two volume iterators for inequality. They compare as equal if they are both past the end of their iteration, or if one was copy-constructed from the other.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

operator ==
  Tests two volume iterator objects for equality.

      public:
      bool operator ==(const IVolumeIterator& other) const

  Tests this IVolumeIterator object against the given one for equality.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

operator bool
  Performs a validity test.

      public:
      operator bool() const

  This member function is often used in the termination condition of a for or while loop. When operator bool returns false, there are no more volumes over which to iterate.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Miscellaneous Members

end

      public:
      static const IVolumeIterator& end()

  Returns an iterator that represents the end of iteration.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### IVolumeIterator - Inherited Member Functions and Data

#### Inherited Public Functions

  - None

#### Inherited Public Data

  - None

#### Inherited Protected Functions

  - None

#### Inherited Protected Data

  - None