OSDN Git Service

Bugfix: Remove several memsets of structures whose size varies with common control...
authorPerry Rapp <elsapo@users.sourceforge.net>
Sat, 23 Aug 2003 23:10:49 +0000 (23:10 +0000)
committerPerry Rapp <elsapo@users.sourceforge.net>
Sat, 23 Aug 2003 23:10:49 +0000 (23:10 +0000)
Src/DirView.cpp
Src/DirViewColHandler.cpp
Src/readme.txt

index 2fc475e..8f11d8b 100644 (file)
@@ -1191,9 +1191,16 @@ BOOL CDirView::OnHeaderEndDrag(LPNMHEADER hdr, LRESULT* pResult)
  */
 void CDirView::FixReordering()
 {
+       // LVCOLUMN.iOrder is present with version 4.70+
+       if (GetDllVersion(_T("shlwapi.dll")) < PACKVERSION(4,70))
+               return;
+
        LVCOLUMN lvcol;
-       memset(&lvcol, 0, sizeof(lvcol));
        lvcol.mask = LVCF_ORDER;
+       lvcol.fmt = 0;
+       lvcol.cx = 0;
+       lvcol.pszText = 0;
+       lvcol.iSubItem = 0;
        for (int i=0; i<m_numcols; ++i)
        {
                lvcol.iOrder = i;
@@ -1217,9 +1224,9 @@ void CDirView::LoadColumnHeaderItems()
        for (int i=0; i<m_dispcols; ++i)
        {
                LVCOLUMN lvc;
-               memset(&lvc, 0, sizeof(lvc));
                lvc.mask = LVCF_FMT+LVCF_SUBITEM+LVCF_TEXT;
                lvc.fmt = LVCFMT_LEFT;
+               lvc.cx = 0;
                lvc.pszText = _T("text");
                lvc.iSubItem = i;
                m_pList->InsertColumn(i, &lvc);
index f56e9f6..e5e8289 100644 (file)
@@ -100,8 +100,9 @@ int CALLBACK CDirView::CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParam
 int CDirView::AddNewItem(int i)
 {
        LV_ITEM lvItem;
-       memset(&lvItem, 0, sizeof(lvItem));
+       lvItem.mask = 0;
        lvItem.iItem = i;
+       lvItem.iSubItem = 0;
        return GetListCtrl().InsertItem(&lvItem);
   
 }
@@ -110,7 +111,6 @@ int CDirView::AddNewItem(int i)
 void CDirView::SetSubitem(int item, int phy, LPCTSTR sz)
 {
        LV_ITEM lvItem;
-       memset(&lvItem, 0, sizeof(lvItem));
        lvItem.mask = LVIF_TEXT;
        lvItem.iItem = item;
        lvItem.iSubItem = phy;
index 41391bc..ede3a69 100644 (file)
@@ -21,6 +21,8 @@
   WinMerge: DirViewColItems.cpp Merge.rc resource.h
  Bugfix: Fix CDirView::GetItemFileNames to get path properly (as before 2003-08-07).
   WinMerge: DirActions.cpp
+ Bugfix: Remove several memsets of structures whose size varies with common control versions
+  WinMerge: DirView.cpp DirViewColHandler.cpp
 
 2003-08-22 Kimmo
  PATCH: [ 787495 ] Create diffutils class (CDiffWrapper)