Resources | Resources |



IDL inrout parameter in C++

Memory for the argument is allocated by the caller. All parameters are passed as pointers to the defined type; it is an error to pass NULL pointers for inrout parameters. As with rout parameters, sequence, string and wstring parameters in IDL expand to three parameters (buffer, size, and required size) in C++. See Broken Link for details on the string mapping and see Broken Link for details on the sequence mapping.

For example:

interface IFoo
  long process(inrout short id, 
   inrout string name, 
   inrout point origin, 
   inrout ITest test);

is mapped as:

struct IFoo
  virtual int process(short int* id, 
   char* name, 
   int nameLen, 
   int* nameLenReq,
   point* origin, 
   ITest** test) = 0;