Piotr Caban : shell32: Added partial implementation of SHPropStgReadMultiple.
Alexandre Julliard
julliard at winehq.org
Tue Nov 16 12:45:46 CST 2010
Module: wine
Branch: master
Commit: c148c0419d3acd481cb84172412a2226909c9f99
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c148c0419d3acd481cb84172412a2226909c9f99
Author: Piotr Caban <piotr at 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;
}
/*************************************************************************
More information about the wine-cvs
mailing list