下面是我的实验,进行不下去了,请帮忙unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, AxCtrls, OleCtrls, esriControls_TLB,esriCore_TLB,ComObj;type
  TTest = class(Tinterfacedobject,IWorkspaceEditEvents)
    protected
      function  OnStartEditing(withUndoRedo: WordBool): HResult;stdcall;
      function  OnStopEditing(saveEdits: WordBool): HResult;stdcall;
      function  OnStartEditOperation: HResult;stdcall;
      function  OnAbortEditOperation: HResult;stdcall;
      function  OnStopEditOperation: HResult;stdcall;
      function  OnUndoEditOperation: HResult;stdcall;
      function  OnRedoEditOperation: HResult;stdcall;
    public
      constructor Create(AnAppDispatch: IUnknown; const AnAppDispIntfIID: TGUID);
      destructor Destroy; override;
  end;  TForm1 = class(TForm)
    MapControl1: TMapControl;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    ws:IWorkspace;
    ptest:TTest;  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
var
    pedit:IWorkspaceEdit;
begin
    pedit:=ws as IWorkspaceEdit;
    pedit.StartEditing(true);
end;procedure TForm1.FormCreate(Sender: TObject);
var
    flyr:IFeatureLayer;
    fcls:IFeatureClass;
    pDataset:IDataset;
    we:IWorkspaceEditEvents;
    obj:variant;
begin
    flyr:=mapcontrol1.Layer[0] as IFeatureLayer;
    flyr.Get_FeatureClass(fcls);
    pDataset:=fcls as IDataset;
    pDataset.Get_Workspace(ws);
    ws.QueryInterface(IWorkspaceEditEvents,obj);
    if varisempty(obj) then
    begin
        //we:=ws as IWorkspaceEditEvents;
        ptest:=TTest.create(ws as IUnknown,WorkspaceEditEvents);
    end;
end;{ TTest }constructor TTest.Create(AnAppDispatch: IUnknown; const AnAppDispIntfIID: TGUID);
var
    f:longint;
begin    
    InterfaceConnect(AnAppDispatch,AnAppDispIntfIID,self,f);
end;destructor TTest.Destroy;
begin
  inherited;end;function TTest.OnAbortEditOperation: HResult;
beginend;function TTest.OnRedoEditOperation: HResult;
beginend;function TTest.OnStartEditing(withUndoRedo: WordBool): HResult;
begin
    showmessage('sadf');
end;function TTest.OnStartEditOperation: HResult;
beginend;function TTest.OnStopEditing(saveEdits: WordBool): HResult;
beginend;function TTest.OnStopEditOperation: HResult;
beginend;function TTest.OnUndoEditOperation: HResult;
beginend;end.怎么样在我开始编辑的自动会执行开始编辑事件中的代码?
我看了D:\Program Files\Borland\Delphi5\Demos\Activex\Oleauto\Word8的例子,不解之处很多,请大家帮我提高提高