STDMETHODIMP CUG_Engine::init(LONG version, HWND hHandle,LONG argc, VARIANT argvs)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
if(argvs.vt == (VT_ARRAY | VT_BSTR))
{
BSTR* pValue = NULL;
SAFEARRAY* pArray = argvs.parray;
SafeArrayAccessData(pArray,(void HUGEP* FAR*)&pValue);
long Low(0),High(0);
SafeArrayGetLBound(pArray,1,&Low);
SafeArrayGetUBound(pArray,1,&High);
SafeArrayUnaccessData(pArray);
int size = High - Low +1;
}
}
pValue即为传递过来的BSTR数组
其实也适用于其他类型的数组参数传递