Come si esprime una proprietà int [] nel linguaggio di descrizione dell'interfaccia?
Domanda
Come implementereste questa proprietà in IDL:
public int[] Params
{
get
{
return _Params;
}
set
{
_Params = value;
}
}
Ho provato il codice idl di seguito
[propget, helpstring("The click through parameters")]
HRESULT Params([out, retval] int *rVal);
[propput, helpstring("The click through parameters")]
HRESULT Params([in] int *RnewVal);
Ma il mio compilatore sta cercando questo
public int get_Params()
{
throw new NotImplementedException();
}
public void set_Params(ref int rVal)
{
throw new NotImplementedException();
}
Sono sicuro al 99,999% che si tratta di un problema con i tipi.
Soluzione
L'importatore di tipi di COM COM preferisce gestire interfacce conformi all'automazione, quindi utilizzare 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);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow