This project has moved. For the latest updates, please go here.

Вызов методов. Method Invocation

Для вызова метода необходимо (to call a method, you must):
  • получить дескриптор метода (метод IAxHost.CreateMethodDescriptor) (get a handle method)
  • добавить необходимое количество параметров с указанием их типов (метод IMethodDescriptor.AddParam) (add the required number of parameters with their types)
  • вызвать метод (метод IAxHost.PerformMethod) (call the method)
Вызываемый метод должен быть отмечен атрибутом ApplicationProcessedAttribute (the called method must be marked a ApplicationProcessedAttribute).
Допустимые типы параметров перечислены в ParamType (valid types of parameters listed in a ParamType).

// Типы параметров. Types of parameters.
[ComVisible(true)]
[Guid("CB73C100-5462-46DC-AFF1-E7B37845568E")]
public enum ParamType {
    Int=1, // Целое число.
    Double=2, // Числос плавающей точкой.
    String=3, // Строка.
    Char=4, // Символ.
    Bool=5, // Булево значение.
    DateTime=6, // Дата/время.
    Unknown=7 // Неизвесный тип.
}

Вызов метода без параметров. Invoke a method without parameters.

Объявление метода (C#) (a method declaration)
[ApplicationProcessed]
public int GetSourcesCount() {
    // ...
}

Вызов метода (JavaScript) (calling)
_count=AxHost.PerformMethod(AxHost.CreateMethodDescriptor("GetSourcesCount"));

Вызов метода с параметрами. Invoke a method with parameters.

Объявление метода (C#) (a method declaration)
[ApplicationProcessed]
public string GetSourceProductName(int index) {
    // ...
}

Вызов метода (JavaScript) (calling)
_method = AxHost.CreateMethodDescriptor("GetSourceProductName");
_method.AddParam(sourceIndex, 1);
_name = AxHost.PerformMethod(_method);


download fullsize image

Last edited Sep 7, 2015 at 7:34 PM by SARAFF, version 6