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?

[5917 byte] By [SampathR] at [2007-12-24]

Software Development for Windows Vista

Site Classified