C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  Update World C++: Сборник GPL QT исходников
  Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Letyshops [lifetime]

 46 - IEnumVARIANT::Clone / COM-справка / Приложение

Шаг 46 - IEnumVARIANT::Clone

Создает копию текущего состояния перечислителя.

HRESULT Clone
(
	lEnumVARIANT FAR* FAR*ppEnum
);

Параметр:

  • ppEnum - После возврата указывает на копию перечислителя.

Коды возврата:
Из возвращенного HRESULT получают один из следующих кодов возврата:

Код возвратаЗначение
S_OKУспех.
E_OUTOFMEMORYHe хватает памяти для выполнения операции.

Комментарии:
С помощью этой функции можно запомнить некоторую точку в последовательности перечисления, чтобы позднее к ней возвратиться. Полученный перечислитель имеет тот же интерфейс, что и оригинальный. При повторном перечислении не гарантируется возврат той же самой последовательности вариантов, что при первом. Хотя точное повторение и желательно, результат зависит от перечисляемого набора. Для некоторых наборов выполнение этого условия может оказаться непрактичным (например, в случае перечисления файлов в каталоге).

Пример:

Следующий код реализует IEnumVARIANT::Clone для наборов из примера Lines (файл Enumvar.cpp).

STDMETHODIMP
CEnumVariant::Clone(IEnumVARIANT FAR* FAR* ppenum)
{
	CEnumVariant FAR* penum = NULL;
	HRESULT hr;

	*ppenum = NULL;

	hr = CEnumVariant::Create(m_psa, m_cElements, &penum); 
	if (FAILED(hr)) 
	goto error; 
	penum->AddRef(); 
	penum->m_lCurrent = m_lCurrent;

	*ppenum = penum;
	return NOERROR;

error:
	if (penum)
		penum->Release(); 
	return hr;
}

| |
Автор Каев Артем.
[AD]





Letyshops [lifetime]