[Wine-devel] [Wine-patches] shell32: Tab About for eterhack (eterbug #6494)

Alexander Morozov amorozov на etersoft.ru
Пн Сен 26 10:25:48 MSD 2011


-EXTRADEFS = -D_SHELL32_ -DCOM_NO_WINDOWS_H
+EXTRADEFS = -D_SHELL32_ -DCOM_NO_WINDOWS_H -D_FORTIFY_SOURCE=1
Зачем это?

+void add_etersoft_authors(HINSTANCE hInstance, HWND list , const WCHAR *authors )
+BOOL CALLBACK EtersoftLicenseDlgProc(HWND hDlg,UINT Message,WPARAM wParam,LPARAM lParam)
Надо, чтобы всё было в одном стиле.

+    //HINSTANCE hInst;
Такие закомментированные куски кода лучше удалить.

+    const WCHAR authors_etersoft[] = {'A','U','T','H','O','R','S','_','E','T','E','R','S','O','F','T',0};
Надо добавить static в начале.

+    //Create TabControl an title for them
Надо использовать комментарии вида /* */

+    char fn[1024];
Желательно использовать более говорящие имена переменных.
В качестве максимальной длины пути лучше использовать PATH_MAX, а не 1024.

+    while ((dwBytesRead = read(hFile,buf,1024))!=0)
+    dwFileSize += dwBytesRead;
+    hMem = GlobalAlloc(GHND,dwFileSize);
Для определения размера можно использовать fstat.

+        while ((dwBytesRead = read(hFile,(char*)pMem+dwFileSize,1024))!=0)
Если мы знаем размер файла и у нас есть буфер под него, можно прочитать весь файл за один вызов.

+            DialogBoxA(hInst, "EtersoftLicenseDlg", hWnd, (DLGPROC)(int(__stdcall*)())EtersoftLicenseDlgProc);
Зачем тут такое сложное приведение типов? Почему не сразу к DLGPROC?

+           WCHAR iexplore[]= {'i','e','x','p','l','o','r','e','.','e','x','e','\0'};
Надо доабавить static const в начало, и вместо '\0' в Wine везде используют 0.


Подробная информация о списке рассылки Wine-devel