On 5/3/2018 7:27 AM, Alistair Leslie-Hughes wrote:
- if (SHGetFileInfoW(props->path, 0, &shinfo, sizeof(shinfo), SHGFI_TYPENAME|SHGFI_ICON))
- {
if (shinfo.hIcon) SendDlgItemMessageW(hwndDlg, IDC_FPROP_ICON, STM_SETICON, (WPARAM)shinfo.hIcon, 0);
if (shinfo.szTypeName[0]) SetDlgItemTextW(hwndDlg, IDC_FPROP_TYPE, shinfo.szTypeName);
- }
I think this leaks returned icon handle.
It's a new chunk of code, so could you please demangle things like:
LPPROPSHEETPAGEW ppsp = (LPPROPSHEETPAGEW)lParam;
LPPSHNOTIFY lppsn = (LPPSHNOTIFY)lParam;
+static UINT CALLBACK file_properties_callback(HWND hwnd, UINT uMsg, LPPROPSHEETPAGEW ppsp) +static void init_file_properties_pages(IDataObject *pDo, LPFNADDPROPSHEETPAGE lpfnAddPage, LPARAM lParam)
etc.
Last example could also use better arguments naming, 'pDo' is very obscure.
- if (!DragQueryFileW((HDROP)stgm.DUMMYUNIONNAME.hGlobal, 0,
props->path, sizeof(props->path) / sizeof(props->path[0])))
Does it work as stgm.u.hGlobal? Also now we have ARRAY_SIZE() globally in shell32 you can use it instead of sizeof() / sizeof().
- static WCHAR title[] = {'G','e','n','e','r','a','l',0};
This looks like it should be translated.