//Called by the 'system' when dll data has arrived.
bool TKSyncherInterface::InterfaceReceivedData(AppID from_app_id, void* input_data, void* output_data){
	if(from_app_id.m_app_id!=syncherspace::m_syncher_app.m_app_id || !mb_registered)  //only care if it is from the syncher
		return false;

	IPInterface message;
	message.ReadFromBuffer((byte*)input_data);
	if(message.v_strings.size()<1)
		return false;

	//make sure the source name matches this one.
	if(stricmp(message.v_strings[0].c_str(),m_source.c_str())!=0)
		return false;

	if(message.m_type==message.CURRENTMAP ){
		UINT tmp;
		m_current_map.ReadFromBuffer(message.GetData(tmp));
		return true;
	}

	if(message.m_type==message.ISCHANGING){
		mb_changing=true;
	}

	if(message.m_type==message.MAPDONECHANGING && message.v_strings.size()==2){
		MapFinishedChanging((char*)message.v_strings[1].c_str());
		mb_changing=false;
		return true;
	}

	if(message.m_type==message.MAPHASCHANGED && message.v_strings.size()==2){
		MapHasChanged((char*)message.v_strings[1].c_str());
		return true;
	}

	return false;
}