All pastes #184230 Raw Edit

db3x\dbsettings.c

public cpp v1 · immutable
#184230 ·published 2006-09-27 17:58 UTC
rendered paste body
static int GetContactSettingStr(WPARAM wParam,LPARAM lParam){	DBCONTACTGETSETTING* dgs = (DBCONTACTGETSETTING*)lParam;	int iSaveType = dgs->pValue->type;	if ( GetContactSettingWorker(( HANDLE )wParam, dgs, 0 ))		return 1;   if ( iSaveType == 0 || iSaveType == dgs->pValue->type )		return 0;	if ( dgs->pValue->type != DBVT_ASCIIZ && dgs->pValue->type != DBVT_UTF8 )		return 0;	if ( iSaveType == DBVT_WCHAR ) {		if ( dgs->pValue->type != DBVT_UTF8 ) {			int len = MultiByteToWideChar( CP_ACP, 0, dgs->pValue->pszVal, -1, NULL, 0 );			wchar_t* wszResult = ( wchar_t* )mir_alloc(( len+1 )*sizeof( wchar_t ));			if ( wszResult == NULL )				return 1;			MultiByteToWideChar( CP_ACP, 0, dgs->pValue->pszVal, -1, wszResult, len );			wszResult[ len ] = 0;			mir_free( dgs->pValue->pszVal );			dgs->pValue->pwszVal = wszResult;		}		else {			char* savePtr = dgs->pValue->pszVal;			Utf8Decode( dgs->pValue->pszVal, &dgs->pValue->pwszVal );			mir_free( savePtr );		}	}	else if ( iSaveType == DBVT_UTF8 ) {		char* tmpBuf = Utf8Encode( dgs->pValue->pszVal );		if ( tmpBuf == NULL )			return 1;		mir_free( dgs->pValue->pszVal );		dgs->pValue->pszVal = tmpBuf;	}	else if ( iSaveType == DBVT_ASCIIZ )		Utf8Decode( dgs->pValue->pszVal, NULL );	dgs->pValue->type = iSaveType;	return 0;}