Как вы выражаете свойство int [] на языке описания интерфейса?

StackOverflow https://stackoverflow.com/questions/1208654

  •  05-07-2019
  •  | 
  •  

Вопрос

Как бы вы реализовали это свойство в IDL?

    public int[] Params
    {
        get
        {
            return _Params;
        }
        set
        {
            _Params = value;
        }
    }

Я попробовал код idl ниже

[propget, helpstring("The click through parameters")] 
    HRESULT Params([out, retval] int *rVal);
[propput, helpstring("The click through parameters")] 
    HRESULT Params([in] int *RnewVal);

Но мой компилятор ищет это

public int get_Params()
{
    throw new NotImplementedException();
}

public void set_Params(ref int rVal)
{
    throw new NotImplementedException();
}

Я на 99,999% уверен, что это проблема с типами.

Это было полезно?

Решение

COM-импортер typelib предпочитает работать с интерфейсами, совместимыми с Automation, поэтому используйте SAFEARRAY :

[propget, helpstring("The click through parameters")] 
HRESULT Params([out, retval] SAFEARRAY(long) *rVal);

[propput, helpstring("The click through parameters")] 
HRESULT Params([in] SAFEARRAY(long) RnewVal);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top