2009-07-30 6 views
0

Wie würden Sie diese Eigenschaft in IDL implementieren:Wie drücken Sie eine int [] -Eigenschaft in der Schnittstellenbeschreibungssprache aus?

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

ich unter

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

Aber mein Compiler sucht dieses

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

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

I 99,999% bin Sicher, es ist ein Problem mit den Typen.

+0

Sie Params im ursprünglichen Code falsch geschrieben. –

+0

touche ich tat. Fest. Dieser Fehler war nicht im Code, aber – Dlongnecker

Antwort

3

COM typelib Importeur bevorzugt mit Automation-konformen Schnittstellen zu beschäftigen, so verwenden 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

Das war es! Vielen Dank – Dlongnecker