}
else if(IsEqualIID(riid, &IID_IShellLinkW))
{
- *ppvObj = (void *)&(This->lpvtblw);
+ *ppvObj = &(This->lpvtblw);
}
else if(IsEqualIID(riid, &IID_IPersistFile))
{
- *ppvObj = (void *)&(This->lpvtblPersistFile);
+ *ppvObj = &(This->lpvtblPersistFile);
}
else if(IsEqualIID(riid, &IID_IPersistStream))
{
- *ppvObj = (void *)&(This->lpvtblPersistStream);
+ *ppvObj = &(This->lpvtblPersistStream);
}
else if(IsEqualIID(riid, &IID_IShellLinkDataList))
{
- *ppvObj = (void *)&(This->lpvtblShellLinkDataList);
+ *ppvObj = &(This->lpvtblShellLinkDataList);
}
else if(IsEqualIID(riid, &IID_IShellExtInit))
{
- *ppvObj = (void *)&(This->lpvtblShellExtInit);
+ *ppvObj = &(This->lpvtblShellExtInit);
}
else if(IsEqualIID(riid, &IID_IContextMenu))
{
- *ppvObj = (void *)&(This->lpvtblContextMenu);
+ *ppvObj = &(This->lpvtblContextMenu);
}
else if(IsEqualIID(riid, &IID_IObjectWithSite))
{
- *ppvObj = (void *)&(This->lpvtblObjectWithSite);
+ *ppvObj = &(This->lpvtblObjectWithSite);
}
else if(IsEqualIID(riid, &IID_IShellPropSheetExt))
{
- *ppvObj = (void *)&(This->lpvtblPropSheetExt);
+ *ppvObj = &(This->lpvtblPropSheetExt);
}
if(*ppvObj)
if (This->pPidl)
ILFree(This->pPidl);
- LocalFree((HANDLE)This);
+ LocalFree(This);
return 0;
}
{
TRACE("%p %p\n", This, pclsid);
- memcpy( pclsid, &CLSID_ShellLink, sizeof (CLSID) );
+ *pclsid = CLSID_ShellLink;
return S_OK;
}
TRACE("(%p)->(path=%s)\n",This, pszFile);
+ if (!pszFile) return E_INVALIDARG;
+
str = HEAP_strdupAtoW(GetProcessHeap(), 0, pszFile);
if( !str )
return E_OUTOFMEMORY;