Hello Julien and Openchange folks

Over the last couple of weekends, I've been experimenting with the
openchange emsmdb.idl file and seeing if it could be adapted to be used by
the dcerpc compiler. I've noticed this particular anomaly in the
mapi_requst structure.

The last field in the mapi_request is a pointer to a handle array - int
*handles.  This is usually variable length - some calls take two handles and
some take just one handle. In dce/rpc, this would need to be specified
apriori with an attribute size_is(count) - where some previous variable
provides the number of handles to marshall.

But the specification has no such field.  So I hardcoded it to always accept
2 handles.

----- Here is the snippet that I put together -----------
typedef struct {

unsigned int mapi_len; /* whole mapi_data length */

unsigned
short length; /* content length */

EcDoRpc_MAPI_REQ *mapi_req;

//unsigned int *handles; /* KG change handles id array */

unsigned
int handles[2];

} mapi_request;

__________ snippet ends ____________



Also, I was curious to know if there is any interest in reconciling these
changes. pidl has very different syntax than standard dce/rpc idl...

Glad for any clarification here?

Krishna
_______________________________________________
devel mailing list
[email protected]
http://mailman.openchange.org/listinfo/devel

Reply via email to