[PATCH 2/5] activeds: Implement ADsOpenObject. (original) (raw)
Dmitry Timoshkov dmitry at baikal.ru
Mon Dec 16 03:21:32 CST 2019
- Previous message (by thread): [PATCH 2/5] activeds: Implement ADsOpenObject.
- Next message (by thread): [PATCH 2/5] activeds: Implement ADsOpenObject.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Nikolay Sivov <bunglehead at gmail.com> wrote:
> > > > > + hr = > IADsOpenDSObjectOpenDSObject(adsopen, > > > (BSTR)path, (BSTR)user, (BSTR)password, reserved, &disp); > > > > > + if (hr == SOK) > > > > You cannot cast to a BSTR, it will corrupt the data structure. > > > > > > I depends wheather the callee uses SysStringLen() and friends, in this > > > particular case it works just fine, there are many other places in the > code > > > when it's not necessary to create intermediate copies of the strings. > > > > > > > It does not matter if it works in this case, arguments should use correct > > types. If we have similar violations somewhere else, those need fixing as > > well. > > That's a pretty incorrect assertion, there's nothing wrong in casting > BSTR to LPWSTR and vice versa. >
What's incorrect about it? You can use BSTR as WCHAR * argument, obviously. Not the other way around, even if it happens to work.
You are contradicting yourself: if it works that means that's correct behaviour. If you are going to further argue, please show the code that won't work for this particular implementation.
-- Dmitry.
- Previous message (by thread): [PATCH 2/5] activeds: Implement ADsOpenObject.
- Next message (by thread): [PATCH 2/5] activeds: Implement ADsOpenObject.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]