* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
-#include <precomp.h>
+#include "precomp.h"
WINE_DEFAULT_DEBUG_CHANNEL(shell);
-extern HRESULT WINAPI IFSFolder_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv);
-
static const WCHAR sShell32[12] = {'S','H','E','L','L','3','2','.','D','L','L','\0'};
/**************************************************************************
/* now we create an instance */
if (bLoadFromShell32) {
- if (! SUCCEEDED(DllGetClassObject(*myclsid, IID_IClassFactory, (LPVOID*)&pcf))) {
+ if (! SUCCEEDED(DllGetClassObject(*myclsid, IID_PPV_ARG(IClassFactory, &pcf)))) {
ERR("LoadFromShell failed for CLSID=%s\n", shdebugstr_guid(myclsid));
}
} else if (bLoadWithoutCOM) {
* SEE ALSO
* CoTaskMemAlloc, SHLoadOLE
*/
-LPVOID WINAPI SHAlloc(DWORD len)
+LPVOID WINAPI SHAlloc(SIZE_T len)
{
LPVOID ret;
if(!psf) return E_INVALIDARG;
*psf = NULL;
- hres = CDesktopFolder::_CreatorClass::CreateInstance(NULL, IID_IShellFolder, (void**)psf);
+ hres = CDesktopFolder::_CreatorClass::CreateInstance(NULL, IID_PPV_ARG(IShellFolder, psf));
TRACE("-- %p->(%p)\n",psf, *psf);
return hres;
ATLTRY (theClassObject = new CComObject<IDefClFImpl>);
if (theClassObject == NULL)
return E_OUTOFMEMORY;
- hResult = theClassObject->QueryInterface (IID_IClassFactory, (void **)&result);
+ hResult = theClassObject->QueryInterface (IID_PPV_ARG(IClassFactory, &result));
if (FAILED (hResult))
{
delete theClassObject;
if (FAILED(hResult))
return hResult;
*ppv = pcf;
- return NOERROR;
+ return S_OK;
}
/*************************************************************************
grfFlags, grfMode, dwDisposition, ppstg, puCodePage);
hres = psstg->Open(fmtid, grfMode, ppstg);
-
+
switch (dwDisposition)
{
case CREATE_ALWAYS:
if (SUCCEEDED(hres))
{
- reinterpret_cast<IPropertyStorage*>(*ppstg)->Release();
+ (*ppstg)->Release();
hres = psstg->Delete(fmtid);
if(FAILED(hres))
return hres;
hres = E_FAIL;
}
-
+
case OPEN_ALWAYS:
case CREATE_NEW:
if (FAILED(hres))
hres = psstg->Create(fmtid, pclsid, grfFlags, grfMode, ppstg);
-
+
case OPEN_EXISTING:
if (FAILED(hres))
return hres;
-
+
if (puCodePage)
{
prop.ulKind = PRSPEC_PROPID;
prop.propid = PID_CODEPAGE;
- hres = reinterpret_cast<IPropertyStorage*>(*ppstg)->ReadMultiple(1, &prop, &ret);
+ hres = (*ppstg)->ReadMultiple(1, &prop, &ret);
if (FAILED(hres) || ret.vt!=VT_I2)
*puCodePage = 0;
else
*puCodePage = ret.iVal;
}
}
-
+
return S_OK;
}
{
STATPROPSETSTG stat;
HRESULT hres;
-
+
FIXME("%p %u %u %p %p\n", pps, uCodePage, cpspec, rgpspec, rgvar);
-
+
memset(rgvar, 0, cpspec*sizeof(PROPVARIANT));
hres = pps->ReadMultiple(cpspec, rgpspec, rgvar);
if (FAILED(hres))
return hres;
-
+
if (!uCodePage)
{
PROPSPEC prop;
PROPVARIANT ret;
-
+
prop.ulKind = PRSPEC_PROPID;
prop.propid = PID_CODEPAGE;
hres = pps->ReadMultiple(1, &prop, &ret);
if(FAILED(hres) || ret.vt!=VT_I2)
return S_OK;
-
+
uCodePage = ret.iVal;
}
-
+
hres = pps->Stat(&stat);
if (FAILED(hres))
return S_OK;
-
+
/* TODO: do something with codepage and stat */
return S_OK;
}
STATPROPSETSTG stat;
UINT codepage;
HRESULT hres;
-
+
FIXME("%p %p %u %p %p %d\n", pps, uCodePage, cpspec, rgpspec, rgvar, propidNameFirst);
-
+
hres = pps->Stat(&stat);
if (FAILED(hres))
return hres;
-
+
if (uCodePage && *uCodePage)
codepage = *uCodePage;
else
{
PROPSPEC prop;
PROPVARIANT ret;
-
+
prop.ulKind = PRSPEC_PROPID;
prop.propid = PID_CODEPAGE;
hres = pps->ReadMultiple(1, &prop, &ret);
return hres;
if (ret.vt!=VT_I2 || !ret.iVal)
return E_FAIL;
-
+
codepage = ret.iVal;
if (uCodePage)
*uCodePage = codepage;
}
-
+
/* TODO: do something with codepage and stat */
-
+
hres = pps->WriteMultiple(cpspec, rgpspec, rgvar, propidNameFirst);
return hres;
}