Dimitry wrote: >> +/**************************************************************************** >> + * helper for SHGetStockIconInfo >> + */ >> +typedef struct stockiconentry_t { >> + SHSTOCKICONID id; >> + DWORD iconid; >> +} stockiconentry;
>Why bother with a typedef? I prefer typedef to reduce a bit of typing. Changed here, to make you happy and to feel the difference. >> +static stockiconentry stockicontable[] = { >> + {SIID_DOCNOASSOC, IDI_SHELL_DOCUMENT}, >Please don't forget to add 'const'. Done. Thanks >> +static int cmp_stockiconentry(const void *entry1, const void *entry2) >> +{ >> + stockiconentry *p1 = (stockiconentry *) entry1; >> + stockiconentry *p2 = (stockiconentry *) entry2; >> + >> + return p1->id - p2->id; >> +} > Don't cast away 'const'. Fixed. Thanks >> +HRESULT WINAPI SHGetStockIconInfo(SHSTOCKICONID id, UINT flags, >> SHSTOCKICONINFO *sii) ... >> + GetModuleFileNameW(shell32_hInstance, sii->szPath, MAX_PATH); > GetModuleFileNameW can fail, so filling 'sii' may be a bit premature. What is the failure case??? The module-handle, the target buffer pointer and the buffer size are valid. A path longer as MAX_PATH for shell32.dll is not supported in windows. -- By by ... Detlef