patch 8.1.1230: a lot of code is shared between vim.exe and gvim.exe

Problem:    A lot of code is shared between vim.exe and gvim.exe.
Solution:   Optionally put the shared code in vim.dll. (Ken Takata,
            closes #4287)
diff --git a/src/vim.rc b/src/vim.rc
index 51c3b7b..195536c 100644
--- a/src/vim.rc
+++ b/src/vim.rc
@@ -23,7 +23,7 @@
 //
 IDR_VIM		ICON "vim.ico"
 
-#ifdef FEAT_GUI_MSWIN
+#if (defined(FEAT_GUI_MSWIN) && !defined(VIMDLL)) || defined(RCDLL)
 IDR_VIM_ERROR	ICON "vim_error.ico"
 IDR_VIM_ALERT	ICON "vim_alert.ico"
 IDR_VIM_INFO	ICON "vim_info.ico"
@@ -34,7 +34,9 @@
 //
 IDB_TEAROFF	BITMAP  DISCARDABLE  "tearoff.bmp"
 IDR_TOOLBAR1	BITMAP  DISCARDABLE  "tools.bmp"
+#endif // FEAT_GUI_MSWIN
 
+#ifndef RCDLL
 //
 // WinXP theme support
 //
@@ -46,7 +48,7 @@
 #endif
 
 CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "gvim.exe.mnf"
-#endif // FEAT_GUI_MSWIN
+#endif // RCDLL
 
 //
 // Type Library
@@ -79,7 +81,11 @@
 #endif
 
   FILEOS		VOS__WINDOWS32
+#ifdef RCDLL
+  FILETYPE		VFT_DLL
+#else
   FILETYPE		VFT_APP
+#endif
   FILESUBTYPE		0x0L
 BEGIN
   BLOCK "StringFileInfo"
@@ -93,7 +99,13 @@
 	VALUE "InternalName",		"VIM\0"
 	VALUE "LegalCopyright",		"Copyright \251 1996\0"
 	VALUE "LegalTrademarks",	"Vim\0"
-	VALUE "OriginalFilename",	"VIM.EXE\0"
+#ifdef VIMDLLBASE
+	VALUE "OriginalFilename",	VIMDLLBASE ".dll\0"
+#elif defined(FEAT_GUI_MSWIN)
+	VALUE "OriginalFilename",	"gvim.exe\0"
+#else
+	VALUE "OriginalFilename",	"vim.exe\0"
+#endif
 	VALUE "ProductName",		"Vim\0"
 	VALUE "ProductVersion",		VIM_VERSION_MAJOR_STR ", " VIM_VERSION_MINOR_STR ", " VIM_VERSION_BUILD_STR ", " VIM_VERSION_PATCHLEVEL_STR "\0"
     END
@@ -104,6 +116,7 @@
   END
 END
 
+#if !defined(VIMDLL) || defined(RCDLL)
 /*
  *  Printing Status Dialog (should only be used when FEAT_PRINTER is defined)
  */
@@ -121,3 +134,4 @@
     CTEXT	    "Initializing...",IDC_PROGRESS,24,38,157,9
     GROUPBOX	    "",IDC_BOX1,19,9,170,47
 END
+#endif