/************************************************************************** * IExtractIconA::QueryInterface */ static HRESULT WINAPI IExtractIconA_fnQueryInterface(IExtractIconA * iface, REFIID riid, void **ppv) { IExtractIconWImpl *This = impl_from_IExtractIconA(iface); return IExtractIconW_QueryInterface(&This->IExtractIconW_iface, riid, ppv); }
/************************************************************************** * IExtractIconA_Extract */ static HRESULT WINAPI IExtractIconA_fnExtract(IExtractIconA * iface, LPCSTR pszFile, UINT nIconIndex, HICON *phiconLarge, HICON *phiconSmall, UINT nIconSize) { HRESULT ret; INT len = MultiByteToWideChar(CP_ACP, 0, pszFile, -1, NULL, 0); LPWSTR lpwstrFile = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); IExtractIconW *This = impl_from_IExtractIconA(iface); TRACE("(%p) (file=%p index=%u %p %p size=%u)\n", This, pszFile, nIconIndex, phiconLarge, phiconSmall, nIconSize); MultiByteToWideChar(CP_ACP, 0, pszFile, -1, lpwstrFile, len); ret = IExtractIconW_Extract(This, lpwstrFile, nIconIndex, phiconLarge, phiconSmall, nIconSize); HeapFree(GetProcessHeap(), 0, lpwstrFile); return ret; }
/************************************************************************** * IExtractIconA::GetIconLocation * * mapping filetype to icon */ static HRESULT WINAPI IExtractIconA_fnGetIconLocation(IExtractIconA * iface, UINT uFlags, LPSTR szIconFile, UINT cchMax, int * piIndex, UINT * pwFlags) { IExtractIconWImpl *This = impl_from_IExtractIconA(iface); HRESULT ret; LPWSTR lpwstrFile = HeapAlloc(GetProcessHeap(), 0, cchMax * sizeof(WCHAR)); TRACE("(%p) (flags=%u %p %u %p %p)\n", This, uFlags, szIconFile, cchMax, piIndex, pwFlags); ret = IExtractIconW_GetIconLocation(&This->IExtractIconW_iface, uFlags, lpwstrFile, cchMax, piIndex, pwFlags); WideCharToMultiByte(CP_ACP, 0, lpwstrFile, -1, szIconFile, cchMax, NULL, NULL); HeapFree(GetProcessHeap(), 0, lpwstrFile); TRACE("-- %s %x\n", szIconFile, *piIndex); return ret; }
/************************************************************************** * IExtractIconA::Release */ static ULONG WINAPI IExtractIconA_fnRelease(IExtractIconA * iface) { IExtractIconWImpl *This = impl_from_IExtractIconA(iface); return IExtractIconW_Release(&This->IExtractIconW_iface); }
/************************************************************************** * IExtractIconA::AddRef */ static ULONG WINAPI IExtractIconA_fnAddRef(IExtractIconA * iface) { IExtractIconWImpl *This = impl_from_IExtractIconA(iface); return IExtractIconW_AddRef(&This->IExtractIconW_iface); }
/************************************************************************** * IExtractIconA_Release */ static ULONG WINAPI IExtractIconA_fnRelease(IExtractIconA * iface) { IExtractIconW *This = impl_from_IExtractIconA(iface); return IExtractIconW_AddRef(This); }
/************************************************************************** * IExtractIconA_QueryInterface */ static HRESULT WINAPI IExtractIconA_fnQueryInterface(IExtractIconA * iface, REFIID riid, LPVOID *ppvObj) { IExtractIconW *This = impl_from_IExtractIconA(iface); return IExtractIconW_QueryInterface(This, riid, ppvObj); }