Rolf Kalbermatter wrote:
Robert Shearman [mailto:rob@codeweavers.com] wrote:
No. Everything (except multi-dimensional arrays, possibly) can already be done by the code we output already. Adding code to output -Oicf proc format strings in widl would be possible, but unnecessary.
Ok, but I have made some parameter protocols to NdrClientCall2 from native advapi32 and believe that using those MIDL format informations could allow to make an idl file that would result in a fully wire compatible protocol to the MS services.exe one. It's not exactly trivial to decode the MIDL_ProcFormatString but by verifying the generated MIDL generated code against those protocolled parameters would certainly help a lot.
We really don't want to do development in that way. It would be much better to use the information that Samba have gained in a clean way combined with documentation with the equivalent Win32 function to figure out the compatible IDL file.
A first not through check seems to indicate that almost every service control API has its own services.exe rpc message, so no ANSII to Widechar translation in the Advapi32.dll! Probably because there was a services.exe implementation before the widechar APIs got introduced. Also the protocol message numbers seem to have some holes, probably some undocumented APIs here.
This kind of work has already been done and the interface fairly well documented, so I'll point you at this documentation: http://www.hsc.fr/ressources/articles/win_net_srv/msrpc_svcctl.html