2009-07-30 3 views
0

Как бы реализовать это свойство в IDL:Как вы выражаете свойство int [] в языке описания интерфейса?

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% уверен, что это проблема с типами.

+0

опечатку Params в исходном коде. –

+0

коснулся меня. Исправлена. Эта ошибка не была в коде, однако – Dlongnecker

ответ

3

COM TypeLib импортер предпочитает иметь дело с интерфейсами автоматизации-совместимой, поэтому используйте 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); 
+0

Вот и все! благодаря – Dlongnecker

Смежные вопросы