|
#import <basp21.tlb> no_namespace
#include <stdio.h>
_bstr_t svname("T[o[");
_bstr_t user("[U[");
_bstr_t pass("pX[h");
_bstr_t command("LIST");
_bstr_t dirname(">C:\\user\\temp");
int main()
{
CoInitialize(NULL);
_variant_t ret;
HRESULT hresult;
try {
IBasp21Ptr pIBasp21(__uuidof(Basp21));
ret = pIBasp21->RcvMail(svname, user, pass, command, dirname);
SAFEARRAY *psa;
long lLBound, lUBound;
if( ret.vt & VT_BYREF ) {
psa = *(ret.pparray);
}
else {
psa = ret.parray;
}
if ( SafeArrayGetDim( psa ) != 1 ) {
// catch ΦWv
_com_issue_error(E_INVALIDARG);
}
SafeArrayGetLBound( psa, 1, &lLBound );
SafeArrayGetUBound( psa, 1, &lUBound );
long i;
_bstr_t str;
for ( i = lLBound; i <= lUBound; i++ ) {
VARIANT vVal;
hresult = SafeArrayGetElement( psa, &i, &vVal );
if(FAILED(hresult)) {
_com_issue_error(hresult);
}
str.operator = ( vVal );
printf( "%s\n", (LPTSTR)str );
}
}
catch( _com_error &e ) {
printf("Code = %08lx\n", e.Error());
printf("Code meaning = %s\n", e.ErrorMessage());
}
CoUninitialize();
return 0;
}
| |