hi all,
when I write a function in the IDL file, there is a problem:want to write a different-length string to a array like:

interface test{
        int write([string]char* str, int len);
        int read([out,prealloc_client, size_is(size), prealloc_server]char str[], int size);
       };


I have defined a fixed size array in the server like array[256].
In the write() function I write a different length string to the array, then I want to read parts or all of the array in the read() function, the process will be like the following:

string[len]                               str[size]
        |                                        ^
        |                                         |
        --------->array[256] -----------|


but when I put the function above and compile it, there are some error happen. I have change the size_is() with length_is() or max_is(), but there still error when I compile it. I know if I define a fix array str[256] the code can be work, but I just want to use a unfixed length array to get the string.
could someone please give me some advice?if I describe the problem clearly, please let me know.

thank you!


--
fang,