VC:
IDispatch* CTraceViewDlg::GetVersionList()
{
std::auto_ptr<COleStringCollection> users(new COleStringCollection());
IDispatch* result = users->GetIDispatch(FALSE);
for (int i = 0; i < m_pTraceManifest->get_Count(); ++i)
{
ITraceVersionPtr ver = m_pTraceManifest->get_Item(i);
TXString name = ver->get_UserName();
users->Add(name.c_str());
}
users.release();//release在auto_ptr中是Detach的作用,这样智能指针就不会释放内存了,反之让脚本引擎去释放
return result;
}
JavaScript:
function getUserColor(verNum)
{
var users = external.GetVersionList();
var arrName = new Array();
var nNum = 0;
for(var i=0; i<users.length; i++)
{
alert(users.item(i));
}
}