UPnP SAFEARRAY
I am trying to implement a UPnP service with one of the variables as defined here
<stateVariablesendEvents="no">
<name>ApplicationList</name>
<dataType>bin.base64</dataType>
</stateVariable>
The utl2idl.exe generated the following method in the IDL file
[propget,id(DISPID_APPLICATIONLIST),helpstring("Property ApplicationList")]
HRESULT ApplicationList(
[out,retval] SAFEARRAY *pApplicationList);
But, I get the following errors in VS 2005, on the IDL file
error MIDL2139 : type of the parameter cannot derive from void or void * : [ Type 'PVOID' ( Parameter 'pApplicationList' ) ]
error MIDL2105 : pointee / array does not derive any size : [ Field 'rgsabound' of Struct 'tagSAFEARRAY' ( Parameter 'pApplicationList' ) ]
error MIDL2040 : [out] only parameter cannot be a pointer to an open structure : [ Parameter 'pApplicationList' of Procedure 'get_ApplicationList'
If I change SAFEARRAY to SAFEARRAY(BYTE) the above errors go away, but the parameter type actually will be SAFEARRAY**.
How do I overcome this issue?

