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++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 94 - SafeArrayAccessData / COM-справка / Приложение

Шаг 94 - SafeArrayAccessData

Увеличивает счетчик блокировок массива и возвращает указатель на данные массива.

HRESULT SafeArrayAccessData
( 
	SAFEARRAY FAR*psa, 
	void HUGEP* FAR*ppvData
);

Параметры:
psa
Указатель на дескриптор массива, созданный с помощью SafeArrayCreate.
ppvData
По возвращении указывает на указатель на данные массива. Размер массива может превышать 64К, так что в 16-разрядных Windows 3.1 и старше следует использовать указатели типа huge.

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

Код возвратаЗначение
S_OKУспех.
E_INVALIDARGПараметр psa не является правильным дескриптором безопасного массива.
E_UNEXPECTEDМассив нельзя заблокировать.

Пример:
В приведенном ниже примере выполняется сортировка одномерного безопасного массива BSTR с обращением к его элементам напрямую. Этот способ работает быстрее, чем если прибегнуть к SafeArrayGetElement и SafeArrayPutElement.

long i, j, min; 
BSTR bstrTemp; 
BSTR HUGEP *pbstr; 
HRESULT hr;
// Получить указатель на элементы массива.
hr = SafeArrayAccessData(psa, (void HUGEP* FAR*)&pbstr);
if (FAILED(hr))
goto error;

// "Пузырьковая" сортировка.

cEleisents = lUBound-1l_Bound+1; 
for (i = 0; i < cElements-1)
{
	min = i;
	for (j = i+1; j < cElements; j++)
	{
		if (wcscmp(pbstr[j], pbstr[min]) < 0) 
			min = j;
	}
	// Поменять Maccив[min] и массив[1]
	bstrTemp = pbstr[min]; 
	pbstr[min] = pbstr[i]; 
	pbstr[i] = bstrTemp;
}

SafeArrayUnaccessData(psa);

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