Am Samstag, den 10.01.2009, 22:41 +0000 schrieb Rob Shearman:
2009/1/10 Michael Karcher wine@mkarcher.dialup.fu-berlin.de:
If we take MIDL 6.00.0366 as reference, the following method type is legal:
void frobnicate([size_is(x),in,out] int * bar1, [size_is(*bar1),out] int * bar2, [in] int x);
Also, can you add a test for this in dlls/rpcrt4/tests/server.c?
Yes, of course. I didn't know that a widl test existed. Would be *really* great if the crosstest of this test could use MIDL generated client/server code instead of WIDL one, but when I tried some time ago it looked like getting MIDL to run in Wine needs some work.
If I write a test for
void frobnicate([size_is(x),in,out] int * bar1, [size_is(*bar1),out] int bar2[], [in] int x);
instead, I can also test that bar1 is null-pointer-checked while bar2 gets away with being NULL as long as *bar1 is 0 on exit of the function. This is what [6/8] fixes in widl.
Regards, Michael Karcher