ArcMap 9.3.1 w/ ArcFM. Using C#.
The goal is to be able to prevent certain edits based on specified business rules.
One option might seem to be looking at all operation edits in BeforeStopEditing and somehow cancelling the operation here. This is not possible as ESRI states you can't call AbortOperation here and throwing an exception does not prevent the operation from committing. Even setting a flag in BeforeStopEditing and calling UndoOperation in StopEditing if the flag is set won't work.
The obvious documented approach is to create a custom class extension and apply to all (required) tables. A given table can only have one class extension applied. Since we are using ArcFM it has applied its class extension(s) to the feature class tables. We could probably use this approach for the data tables.
We are currently using the Editor IEditEvents* to listen for feature edits, but this doesn't provide data table edits.
We are also hoping to avoid applying a custom class extension to 100's of tables, the maintenence group would not agree to that.
It's also not feasible to get all IObjectClasses and listen to each directly in the code.
The hope was to find an existing coclass or interface that broadcasts edit events for all tables. The doc's seem to suggest ObjectClassEvents may do this, but only in VB. Trying to create an instance of this in C# throws an exception (factory can't create).