COM+ Event Methods (Marshaling Data Arrays) ... Problem

I've got a set of COM+ Event methods created that include some variable-length integer data arrays as arguments to the event methods. I've used variable-length data arrays in COM server interfaces before and had no problem getting the data marshaled over to the calling client app. I simply send an integer argument for the data array length, along with defining the data array as a size_is parameter. This would look like the following in the IDL definition file:

interface IErrorEvents : IUnknown
[helpstring("method NewErrorEvent")] HRESULT NewErrorEvent(
[in] long DataSize,
[in, size_is(DataSize)] unsigned char* DataArray);

This type of COM interface definition works fine for COM servers. However, using this type of IDL definition for a COM+ event method causes a problem. I only receive the 1st integer array value via marshaling, along with a value 1 for the 2nd array value. This occurs no matter what the size of the data array that is getting passed via the COM+ event method. Does anyone know what might be causing this weird marshaling problem when using COM+ event methods?
Thanks ... Rick

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!