On Wed, 19 Nov 2003, Simo Sorce wrote: > To me the two syntaxes seem equivalent, where's the difference? > /simo's mind obfuscated at the end of the day
OK, as it turns out, both are wrong! NetShareEnum in MSDN shows something like: NET_API_STATUS NetShareEnum( LPWSTR serbername, DWORD level, LPBYTE *bufptr, /* The Info struct */ DWORD prefmaxlen, LPDWORD entriesread, LPDWORD totalentries, LPDWORD resume_handle ); This means that level should be a top-level entity in the IDL, and it is not in either. I will correct that in both. However, in Ethereal, the SHARE_ENUM_STRUCT is shown as: /* * IDL typedef struct { * IDL long Level; * IDL SHARE_ENUM_UNION shares; * IDL } SHARE_ENUM_STRUCT; */ Which is still not correct, but more correct than what is in the current samba4 IDL: typedef struct { uint32 level; uint32 level2; [switch_is(level)] srvsvc_NetShareSubCtr subctr; } srvsvc_NetShareCtr; This is just ugly :-) Also, I think we should use the same names as MSDN wherever possible! > On Wed, 2003-11-19 at 19:29, Richard Sharpe wrote: > > Hmmm, the IDL for NetrShareEnum seems wrong. For example, Ethereal, which > > dissects this correctly, and follows MSDN in its naming conventions, has > > it as: > > > > /* > > * IDL long NetrShareEnum( > > * IDL [in] [string] [unique] wchar_t *ServerName, > > * IDL [in] [out] [ref] SHARE_ENUM_STRUCT *share, > > * IDL [in] long MaxLen, > > * IDL [out] long Entries, > > * IDL [in] [out] [unique] long *ResumeHandle > > * IDL ); > > */ > > > > while the above change has it as: > > > > /******************/ > > /* Function: 0x24 */ > > WERROR srvsvc_NetShareEnum( > > [in] unistr *server_unc, > > [in,out] srvsvc_NetShareCtr ctr, > > [in] uint32 preferred_len, > > [out] uint32 total, > > [in,out] uint32 *resume_handle > > ); > > > > Regards > > ----- > > Richard Sharpe, rsharpe[at]ns.aus.com, rsharpe[at]samba.org, > > sharpe[at]ethereal.com, http://www.richardsharpe.com > -- Regards ----- Richard Sharpe, rsharpe[at]ns.aus.com, rsharpe[at]samba.org, sharpe[at]ethereal.com, http://www.richardsharpe.com