(1)当m=0时,f(x)=-x3+x2+x.
∴f′(x)=-3x2+2x+1=?3(x+)(x?1).
列表如下:

由表可知:函数f(x)=-x3+x2+x在区间[-,1]上单调递增,在(?∞,?)和(1,+∞)上单调递减.
∴f(x)的极小值为f(?)=-,
极大值为?(1)=1.
(2)由(1)知,当x=-时,
f(x)取得极小值f(?)= +?+m=m?,
当x=1时,f(x)取得极大值
f(1)=-1+1+1+m=m+1,
当,即-1<m<时,
f(-1)=1+1-1+m=m+1>0,
f(?)=m-<0,
f(1)=m+1>0,f(2)=m-2<0,
∴f(x)=-x3+x2+m在[?1,?]上有唯一零点.
在(?,1]上有唯一零点,在(1,2]上有唯一零点.又f(x)=-x3+x2+x+m在(-∞,-1]上单调递减,
在[2,+∞]上单调递减,∴在(-∞,-1]上恒有?f(x)≥f(-1)>0,在[2,+∞)上恒有f(x)≤f(2)<0.
∴f(x)=-x3+x2+x+m-在(-∞,-1]和[2,+∞)上无零点.∴-1<m<时,函数f(x)=-x3+x2+x+m在有三个零点,
∴所求实数m的取值范围是(?1,).