主要代码如下:
       
        ILayer m_pCurrentLayer = null;
IWorkspaceEdit pWorkspaceEdit = null ; 
IFeatureLayer pFeatureLayer = null ; 
IDataset pDataset ; 
IFeatureCursor pFeatureCursor;
        IFeature pFeature ;
        IActiveView pActiveView ;
        boolean bHasUndo[]={false};
     IFeatureClass  pFeatureClass ; 
    
        pActiveView = m_hookHelper.getActiveView() ;
        //.getFocusMap() .getFeatureSelection() ;
        m_pCurrentLayer = pActiveView.getFocusMap() .getLayer( EsriConstant.CURLayerIndex);
        if( m_pCurrentLayer ==null){
         System.out.println( "当前图层为空" );
         return;
        }
     pFeatureLayer = new IFeatureLayerProxy(m_pCurrentLayer );
   pFeatureClass = pFeatureLayer.getFeatureClass() ;
   pDataset = new IDatasetProxy(pFeatureClass) ;
  if( pDataset ==null){
 return;
  }
  pWorkspaceEdit = new IWorkspaceEditProxy(pDataset.getWorkspace()) ;
  pWorkspaceEdit.hasUndos(bHasUndo );
  System.out.println( "bHasUndo=" + bHasUndo[0]);
  if(bHasUndo[0]){
  pWorkspaceEdit.undoEditOperation() ;
  }
        pActiveView.refresh() ;
不知为什么,它就是不undo,但是通过跟踪它确定执行了pWorkspaceEdit.undoEditOperation() ;,请各位高手帮忙解决一下