Вы таки начали задавтаь правильные вопросы, всё же советую прочитать побольше про технологию COM.
"...путём вызова в своём коде..." В каком "своём", в плане: Какой код использует функцию "CoMAPCOMServerDima.Create"?
Остальные вопросы:
1. Вот пример вызова:
var
x : ICommand;
Begin
{или так} x:=CreateCOMObject(CLASS_MAPCOMServerDima) as ICommand;
// {или так} x:=CoMAPCOMServerDima.Create;
x.OnCreate(pMapControl._Object); {или передача диспинтерфейса, тут можно передать любой диспатч интерфейс, ArcMap передает IApplication (IMxApplication), ArcCatalog передает свой IMx}
// x.Click;
End;
2. Функция OnClick вызывается при нажатии на саму кнопку. Для "отработки" нажатия по Контролу нужно чтобы класс, помимо интерфейса ICommand, реализовал ещё и интерфейс ITool.
З.Ы. Добавлять реализацию можно (нужно) так:
View -> Type Library -> появляется окно управления библиотекой,
слева перечислены интерфейсы описанные в библиотеки, а также классы которые их реализуют, у Вас будет что-то в виде:
перейдя на закладку Uses вы можете выбирать зарегистрированные библиотеки, интерфейсы которых можно будет реализовывать в рамках данной библиотеки. Как-то так:
добавлять можно нажав ПКМ, и выбрав опцию "Show all libraries", и там выбирая нужные библиотеки.
(но Вам это ПОКА не нужно, т.к. ITool описан в той же библиотеке что и ICommand...
Потом перейдите, на сам класс, и в закладке "Implements" нажмите ПКМ, и выбрав пункт Insert Interfaces добавьте интерфейс ITool (или любой интересующий),
в ваш клас добавляться методы интерфейса ITool, среди них такие как:
function OnContextMenu(x, y: Integer): WordBool; safecall;
procedure OnDblClick; safecall;
procedure OnKeyDown(keyCode, shift: Integer); safecall;
procedure OnKeyUp(keyCode, shift: Integer); safecall;
procedure OnMouseDown(button, shift, x, y: Integer); safecall;
procedure OnMouseMove(button, shift, x, y: Integer); safecall;
procedure OnMouseUp(button, shift, x, y: Integer); safecall;