خوب کسی که جواب نداد خودم جواب میدم (این تالار یک اقای موسوی رو داره که بعضی وقتا جواب میده و کلاخیلی خلوته ...)
این همه منبع کامل واسه سی شارپ داریم اما وقتی میخوام درمورد سی یا سی پلاس پلاس مطلبی پیدا کنم جونم بالا می یاد تا یک نمونه کد گیر بیارم و بفهمم!!!! مثلا درباره همین SAFEARRAY مطلب زیاد بود ولی من لینک زیر رو متوجه شدم و تونستم ازش جواب بگیرم .... پیشنهاد می کنم این لینک رو مطالعه کنید.
http://www.codeproject.com/KB/atl/safearray_macro.aspx
کدی که برای برنامم نوشتم اینه:
LONG lstart, lend;
SAFEARRAY* sa = CardFuncs->testStringArray();
LONG idx = -1;
LONG nPos;
HRESULT hr2;
BSTR* pbstr;
hr2 = SafeArrayAccessData(sa,(void HUGEP**)&pbstr);
if(SUCCEEDED(hr2))
{
for(idx=lstart; idx <= lend; idx++)
{
CComBSTR s;
s = pbstr[idx];
.
.
.
// s now contains the item at position idx in the array
// ...
}
hr2 = SafeArrayUnaccessData(sa);
if(FAILED(hr2)) return hr2;
}
else
return hr2;
البته یک سری پارامترها اینجا اضافست دیگه خلوتش نکردم ..........