Module: wine Branch: master Commit: c148c0419d3acd481cb84172412a2226909c9f99 URL: http://source.winehq.org/git/wine.git/?a=commit;h=c148c0419d3acd481cb8417241...
Author: Piotr Caban piotr@codeweavers.com Date: Tue Nov 16 14:58:13 2010 +0100
shell32: Added partial implementation of SHPropStgReadMultiple.
---
dlls/shell32/shellole.c | 31 +++++++++++++++++++++++++++++-- 1 files changed, 29 insertions(+), 2 deletions(-)
diff --git a/dlls/shell32/shellole.c b/dlls/shell32/shellole.c index 0949647..5168e38 100644 --- a/dlls/shell32/shellole.c +++ b/dlls/shell32/shellole.c @@ -715,8 +715,35 @@ HRESULT WINAPI SHPropStgCreate(IPropertySetStorage *psstg, REFFMTID fmtid, HRESULT WINAPI SHPropStgReadMultiple(IPropertyStorage *pps, UINT uCodePage, ULONG cpspec, const PROPSPEC *rgpspec, PROPVARIANT *rgvar) { - FIXME("stub\n"); - return E_NOTIMPL; + STATPROPSETSTG stat; + HRESULT hres; + + FIXME("%p %u %u %p %p\n", pps, uCodePage, cpspec, rgpspec, rgvar); + + memset(rgvar, 0, cpspec*sizeof(PROPVARIANT)); + hres = IPropertyStorage_ReadMultiple(pps, cpspec, rgpspec, rgvar); + if(FAILED(hres)) + return hres; + + if(!uCodePage) { + PROPSPEC prop; + PROPVARIANT ret; + + prop.ulKind = PRSPEC_PROPID; + prop.u.propid = PID_CODEPAGE; + hres = IPropertyStorage_ReadMultiple(pps, 1, &prop, &ret); + if(FAILED(hres) || ret.vt!=VT_I2) + return S_OK; + + uCodePage = ret.u.iVal; + } + + hres = IPropertyStorage_Stat(pps, &stat); + if(FAILED(hres)) + return S_OK; + + /* TODO: do something with codepage and stat */ + return S_OK; }
/*************************************************************************