32 VARIANT* out_elements,
33 ULONG* out_elements_received) {
38 ULONG available_count =
static_cast<ULONG>(items_.size()) - current_index_;
39 ULONG count = std::min(requested_count, available_count);
41 out_elements[i] = items_[current_index_ + i].Copy();
42 current_index_ +=
count;
46 if (out_elements_received)
47 *out_elements_received =
count;
49 return (
count == requested_count ? S_OK : S_FALSE);