patch 8.2.0559: clearing a struct is verbose

Problem:    Clearing a struct is verbose.
Solution:   Define and use CLEAR_FIELD() and CLEAR_POINTER().
diff --git a/src/gui_w32.c b/src/gui_w32.c
index 5af4105..2409ee6 100644
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -3504,7 +3504,7 @@
     // Convert the filter to Windows format.
     filterp = convert_filterW(filter);
 
-    vim_memset(&fileStruct, 0, sizeof(OPENFILENAMEW));
+    CLEAR_FIELD(fileStruct);
 # ifdef OPENFILENAME_SIZE_VERSION_400W
     // be compatible with Windows NT 4.0
     fileStruct.lStructSize = OPENFILENAME_SIZE_VERSION_400W;
@@ -4267,7 +4267,7 @@
 	// Mouse hovers over popup window, scroll it if possible.
 	mouse_row = wp->w_winrow;
 	mouse_col = wp->w_wincol;
-	vim_memset(&cap, 0, sizeof(cap));
+	CLEAR_FIELD(cap);
 	cap.arg = zDelta < 0 ? MSCR_UP : MSCR_DOWN;
 	cap.cmdchar = zDelta < 0 ? K_MOUSEUP : K_MOUSEDOWN;
 	clear_oparg(&oa);
@@ -6478,7 +6478,7 @@
     {
 	TBBUTTON newtb;
 
-	vim_memset(&newtb, 0, sizeof(newtb));
+	CLEAR_FIELD(newtb);
 	if (menu_is_separator(menu->name))
 	{
 	    newtb.iBitmap = 0;