BASP21 の COM経由の使用

  Base64 メソッド



  
#import <basp21.tlb> no_namespace
#include <stdio.h>
#include <comdef.h>

IBasp21Ptr pBasp = NULL;
inline void TESTHR(HRESULT x) {if FAILED(x) _com_issue_error(x);};

// *********************************************
// 実行
// *********************************************
int main()
{
	_bstr_t bstrValue = "=?ISO-2022-JP?B?GyRCTSU5YRsoQg==?=";
	_bstr_t bstrRet;

	CoInitialize( NULL );

	try {
		TESTHR(pBasp.CreateInstance(__uuidof(Basp21)));

		bstrRet = pBasp->Base64( bstrValue, 3 );
		printf( "%s\n", (LPTSTR)bstrRet );

		pBasp.Release();
	}
	catch (_com_error &e) {
		printf( "%s\n", (LPTSTR)e.Description() );
	}

	CoUninitialize();

	return 0;
}
  



  RcvMail メソッド



  
#import <basp21.tlb> no_namespace
#include <stdio.h>

_bstr_t svname("サーバー");
_bstr_t user("ユーザー");
_bstr_t pass("パスワード");
_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 へジャンプ
			_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;
}
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ