long i, j, min; BSTR BSTRTemp; BSTR HUGEP *pBSTR; HRESULT hr;// Get a pointer to the elements of the array. hr = SafeArrayAccessData(psa, (void HUGEP* FAR*)&pBSTR); if (FAILED(hr)) goto error;// Bubble sort. cElements = lUBound–lLBound+1; for (i = 0; i < cElements–1; i++) { min = i; for (j = i+1; j < cElements; j++) { if (wcscmp(pBSTR[j], pBSTR[min]) < 0) min = j; } // Swap array[min] and array[i]. BSTRTemp = pBSTR[min]; pBSTR[min] = pBSTR[i]; pBSTR[i] = BSTRTemp;}SafeArrayUnaccessData(psa);
http://it.sinohome.com/164840/165815.htm
BSTR BSTRTemp;
BSTR HUGEP *pBSTR;
HRESULT hr;// Get a pointer to the elements of the array.
hr = SafeArrayAccessData(psa, (void HUGEP* FAR*)&pBSTR);
if (FAILED(hr))
goto error;// Bubble sort.
cElements = lUBound–lLBound+1;
for (i = 0; i < cElements–1; i++)
{
min = i;
for (j = i+1; j < cElements; j++)
{
if (wcscmp(pBSTR[j], pBSTR[min]) < 0)
min = j;
} // Swap array[min] and array[i].
BSTRTemp = pBSTR[min];
pBSTR[min] = pBSTR[i];
pBSTR[i] = BSTRTemp;}SafeArrayUnaccessData(psa);