Module: wine Branch: master Commit: eafc9e84a6a2662066a77470635c90aeb63d42ff URL: http://source.winehq.org/git/wine.git/?a=commit;h=eafc9e84a6a2662066a7747063...
Author: Detlef Riekenberg wine.dev@web.de Date: Thu Apr 25 20:22:05 2013 +0200
shell32: Add a semi-stub for SHGetStockIconInfo.
---
dlls/shell32/iconcache.c | 41 +++++++++++++++++++++++++++++++++++++++++ dlls/shell32/shell32.spec | 1 + 2 files changed, 42 insertions(+), 0 deletions(-)
diff --git a/dlls/shell32/iconcache.c b/dlls/shell32/iconcache.c index 637dbca..0c21214 100644 --- a/dlls/shell32/iconcache.c +++ b/dlls/shell32/iconcache.c @@ -876,3 +876,44 @@ INT WINAPI SHGetIconOverlayIndexW(LPCWSTR pszIconPath, INT iIconIndex)
return -1; } + +/**************************************************************************** + * SHGetStockIconInfo [SHELL32.@] + * + * Receive informations for builtin icons + * + * PARAMS + * id [I] selected icon-id to get informations + * flags [I] select informations to receive + * sii [IO] SHSTOCKICONINFO structure to fill + * + * RETURNS + * Success: S_OK + * Failure: A HRESULT failure code + * + */ +HRESULT WINAPI SHGetStockIconInfo(SHSTOCKICONID id, UINT flags, SHSTOCKICONINFO *sii) +{ + static const WCHAR shell32dll[] = {'\','s','h','e','l','l','3','2','.','d','l','l',0}; + + FIXME("(%d, 0x%x, %p) semi-stub\n", id, flags, sii); + if ((id < 0) || (id >= SIID_MAX_ICONS) || !sii || (sii->cbSize != sizeof(SHSTOCKICONINFO))) { + return E_INVALIDARG; + } + + GetSystemDirectoryW(sii->szPath, MAX_PATH); + + /* no icons defined: use default */ + sii->iIcon = -IDI_SHELL_DOCUMENT, + lstrcatW(sii->szPath, shell32dll); + + if (flags) + FIXME("flags 0x%x not implemented\n", flags); + + sii->hIcon = NULL; + sii->iSysImageIndex = -1; + + TRACE("%3d: returning %s (%d)\n", id, debugstr_w(sii->szPath), sii->iIcon); + + return S_OK; +} diff --git a/dlls/shell32/shell32.spec b/dlls/shell32/shell32.spec index 0f991a4..5044479 100644 --- a/dlls/shell32/shell32.spec +++ b/dlls/shell32/shell32.spec @@ -388,6 +388,7 @@ @ stdcall SHGetSpecialFolderLocation(long long ptr) @ stdcall SHGetSpecialFolderPathA(long ptr long long) @ stdcall SHGetSpecialFolderPathW(long ptr long long) +@ stdcall SHGetStockIconInfo(long long ptr) @ stdcall SHHelpShortcuts_RunDLL(long long long long) SHHelpShortcuts_RunDLLA @ stdcall SHHelpShortcuts_RunDLLA(long long long long) @ stdcall SHHelpShortcuts_RunDLLW(long long long long)