[ uuid(db7e03ba-5bdb-11dc-9f61-00023f108d6c),
  version(1.0),
  pointer_default(unique)
]

interface echou {
    
    typedef [switch_type(long int)] union
    {
        [case(1)] long int integer;
        [case(2)] float fp;
        [case(3),string] char *str;
    } EchoUnion;

    boolean ReplyBack(	
        [in] handle_t h,
        [in] long int in_type,
        [in, switch_is(in_type), unique] EchoUnion* in_value,
        [out, switch_is(in_type)] EchoUnion** out_value,
        [out, ref] error_status_t *	status
        );
}
