24 #ifndef __IParcelList__ 25 #define __IParcelList__ 27 #include "IPMUnknown.h" 29 #include "ParcelKey.h" 38 enum { kDefaultIID = IID_IPARCELLIST };
44 virtual UIDRef GetFrameListRef()
const = 0;
49 virtual int32 GetParcelCount()
const = 0;
58 virtual int32 GetParcelIndex(
ParcelKey key)
const = 0;
69 virtual ParcelKey GetNthParcelKey(int32 index)
const = 0;
70 virtual ParcelKey GetFirstParcelKey()
const = 0;
71 virtual ParcelKey GetLastParcelKey()
const = 0;
116 virtual bool16 GetParcelAcceptingPendingInvals(
ParcelKey key)
const = 0;
134 typedef std::ptrdiff_t difference_type;
137 typedef std::bidirectional_iterator_tag iterator_category;
141 { fKey = fHelper->dereference(); }
145 fHelper = copy.fHelper->copy();
163 fHelper = rhs.fHelper->copy();
171 fHelper->increment();
172 fKey = fHelper->dereference();
179 fHelper->increment();
180 fKey = fHelper->dereference();
186 fHelper->decrement();
187 fKey = fHelper->dereference();
194 fHelper->decrement();
195 fKey = fHelper->dereference();
200 {
return fHelper->equal(rhs.fHelper); }
203 {
return !(*
this == rhs); }
214 typedef std::ptrdiff_t difference_type;
217 typedef std::bidirectional_iterator_tag iterator_category;
228 {
return fIter.operator*(); }
231 {
return fIter.operator->(); }
234 { this->fIter = rhs.fIter;
return *
this; }
237 { --fIter;
return *
this; }
247 { ++fIter;
return *
this; }
257 {
return (this->fIter == rhs.fIter); }
260 {
return !(*
this == rhs); }
284 virtual ParcelKey dereference()
const = 0;
286 virtual void increment() = 0;
287 virtual void decrement() = 0;