使用retval后,某些客户端会把这个参数处理成返回值,如VB, Delphi等。
就算在VC,你编译产生一个类型库后,用VC的import语句,产生一个tlh文件,它会把GetUserName处理成 _bstr_t GetUserName(ulResult);
所以,一个方法最多只能有一个retval,但是可以有多个out。