changeset 30727:645722244c3f v9.0.0698

patch 9.0.0698: VisVim is outdated, does not work with current Visual Studio Commit: https://github.com/vim/vim/commit/251c1e2ed810d532f7c7d7eb5d6ed5e28a12e501 Author: Martin Tournoij <martin@arp242.net> Date: Sat Oct 8 17:15:28 2022 +0100 patch 9.0.0698: VisVim is outdated, does not work with current Visual Studio Problem: VisVim is outdated, does not work with current Visual Studio. Solution: Remove VisVim. (Martin Tournoij)
author Bram Moolenaar <Bram@vim.org>
date Sat, 08 Oct 2022 18:30:03 +0200
parents 0591e0ba645c
children 23a52770932d
files Filelist Makefile READMEdir/README_extra.txt READMEdir/README_ole.txt READMEdir/README_srcdos.txt nsis/README.txt nsis/gvim.nsi nsis/lang/danish.nsi nsis/lang/dutch.nsi nsis/lang/english.nsi nsis/lang/german.nsi nsis/lang/italian.nsi nsis/lang/japanese.nsi nsis/lang/russian.nsi nsis/lang/serbian.nsi nsis/lang/simpchinese.nsi nsis/lang/tradchinese.nsi nsis/lang/turkish.nsi runtime/doc/if_ole.txt src/VisVim/Commands.cpp src/VisVim/Commands.h src/VisVim/DSAddIn.cpp src/VisVim/DSAddIn.h src/VisVim/OleAut.cpp src/VisVim/OleAut.h src/VisVim/README_VisVim.txt src/VisVim/Reg.cpp src/VisVim/Register.bat src/VisVim/Res/ToolbarL.bmp src/VisVim/Res/ToolbarM.bmp src/VisVim/Resource.h src/VisVim/StdAfx.cpp src/VisVim/StdAfx.h src/VisVim/UnRegist.bat src/VisVim/VisVim.cpp src/VisVim/VisVim.def src/VisVim/VisVim.dll src/VisVim/VisVim.h src/VisVim/VisVim.mak src/VisVim/VisVim.odl src/VisVim/VisVim.rc src/VisVim/VsReadMe.txt src/version.c uninstall.txt
diffstat 44 files changed, 13 insertions(+), 3298 deletions(-) [+]
line wrap: on
line diff
--- a/Filelist
+++ b/Filelist
@@ -590,30 +590,9 @@ SRC_DOS =	\
 		nsis/README.txt \
 		nsis/lang/*.nsi \
 		uninstall.txt \
-		src/VisVim/Commands.cpp \
-		src/VisVim/Commands.h \
-		src/VisVim/DSAddIn.cpp \
-		src/VisVim/DSAddIn.h \
-		src/VisVim/OleAut.cpp \
-		src/VisVim/OleAut.h \
-		src/VisVim/README_VisVim.txt \
-		src/VisVim/Reg.cpp \
-		src/VisVim/Register.bat \
-		src/VisVim/Resource.h \
-		src/VisVim/StdAfx.cpp \
-		src/VisVim/StdAfx.h \
-		src/VisVim/UnRegist.bat \
-		src/VisVim/VisVim.cpp \
-		src/VisVim/VisVim.def \
-		src/VisVim/VisVim.mak \
-		src/VisVim/VisVim.h \
-		src/VisVim/VisVim.odl \
-		src/VisVim/VisVim.rc \
-		src/VisVim/VsReadMe.txt \
 
 # source files for DOS without CR/LF translation (also in the extra archive)
 SRC_DOS_BIN =	\
-		src/VisVim/Res/*.bmp \
 		src/tearoff.bmp \
 		src/tools.bmp \
 		src/vim*.ico \
@@ -945,7 +924,6 @@ EXTRA =		\
 		$(RT_EXTRA) \
 		$(SRC_EXTRA) \
 		README_extra.txt \
-		src/VisVim/VisVim.dll \
 		runtime/vimlogo.xpm \
 
 # files in READMEdir that are included from the top dir
--- a/Makefile
+++ b/Makefile
@@ -198,8 +198,6 @@ MINOR = 0
 # - copy these files (get them from a binary archive or build them):
 #	gvimext.dll in src/GvimExt
 #	gvimext64.dll in src/GvimExt
-#	VisVim.dll in src/VisVim
-#   Note: VisVim needs to be build with MSVC 5, newer versions don't work.
 #   gvimext64.dll can be obtained from:
 #   https://github.com/vim/vim-win32-installer/releases
 #	It is part of gvim_9.0.*_x64.zip as vim/vim90/GvimExt/gvimext64.dll.
@@ -554,8 +552,6 @@ dosbin_ole: dist no_title.vim dist/$(COM
 	cp uninstallw32.exe dist/vim/$(VIMRTDIR)/uninstall.exe
 	cp gvimext.dll dist/vim/$(VIMRTDIR)/gvimext.dll
 	cp README_ole.txt dist/vim/$(VIMRTDIR)
-	cp src/VisVim/VisVim.dll dist/vim/$(VIMRTDIR)/VisVim.dll
-	cp src/VisVim/README_VisVim.txt dist/vim/$(VIMRTDIR)
 	cd dist && zip -9 -rD -z gvim$(VERSION)ole.zip vim <$(COMMENT_OLE)
 	cp gvim_ole.pdb dist/gvim$(VERSION)ole.pdb
 
--- a/READMEdir/README_extra.txt
+++ b/READMEdir/README_extra.txt
@@ -29,9 +29,6 @@ src/Make_mvc.mak	MS Visual C++ makefile 
 
 src/if_ole.*		OLE automation interface, for MS Windows 95 and NT.
 
-src/VisVim/*		Integration of Win32 GUI with MS Visual Developer
-			Studio.
-
 src/GvimExt/*		DLL for the "Edit with Vim" context menu entry
 
 nsis/*			NSIS script to build the self-installing MS-Windows exe
--- a/READMEdir/README_ole.txt
+++ b/READMEdir/README_ole.txt
@@ -1,6 +1,6 @@
 README_ole.txt for version 9.0 of Vim: Vi IMproved.
 
-This archive contains gvim.exe with OLE interface and VisVim.
+This archive contains gvim.exe with OLE interface.
 This version of gvim.exe can also load a number of interface dynamically (you
 can optionally install the .dll files for each interface).
 It is only for MS-Windows 95/98/ME/NT/2000/XP.
@@ -15,6 +15,3 @@ Win32 with OLE - "MS-Windows 32 bit GUI 
 
 For further information, type this inside Vim:
 	:help if_ole
-
-Furthermore, this archive contains VISVIM.DLL.  It can be used to integrate
-the OLE gvim with Microsoft Visual Developer Studio.  See VisVim/README.txt.
--- a/READMEdir/README_srcdos.txt
+++ b/READMEdir/README_srcdos.txt
@@ -6,7 +6,6 @@ These files are in the runtime archive (
 
 
 The DOS source archive contains the files needed to compile Vim on MS-Windows.
-It is packed for MS-Windows systems, with CR-LF.  It also includes the VisVim
-sources.
+It is packed for MS-Windows systems, with CR-LF.
 
 See "src/INSTALLpc.txt" for instructions on how to compile Vim on the PC.
--- a/nsis/README.txt
+++ b/nsis/README.txt
@@ -27,23 +27,20 @@ 3.  Go to the GvimExt directory and buil
 	64-bit: src/GvimExt/gvimext64.dll
 	32-bit: src/GvimExt/gvimext.dll
 
-4.  Go to the VisVim directory and build VisVim.dll (or get it from a binary
-    archive).
-
-5.  Get a "diff.exe" program.  If you skip this the built-in diff will always
+4.  Get a "diff.exe" program.  If you skip this the built-in diff will always
     be used (which is fine for most users).  If you do have your own
     "diff.exe" put it in the "../.." directory (above the "vim82" directory,
     it's the same for all Vim versions).
     You can find one in previous Vim versions or in this archive:
 		http://www.mossbayeng.com/~ron/vim/diffutils.tar.gz
 
-6   Also put winpty32.dll and winpty-agent.exe in "../.." (above the "vim82"
+5   Also put winpty32.dll and winpty-agent.exe in "../.." (above the "vim82"
     directory).  This is required for the terminal window.
 
-7.  Do "make uganda.nsis.txt" in runtime/doc.  This requires sed, you may have
+6.  Do "make uganda.nsis.txt" in runtime/doc.  This requires sed, you may have
     to do this on Unix.  Make sure the file is in DOS file format!
 
-8.  Get gettext and iconv DLLs from the following site:
+7.  Get gettext and iconv DLLs from the following site:
 	https://github.com/mlocati/gettext-iconv-windows/releases
     Both 64- and 32-bit versions are needed.
     Download the files gettextX.X.X.X-iconvX.XX-shared-{32,64}.zip, extract
--- a/nsis/gvim.nsi
+++ b/nsis/gvim.nsi
@@ -36,9 +36,6 @@ Unicode true
 # Comment the next line if you do not want to add Native Language Support
 !define HAVE_NLS
 
-# Uncomment the next line if you want to include VisVim extension:
-#!define HAVE_VIS_VIM
-
 # Comment the following line to create an English-only installer:
 !define HAVE_MULTI_LANG
 
@@ -55,9 +52,6 @@ Unicode true
 # ----------- No configurable settings below this line -----------
 
 !include "Library.nsh"		# For DLL install
-!ifdef HAVE_VIS_VIM
-  !include "UpgradeDLL.nsh"	# for VisVim.dll
-!endif
 !include "LogicLib.nsh"
 !include "MUI2.nsh"
 !include "nsDialogs.nsh"
@@ -537,17 +531,6 @@ SectionGroup $(str_group_plugin) id_grou
 SectionGroupEnd
 
 ##########################################################
-!ifdef HAVE_VIS_VIM
-Section "$(str_section_vis_vim)" id_section_visvim
-	SectionIn 3
-
-	SetOutPath $0
-	!insertmacro UpgradeDLL "${VIMSRC}\VisVim\VisVim.dll" "$0\VisVim.dll" "$0"
-	File ${VIMSRC}\VisVim\README_VisVim.txt
-SectionEnd
-!endif
-
-##########################################################
 !ifdef HAVE_NLS
 Section "$(str_section_nls)" id_section_nls
 	SectionIn 1 3
@@ -634,12 +617,6 @@ Section -post
 	  SectionGetSize ${id_section_editwith} $4
 	  IntOp $3 $3 + $4
 	${EndIf}
-!ifdef HAVE_VIS_VIM
-	${If} ${SectionIsSelected} ${id_section_visvim}
-	  SectionGetSize ${id_section_visvim} $4
-	  IntOp $3 $3 + $4
-	${EndIf}
-!endif
 !ifdef HAVE_NLS
 	${If} ${SectionIsSelected} ${id_section_nls}
 	  SectionGetSize ${id_section_nls} $4
@@ -670,9 +647,6 @@ Section -post
 	!insertmacro SaveSectionSelection ${id_section_vimrc}      "select_vimrc"
 	!insertmacro SaveSectionSelection ${id_section_pluginhome} "select_pluginhome"
 	!insertmacro SaveSectionSelection ${id_section_pluginvim}  "select_pluginvim"
-!ifdef HAVE_VIS_VIM
-	!insertmacro SaveSectionSelection ${id_section_visvim}     "select_visvim"
-!endif
 !ifdef HAVE_NLS
 	!insertmacro SaveSectionSelection ${id_section_nls}        "select_nls"
 !endif
@@ -744,9 +718,6 @@ Function .onInit
   !insertmacro LoadSectionSelection ${id_section_vimrc}      "select_vimrc"
   !insertmacro LoadSectionSelection ${id_section_pluginhome} "select_pluginhome"
   !insertmacro LoadSectionSelection ${id_section_pluginvim}  "select_pluginvim"
-!ifdef HAVE_VIS_VIM
-  !insertmacro LoadSectionSelection ${id_section_visvim}     "select_visvim"
-!endif
 !ifdef HAVE_NLS
   !insertmacro LoadSectionSelection ${id_section_nls}        "select_nls"
 !endif
@@ -921,9 +892,6 @@ FunctionEnd
     !insertmacro MUI_DESCRIPTION_TEXT ${id_group_plugin}        $(str_desc_plugin)
     !insertmacro MUI_DESCRIPTION_TEXT ${id_section_pluginhome}  $(str_desc_plugin_home)
     !insertmacro MUI_DESCRIPTION_TEXT ${id_section_pluginvim}   $(str_desc_plugin_vim)
-!ifdef HAVE_VIS_VIM
-    !insertmacro MUI_DESCRIPTION_TEXT ${id_section_visvim}      $(str_desc_vis_vim)
-!endif
 !ifdef HAVE_NLS
     !insertmacro MUI_DESCRIPTION_TEXT ${id_section_nls}         $(str_desc_nls)
 !endif
@@ -947,13 +915,6 @@ Section "un.$(str_unsection_register)" i
 	# created.  Thus the "vim61" directory is included in it.
 	StrCpy $0 "$INSTDIR"
 
-!ifdef HAVE_VIS_VIM
-	# If VisVim was installed, unregister the DLL.
-	${If} ${FileExists} "$0\VisVim.dll"
-	  ExecWait "regsvr32.exe /u /s $0\VisVim.dll"
-	${EndIf}
-!endif
-
 	# delete the context menu entry and batch files
 	DetailPrint "$(str_msg_unregistering)"
 	nsExec::Exec "$0\uninstall.exe -nsis"
@@ -1046,9 +1007,6 @@ Section "un.$(str_unsection_exe)" id_uns
 	RMDir /r $0\syntax
 	RMDir /r $0\tools
 	RMDir /r $0\tutor
-!ifdef HAVE_VIS_VIM
-	RMDir /r $0\VisVim
-!endif
 	RMDir /r $0\lang
 	RMDir /r $0\keymap
 	Delete $0\*.exe
--- a/nsis/lang/danish.nsi
+++ b/nsis/lang/danish.nsi
@@ -79,9 +79,6 @@ LangString str_desc_plugin_home     ${LA
 LangString str_section_plugin_vim   ${LANG_DANISH}     "Delte"
 LangString str_desc_plugin_vim      ${LANG_DANISH}     "Opret plugin-mapper i Vim-installationsmappe, det bruges af alle på systemet."
 
-LangString str_section_vis_vim      ${LANG_DANISH}     "VisVim-udvidelser"
-LangString str_desc_vis_vim         ${LANG_DANISH}     "VisVim-udvidelser til integrering i Microsoft Visual Studio."
-
 LangString str_section_nls          ${LANG_DANISH}     "Understøttelse af modersmål"
 LangString str_desc_nls             ${LANG_DANISH}     "Installer filer til understøttelse af modersmål."
 
--- a/nsis/lang/dutch.nsi
+++ b/nsis/lang/dutch.nsi
@@ -123,11 +123,6 @@ LangString str_desc_plugin_vim      ${LA
     "Creëer plugin mappen in Vim installatie map, deze worden gebruikt \
      voor iedereen op het systeem."
 
-LangString str_section_vis_vim      ${LANG_DUTCH} \
-    "VisVim extensie"
-LangString str_desc_vis_vim         ${LANG_DUTCH} \
-    "VisVim extensie voor Microsoft Visual Studio integratie."
-
 LangString str_section_nls          ${LANG_DUTCH} \
     "Ondersteuning voor andere talen"
 LangString str_desc_nls             ${LANG_DUTCH} \
--- a/nsis/lang/english.nsi
+++ b/nsis/lang/english.nsi
@@ -121,11 +121,6 @@ LangString str_desc_plugin_vim      ${LA
     "Create plugin directories in Vim install directory, it is used for \
      everybody on the system."
 
-LangString str_section_vis_vim      ${LANG_ENGLISH} \
-    "VisVim Extension"
-LangString str_desc_vis_vim         ${LANG_ENGLISH} \
-    "VisVim Extension for Microsoft Visual Studio integration."
-
 LangString str_section_nls          ${LANG_ENGLISH} \
     "Native Language Support"
 LangString str_desc_nls             ${LANG_ENGLISH} \
--- a/nsis/lang/german.nsi
+++ b/nsis/lang/german.nsi
@@ -122,11 +122,6 @@ LangString str_desc_plugin_vim      ${LA
     "Plugin-Verzeichnisse im Vim-Installationsverzeichnis erstellen. Diese werden \
      für alle Benutzer dieses Systems genutzt."
 
-LangString str_section_vis_vim      ${LANG_GERMAN} \
-    "VisVim-Erweiterung"
-LangString str_desc_vis_vim         ${LANG_GERMAN} \
-    "VisVim-Erweiterung zur Integration in Microsoft Visual Studio."
-
 LangString str_section_nls          ${LANG_GERMAN} \
     "Unterstützung für andere Sprachen"
 LangString str_desc_nls             ${LANG_GERMAN} \
--- a/nsis/lang/italian.nsi
+++ b/nsis/lang/italian.nsi
@@ -123,11 +123,6 @@ LangString str_desc_plugin_vim      ${LA
     "Crea directory per plugin nella directory di installazione di Vim \
      per uso da parte di tutti gli utenti di questo sistema."
 
-LangString str_section_vis_vim      ${LANG_ITALIAN} \
-    "Estensione VisVim"
-LangString str_desc_vis_vim         ${LANG_ITALIAN} \
-    "Estensione VisVim per integrazione con Microsoft Visual Studio."
-
 LangString str_section_nls          ${LANG_ITALIAN} \
     "Supporto Multilingue (NLS)"
 LangString str_desc_nls             ${LANG_ITALIAN} \
--- a/nsis/lang/japanese.nsi
+++ b/nsis/lang/japanese.nsi
@@ -128,11 +128,6 @@ LangString str_section_plugin_vim   ${LA
 LangString str_desc_plugin_vim      ${LANG_JAPANESE} \
     "プラグインディレクトリを Vim のインストールディレクトリに作成します。システムの全員で共有されます。"
 
-LangString str_section_vis_vim      ${LANG_JAPANESE} \
-    "VisVim 拡張"
-LangString str_desc_vis_vim         ${LANG_JAPANESE} \
-    "Microsoft Visual Studio 統合用の VisVim 拡張。"
-
 LangString str_section_nls          ${LANG_JAPANESE} \
     "多言語サポート"
 LangString str_desc_nls             ${LANG_JAPANESE} \
--- a/nsis/lang/russian.nsi
+++ b/nsis/lang/russian.nsi
@@ -125,11 +125,6 @@ LangString str_desc_plugin_vim      ${LA
      Модули в этом каталоге будут доступны для любого пользователя \
      зарегистрировавшегося в системе"
 
-LangString str_section_vis_vim      ${LANG_RUSSIAN} \
-    "Подключаемый модуль VisVim"
-LangString str_desc_vis_vim         ${LANG_RUSSIAN} \
-    "Подключаемый модуль VisVim используется для интеграции с Microsoft Visual Studio"
-
 LangString str_section_nls          ${LANG_RUSSIAN} \
     "Поддержка региональных языков"
 LangString str_desc_nls             ${LANG_RUSSIAN} \
--- a/nsis/lang/serbian.nsi
+++ b/nsis/lang/serbian.nsi
@@ -121,11 +121,6 @@ LangString str_desc_plugin_vim      ${LA
     "Креира директоријуме додатака у Vim инсталационом директоријуму, користе их сви \
      на систему."
 
-LangString str_section_vis_vim      ${LANG_SERBIAN} \
-    "VisVim проширење"
-LangString str_desc_vis_vim         ${LANG_SERBIAN} \
-    "VisVim проширење за Microsoft Visual Studio интеграцију."
-
 LangString str_section_nls          ${LANG_SERBIAN} \
     "Подршка за домаћи језик"
 LangString str_desc_nls             ${LANG_SERBIAN} \
--- a/nsis/lang/simpchinese.nsi
+++ b/nsis/lang/simpchinese.nsi
@@ -120,11 +120,6 @@ LangString str_desc_plugin_vim      ${LA
     "在 Vim 安装目录下创建(空的)插件目录结构,系统上所有用户都能使用安装在\
      该目录下的扩展插件。"
 
-LangString str_section_vis_vim      ${LANG_SIMPCHINESE} \
-    "VisVim 插件"
-LangString str_desc_vis_vim         ${LANG_SIMPCHINESE} \
-    "安装与 Visual Studio 集成的 VisVim 插件。"
-
 LangString str_section_nls          ${LANG_SIMPCHINESE} \
     "安装多语言支持"
 LangString str_desc_nls             ${LANG_SIMPCHINESE} \
--- a/nsis/lang/tradchinese.nsi
+++ b/nsis/lang/tradchinese.nsi
@@ -121,11 +121,6 @@ LangString str_desc_plugin_vim      ${LA
     "在 Vim 安裝資料夾下建立(空的)插件資料夾結構,電腦上所有用戶都能使用安裝\
      在該資料夾里的擴展插件。"
 
-LangString str_section_vis_vim      ${LANG_TRADCHINESE} \
-    "安裝 VisVim 插件"
-LangString str_desc_vis_vim         ${LANG_TRADCHINESE} \
-    "VisVim 是用于與微軟 Microsoft Visual Studio 軟體進行整合的插件。"
-
 LangString str_section_nls          ${LANG_TRADCHINESE} \
     "安裝本地語言支持"
 LangString str_desc_nls             ${LANG_TRADCHINESE} \
--- a/nsis/lang/turkish.nsi
+++ b/nsis/lang/turkish.nsi
@@ -90,11 +90,6 @@ LangString str_desc_plugin_vim      ${LA
     "Eklenti dizinlerini Vim yükleme dizininde oluşturur. Bu eklentilerden \
      bilgisayarın tüm kullanıcıları yararlanabilir."
 
-LangString str_section_vis_vim      ${LANG_TURKISH} \
-    "VisVim eklentisi"
-LangString str_desc_vis_vim         ${LANG_TURKISH} \
-    "Microsoft Visual Studio entegrasyonu için VisVim eklentisi"
-
 LangString str_section_nls          ${LANG_TURKISH} \
     "Ek dil desteği"
 LangString str_desc_nls             ${LANG_TURKISH} \
--- a/runtime/doc/if_ole.txt
+++ b/runtime/doc/if_ole.txt
@@ -1,4 +1,4 @@
-*if_ole.txt*    For Vim version 9.0.  Last change: 2019 Dec 07
+*if_ole.txt*    For Vim version 9.0.  Last change: 2022 Oct 08
 
 
 		  VIM REFERENCE MANUAL    by Paul Moore
@@ -156,18 +156,14 @@ To avoid the message box that pops up to
 	gvim -silent -unregister
 
 ==============================================================================
-5. MS Visual Studio integration			*MSVisualStudio* *VisVim*
+5. MS Visual Studio integration				*MSVisualStudio*
 
-The OLE version can be used to run Vim as the editor in Microsoft Visual
-Studio.  This is called "VisVim".  It is included in the archive that contains
-the OLE version.  The documentation can be found in the runtime directory, the
-README_VisVim.txt file.
+The old "VisVim" integration was removed from Vim in patch 9.0.0698.
 
 
 Using Vim with Visual Studio .Net~
 
-With .Net you no longer really need VisVim, since .Net studio has support for
-external editors.  Follow these directions:
+.Net studio has support for external editors.  Follow these directions:
 
 In .Net Studio choose from the menu Tools->External Tools...
 Add
deleted file mode 100644
--- a/src/VisVim/Commands.cpp
+++ /dev/null
@@ -1,710 +0,0 @@
-#include "stdafx.h"
-#include <comdef.h>	// For _bstr_t
-#include "VisVim.h"
-#include "Commands.h"
-#include "OleAut.h"
-
-#ifdef _DEBUG
-#define new DEBUG_NEW
-#undef THIS_FILE
-static char THIS_FILE[] = __FILE__;
-
-#endif
-
-
-// Change directory before opening file?
-#define CD_SOURCE		0	// Cd to source path
-#define CD_SOURCE_PARENT	1	// Cd to parent directory of source path
-#define CD_NONE			2	// No cd
-
-
-static BOOL g_bEnableVim = TRUE;	// Vim enabled
-static BOOL g_bDevStudioEditor = FALSE;	// Open file in Dev Studio editor simultaneously
-static BOOL g_bNewTabs = FALSE;
-static int g_ChangeDir = CD_NONE;	// CD after file open?
-
-static void VimSetEnableState(BOOL bEnableState);
-static BOOL VimOpenFile(BSTR& FileName, long LineNr);
-static DISPID VimGetDispatchId(COleAutomationControl& VimOle, char* Method);
-static void VimErrDiag(COleAutomationControl& VimOle);
-static void VimChangeDir(COleAutomationControl& VimOle, DISPID DispatchId, BSTR& FileName);
-static void DebugMsg(char* Msg, char* Arg = NULL);
-
-
-/////////////////////////////////////////////////////////////////////////////
-// CCommands
-
-CCommands::CCommands()
-{
-	// m_pApplication == NULL; M$ Code generation bug!!!
-	m_pApplication = NULL;
-	m_pApplicationEventsObj = NULL;
-	m_pDebuggerEventsObj = NULL;
-}
-
-CCommands::~CCommands()
-{
-	ASSERT(m_pApplication != NULL);
-	if (m_pApplication)
-	{
-		m_pApplication->Release();
-		m_pApplication = NULL;
-	}
-}
-
-void CCommands::SetApplicationObject(IApplication * pApplication)
-{
-	// This function assumes pApplication has already been AddRef'd
-	// for us, which CDSAddIn did in its QueryInterface call
-	// just before it called us.
-	m_pApplication = pApplication;
-	if (! m_pApplication)
-		return;
-
-	// Create Application event handlers
-	XApplicationEventsObj::CreateInstance(&m_pApplicationEventsObj);
-	if (! m_pApplicationEventsObj)
-	{
-		ReportInternalError("XApplicationEventsObj::CreateInstance");
-		return;
-	}
-	m_pApplicationEventsObj->AddRef();
-	m_pApplicationEventsObj->Connect(m_pApplication);
-	m_pApplicationEventsObj->m_pCommands = this;
-
-#ifdef NEVER
-	// Create Debugger event handler
-	CComPtr < IDispatch > pDebugger;
-	if (SUCCEEDED(m_pApplication->get_Debugger(&pDebugger))
-	    && pDebugger != NULL)
-	{
-		XDebuggerEventsObj::CreateInstance(&m_pDebuggerEventsObj);
-		m_pDebuggerEventsObj->AddRef();
-		m_pDebuggerEventsObj->Connect(pDebugger);
-		m_pDebuggerEventsObj->m_pCommands = this;
-	}
-#endif
-
-	// Get settings from registry HKEY_CURRENT_USER\Software\Vim\VisVim
-	HKEY hAppKey = GetAppKey("Vim");
-	if (hAppKey)
-	{
-		HKEY hSectionKey = GetSectionKey(hAppKey, "VisVim");
-		if (hSectionKey)
-		{
-			g_bEnableVim = GetRegistryInt(hSectionKey, "EnableVim",
-						       g_bEnableVim);
-			g_bDevStudioEditor = GetRegistryInt(hSectionKey,
-					"DevStudioEditor", g_bDevStudioEditor);
-			g_bNewTabs = GetRegistryInt(hSectionKey, "NewTabs",
-						    g_bNewTabs);
-			g_ChangeDir = GetRegistryInt(hSectionKey, "ChangeDir",
-						      g_ChangeDir);
-			RegCloseKey(hSectionKey);
-		}
-		RegCloseKey(hAppKey);
-	}
-}
-
-void CCommands::UnadviseFromEvents()
-{
-	ASSERT(m_pApplicationEventsObj != NULL);
-	if (m_pApplicationEventsObj)
-	{
-		m_pApplicationEventsObj->Disconnect(m_pApplication);
-		m_pApplicationEventsObj->Release();
-		m_pApplicationEventsObj = NULL;
-	}
-
-#ifdef NEVER
-	if (m_pDebuggerEventsObj)
-	{
-		// Since we were able to connect to the Debugger events, we
-		// should be able to access the Debugger object again to
-		// unadvise from its events (thus the VERIFY_OK below--see
-		// stdafx.h).
-		CComPtr < IDispatch > pDebugger;
-		VERIFY_OK(m_pApplication->get_Debugger(&pDebugger));
-		ASSERT(pDebugger != NULL);
-		m_pDebuggerEventsObj->Disconnect(pDebugger);
-		m_pDebuggerEventsObj->Release();
-		m_pDebuggerEventsObj = NULL;
-	}
-#endif
-}
-
-
-/////////////////////////////////////////////////////////////////////////////
-// Event handlers
-
-// Application events
-
-HRESULT CCommands::XApplicationEvents::BeforeBuildStart()
-{
-	AFX_MANAGE_STATE(AfxGetStaticModuleState());
-	return S_OK;
-}
-
-HRESULT CCommands::XApplicationEvents::BuildFinish(long nNumErrors, long nNumWarnings)
-{
-	AFX_MANAGE_STATE(AfxGetStaticModuleState());
-	return S_OK;
-}
-
-HRESULT CCommands::XApplicationEvents::BeforeApplicationShutDown()
-{
-	AFX_MANAGE_STATE(AfxGetStaticModuleState());
-	return S_OK;
-}
-
-// The open document event handle is the place where the real interface work
-// is done.
-// Vim gets called from here.
-//
-HRESULT CCommands::XApplicationEvents::DocumentOpen(IDispatch * theDocument)
-{
-	AFX_MANAGE_STATE(AfxGetStaticModuleState());
-
-	if (! g_bEnableVim)
-		// Vim not enabled or empty command line entered
-		return S_OK;
-
-	// First get the current file name and line number
-
-	// Get the document object
-	CComQIPtr < ITextDocument, &IID_ITextDocument > pDoc(theDocument);
-	if (! pDoc)
-		return S_OK;
-
-	BSTR FileName;
-	long LineNr = -1;
-
-	// Get the document name
-	if (FAILED(pDoc->get_FullName(&FileName)))
-		return S_OK;
-
-	LPDISPATCH pDispSel;
-
-	// Get a selection object dispatch pointer
-	if (SUCCEEDED(pDoc->get_Selection(&pDispSel)))
-	{
-		// Get the selection object
-		CComQIPtr < ITextSelection, &IID_ITextSelection > pSel(pDispSel);
-
-		if (pSel)
-			// Get the selection line number
-			pSel->get_CurrentLine(&LineNr);
-
-		pDispSel->Release();
-	}
-
-	// Open the file in Vim and position to the current line
-	if (VimOpenFile(FileName, LineNr))
-	{
-		if (! g_bDevStudioEditor)
-		{
-			// Close the document in developer studio
-			CComVariant vSaveChanges = dsSaveChangesPrompt;
-			DsSaveStatus Saved;
-
-			pDoc->Close(vSaveChanges, &Saved);
-		}
-	}
-
-	// We're done here
-	SysFreeString(FileName);
-	return S_OK;
-}
-
-HRESULT CCommands::XApplicationEvents::BeforeDocumentClose(IDispatch * theDocument)
-{
-	AFX_MANAGE_STATE(AfxGetStaticModuleState());
-	return S_OK;
-}
-
-HRESULT CCommands::XApplicationEvents::DocumentSave(IDispatch * theDocument)
-{
-	AFX_MANAGE_STATE(AfxGetStaticModuleState());
-	return S_OK;
-}
-
-HRESULT CCommands::XApplicationEvents::NewDocument(IDispatch * theDocument)
-{
-	AFX_MANAGE_STATE(AfxGetStaticModuleState());
-
-	if (! g_bEnableVim)
-		// Vim not enabled or empty command line entered
-		return S_OK;
-
-	// First get the current file name and line number
-
-	CComQIPtr < ITextDocument, &IID_ITextDocument > pDoc(theDocument);
-	if (! pDoc)
-		return S_OK;
-
-	BSTR FileName;
-	HRESULT hr;
-
-	hr = pDoc->get_FullName(&FileName);
-	if (FAILED(hr))
-		return S_OK;
-
-	// Open the file in Vim and position to the current line
-	if (VimOpenFile(FileName, 0))
-	{
-		if (! g_bDevStudioEditor)
-		{
-			// Close the document in developer studio
-			CComVariant vSaveChanges = dsSaveChangesPrompt;
-			DsSaveStatus Saved;
-
-			pDoc->Close(vSaveChanges, &Saved);
-		}
-	}
-
-	SysFreeString(FileName);
-	return S_OK;
-}
-
-HRESULT CCommands::XApplicationEvents::WindowActivate(IDispatch * theWindow)
-{
-	AFX_MANAGE_STATE(AfxGetStaticModuleState());
-	return S_OK;
-}
-
-HRESULT CCommands::XApplicationEvents::WindowDeactivate(IDispatch * theWindow)
-{
-	AFX_MANAGE_STATE(AfxGetStaticModuleState());
-	return S_OK;
-}
-
-HRESULT CCommands::XApplicationEvents::WorkspaceOpen()
-{
-	AFX_MANAGE_STATE(AfxGetStaticModuleState());
-	return S_OK;
-}
-
-HRESULT CCommands::XApplicationEvents::WorkspaceClose()
-{
-	AFX_MANAGE_STATE(AfxGetStaticModuleState());
-	return S_OK;
-}
-
-HRESULT CCommands::XApplicationEvents::NewWorkspace()
-{
-	AFX_MANAGE_STATE(AfxGetStaticModuleState());
-	return S_OK;
-}
-
-// Debugger event
-
-HRESULT CCommands::XDebuggerEvents::BreakpointHit(IDispatch * pBreakpoint)
-{
-	AFX_MANAGE_STATE(AfxGetStaticModuleState());
-	return S_OK;
-}
-
-
-/////////////////////////////////////////////////////////////////////////////
-// VisVim dialog
-
-class CMainDialog : public CDialog
-{
-    public:
-	CMainDialog(CWnd * pParent = NULL);	// Standard constructor
-
-	//{{AFX_DATA(CMainDialog)
-	enum { IDD = IDD_ADDINMAIN };
-	int	m_ChangeDir;
-	BOOL	m_bDevStudioEditor;
-	BOOL	m_bNewTabs;
-	//}}AFX_DATA
-
-	//{{AFX_VIRTUAL(CMainDialog)
-    protected:
-	virtual void DoDataExchange(CDataExchange * pDX);	// DDX/DDV support
-	//}}AFX_VIRTUAL
-
-    protected:
-	//{{AFX_MSG(CMainDialog)
-	afx_msg void OnEnable();
-	afx_msg void OnDisable();
-	//}}AFX_MSG
-	DECLARE_MESSAGE_MAP()
-};
-
-CMainDialog::CMainDialog(CWnd * pParent /* =NULL */ )
-	: CDialog(CMainDialog::IDD, pParent)
-{
-	//{{AFX_DATA_INIT(CMainDialog)
-	m_ChangeDir = -1;
-	m_bDevStudioEditor = FALSE;
-	m_bNewTabs = FALSE;
-	//}}AFX_DATA_INIT
-}
-
-void CMainDialog::DoDataExchange(CDataExchange * pDX)
-{
-	CDialog::DoDataExchange(pDX);
-	//{{AFX_DATA_MAP(CMainDialog)
-	DDX_Radio(pDX, IDC_CD_SOURCE_PATH, m_ChangeDir);
-	DDX_Check(pDX, IDC_DEVSTUDIO_EDITOR, m_bDevStudioEditor);
-	DDX_Check(pDX, IDC_NEW_TABS, m_bNewTabs);
-	//}}AFX_DATA_MAP
-}
-
-BEGIN_MESSAGE_MAP(CMainDialog, CDialog)
-	//{{AFX_MSG_MAP(CMainDialog)
-	//}}AFX_MSG_MAP
-END_MESSAGE_MAP()
-
-
-/////////////////////////////////////////////////////////////////////////////
-// CCommands methods
-
-STDMETHODIMP CCommands::VisVimDialog()
-{
-	AFX_MANAGE_STATE(AfxGetStaticModuleState());
-
-	// Use m_pApplication to access the Developer Studio Application
-	// object,
-	// and VERIFY_OK to see error strings in DEBUG builds of your add-in
-	// (see stdafx.h)
-
-	VERIFY_OK(m_pApplication->EnableModeless(VARIANT_FALSE));
-
-	CMainDialog Dlg;
-
-	Dlg.m_bDevStudioEditor = g_bDevStudioEditor;
-	Dlg.m_bNewTabs = g_bNewTabs;
-	Dlg.m_ChangeDir = g_ChangeDir;
-	if (Dlg.DoModal() == IDOK)
-	{
-		g_bDevStudioEditor = Dlg.m_bDevStudioEditor;
-		g_bNewTabs = Dlg.m_bNewTabs;
-		g_ChangeDir = Dlg.m_ChangeDir;
-
-		// Save settings to registry HKEY_CURRENT_USER\Software\Vim\VisVim
-		HKEY hAppKey = GetAppKey("Vim");
-		if (hAppKey)
-		{
-			HKEY hSectionKey = GetSectionKey(hAppKey, "VisVim");
-			if (hSectionKey)
-			{
-				WriteRegistryInt(hSectionKey, "DevStudioEditor",
-						  g_bDevStudioEditor);
-				WriteRegistryInt(hSectionKey, "NewTabs",
-						  g_bNewTabs);
-				WriteRegistryInt(hSectionKey, "ChangeDir", g_ChangeDir);
-				RegCloseKey(hSectionKey);
-			}
-			RegCloseKey(hAppKey);
-		}
-	}
-
-	VERIFY_OK(m_pApplication->EnableModeless(VARIANT_TRUE));
-	return S_OK;
-}
-
-STDMETHODIMP CCommands::VisVimEnable()
-{
-	AFX_MANAGE_STATE(AfxGetStaticModuleState());
-	VimSetEnableState(true);
-	return S_OK;
-}
-
-STDMETHODIMP CCommands::VisVimDisable()
-{
-	AFX_MANAGE_STATE(AfxGetStaticModuleState());
-	VimSetEnableState(false);
-	return S_OK;
-}
-
-STDMETHODIMP CCommands::VisVimToggle()
-{
-	AFX_MANAGE_STATE(AfxGetStaticModuleState());
-	VimSetEnableState(! g_bEnableVim);
-	return S_OK;
-}
-
-STDMETHODIMP CCommands::VisVimLoad()
-{
-	AFX_MANAGE_STATE(AfxGetStaticModuleState());
-
-	// Use m_pApplication to access the Developer Studio Application object,
-	// and VERIFY_OK to see error strings in DEBUG builds of your add-in
-	// (see stdafx.h)
-
-	CComBSTR bStr;
-	// Define dispatch pointers for document and selection objects
-	CComPtr < IDispatch > pDispDoc, pDispSel;
-
-	// Get a document object dispatch pointer
-	VERIFY_OK(m_pApplication->get_ActiveDocument(&pDispDoc));
-	if (! pDispDoc)
-		return S_OK;
-
-	BSTR FileName;
-	long LineNr = -1;
-
-	// Get the document object
-	CComQIPtr < ITextDocument, &IID_ITextDocument > pDoc(pDispDoc);
-
-	if (! pDoc)
-		return S_OK;
-
-	// Get the document name
-	if (FAILED(pDoc->get_FullName(&FileName)))
-		return S_OK;
-
-	// Get a selection object dispatch pointer
-	if (SUCCEEDED(pDoc->get_Selection(&pDispSel)))
-	{
-		// Get the selection object
-		CComQIPtr < ITextSelection, &IID_ITextSelection > pSel(pDispSel);
-
-		if (pSel)
-			// Get the selection line number
-			pSel->get_CurrentLine(&LineNr);
-	}
-
-	// Open the file in Vim
-	VimOpenFile(FileName, LineNr);
-
-	SysFreeString(FileName);
-	return S_OK;
-}
-
-
-//
-// Here we do the actual processing and communication with Vim
-//
-
-// Set the enable state and save to registry
-//
-static void VimSetEnableState(BOOL bEnableState)
-{
-	g_bEnableVim = bEnableState;
-	HKEY hAppKey = GetAppKey("Vim");
-	if (hAppKey)
-	{
-		HKEY hSectionKey = GetSectionKey(hAppKey, "VisVim");
-		if (hSectionKey)
-			WriteRegistryInt(hSectionKey, "EnableVim", g_bEnableVim);
-		RegCloseKey(hAppKey);
-	}
-}
-
-// Open the file 'FileName' in Vim and goto line 'LineNr'
-// 'FileName' is expected to contain an absolute DOS path including the drive
-// letter.
-// 'LineNr' must contain a valid line number or 0, e. g. for a new file
-//
-static BOOL VimOpenFile(BSTR& FileName, long LineNr)
-{
-
-	// OLE automation object for com. with Vim
-	// When the object goes out of scope, its destructor destroys the OLE
-	// connection;
-	// This is important to avoid blocking the object
-	// (in this memory corruption would be likely when terminating Vim
-	// while still running DevStudio).
-	// So keep this object local!
-	COleAutomationControl VimOle;
-
-	// :cd D:/Src2/VisVim/
-	//
-	// Get a dispatch id for the SendKeys method of Vim;
-	// enables connection to Vim if necessary
-	DISPID DispatchId;
-	DispatchId = VimGetDispatchId(VimOle, "SendKeys");
-	if (! DispatchId)
-		// OLE error, can't obtain dispatch id
-		goto OleError;
-
-	OLECHAR Buf[MAX_OLE_STR];
-	char FileNameTmp[MAX_OLE_STR];
-	char VimCmd[MAX_OLE_STR];
-	char *s, *p;
-
-	// Prepend CTRL-\ CTRL-N to exit insert mode
-	VimCmd[0] = 0x1c;
-	VimCmd[1] = 0x0e;
-	VimCmd[2] = 0;
-
-#ifdef SINGLE_WINDOW
-	// Update the current file in Vim if it has been modified.
-	// Disabled, because it could write the file when you don't want to.
-	sprintf(VimCmd + 2, ":up\n");
-#endif
-	if (! VimOle.Method(DispatchId, "s", TO_OLE_STR_BUF(VimCmd, Buf)))
-		goto OleError;
-
-	// Change Vim working directory to where the file is if desired
-	if (g_ChangeDir != CD_NONE)
-		VimChangeDir(VimOle, DispatchId, FileName);
-
-	// Make Vim open the file.
-	// In the filename convert all \ to /, put a \ before a space.
-	if (g_bNewTabs)
-	{
-		sprintf(VimCmd, ":tab drop ");
-		s = VimCmd + 10;
-	}
-	else
-	{
-		sprintf(VimCmd, ":drop ");
-		s = VimCmd + 6;
-	}
-	sprintf(FileNameTmp, "%S", (char *)FileName);
-	for (p = FileNameTmp; *p != '\0' && s < VimCmd + MAX_OLE_STR - 4; ++p)
-		if (*p == '\\')
-			*s++ = '/';
-		else
-		{
-			if (*p == ' ')
-				*s++ = '\\';
-			*s++ = *p;
-		}
-	*s++ = '\n';
-	*s = '\0';
-
-	if (! VimOle.Method(DispatchId, "s", TO_OLE_STR_BUF(VimCmd, Buf)))
-		goto OleError;
-
-	if (LineNr > 0)
-	{
-		// Goto line
-		sprintf(VimCmd, ":%ld\n", LineNr);
-		if (! VimOle.Method(DispatchId, "s", TO_OLE_STR_BUF(VimCmd, Buf)))
-			goto OleError;
-	}
-
-	// Make Vim come to the foreground
-	if (! VimOle.Method("SetForeground"))
-		VimOle.ErrDiag();
-
-	// We're done
-	return true;
-
-    OleError:
-	// There was an OLE error
-	// Check if it's the "unknown class string" error
-	VimErrDiag(VimOle);
-	return false;
-}
-
-// Return the dispatch id for the Vim method 'Method'
-// Create the Vim OLE object if necessary
-// Returns a valid dispatch id or null on error
-//
-static DISPID VimGetDispatchId(COleAutomationControl& VimOle, char* Method)
-{
-	// Initialize Vim OLE connection if not already done
-	if (! VimOle.IsCreated())
-	{
-		if (! VimOle.CreateObject("Vim.Application"))
-			return NULL;
-	}
-
-	// Get the dispatch id for the SendKeys method.
-	// By doing this, we are checking if Vim is still there...
-	DISPID DispatchId = VimOle.GetDispatchId("SendKeys");
-	if (! DispatchId)
-	{
-		// We can't get a dispatch id.
-		// This means that probably Vim has been terminated.
-		// Don't issue an error message here, instead
-		// destroy the OLE object and try to connect once more
-		//
-		// In fact, this should never happen, because the OLE aut. object
-		// should not be kept long enough to allow the user to terminate Vim
-		// to avoid memory corruption (why the heck is there no system garbage
-		// collection for those damned OLE memory chunks???).
-		VimOle.DeleteObject();
-		if (! VimOle.CreateObject("Vim.Application"))
-			// If this create fails, it's time for an error msg
-			return NULL;
-
-		if (! (DispatchId = VimOle.GetDispatchId("SendKeys")))
-			// There is something wrong...
-			return NULL;
-	}
-
-	return DispatchId;
-}
-
-// Output an error message for an OLE error
-// Check on the classstring error, which probably means Vim wasn't registered.
-//
-static void VimErrDiag(COleAutomationControl& VimOle)
-{
-	SCODE sc = GetScode(VimOle.GetResult());
-	if (sc == CO_E_CLASSSTRING)
-	{
-		char Buf[256];
-		sprintf(Buf, "There is no registered OLE automation server named "
-			 "\"Vim.Application\".\n"
-			 "Use the OLE-enabled version of Vim with VisVim and "
-			 "make sure to register Vim by running \"vim -register\".");
-		MessageBox(NULL, Buf, "OLE Error", MB_OK);
-	}
-	else
-		VimOle.ErrDiag();
-}
-
-// Change directory to the directory the file 'FileName' is in or its parent
-// directory according to the setting of the global 'g_ChangeDir':
-// 'FileName' is expected to contain an absolute DOS path including the drive
-// letter.
-//	CD_NONE
-//	CD_SOURCE_PATH
-//	CD_SOURCE_PARENT
-//
-static void VimChangeDir(COleAutomationControl& VimOle, DISPID DispatchId, BSTR& FileName)
-{
-	// Do a :cd first
-
-	// Get the path name of the file ("dir/")
-	CString StrFileName = FileName;
-	char Drive[_MAX_DRIVE];
-	char Dir[_MAX_DIR];
-	char DirUnix[_MAX_DIR * 2];
-	char *s, *t;
-
-	_splitpath(StrFileName, Drive, Dir, NULL, NULL);
-
-	// Convert to Unix path name format, escape spaces.
-	t = DirUnix;
-	for (s = Dir; *s; ++s)
-		if (*s == '\\')
-			*t++ = '/';
-		else
-		{
-			if (*s == ' ')
-				*t++ = '\\';
-			*t++ = *s;
-		}
-	*t = '\0';
-
-
-	// Construct the cd command; append /.. if cd to parent
-	// directory and not in root directory
-	OLECHAR Buf[MAX_OLE_STR];
-	char VimCmd[MAX_OLE_STR];
-
-	sprintf(VimCmd, ":cd %s%s%s\n", Drive, DirUnix,
-		 g_ChangeDir == CD_SOURCE_PARENT && DirUnix[1] ? ".." : "");
-	VimOle.Method(DispatchId, "s", TO_OLE_STR_BUF(VimCmd, Buf));
-}
-
-#ifdef _DEBUG
-// Print out a debug message
-//
-static void DebugMsg(char* Msg, char* Arg)
-{
-	char Buf[400];
-	sprintf(Buf, Msg, Arg);
-	AfxMessageBox(Buf);
-}
-#endif
deleted file mode 100644
--- a/src/VisVim/Commands.h
+++ /dev/null
@@ -1,127 +0,0 @@
-// Commands.h : header file
-//
-
-#if !defined(AFX_COMMANDS_H__AC726717_2977_11D1_B2F3_006008040780__INCLUDED_)
-#define AFX_COMMANDS_H__AC726717_2977_11D1_B2F3_006008040780__INCLUDED_
-
-#include "vsvtypes.h"
-
-class CCommands :
-	public   CComDualImpl < ICommands,
-				 &IID_ICommands,
-				 &LIBID_VisVim >,
-	public   CComObjectRoot,
-	public   CComCoClass < CCommands,
-				 &CLSID_Commands >
-{
-    protected:
-	IApplication * m_pApplication;
-
-    public:
-	CCommands ();
-	~CCommands ();
-	void SetApplicationObject (IApplication * m_pApplication);
-	IApplication *GetApplicationObject ()
-	{
-		return m_pApplication;
-	}
-	void UnadviseFromEvents ();
-
-	BEGIN_COM_MAP (CCommands)
-	COM_INTERFACE_ENTRY (IDispatch)
-	COM_INTERFACE_ENTRY (ICommands)
-	END_COM_MAP ()
-	DECLARE_NOT_AGGREGATABLE (CCommands)
-
-    protected:
-	// This class template is used as the base class for the Application
-	// event handler object and the Debugger event handler object,
-	// which are declared below.
-	template < class IEvents,
-		const IID * piidEvents,
-		const GUID * plibid,
-		class XEvents,
-		const CLSID * pClsidEvents >
-		class XEventHandler :
-		public	      CComDualImpl < IEvents,
-			      piidEvents,
-			      plibid >,
-		public	      CComObjectRoot,
-		public	      CComCoClass < XEvents,
-			      pClsidEvents >
-	{
-	    public:
-		BEGIN_COM_MAP (XEvents)
-		COM_INTERFACE_ENTRY (IDispatch)
-		COM_INTERFACE_ENTRY_IID (*piidEvents, IEvents)
-		END_COM_MAP ()
-		DECLARE_NOT_AGGREGATABLE (XEvents)
-		void Connect (IUnknown * pUnk)
-		{
-			VERIFY (SUCCEEDED (AtlAdvise (pUnk, this, *piidEvents,
-						      &m_dwAdvise)));
-		}
-		void Disconnect (IUnknown * pUnk)
-		{
-			AtlUnadvise (pUnk, *piidEvents, m_dwAdvise);
-		}
-
-		CCommands *m_pCommands;
-
-	    protected:
-		DWORD m_dwAdvise;
-	};
-
-	// This object handles events fired by the Application object
-	class XApplicationEvents : public XEventHandler < IApplicationEvents,
-			&IID_IApplicationEvents,
-			&LIBID_VisVim,
-			XApplicationEvents,
-			&CLSID_ApplicationEvents >
-	{
-	    public:
-		// IApplicationEvents methods
-		STDMETHOD (BeforeBuildStart) (THIS);
-		STDMETHOD (BuildFinish) (THIS_ long nNumErrors, long nNumWarnings);
-		STDMETHOD (BeforeApplicationShutDown) (THIS);
-		STDMETHOD (DocumentOpen) (THIS_ IDispatch * theDocument);
-		STDMETHOD (BeforeDocumentClose) (THIS_ IDispatch * theDocument);
-		STDMETHOD (DocumentSave) (THIS_ IDispatch * theDocument);
-		STDMETHOD (NewDocument) (THIS_ IDispatch * theDocument);
-		STDMETHOD (WindowActivate) (THIS_ IDispatch * theWindow);
-		STDMETHOD (WindowDeactivate) (THIS_ IDispatch * theWindow);
-		STDMETHOD (WorkspaceOpen) (THIS);
-		STDMETHOD (WorkspaceClose) (THIS);
-		STDMETHOD (NewWorkspace) (THIS);
-	};
-	typedef CComObject < XApplicationEvents > XApplicationEventsObj;
-	XApplicationEventsObj *m_pApplicationEventsObj;
-
-	// This object handles events fired by the Application object
-	class XDebuggerEvents : public XEventHandler < IDebuggerEvents,
-			&IID_IDebuggerEvents,
-			&LIBID_VisVim,
-			XDebuggerEvents,
-			&CLSID_DebuggerEvents >
-	{
-	    public:
-		// IDebuggerEvents method
-		STDMETHOD (BreakpointHit) (THIS_ IDispatch * pBreakpoint);
-	};
-	typedef CComObject < XDebuggerEvents > XDebuggerEventsObj;
-	XDebuggerEventsObj *m_pDebuggerEventsObj;
-
-    public:
-	// ICommands methods
-	STDMETHOD (VisVimDialog) (THIS);
-	STDMETHOD (VisVimEnable) (THIS);
-	STDMETHOD (VisVimDisable) (THIS);
-	STDMETHOD (VisVimToggle) (THIS);
-	STDMETHOD (VisVimLoad) (THIS);
-};
-
-typedef CComObject < CCommands > CCommandsObj;
-
-//{{AFX_INSERT_LOCATION}}
-
-#endif // !defined(AFX_COMMANDS_H__AC726717_2977_11D1_B2F3_006008040780__INCLUDED)
deleted file mode 100644
--- a/src/VisVim/DSAddIn.cpp
+++ /dev/null
@@ -1,160 +0,0 @@
-#include "stdafx.h"
-#include "VisVim.h"
-#include "DSAddIn.h"
-#include "Commands.h"
-
-#ifdef _DEBUG
-#define new DEBUG_NEW
-#undef THIS_FILE
-static char THIS_FILE[] = __FILE__;
-
-#endif
-
-// This is called when the user first loads the add-in, and on start-up
-//  of each subsequent Developer Studio session
-STDMETHODIMP CDSAddIn::OnConnection (IApplication * pApp, VARIANT_BOOL bFirstTime,
-				     long dwCookie, VARIANT_BOOL * OnConnection)
-{
-	AFX_MANAGE_STATE (AfxGetStaticModuleState ());
-	*OnConnection = VARIANT_FALSE;
-
-	// Store info passed to us
-	IApplication *pApplication = NULL;
-	HRESULT hr;
-
-	hr = pApp->QueryInterface (IID_IApplication, (void **) &pApplication);
-	if (FAILED (hr))
-	{
-		ReportLastError (hr);
-		return E_UNEXPECTED;
-	}
-	if (pApplication == NULL)
-	{
-		ReportInternalError ("IApplication::QueryInterface");
-		return E_UNEXPECTED;
-	}
-
-	m_dwCookie = dwCookie;
-
-	// Create command dispatch, send info back to DevStudio
-	CCommandsObj::CreateInstance (&m_pCommands);
-	if (! m_pCommands)
-	{
-		ReportInternalError ("CCommandsObj::CreateInstance");
-		return E_UNEXPECTED;
-	}
-	m_pCommands->AddRef ();
-
-	// The QueryInterface above AddRef'd the Application object.  It will
-	// be Release'd in CCommand's destructor.
-	m_pCommands->SetApplicationObject (pApplication);
-
-	hr = pApplication->SetAddInInfo ((long) AfxGetInstanceHandle (),
-		(LPDISPATCH) m_pCommands, IDR_TOOLBAR_MEDIUM, IDR_TOOLBAR_LARGE,
-		m_dwCookie);
-	if (FAILED (hr))
-	{
-		ReportLastError (hr);
-		return E_UNEXPECTED;
-	}
-
-	// Inform DevStudio of the commands we implement
-	if (! AddCommand (pApplication, "VisVimDialog", "VisVimDialogCmd",
-			  IDS_CMD_DIALOG, 0, bFirstTime))
-		return E_UNEXPECTED;
-	if (! AddCommand (pApplication, "VisVimEnable", "VisVimEnableCmd",
-			  IDS_CMD_ENABLE, 1, bFirstTime))
-		return E_UNEXPECTED;
-	if (! AddCommand (pApplication, "VisVimDisable", "VisVimDisableCmd",
-			  IDS_CMD_DISABLE, 2, bFirstTime))
-		return E_UNEXPECTED;
-	if (! AddCommand (pApplication, "VisVimToggle", "VisVimToggleCmd",
-			  IDS_CMD_TOGGLE, 3, bFirstTime))
-		return E_UNEXPECTED;
-	if (! AddCommand (pApplication, "VisVimLoad", "VisVimLoadCmd",
-			  IDS_CMD_LOAD, 4, bFirstTime))
-		return E_UNEXPECTED;
-
-	*OnConnection = VARIANT_TRUE;
-	return S_OK;
-}
-
-// This is called on shut-down, and also when the user unloads the add-in
-STDMETHODIMP CDSAddIn::OnDisconnection (VARIANT_BOOL bLastTime)
-{
-	AFX_MANAGE_STATE (AfxGetStaticModuleState ());
-
-	m_pCommands->UnadviseFromEvents ();
-	m_pCommands->Release ();
-	m_pCommands = NULL;
-
-	return S_OK;
-}
-
-// Add a command to DevStudio
-// Creates a toolbar button for the command also.
-// 'MethodName' is the name of the method specified in the .odl file
-// 'StrResId' the resource id of the descriptive string
-// 'GlyphIndex' the image index into the command buttons bitmap
-// Return true on success
-//
-bool CDSAddIn::AddCommand (IApplication* pApp, char* MethodName, char* CmdName,
-			   UINT StrResId, UINT GlyphIndex, VARIANT_BOOL bFirstTime)
-{
-	CString CmdString;
-	CString CmdText;
-
-	CmdText.LoadString (StrResId);
-	CmdString = CmdName;
-	CmdString += CmdText;
-
-	CComBSTR bszCmdString (CmdString);
-	CComBSTR bszMethod (MethodName);
-	CComBSTR bszCmdName (CmdName);
-
-	// (see stdafx.h for the definition of VERIFY_OK)
-
-	VARIANT_BOOL bRet;
-	VERIFY_OK (pApp->AddCommand (bszCmdString, bszMethod, GlyphIndex,
-				     m_dwCookie, &bRet));
-	if (bRet == VARIANT_FALSE)
-	{
-		// AddCommand failed because a command with this name already exists.
-		ReportInternalError ("IApplication::AddCommand");
-		return FALSE;
-	}
-
-	// Add toolbar buttons only if this is the first time the add-in
-	// is being loaded.  Toolbar buttons are automatically remembered
-	// by Developer Studio from session to session, so we should only
-	// add the toolbar buttons once.
-	if (bFirstTime == VARIANT_TRUE)
-		VERIFY_OK (pApp->AddCommandBarButton (dsGlyph, bszCmdName, m_dwCookie));
-
-	return TRUE;
-}
-
-void ReportLastError (HRESULT Err)
-{
-	char *Buf = NULL;
-	char Msg[512];
-
-	FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER,
-		       NULL, Err,
-		       MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT),
-		       Buf, 400, NULL);
-	sprintf (Msg, "Unexpected error (Error code: %lx)\n%s", Err, Buf);
-
-	::MessageBox (NULL, Msg, "VisVim", MB_OK | MB_ICONSTOP);
-	if (Buf)
-		LocalFree (Buf);
-}
-
-void ReportInternalError (char* Fct)
-{
-	char Msg[512];
-
-	sprintf (Msg, "Unexpected error\n%s failed", Fct);
-	::MessageBox (NULL, Msg, "VisVim", MB_OK | MB_ICONSTOP);
-}
-
deleted file mode 100644
--- a/src/VisVim/DSAddIn.h
+++ /dev/null
@@ -1,53 +0,0 @@
-// DSAddIn.h : header file
-//
-
-#if !defined(AFX_DSADDIN_H__AC726715_2977_11D1_B2F3_006008040780__INCLUDED_)
-#define AFX_DSADDIN_H__AC726715_2977_11D1_B2F3_006008040780__INCLUDED_
-
-#include "commands.h"
-
-// {4F9E01C0-406B-11d2-8006-00001C405077}
-DEFINE_GUID (CLSID_DSAddIn,
-	0x4f9e01c0, 0x406b, 0x11d2, 0x80, 0x6, 0x0, 0x0, 0x1c, 0x40, 0x50, 0x77);
-
-/////////////////////////////////////////////////////////////////////////////
-// CDSAddIn
-
-class CDSAddIn :
-	public   IDSAddIn,
-	public   CComObjectRoot,
-	public   CComCoClass < CDSAddIn,
-		 &CLSID_DSAddIn >
-{
-    public:
-	DECLARE_REGISTRY (CDSAddIn, "VisVim.DSAddIn.1",
-			  "VisVim Developer Studio Add-in", IDS_VISVIM_LONGNAME,
-			  THREADFLAGS_BOTH)
-
-	CDSAddIn ()
-	{
-	}
-
-	BEGIN_COM_MAP (CDSAddIn)
-	COM_INTERFACE_ENTRY (IDSAddIn)
-	END_COM_MAP ()
-	DECLARE_NOT_AGGREGATABLE (CDSAddIn)
-
-	// IDSAddIns
-    public:
-	STDMETHOD (OnConnection) (THIS_ IApplication * pApp, VARIANT_BOOL bFirstTime,
-				  long dwCookie, VARIANT_BOOL * OnConnection);
-	STDMETHOD (OnDisconnection) (THIS_ VARIANT_BOOL bLastTime);
-
-    protected:
-	bool AddCommand (IApplication* pApp, char* MethodName, char* CmdName,
-			 UINT StrResId, UINT GlyphIndex, VARIANT_BOOL bFirstTime);
-
-    protected:
-	CCommandsObj * m_pCommands;
-	DWORD m_dwCookie;
-};
-
-//{{AFX_INSERT_LOCATION}}
-
-#endif // !defined(AFX_DSADDIN_H__AC726715_2977_11D1_B2F3_006008040780__INCLUDED)
deleted file mode 100644
--- a/src/VisVim/OleAut.cpp
+++ /dev/null
@@ -1,781 +0,0 @@
-//
-// Class for creating OLE automation controllers.
-//
-// CreateObject() creates an automation object
-// Invoke() will call a property or method of the automation object.
-// GetProperty() returns a property
-// SetProperty() changes a property
-// Method() invokes a method
-//
-// For example, the following VB code will control Microsoft Word:
-//
-//    Private Sub Form_Load()
-//    Dim wb As Object
-//    Set wb = CreateObject("Word.Basic")
-//    wb.AppShow
-//    wb.FileNewDefault
-//    wb.Insert "This is a test"
-//    wb.FileSaveAs "c:\sample.doc)"
-//    End Sub
-//
-// A C++ automation controller that does the same can be written as follows:
-// the helper functions:
-//
-//   Void FormLoad ()
-//   {
-//       COleAutomationControl Aut;
-//       Aut.CreateObject("Word.Basic");
-//       Aut.Method ("AppShow");
-//       Aut.Method ("FileNewDefault");
-//       Aut.Method ("Insert", "s", (LPOLESTR) OLESTR ("This is a test"));
-//       Aut.Method ("FileSaveAs", "s", OLESTR ("c:\\sample.doc"));
-//   }
-//
-//
-
-#include "stdafx.h"
-#include <stdarg.h>
-#include "oleaut.h"
-
-#ifdef _DEBUG
-#define new DEBUG_NEW
-#undef THIS_FILE
-static char THIS_FILE[] = __FILE__;
-#endif
-
-
-static bool CountArgsInFormat (LPCTSTR Format, UINT* nArgs);
-static LPCTSTR GetNextVarType (LPCTSTR Format, VARTYPE* pVarType);
-
-
-COleAutomationControl::COleAutomationControl ()
-{
-	m_pDispatch = NULL;
-	m_hResult = NOERROR;
-	m_nErrArg = 0;
-	VariantInit (&m_VariantResult);
-}
-
-COleAutomationControl::~COleAutomationControl ()
-{
-	DeleteObject ();
-}
-
-void COleAutomationControl::DeleteObject ()
-{
-	if (m_pDispatch)
-	{
-		m_pDispatch->Release ();
-		m_pDispatch = NULL;
-	}
-}
-
-// Creates an instance of the Automation object and
-// obtains its IDispatch interface.
-//
-// Parameters:
-// ProgId	  ProgID of Automation object
-//
-bool COleAutomationControl::CreateObject (char* ProgId)
-{
-	CLSID ClsId;			// CLSID of automation object
-	LPUNKNOWN pUnknown = NULL;	// IUnknown of automation object
-
-	// Retrieve CLSID from the progID that the user specified
-	LPOLESTR OleProgId = TO_OLE_STR (ProgId);
-	m_hResult = CLSIDFromProgID (OleProgId, &ClsId);
-	if (FAILED (m_hResult))
-		goto error;
-
-	// Create an instance of the automation object and ask for the
-	// IDispatch interface
-	m_hResult = CoCreateInstance (ClsId, NULL, CLSCTX_SERVER,
-			       IID_IUnknown, (void**) &pUnknown);
-	if (FAILED (m_hResult))
-		goto error;
-
-	m_hResult = pUnknown->QueryInterface (IID_IDispatch, (void**) &m_pDispatch);
-	if (FAILED (m_hResult))
-		goto error;
-
-	pUnknown->Release ();
-	return true;
-
-error:
-	if (pUnknown)
-		pUnknown->Release ();
-	if (m_pDispatch)
-		m_pDispatch->Release ();
-	return false;
-}
-
-// Return the dispatch id of a named service
-// This id can be used in subsequent calls to GetProperty (), SetProperty () and
-// Method (). This is the preferred method when performance is important.
-//
-DISPID COleAutomationControl::GetDispatchId (char* Name)
-{
-	DISPID DispatchId;
-
-	ASSERT (m_pDispatch);
-
-	// Get DISPID of property/method
-	LPOLESTR OleName = TO_OLE_STR (Name);
-	m_hResult = m_pDispatch->GetIDsOfNames (IID_NULL, &OleName, 1,
-						LOCALE_USER_DEFAULT, &DispatchId);
-	if (FAILED (m_hResult))
-		return NULL;
-	return DispatchId;
-}
-
-//  The following functions use these parameters:
-//
-// Parameters:
-//
-//  Name      Name of property or method.
-//
-//  Format    Format string that describes the variable list of parameters that
-//	      follows. The format string can contain the following characters.
-//	      & = mark the following format character as VT_BYREF
-//	      B = VT_BOOL
-//	      i = VT_I2
-//	      I = VT_I4
-//	      r = VT_R2
-//	      R = VT_R4
-//	      c = VT_CY
-//	      s = VT_BSTR (string pointer can be passed,
-//			BSTR will be allocated by this function).
-//	      e = VT_ERROR
-//	      d = VT_DATE
-//	      v = VT_VARIANT. Use this to pass data types that are not described
-//			in the format string. (For example SafeArrays).
-//	      D = VT_DISPATCH
-//	      U = VT_UNKNOWN
-//
-//  ...       Arguments of the property or method.
-//	      Arguments are described by Format.
-//
-
-bool COleAutomationControl::GetProperty (char* Name)
-{
-	return Invoke (DISPATCH_PROPERTYGET, Name, NULL, NULL);
-}
-
-bool COleAutomationControl::GetProperty (DISPID DispatchId)
-{
-	return Invoke (DISPATCH_PROPERTYGET, DispatchId, NULL, NULL);
-}
-
-bool COleAutomationControl::PutProperty (char* Name, LPCTSTR Format, ...)
-{
-	va_list ArgList;
-
-	va_start (ArgList, Format);
-	bool bRet = Invoke (DISPATCH_PROPERTYPUT, Name, Format, ArgList);
-	va_end (ArgList);
-	return bRet;
-}
-
-bool COleAutomationControl::PutProperty (DISPID DispatchId, LPCTSTR Format, ...)
-{
-	va_list ArgList;
-
-	va_start (ArgList, Format);
-	bool bRet = Invoke (DISPATCH_PROPERTYPUT, DispatchId, Format, ArgList);
-	va_end (ArgList);
-	return bRet;
-}
-
-bool COleAutomationControl::Method (char* Name, LPCTSTR Format, ...)
-{
-	va_list ArgList;
-
-	va_start (ArgList, Format);
-	bool bRet = Invoke (DISPATCH_METHOD, Name, Format, ArgList);
-	va_end (ArgList);
-	return bRet;
-}
-
-bool COleAutomationControl::Method (DISPID DispatchId, LPCTSTR Format, ...)
-{
-	va_list ArgList;
-
-	va_start (ArgList, Format);
-	bool bRet = Invoke (DISPATCH_METHOD, DispatchId, Format, ArgList);
-	va_end (ArgList);
-	return bRet;
-}
-
-bool COleAutomationControl::Invoke (WORD Flags, char* Name,
-				    LPCTSTR Format, va_list ArgList)
-{
-	DISPID DispatchId = GetDispatchId (Name);
-	if (! DispatchId)
-		return false;
-	return Invoke (Flags, DispatchId, Format, ArgList);
-}
-
-bool COleAutomationControl::Invoke (WORD Flags, DISPID DispatchId,
-				    LPCTSTR Format, va_list ArgList)
-{
-	UINT ArgCount = 0;
-	VARIANTARG* ArgVector = NULL;
-
-	ASSERT (m_pDispatch);
-
-	DISPPARAMS DispatchParams;
-	memset (&DispatchParams, 0, sizeof (DispatchParams));
-
-	// Determine number of arguments
-	if (Format)
-		CountArgsInFormat (Format, &ArgCount);
-
-	// Property puts have a named argument that represents the value that
-	// the property is being assigned.
-	DISPID DispIdNamed = DISPID_PROPERTYPUT;
-	if (Flags & DISPATCH_PROPERTYPUT)
-	{
-		if (ArgCount == 0)
-		{
-			m_hResult = ResultFromScode (E_INVALIDARG);
-			return false;
-		}
-		DispatchParams.cNamedArgs = 1;
-		DispatchParams.rgdispidNamedArgs = &DispIdNamed;
-	}
-
-	if (ArgCount)
-	{
-		// Allocate memory for all VARIANTARG parameters
-		ArgVector = (VARIANTARG*) CoTaskMemAlloc (
-				ArgCount * sizeof (VARIANTARG));
-		if (! ArgVector)
-		{
-			m_hResult = ResultFromScode (E_OUTOFMEMORY);
-			return false;
-		}
-		memset (ArgVector, 0, sizeof (VARIANTARG) * ArgCount);
-
-		// Get ready to walk vararg list
-		LPCTSTR s = Format;
-
-		VARIANTARG *p = ArgVector + ArgCount - 1;  // Params go in opposite order
-
-		for (;;)
-		{
-			VariantInit (p);
-			if (! (s = GetNextVarType (s, &p->vt)))
-				break;
-
-			if (p < ArgVector)
-			{
-				m_hResult = ResultFromScode (E_INVALIDARG);
-				goto Cleanup;
-			}
-			switch (p->vt)
-			{
-			    case VT_I2:
-				V_I2 (p) = va_arg (ArgList, short);
-				break;
-			    case VT_I4:
-				V_I4 (p) = va_arg (ArgList, long);
-				break;
-			    case VT_R4:
-				V_R4 (p) = va_arg (ArgList, float);
-				break;
-			    case VT_DATE:
-			    case VT_R8:
-				V_R8 (p) = va_arg (ArgList, double);
-				break;
-			    case VT_CY:
-				V_CY (p) = va_arg (ArgList, CY);
-				break;
-			    case VT_BSTR:
-				V_BSTR (p) = SysAllocString (va_arg (ArgList,
-								     OLECHAR*));
-				if (! p->bstrVal)
-				{
-					m_hResult = ResultFromScode (E_OUTOFMEMORY);
-					p->vt = VT_EMPTY;
-					goto Cleanup;
-				}
-				break;
-			    case VT_DISPATCH:
-				V_DISPATCH (p) = va_arg (ArgList, LPDISPATCH);
-				break;
-			    case VT_ERROR:
-				V_ERROR (p) = va_arg (ArgList, SCODE);
-				break;
-			    case VT_BOOL:
-				V_BOOL (p) = va_arg (ArgList, BOOL) ? -1 : 0;
-				break;
-			    case VT_VARIANT:
-				*p = va_arg (ArgList, VARIANTARG);
-				break;
-			    case VT_UNKNOWN:
-				V_UNKNOWN (p) = va_arg (ArgList, LPUNKNOWN);
-				break;
-
-			    case VT_I2 | VT_BYREF:
-				V_I2REF (p) = va_arg (ArgList, short*);
-				break;
-			    case VT_I4 | VT_BYREF:
-				V_I4REF (p) = va_arg (ArgList, long*);
-				break;
-			    case VT_R4 | VT_BYREF:
-				V_R4REF (p) = va_arg (ArgList, float*);
-				break;
-			    case VT_R8 | VT_BYREF:
-				V_R8REF (p) = va_arg (ArgList, double*);
-				break;
-			    case VT_DATE | VT_BYREF:
-				V_DATEREF (p) = va_arg (ArgList, DATE*);
-				break;
-			    case VT_CY | VT_BYREF:
-				V_CYREF (p) = va_arg (ArgList, CY*);
-				break;
-			    case VT_BSTR | VT_BYREF:
-				V_BSTRREF (p) = va_arg (ArgList, BSTR*);
-				break;
-			    case VT_DISPATCH | VT_BYREF:
-				V_DISPATCHREF (p) = va_arg (ArgList, LPDISPATCH*);
-				break;
-			    case VT_ERROR | VT_BYREF:
-				V_ERRORREF (p) = va_arg (ArgList, SCODE*);
-				break;
-			    case VT_BOOL | VT_BYREF:
-				{
-					BOOL* pBool = va_arg (ArgList, BOOL*);
-
-					*pBool = 0;
-					V_BOOLREF (p) = (VARIANT_BOOL*) pBool;
-				}
-				break;
-			    case VT_VARIANT | VT_BYREF:
-				V_VARIANTREF (p) = va_arg (ArgList, VARIANTARG*);
-				break;
-			    case VT_UNKNOWN | VT_BYREF:
-				V_UNKNOWNREF (p) = va_arg (ArgList, LPUNKNOWN*);
-				break;
-
-			    default:
-				{
-					m_hResult = ResultFromScode (E_INVALIDARG);
-					goto Cleanup;
-				}
-				break;
-			}
-
-			--p;	// Get ready to fill next argument
-		}
-	}
-
-	DispatchParams.cArgs = ArgCount;
-	DispatchParams.rgvarg = ArgVector;
-
-	// Initialize return variant, in case caller forgot. Caller can pass
-	// NULL if return value is not expected.
-	VariantInit (&m_VariantResult);
-
-	// Make the call
-	m_hResult = m_pDispatch->Invoke (DispatchId, IID_NULL, LOCALE_USER_DEFAULT,
-					 Flags, &DispatchParams, &m_VariantResult,
-					 &m_ExceptionInfo, &m_nErrArg);
-
-    Cleanup:
-	// Cleanup any arguments that need cleanup
-	if (ArgCount)
-	{
-		VARIANTARG* p = ArgVector;
-
-		while (ArgCount--)
-		{
-			switch (p->vt)
-			{
-			    case VT_BSTR:
-				VariantClear (p);
-				break;
-			}
-			++p;
-		}
-		CoTaskMemFree (ArgVector);
-	}
-
-	return FAILED (m_hResult) ? false : true;
-}
-
-#define CASE_SCODE(sc)  \
-	case sc: \
-	lstrcpy((char*)ErrName, (char*)#sc); \
-	break;
-
-void COleAutomationControl::ErrDiag ()
-{
-	char ErrName[200];
-
-	SCODE sc = GetScode (m_hResult);
-	switch (sc)
-	{
-	    // SCODE's defined in SCODE.H
-	    CASE_SCODE (S_OK)
-	    CASE_SCODE (S_FALSE)
-	    CASE_SCODE (E_UNEXPECTED)
-	    CASE_SCODE (E_OUTOFMEMORY)
-	    CASE_SCODE (E_INVALIDARG)
-	    CASE_SCODE (E_NOINTERFACE)
-	    CASE_SCODE (E_POINTER)
-	    CASE_SCODE (E_HANDLE)
-	    CASE_SCODE (E_ABORT)
-	    CASE_SCODE (E_FAIL)
-	    CASE_SCODE (E_ACCESSDENIED)
-
-	    // SCODE's defined in OLE2.H
-	    CASE_SCODE (OLE_E_OLEVERB)
-	    CASE_SCODE (OLE_E_ADVF)
-	    CASE_SCODE (OLE_E_ENUM_NOMORE)
-	    CASE_SCODE (OLE_E_ADVISENOTSUPPORTED)
-	    CASE_SCODE (OLE_E_NOCONNECTION)
-	    CASE_SCODE (OLE_E_NOTRUNNING)
-	    CASE_SCODE (OLE_E_NOCACHE)
-	    CASE_SCODE (OLE_E_BLANK)
-	    CASE_SCODE (OLE_E_CLASSDIFF)
-	    CASE_SCODE (OLE_E_CANT_GETMONIKER)
-	    CASE_SCODE (OLE_E_CANT_BINDTOSOURCE)
-	    CASE_SCODE (OLE_E_STATIC)
-	    CASE_SCODE (OLE_E_PROMPTSAVECANCELLED)
-	    CASE_SCODE (OLE_E_INVALIDRECT)
-	    CASE_SCODE (OLE_E_WRONGCOMPOBJ)
-	    CASE_SCODE (OLE_E_INVALIDHWND)
-	    CASE_SCODE (OLE_E_NOT_INPLACEACTIVE)
-	    CASE_SCODE (OLE_E_CANTCONVERT)
-	    CASE_SCODE (OLE_E_NOSTORAGE)
-
-	    CASE_SCODE (DV_E_FORMATETC)
-	    CASE_SCODE (DV_E_DVTARGETDEVICE)
-	    CASE_SCODE (DV_E_STGMEDIUM)
-	    CASE_SCODE (DV_E_STATDATA)
-	    CASE_SCODE (DV_E_LINDEX)
-	    CASE_SCODE (DV_E_TYMED)
-	    CASE_SCODE (DV_E_CLIPFORMAT)
-	    CASE_SCODE (DV_E_DVASPECT)
-	    CASE_SCODE (DV_E_DVTARGETDEVICE_SIZE)
-	    CASE_SCODE (DV_E_NOIVIEWOBJECT)
-
-	    CASE_SCODE (OLE_S_USEREG)
-	    CASE_SCODE (OLE_S_STATIC)
-	    CASE_SCODE (OLE_S_MAC_CLIPFORMAT)
-
-	    CASE_SCODE (CONVERT10_E_OLESTREAM_GET)
-	    CASE_SCODE (CONVERT10_E_OLESTREAM_PUT)
-	    CASE_SCODE (CONVERT10_E_OLESTREAM_FMT)
-	    CASE_SCODE (CONVERT10_E_OLESTREAM_BITMAP_TO_DIB)
-	    CASE_SCODE (CONVERT10_E_STG_FMT)
-	    CASE_SCODE (CONVERT10_E_STG_NO_STD_STREAM)
-	    CASE_SCODE (CONVERT10_E_STG_DIB_TO_BITMAP)
-	    CASE_SCODE (CONVERT10_S_NO_PRESENTATION)
-
-	    CASE_SCODE (CLIPBRD_E_CANT_OPEN)
-	    CASE_SCODE (CLIPBRD_E_CANT_EMPTY)
-	    CASE_SCODE (CLIPBRD_E_CANT_SET)
-	    CASE_SCODE (CLIPBRD_E_BAD_DATA)
-	    CASE_SCODE (CLIPBRD_E_CANT_CLOSE)
-
-	    CASE_SCODE (DRAGDROP_E_NOTREGISTERED)
-	    CASE_SCODE (DRAGDROP_E_ALREADYREGISTERED)
-	    CASE_SCODE (DRAGDROP_E_INVALIDHWND)
-	    CASE_SCODE (DRAGDROP_S_DROP)
-	    CASE_SCODE (DRAGDROP_S_CANCEL)
-	    CASE_SCODE (DRAGDROP_S_USEDEFAULTCURSORS)
-
-	    CASE_SCODE (OLEOBJ_E_NOVERBS)
-	    CASE_SCODE (OLEOBJ_E_INVALIDVERB)
-	    CASE_SCODE (OLEOBJ_S_INVALIDVERB)
-	    CASE_SCODE (OLEOBJ_S_CANNOT_DOVERB_NOW)
-	    CASE_SCODE (OLEOBJ_S_INVALIDHWND)
-	    CASE_SCODE (INPLACE_E_NOTUNDOABLE)
-	    CASE_SCODE (INPLACE_E_NOTOOLSPACE)
-	    CASE_SCODE (INPLACE_S_TRUNCATED)
-
-	    // SCODE's defined in COMPOBJ.H
-	    CASE_SCODE (CO_E_NOTINITIALIZED)
-	    CASE_SCODE (CO_E_ALREADYINITIALIZED)
-	    CASE_SCODE (CO_E_CANTDETERMINECLASS)
-	    CASE_SCODE (CO_E_CLASSSTRING)
-	    CASE_SCODE (CO_E_IIDSTRING)
-	    CASE_SCODE (CO_E_APPNOTFOUND)
-	    CASE_SCODE (CO_E_APPSINGLEUSE)
-	    CASE_SCODE (CO_E_ERRORINAPP)
-	    CASE_SCODE (CO_E_DLLNOTFOUND)
-	    CASE_SCODE (CO_E_ERRORINDLL)
-	    CASE_SCODE (CO_E_WRONGOSFORAPP)
-	    CASE_SCODE (CO_E_OBJNOTREG)
-	    CASE_SCODE (CO_E_OBJISREG)
-	    CASE_SCODE (CO_E_OBJNOTCONNECTED)
-	    CASE_SCODE (CO_E_APPDIDNTREG)
-	    CASE_SCODE (CLASS_E_NOAGGREGATION)
-	    CASE_SCODE (CLASS_E_CLASSNOTAVAILABLE)
-	    CASE_SCODE (REGDB_E_READREGDB)
-	    CASE_SCODE (REGDB_E_WRITEREGDB)
-	    CASE_SCODE (REGDB_E_KEYMISSING)
-	    CASE_SCODE (REGDB_E_INVALIDVALUE)
-	    CASE_SCODE (REGDB_E_CLASSNOTREG)
-	    CASE_SCODE (REGDB_E_IIDNOTREG)
-	    CASE_SCODE (RPC_E_CALL_REJECTED)
-	    CASE_SCODE (RPC_E_CALL_CANCELED)
-	    CASE_SCODE (RPC_E_CANTPOST_INSENDCALL)
-	    CASE_SCODE (RPC_E_CANTCALLOUT_INASYNCCALL)
-	    CASE_SCODE (RPC_E_CANTCALLOUT_INEXTERNALCALL)
-	    CASE_SCODE (RPC_E_CONNECTION_TERMINATED)
-	    CASE_SCODE (RPC_E_SERVER_DIED)
-	    CASE_SCODE (RPC_E_CLIENT_DIED)
-	    CASE_SCODE (RPC_E_INVALID_DATAPACKET)
-	    CASE_SCODE (RPC_E_CANTTRANSMIT_CALL)
-	    CASE_SCODE (RPC_E_CLIENT_CANTMARSHAL_DATA)
-	    CASE_SCODE (RPC_E_CLIENT_CANTUNMARSHAL_DATA)
-	    CASE_SCODE (RPC_E_SERVER_CANTMARSHAL_DATA)
-	    CASE_SCODE (RPC_E_SERVER_CANTUNMARSHAL_DATA)
-	    CASE_SCODE (RPC_E_INVALID_DATA)
-	    CASE_SCODE (RPC_E_INVALID_PARAMETER)
-	    CASE_SCODE (RPC_E_CANTCALLOUT_AGAIN)
-	    CASE_SCODE (RPC_E_UNEXPECTED)
-
-	    // SCODE's defined in DVOBJ.H
-	    CASE_SCODE (DATA_S_SAMEFORMATETC)
-	    CASE_SCODE (VIEW_E_DRAW)
-	    CASE_SCODE (VIEW_S_ALREADY_FROZEN)
-	    CASE_SCODE (CACHE_E_NOCACHE_UPDATED)
-	    CASE_SCODE (CACHE_S_FORMATETC_NOTSUPPORTED)
-	    CASE_SCODE (CACHE_S_SAMECACHE)
-	    CASE_SCODE (CACHE_S_SOMECACHES_NOTUPDATED)
-
-	    // SCODE's defined in STORAGE.H
-	    CASE_SCODE (STG_E_INVALIDFUNCTION)
-	    CASE_SCODE (STG_E_FILENOTFOUND)
-	    CASE_SCODE (STG_E_PATHNOTFOUND)
-	    CASE_SCODE (STG_E_TOOMANYOPENFILES)
-	    CASE_SCODE (STG_E_ACCESSDENIED)
-	    CASE_SCODE (STG_E_INVALIDHANDLE)
-	    CASE_SCODE (STG_E_INSUFFICIENTMEMORY)
-	    CASE_SCODE (STG_E_INVALIDPOINTER)
-	    CASE_SCODE (STG_E_NOMOREFILES)
-	    CASE_SCODE (STG_E_DISKISWRITEPROTECTED)
-	    CASE_SCODE (STG_E_SEEKERROR)
-	    CASE_SCODE (STG_E_WRITEFAULT)
-	    CASE_SCODE (STG_E_READFAULT)
-	    CASE_SCODE (STG_E_SHAREVIOLATION)
-	    CASE_SCODE (STG_E_LOCKVIOLATION)
-	    CASE_SCODE (STG_E_FILEALREADYEXISTS)
-	    CASE_SCODE (STG_E_INVALIDPARAMETER)
-	    CASE_SCODE (STG_E_MEDIUMFULL)
-	    CASE_SCODE (STG_E_ABNORMALAPIEXIT)
-	    CASE_SCODE (STG_E_INVALIDHEADER)
-	    CASE_SCODE (STG_E_INVALIDNAME)
-	    CASE_SCODE (STG_E_UNKNOWN)
-	    CASE_SCODE (STG_E_UNIMPLEMENTEDFUNCTION)
-	    CASE_SCODE (STG_E_INVALIDFLAG)
-	    CASE_SCODE (STG_E_INUSE)
-	    CASE_SCODE (STG_E_NOTCURRENT)
-	    CASE_SCODE (STG_E_REVERTED)
-	    CASE_SCODE (STG_E_CANTSAVE)
-	    CASE_SCODE (STG_E_OLDFORMAT)
-	    CASE_SCODE (STG_E_OLDDLL)
-	    CASE_SCODE (STG_E_SHAREREQUIRED)
-	    CASE_SCODE (STG_E_NOTFILEBASEDSTORAGE)
-	    CASE_SCODE (STG_E_EXTANTMARSHALLINGS)
-	    CASE_SCODE (STG_S_CONVERTED)
-
-	    // SCODE's defined in STORAGE.H
-	    CASE_SCODE (MK_E_CONNECTMANUALLY)
-	    CASE_SCODE (MK_E_EXCEEDEDDEADLINE)
-	    CASE_SCODE (MK_E_NEEDGENERIC)
-	    CASE_SCODE (MK_E_UNAVAILABLE)
-	    CASE_SCODE (MK_E_SYNTAX)
-	    CASE_SCODE (MK_E_NOOBJECT)
-	    CASE_SCODE (MK_E_INVALIDEXTENSION)
-	    CASE_SCODE (MK_E_INTERMEDIATEINTERFACENOTSUPPORTED)
-	    CASE_SCODE (MK_E_NOTBINDABLE)
-	    CASE_SCODE (MK_E_NOTBOUND)
-	    CASE_SCODE (MK_E_CANTOPENFILE)
-	    CASE_SCODE (MK_E_MUSTBOTHERUSER)
-	    CASE_SCODE (MK_E_NOINVERSE)
-	    CASE_SCODE (MK_E_NOSTORAGE)
-	    CASE_SCODE (MK_E_NOPREFIX)
-	    CASE_SCODE (MK_S_REDUCED_TO_SELF)
-	    CASE_SCODE (MK_S_ME)
-	    CASE_SCODE (MK_S_HIM)
-	    CASE_SCODE (MK_S_US)
-	    CASE_SCODE (MK_S_MONIKERALREADYREGISTERED)
-
-	    // SCODE's defined in DISPATCH.H
-	    CASE_SCODE (DISP_E_UNKNOWNINTERFACE)
-	    CASE_SCODE (DISP_E_MEMBERNOTFOUND)
-	    CASE_SCODE (DISP_E_PARAMNOTFOUND)
-	    CASE_SCODE (DISP_E_TYPEMISMATCH)
-	    CASE_SCODE (DISP_E_UNKNOWNNAME)
-	    CASE_SCODE (DISP_E_NONAMEDARGS)
-	    CASE_SCODE (DISP_E_BADVARTYPE)
-	    CASE_SCODE (DISP_E_EXCEPTION)
-	    CASE_SCODE (DISP_E_OVERFLOW)
-	    CASE_SCODE (DISP_E_BADINDEX)
-	    CASE_SCODE (DISP_E_UNKNOWNLCID)
-	    CASE_SCODE (DISP_E_ARRAYISLOCKED)
-	    CASE_SCODE (DISP_E_BADPARAMCOUNT)
-	    CASE_SCODE (DISP_E_PARAMNOTOPTIONAL)
-	    CASE_SCODE (DISP_E_BADCALLEE)
-	    CASE_SCODE (DISP_E_NOTACOLLECTION)
-
-	    CASE_SCODE (TYPE_E_BUFFERTOOSMALL)
-	    CASE_SCODE (TYPE_E_INVDATAREAD)
-	    CASE_SCODE (TYPE_E_UNSUPFORMAT)
-	    CASE_SCODE (TYPE_E_REGISTRYACCESS)
-	    CASE_SCODE (TYPE_E_LIBNOTREGISTERED)
-	    CASE_SCODE (TYPE_E_UNDEFINEDTYPE)
-	    CASE_SCODE (TYPE_E_QUALIFIEDNAMEDISALLOWED)
-	    CASE_SCODE (TYPE_E_INVALIDSTATE)
-	    CASE_SCODE (TYPE_E_WRONGTYPEKIND)
-	    CASE_SCODE (TYPE_E_ELEMENTNOTFOUND)
-	    CASE_SCODE (TYPE_E_AMBIGUOUSNAME)
-	    CASE_SCODE (TYPE_E_NAMECONFLICT)
-	    CASE_SCODE (TYPE_E_UNKNOWNLCID)
-	    CASE_SCODE (TYPE_E_DLLFUNCTIONNOTFOUND)
-	    CASE_SCODE (TYPE_E_BADMODULEKIND)
-	    CASE_SCODE (TYPE_E_SIZETOOBIG)
-	    CASE_SCODE (TYPE_E_DUPLICATEID)
-	    CASE_SCODE (TYPE_E_TYPEMISMATCH)
-	    CASE_SCODE (TYPE_E_OUTOFBOUNDS)
-	    CASE_SCODE (TYPE_E_IOERROR)
-	    CASE_SCODE (TYPE_E_CANTCREATETMPFILE)
-	    CASE_SCODE (TYPE_E_CANTLOADLIBRARY)
-	    CASE_SCODE (TYPE_E_INCONSISTENTPROPFUNCS)
-	    CASE_SCODE (TYPE_E_CIRCULARTYPE)
-
-	    default:
-		lstrcpy (ErrName, "UNKNOWN SCODE");
-	}
-
-	char Buf[256];
-	sprintf (Buf, "An OLE error occurred:\r\nCode = %s\r\nResult = %lx.",
-		 (char*) ErrName, m_hResult);
-	MessageBox (NULL, Buf, "OLE Error", MB_OK);
-}
-
-
-static bool CountArgsInFormat (LPCTSTR Format, UINT* pArgCount)
-{
-	*pArgCount = 0;
-
-	if (! Format)
-		return true;
-
-	while (*Format)
-	{
-		if (*Format == '&')
-			Format++;
-
-		switch (*Format)
-		{
-		    case 'b':
-		    case 'i':
-		    case 'I':
-		    case 'r':
-		    case 'R':
-		    case 'c':
-		    case 's':
-		    case 'e':
-		    case 'd':
-		    case 'v':
-		    case 'D':
-		    case 'U':
-			++ (*pArgCount);
-			Format++;
-			break;
-		    case '\0':
-		    default:
-			return false;
-		}
-	}
-	return true;
-}
-
-static LPCTSTR GetNextVarType (LPCTSTR Format, VARTYPE* pVarType)
-{
-	*pVarType = 0;
-	if (*Format == '&')
-	{
-		*pVarType = VT_BYREF;
-		Format++;
-		if (!*Format)
-			return NULL;
-	}
-	switch (*Format)
-	{
-	    case 'b':
-		*pVarType |= VT_BOOL;
-		break;
-	    case 'i':
-		*pVarType |= VT_I2;
-		break;
-	    case 'I':
-		*pVarType |= VT_I4;
-		break;
-	    case 'r':
-		*pVarType |= VT_R4;
-		break;
-	    case 'R':
-		*pVarType |= VT_R8;
-		break;
-	    case 'c':
-		*pVarType |= VT_CY;
-		break;
-	    case 's':
-		*pVarType |= VT_BSTR;
-		break;
-	    case 'e':
-		*pVarType |= VT_ERROR;
-		break;
-	    case 'd':
-		*pVarType |= VT_DATE;
-		break;
-	    case 'v':
-		*pVarType |= VT_VARIANT;
-		break;
-	    case 'U':
-		*pVarType |= VT_UNKNOWN;
-		break;
-	    case 'D':
-		*pVarType |= VT_DISPATCH;
-		break;
-	    case '\0':
-		return NULL;	// End of Format string
-	    default:
-		return NULL;
-	}
-	return ++Format;
-}
-
-#ifndef UNICODE
-char* ConvertToAnsi (OLECHAR* sUnicode)
-{
-	static char BufAscii[MAX_OLE_STR];
-	return ConvertToAnsiBuf (sUnicode, BufAscii);
-}
-
-char* ConvertToAnsiBuf (OLECHAR* sUnicode, char* BufAscii)
-{
-	WideCharToMultiByte (CP_ACP, 0, sUnicode, -1, BufAscii, MAX_OLE_STR, NULL, NULL);
-	return BufAscii;
-}
-
-OLECHAR* ConvertToUnicode (char* sAscii)
-{
-	static OLECHAR BufUnicode[MAX_OLE_STR];
-	return ConvertToUnicodeBuf (sAscii, BufUnicode);
-}
-
-OLECHAR* ConvertToUnicodeBuf (char* sAscii, OLECHAR* BufUnicode)
-{
-	MultiByteToWideChar (CP_ACP, 0, sAscii, -1, BufUnicode, MAX_OLE_STR);
-	return BufUnicode;
-}
-#endif
-
deleted file mode 100644
--- a/src/VisVim/OleAut.h
+++ /dev/null
@@ -1,73 +0,0 @@
-#ifndef __OLEAUT_H__
-#define __OLEAUT_H__
-
-class COleAutomationControl : public CObject
-{
-    public:
-	COleAutomationControl ();
-	~COleAutomationControl ();
-	bool CreateObject (char* ProgId);
-	DISPID GetDispatchId (char* Name);
-	bool GetProperty (char* Name);
-	bool GetProperty (DISPID DispatchId);
-	bool PutProperty (char* Name, LPCTSTR Format, ...);
-	bool PutProperty (DISPID DispatchId, LPCTSTR Format, ...);
-	bool Method (char* Name, LPCTSTR Format = NULL, ...);
-	bool Method (DISPID DispatchId, LPCTSTR Format = NULL, ...);
-	void DeleteObject ();
-	void ErrDiag ();
-	bool IsCreated ()
-	{
-		return m_pDispatch ? true : false;
-	}
-	bool IsAlive ();
-	HRESULT GetResult ()
-	{
-		return m_hResult;
-	}
-	UINT GetErrArgNr ()
-	{
-		return m_nErrArg;
-	}
-	EXCEPINFO* GetExceptionInfo ()
-	{
-		return &m_ExceptionInfo;
-	}
-	LPVARIANT GetResultVariant ()
-	{
-		return &m_VariantResult;
-	}
-
-    protected:
-	bool Invoke (WORD Flags, char* Name, LPCTSTR Format, va_list ArgList);
-	bool Invoke (WORD Flags, DISPID DispatchId, LPCTSTR Format, va_list ArgList);
-
-    protected:
-	IDispatch*	m_pDispatch;
-	HRESULT		m_hResult;
-	UINT		m_nErrArg;
-	EXCEPINFO	m_ExceptionInfo;
-	VARIANTARG	m_VariantResult;
-};
-
-#ifdef UNICODE
-    #define FROM_OLE_STRING(str)		str
-    #define FROM_OLE_STRING_BUF(str,buf)	str
-    #define TO_OLE_STR(str)			str
-    #define TO_OLE_STR_BUF(str,buf)		str
-    #define MAX_OLE_STR				1
-#else
-    #define FROM_OLE_STR(str)			ConvertToAnsi(str)
-    #define FROM_OLE_STR_BUF(str,buf)		ConvertToAnsiBuf(str,buf)
-    char* ConvertToAnsi (OLECHAR* sUnicode);
-    char* ConvertToAnsiBuf (OLECHAR* sUnicode, char* Buf);
-    #define TO_OLE_STR(str)			ConvertToUnicode(str)
-    #define TO_OLE_STR_BUF(str,buf)		ConvertToUnicodeBuf(str,buf)
-    OLECHAR* ConvertToUnicode (char* sAscii);
-    OLECHAR* ConvertToUnicodeBuf (char* sAscii, OLECHAR* Buf);
-    // Maximum length of string that can be converted between Ansi & Unicode
-    #define MAX_OLE_STR				500
-#endif
-
-
-#endif		 // __OLEAUT_H__
deleted file mode 100644
--- a/src/VisVim/README_VisVim.txt
+++ /dev/null
@@ -1,326 +0,0 @@
-===============================
-Visual Studio - Vim Integration
-===============================
-
-Copyright (C) 1997 Heiko Erhardt
-
-VisVim is a Visual Studio Add-In that allows Vim to be integrated
-as the default text editor. It will be used instead of the Visual
-Studio built-in editor when you double-click on a file or press F4
-after compiling (it will go to the proper line in the Vim buffer).
-The file can be loaded exclusively by Vim or additionally to the
-builtin Visual Studio editor (this option can be set in the VisVim
-configuration dialog inside Visual Studio).
-Vim does not replace the Visual Studio editor, it still runs in its
-own window.
-
-VisVim is based upon VisEmacs by Christopher Payne
-(Copyright (C) Christopher Payne 1997).
-
-Author: Heiko Erhardt <heiko.erhardt@gmx.net>
-Based upon: VisEmacs by Christopher Payne <payneca@sagian.com>
-Version: 1.0
-Created: 23 Oct 1997
-Date: 23 Oct 1997
-
-VisVim was originally GNU GPL licensed, as stated below.  On March 21 2012
-Heiko Erhardt declared this work to be relicensed under the Vim license, as
-stated in ../../runtime/doc/uganda.txt (or ":help uganda" in Vim).
-
-VisVim is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-VisVim is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-
-Requirements
-------------
-
-VisVim works with the *OLE-enabled* version of Vim version 5.0 and higher
-only!!!  You must download the extra archive containing the OLE-enabled
-executable from your Vim download site.  When building your own Vim
-executable, use the if_ole_vc.mak makefile (Vim 5.1 and higher).
-VisVim needs DevStudio 5.0 or higher. It does not work with DevStudio 4.2.
-
-
-Installation
-------------
-
-1) Close running instances of DevStudio.
-
-2) Copy VisVim.dll into a convenient directory like \vim,
-   \vim\lib, or \vim\addin
-
-3) Register the DLL using regsvr32.exe ...  (Skip this on Windows 95/98)
-   Example:
-   > cd \vim\addin
-   > regsvr32 VisVim.dll
-   On NT, you should do this from an administrator account.
-   Before installing a new version of VisVim you should unregister
-   the old one using
-   > regsvr32 -unregister VisVim.dll
-   The batch files register.bat and unregister.bat can do that for you.
-
-3a) If you didn't do this yet: Register the OLE gvim:
-   > gvim -register
-
-4) Start Visual Studio and go to:
-      Tools
-	 Customize...
-	    Add-Ins and Macro Files
-
-5) Click on Browse, and point Visual Studio to your VisVim.dll file.
-
-6) Click the checkbox to indicate that you want to use the Add-In, and
-   Close the Customize dialog box.
-
-7) You should notice the VisVim Toolbar with the Vim Icon.
-   Click the first item of the toolbar to get to the options dialog.
-
-
-Compiling VisVim
-----------------
-
-Two Options:
-
-1) Load the VisVim.mak file as a Workspace in Visual Studio and compile
-
-2) Use the MSVC command line compiler:
-	vcvars32
-	nmake -f VisVim.mak
-
-
-Using VisVim
-------------
-
-The VisVim DLL exposes several functions to the user. These functions are
-accessible using the toolbar or by assigning hotkeys to them (see below).
-The following functions are visible on the toolbar (from left to right):
-
-1. VisVim settings dialog
-   The settings you adjust here will be saved in the registry and
-   will be reloaded on program startup.
-
-2. Enable Vim
-   Enables Vim as Visual Studio editor. Control will be switched to Vim when:
-   - Clicking a file in the file view
-   - Clicking a compiler error message line
-   - Using the 'File-Open' Dialog
-   - Showing the current source line when encountering a debugger breakpoint.
-   - Using File-New
-
-3. Disable Vim
-   The internal Visual Studio editor will be used to edit files.
-
-4. Toggle enable state
-   Toggles the enable state of VisVim. Use this function if you want to have
-   one button only to activate/deactivate Vim.
-
-5. Load current file in Vim
-   Loads the file shown in the internal editor into Vim. Use this function if
-   you want the internal editor to stay active and just edit one file in Vim.
-   This command works always whether Vim is enabled as default editor or not.
-
-You cannot use DevStudio's debugger commands from inside Vim, so you should
-disable Vim before running the debugger.
-
-You can customize the Vim toolbar itself or add the Vim buttons to other
-toolbars.
-To have fast access to the VisVim options dialog I suggest to create keyboard
-shortcuts:
-
-1) Choose
-      Tools
-	 Customize...
-	    Keyboard
-2) Choose Category:AddIns and Commands:VisVim.
-3) Choose 'Main' as editor, enter each hotkey and press the Assign button.
-   I suggest:
-       VisVimDialogCmd    Alt+Shift+V
-       VisVimEnableCmd    Alt+Shift+E
-       VisVimDisableCmd   Alt+Shift+D
-       VisVimToggleCmd    Alt+Shift+T
-       VisVimLoadCmd      Alt+Shift+G
-4) Close the dialog
-
-Now a typical debugging example:
-
-Using "Alt+Shift+d" you turn off Vim before starting the debugger.
-After hitting the breakpoint you single step through your application
-using the internal source code editor and examine variables.
-When you stumble across the line with the null pointer
-assignment, just press "Alt+Shift+g", and correct the error in Vim.
-Save the file, press Alt+Tab to return to DevStudio and press F7 to compile.
-That's it.
-
-
-Troubleshooting
----------------
-
-1. When opening a file in DevStudio the file is opened in the DevStudio
-   editor and immediately vanishes. No Vim shows up.
-   Cause:       Probably you don't have the OLE-enabled Vim or you didn't
-		register it.
-   Explanation: VisVim is notified by DevStudio if an 'open document' event
-		occurs. It then closes the document in the internal editor
-		and tries to start Vim. If Vim isn't properly OLE-registered,
-		this won't work.
-   Workaround:  Download and install the OLE-enable version of Vim and
-		execute "gvim -register".
-
-2. Sometimes when clicking on a file, the file won't be opened by Vim but
-   instead the Visual Studio editor comes up.
-   Cause:       The file was already loaded by the DevStudio editor.
-   Explanation: VisVim works by hooks exposed by Visual Studio.
-		Most of the functionality works from the OpenDocument hook.
-		If a document is already loaded in the Visual Studio editor,
-		no 'open document' event will be generated when clicking the
-		file in the file list.
-   Workaround:  Close the document in Visual Studio first.
-
-3. I can't get VisVim to work. Either the Vim toolbar does not appear at all
-   or weird crashes happen.
-   Cause:       The Visual Studio installation is messed up.
-   Explanation: I can't give you one. Ask M$.
-   Workaround:  Reinstall DevStudio (I know this is brute, but in some cases
-		it helped). There was one case where the service pack 1 had
-		to be installed, too.
-
-4. If an instance of Vim is already running, VisVim will use that instance
-   and not start a new one.
-   Cause:	 This is proper OLE behaviour
-   Explanation:  Some call it a bug, some a feature. That's just the way OLE
-		 works.
-
-5. When being in insert mode in Vim and selecting a file in Visual Studio,
-   the Vim command :e ... is inserted as text instead of being executed.
-   Cause:	 You probably know...
-   Explanation:  The Vim OLE automation interface interprets the VisVim
-		 commands as if they were typed in by the user.
-		 So if you're in insert mode Vim considers it to be text.
-		 I decided against sending an ESC before the command because
-		 it may cause a beep or at least a screen flash when noeb is
-		 set.
-   Workaround:	 Get used to press ESC before switching to DevStudio.
-
-6. I'm tired of VisVim but I can't get rid of it. I can't delete it in
-   Tools-Customize-Add-Ins.
-   Cause:	 You can't delete an item you once added to the add-ins
-		 list box.
-   Explanation:  M$ just didn't put a 'delete' button in the dialog box.
-		 Unfortunately there is no DEL key accelerator as well...
-   Workaround:	 You can't kill it, but you can knock it out:
-		 1. Uncheck the check box in front of 'Vim Developer Studio
-		    Add-in'.
-		 2. Close Visual Studio.
-		 3. Delete VisVim.dll or move it somewhere it can't be found.
-		 4. Run Visual Studio.
-		 5. Tools -> Customize ->Add-ins and Macro-Files.
-		 6. A message appears:
-		    ".../VisVim.dll" "This add-in no longer exists.  It will
-		    no longer be displayed."
-		 That's it!
-
-
-Change history
---------------
-
-1.0a to 1.0
------------
-
-- All settings in the VisVim dialog are remembered between DevStudio sessions
-  by keeping them in the registry (HKEY_CURRENT_USER\Software\Vim\VisVim).
-- Added an option to do a :cd before opening the file (having a file opened
-  by clicking it but finding out to be still in C:\Windows\system when trying to
-  open another file by ":e" can be annoying). Change directory can be
-  done to the source file's directory or its parent directory.
-- Added some explanations to the error message for the CO_E_CLASSSTRING error
-  ("Use OLE Vim and make sure to register...").
-
-1.0 to 1.1a
------------
-
-- The VisVim toolbar button now shows the new Vim icon instead of the old one.
-- Made some changes to the documentation, added the troubleshooting chapter
-  and ToDo list.
-- File-New-* now invokes Vim instead of the builtin editor if enabled.
-
-1.1 to 1.1b
------------
-
-- Extended the VisVim toolbar to have multiple buttons instead of one.
-- Moved the enable/disable commands from the settings dialog to the toolbar.
-- Added the toggle enable/disable command
-- Added the 'load current file' command.
-
-1.1b to 1.2
------------
-
-No new features, just some fine tuning:
-
-- Changed the GUID of the VisVim OLE interface to avoid conflicts with a
-  version of VisEmacs or VisVile on the same computer (Guy Gascoigne)
-- Fixed a bug caused by a bug in the Developer Studio add-in code generator
-  (Clark Morgan)
-- Fixed a memory leak (Clark Morgan)
-- Added an option in the VisVim dialog to prepend ESC before the first command
-  that is sent to Vim. This will avoid inserting the command as text when Vim
-  is still in insert mode.
-- An :update command is sent to Vim before any other command to update the
-  current file if it is modified, or else the following :cd or :e command will fail.
-
-1.2 to 1.3a
------------
-
-- Fixed a bug caused by a missing EnableModeless() function call in VimLoad().
-  This seems to reduce VisVim crashing DevStudio on some systems (it
-  occasionally still seems to happen, but it's more stable now).
-  (Vince Negri)
-- Added support for the new CTRL-\ CTRL-N command of Vim 5.4a.
-  This prevents Vim from beeping when a VisVim command is executed and Vim is
-  not in insert mode.
-
-
-ToDo List
----------
-
-P1 is highest priority, P10 lowest
-
-P9  Switching to DevStudio using ALT-TAB may get annoying. Would be nice to
-    have the option to map ActivateApplication("Visual Studio") in Vim.
-    Vim DLLs would solve that problem.
-
-P8  Execute :tag command in Vim for word under cursor in DevStudio
-
-P7  Controlling the Visual Studio Debugger from inside Vim
-    See message above. Also a 'Debug' highlight group and a
-    command to highlight a certain line would be necessary.
-
-P6  Provide an option to open the current file in VisVim in
-    Visual Studio editor
-    Same as above message. A kind of two way OLE automation would have to be
-    established between VisVim and Vim. Also a 'Debug' highlight group and a
-    command to highlight a certain line would be necessary.
-
-
-Known Problems
---------------
-
-- Occasional memory corruptions in DevStudio may appear on some systems.
-  Reinstalling DevStudio helped in some cases.
-  The cause of these crashes is unclear; there is no way to debug this.
-  Recompiling VisVim with DevStudio SP3 didn't help.
-  I assume it's a problem deep inside the DevStudio add-in OLE interfaces.
-  This will hopefully be fixed with DevStudio 6.
-
-
-Have fun!
-
-Heiko Erhardt
-heiko.erhardt@gmx.net
-
deleted file mode 100644
--- a/src/VisVim/Reg.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-#include "stdafx.h"
-
-// Returns key for HKEY_CURRENT_USER\"Software"\Company\AppName
-// creating it if it doesn't exist
-// responsibility of the caller to call RegCloseKey() on the returned HKEY
-//
-HKEY GetAppKey (char* AppName)
-{
-	HKEY hAppKey = NULL;
-	HKEY hSoftKey = NULL;
-	if (RegOpenKeyEx (HKEY_CURRENT_USER, "Software", 0, KEY_WRITE | KEY_READ,
-		&hSoftKey) == ERROR_SUCCESS)
-	{
-		DWORD Dummy;
-		RegCreateKeyEx (hSoftKey, AppName, 0, REG_NONE,
-			REG_OPTION_NON_VOLATILE, KEY_WRITE | KEY_READ, NULL,
-			&hAppKey, &Dummy);
-	}
-	if (hSoftKey)
-		RegCloseKey (hSoftKey);
-
-	return hAppKey;
-}
-
-// Returns key for
-// HKEY_CURRENT_USER\"Software"\RegistryKey\AppName\Section
-// creating it if it doesn't exist.
-// responsibility of the caller to call RegCloseKey () on the returned HKEY
-//
-HKEY GetSectionKey (HKEY hAppKey, LPCTSTR Section)
-{
-	HKEY hSectionKey = NULL;
-	DWORD Dummy;
-	RegCreateKeyEx (hAppKey, Section, 0, REG_NONE,
-		REG_OPTION_NON_VOLATILE, KEY_WRITE|KEY_READ, NULL,
-		&hSectionKey, &Dummy);
-	return hSectionKey;
-}
-
-int GetRegistryInt (HKEY hSectionKey, LPCTSTR Entry, int Default)
-{
-	DWORD Value;
-	DWORD Type;
-	DWORD Count = sizeof (DWORD);
-	if (RegQueryValueEx (hSectionKey, (LPTSTR) Entry, NULL, &Type,
-			     (LPBYTE) &Value, &Count) == ERROR_SUCCESS)
-		return Value;
-	return Default;
-}
-
-bool WriteRegistryInt (HKEY hSectionKey, char* Entry, int nValue)
-{
-	return RegSetValueEx (hSectionKey, Entry, NULL, REG_DWORD,
-		(LPBYTE) &nValue, sizeof (nValue)) == ERROR_SUCCESS;
-}
-
deleted file mode 100644
--- a/src/VisVim/Register.bat
+++ /dev/null
@@ -1,1 +0,0 @@
-regsvr32.exe visvim.dll
deleted file mode 100644
index e11c66fc65c3d117f2b0e0b0c1f4fcdbbac54fc6..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 22e15f48934dd79f0c3676bbdcb2a82d96a4bfa2..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
--- a/src/VisVim/Resource.h
+++ /dev/null
@@ -1,30 +0,0 @@
-//{{NO_DEPENDENCIES}}
-// Microsoft Developer Studio generated include file.
-// Used by VisVim.rc
-//
-#define IDS_VISVIM_LONGNAME		1
-#define IDS_VISVIM_DESCRIPTION		2
-#define IDS_CMD_DIALOG			3
-#define IDS_CMD_ENABLE			4
-#define IDS_CMD_DISABLE			5
-#define IDS_CMD_TOGGLE			6
-#define IDS_CMD_LOAD			7
-#define IDR_TOOLBAR_MEDIUM		128
-#define IDR_TOOLBAR_LARGE		129
-#define IDD_ADDINMAIN			130
-#define IDC_DEVSTUDIO_EDITOR		1000
-#define IDC_CD_SOURCE_PATH		1001
-#define IDC_CD_SOURCE_PARENT		1002
-#define IDC_CD_NONE			1003
-#define IDC_NEW_TABS			1004
-
-// Next default values for new objects
-//
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE	131
-#define _APS_NEXT_COMMAND_VALUE		32771
-#define _APS_NEXT_CONTROL_VALUE		1004
-#define _APS_NEXT_SYMED_VALUE		101
-#endif
-#endif
deleted file mode 100644
--- a/src/VisVim/StdAfx.cpp
+++ /dev/null
@@ -1,6 +0,0 @@
-// Stdafx.cpp : source file that includes just the standard includes
-//	VisEmacs.pch will be the pre-compiled header
-//	stdafx.obj will contain the pre-compiled type information
-
-#include "stdafx.h"
-#include "atlimpl.cpp"
deleted file mode 100644
--- a/src/VisVim/StdAfx.h
+++ /dev/null
@@ -1,73 +0,0 @@
-// Stdafx.h : include file for standard system include files,
-//  or project specific include files that are used frequently, but
-//      are changed infrequently
-//
-
-#if !defined(AFX_STDAFX_H__AC72670E_2977_11D1_B2F3_006008040780__INCLUDED_)
-#define AFX_STDAFX_H__AC72670E_2977_11D1_B2F3_006008040780__INCLUDED_
-
-#define VC_EXTRALEAN		// Exclude rarely-used stuff from Windows headers
-
-#include <afxwin.h>	    // MFC core and standard components
-#include <afxdisp.h>
-
-#include <atlbase.h>
-//You may derive a class from CComModule and use it if you want to override
-//something, but do not change the name of _Module
-extern CComModule _Module;
-
-#include <atlcom.h>
-
-// Developer Studio Object Model
-#include <ObjModel\addauto.h>
-#include <ObjModel\appdefs.h>
-#include <ObjModel\appauto.h>
-#include <ObjModel\blddefs.h>
-#include <ObjModel\bldauto.h>
-#include <ObjModel\textdefs.h>
-#include <ObjModel\textauto.h>
-#include <ObjModel\dbgdefs.h>
-#include <ObjModel\dbgauto.h>
-
-/////////////////////////////////////////////////////////////////////////////
-// Debugging support
-
-// Use VERIFY_OK around all calls to the Developer Studio objects which
-//  you expect to return S_OK.
-// In DEBUG builds of your add-in, VERIFY_OK displays an ASSERT dialog box
-//  if the expression returns an HRESULT other than S_OK.  If the HRESULT
-//  is a success code, the ASSERT box will display that HRESULT.  If it
-//  is a failure code, the ASSERT box will display that HRESULT plus the
-//  error description string provided by the object which raised the error.
-// In RETAIL builds of your add-in, VERIFY_OK just evaluates the expression
-//  and ignores the returned HRESULT.
-
-#ifdef _DEBUG
-
-void GetLastErrorDescription (CComBSTR & bstr);	// Defined in VisVim.cpp
-#define VERIFY_OK(f) \
-	{ \
-		HRESULT hr = (f); \
-		if (hr != S_OK) \
-		{ \
-			if (FAILED(hr)) \
-			{ \
-				CComBSTR bstr; \
-				GetLastErrorDescription(bstr); \
-				_RPTF2(_CRT_ASSERT, "Object call returned %lx\n\n%S", hr, (BSTR) bstr); \
-			} \
-			else \
-				_RPTF1(_CRT_ASSERT, "Object call returned %lx", hr); \
-		} \
-	}
-
-#else //_DEBUG
-
-#define VERIFY_OK(f) (f);
-
-#endif //_DEBUG
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
-
-#endif // !defined(AFX_STDAFX_H__AC72670E_2977_11D1_B2F3_006008040780__INCLUDED)
deleted file mode 100644
--- a/src/VisVim/UnRegist.bat
+++ /dev/null
@@ -1,1 +0,0 @@
-regsvr32.exe -unregister visvim.dll
deleted file mode 100644
--- a/src/VisVim/VisVim.cpp
+++ /dev/null
@@ -1,152 +0,0 @@
-// VisVim.cpp : Defines the initialization routines for the DLL.
-//
-
-#include "stdafx.h"
-#include <initguid.h>
-#include "VisVim.h"
-#include "DSAddIn.h"
-#include "Commands.h"
-
-#ifdef _DEBUG
-#define new DEBUG_NEW
-#undef THIS_FILE
-static char THIS_FILE[] = __FILE__;
-
-#endif
-
-CComModule _Module;
-
-BEGIN_OBJECT_MAP (ObjectMap)
-OBJECT_ENTRY (CLSID_DSAddIn, CDSAddIn)
-END_OBJECT_MAP ()
-
-class CVisVimApp : public CWinApp
-{
-    public:
-	CVisVimApp ();
-
-	//{{AFX_VIRTUAL(CVisVimApp)
-    public:
-	virtual BOOL InitInstance ();
-	virtual int ExitInstance ();
-	//}}AFX_VIRTUAL
-
-	//{{AFX_MSG(CVisVimApp)
-	//}}AFX_MSG
-	DECLARE_MESSAGE_MAP ()
-};
-
-BEGIN_MESSAGE_MAP (CVisVimApp, CWinApp)
-//{{AFX_MSG_MAP(CVisVimApp)
-//}}AFX_MSG_MAP
-END_MESSAGE_MAP ()
-
-// The one and only CVisVimApp object
-CVisVimApp theApp;
-
-CVisVimApp::CVisVimApp ()
-{
-}
-
-BOOL CVisVimApp::InitInstance ()
-{
-	_Module.Init (ObjectMap, m_hInstance);
-	return CWinApp::InitInstance ();
-}
-
-int CVisVimApp::ExitInstance ()
-{
-	_Module.Term ();
-	return CWinApp::ExitInstance ();
-}
-
-// Special entry points required for inproc servers
-//
-
-STDAPI DllGetClassObject (REFCLSID rclsid, REFIID riid, LPVOID * ppv)
-{
-	AFX_MANAGE_STATE (AfxGetStaticModuleState ());
-	return _Module.GetClassObject (rclsid, riid, ppv);
-}
-
-STDAPI DllCanUnloadNow (void)
-{
-	AFX_MANAGE_STATE (AfxGetStaticModuleState ());
-	return (AfxDllCanUnloadNow () == S_OK && _Module.GetLockCount () == 0)
-		? S_OK : S_FALSE;
-}
-
-// By exporting DllRegisterServer, you can use regsvr32.exe
-//
-STDAPI DllRegisterServer (void)
-{
-	AFX_MANAGE_STATE (AfxGetStaticModuleState ());
-	HRESULT hRes;
-
-	// Registers object, typelib and all interfaces in typelib
-	hRes = _Module.RegisterServer (TRUE);
-	if (FAILED (hRes))
-		// Hack: When this fails we might be a normal user, while the
-		// admin already registered the module.  Returning S_OK then
-		// makes it work.  When the module was never registered it
-		// will soon fail in another way.
-		// old code: return hRes;
-		return S_OK;
-
-	_ATL_OBJMAP_ENTRY *pEntry = _Module.m_pObjMap;
-	CRegKey key;
-	LONG lRes = key.Open (HKEY_CLASSES_ROOT, _T ("CLSID"));
-
-	if (lRes == ERROR_SUCCESS)
-	{
-		USES_CONVERSION;
-		LPOLESTR lpOleStr;
-
-		StringFromCLSID (*pEntry->pclsid, &lpOleStr);
-		LPTSTR lpsz = OLE2T (lpOleStr);
-
-		lRes = key.Open (key, lpsz);
-		if (lRes == ERROR_SUCCESS)
-		{
-			CString strDescription;
-
-			strDescription.LoadString (IDS_VISVIM_DESCRIPTION);
-			key.SetKeyValue (_T ("Description"), strDescription);
-		}
-		CoTaskMemFree (lpOleStr);
-	}
-
-	if (lRes != ERROR_SUCCESS)
-		hRes = HRESULT_FROM_WIN32 (lRes);
-
-	return hRes;
-
-}
-
-// DllUnregisterServer - Removes entries from the system registry
-//
-STDAPI DllUnregisterServer (void)
-{
-	AFX_MANAGE_STATE (AfxGetStaticModuleState ());
-
-	HRESULT hRes = S_OK;
-	_Module.UnregisterServer ();
-	return hRes;
-}
-
-
-// Debugging support
-
-// GetLastErrorDescription is used in the implementation of the VERIFY_OK
-//  macro, defined in stdafx.h.
-
-#ifdef _DEBUG
-
-void GetLastErrorDescription (CComBSTR & bstr)
-{
-	CComPtr < IErrorInfo > pErrorInfo;
-	if (GetErrorInfo (0, &pErrorInfo) == S_OK)
-		pErrorInfo->GetDescription (&bstr);
-}
-
-#endif //_DEBUG
deleted file mode 100644
--- a/src/VisVim/VisVim.def
+++ /dev/null
@@ -1,11 +0,0 @@
-; VisVim.def : Declares the module parameters for the DLL.
-
-LIBRARY      "VISVIM"
-DESCRIPTION  'VISVIM Windows Dynamic Link Library'
-
-EXPORTS
-    ; Explicit exports can go here
-	DllCanUnloadNow PRIVATE
-	DllGetClassObject PRIVATE
-	DllRegisterServer PRIVATE
-	DllUnregisterServer PRIVATE
deleted file mode 100644
index 017b41780f30cb192bf9e932518a93dd90371380..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
--- a/src/VisVim/VisVim.h
+++ /dev/null
@@ -1,33 +0,0 @@
-// VisVIM.h : main header file for the VisVim DLL
-//
-
-#if !defined(AFX_VISVIM_H__AC72670B_2977_11D1_B2F3_006008040780__INCLUDED_)
-#define AFX_VISVIM_H__AC72670B_2977_11D1_B2F3_006008040780__INCLUDED_
-
-#ifndef __AFXWIN_H__
-#error include 'stdafx.h' before including this file for PCH
-#endif
-
-#include "resource.h"		// Main symbols
-
-#include <ObjModel\addguid.h>
-#include <ObjModel\appguid.h>
-#include <ObjModel\bldguid.h>
-#include <ObjModel\textguid.h>
-#include <ObjModel\dbgguid.h>
-
-//
-// Prototypes
-//
-
-HKEY GetAppKey (char* AppName);
-HKEY GetSectionKey (HKEY hAppKey, LPCTSTR Section);
-int GetRegistryInt (HKEY hSectionKey, LPCTSTR Entry, int Default);
-bool WriteRegistryInt (HKEY hSectionKey, char* Entry, int nValue);
-void ReportLastError (HRESULT Err);
-void ReportInternalError (char* Fct);
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
-
-#endif // !defined(AFX_VISVIM_H__AC72670B_2977_11D1_B2F3_006008040780__INCLUDED)
deleted file mode 100644
--- a/src/VisVim/VisVim.mak
+++ /dev/null
@@ -1,205 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Format Version 4.00
-# ** DO NOT EDIT **
-#
-# When       Who       What
-# 1999-08-01 Anon      Original VisVim.dsp
-# 2001-08-08 W.Briscoe Back-ported to a condensed VC4 Makefile
-#		       Reduced inter-dependency of Release and Debug builds.
-#
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-!IF "$(CFG)" == ""
-CFG=VisVim - Win32 Release
-!MESSAGE No configuration specified.  Defaulting to VisVim - Win32 Release.
-!ENDIF 
-
-!IF "$(CFG)" != "VisVim - Win32 Release" && "$(CFG)" != "VisVim - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE on this makefile
-!MESSAGE by defining the macro CFG on the command line.  For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "VisVim.mak" CFG="VisVim - Win32 Debug"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "VisVim - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "VisVim - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE 
-!ERROR An invalid configuration is specified.
-!ENDIF 
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-DEL_TREE = rmdir /s /q
-!ELSE 
-NULL=nul
-DEL_TREE = deltree /y
-!ENDIF 
-# Begin Project
-# PROP Target_Last_Scanned "VisVim - Win32 Release"
-# PROP Use_MFC 2
-CPP=cl.exe
-RSC=rc.exe
-LINK32=link.exe
-
-!IF  "$(CFG)" == "VisVim - Win32 Release"
-
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ".\Release"
-# PROP Intermediate_Dir ".\Release"
-# PROP Target_Dir ""
-OUTDIR=.\Release
-INTDIR=.\Release
-CPP_OBJS=.\Release/
-
-# ADD CPP /MD /O2 /D "NDEBUG" /I.\Release
-CPP_PROJ= /MD /O2 /D "NDEBUG" /I.\Release
-# ADD RSC /d "NDEBUG
-RSC_PROJ= /d "NDEBUG"
-# ADD LINK32 /pdb:none
-LINK32_FLAGS=/pdb:none
-
-!ELSEIF  "$(CFG)" == "VisVim - Win32 Debug"
-
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ".\Debug"
-# PROP Intermediate_Dir ".\Debug"
-# PROP Target_Dir ""
-OUTDIR=.\Debug
-INTDIR=.\Debug
-CPP_OBJS=.\Debug/
-
-# ADD CPP /MDd /Gm /Zi /Od /D "_DEBUG" /I.\Debug
-CPP_PROJ= /MDd /Gm /Zi /Od /D "_DEBUG" /I.\Debug /Fd"$(INTDIR)/"
-MTL_PROJ= /D "_DEBUG"
-# ADD RSC /d "_DEBUG
-RSC_PROJ= /d "_DEBUG"
-# ADD LINK32 /debug /pdbtype:sept /pdb:".\Debug/VisVim.pdb"
-LINK32_FLAGS=/debug /pdbtype:sept /pdb:"$(OUTDIR)/VisVim.pdb"
-
-!ENDIF 
-
-# ADD CPP            /nologo /W3 /GX /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_USRDLL" /c
-CPP_PROJ=$(CPP_PROJ) /nologo /W3 /GX /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_USRDLL" /c /Fo"$(INTDIR)/"
-# ADD RSC            /l 0x409 /d "_AFXDLL"
-RSC_PROJ=$(RSC_PROJ) /l 0x409 /d "_AFXDLL" /fo"$(INTDIR)/VisVim.res"
-# ADD LINK32                 /nologo /subsystem:windows /dll /machine:I386 /incremental:no
-LINK32_FLAGS=$(LINK32_FLAGS) /nologo /subsystem:windows /dll /machine:I386\
- /incremental:no /def:".\VisVim.def"\
- /out:"$(OUTDIR)/VisVim.dll" /implib:"$(OUTDIR)/VisVim.lib"
-
-ALL : "$(OUTDIR)\VisVim.dll"
-
-CLEAN : 
-	-@if exist "$(INTDIR)/$(NULL)" $(DEL_TREE) "$(INTDIR)"
-
-"$(OUTDIR)" :
-    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-LINK32_OBJS= \
-	"$(INTDIR)/VisVim.res" \
-	"$(INTDIR)/VisVim.obj" \
-	"$(INTDIR)/StdAfx.obj" \
-	"$(INTDIR)/Reg.obj" \
-	"$(INTDIR)/DSAddIn.obj" \
-	"$(INTDIR)/OleAut.obj" \
-	"$(INTDIR)/Commands.obj"
-
-"$(OUTDIR)\VisVim.dll" : "$(OUTDIR)" ".\VisVim.def" $(LINK32_OBJS)
-    $(LINK32) $(LINK32_FLAGS) $(LINK32_OBJS)
-
-{.}.c{$(CPP_OBJS)}.obj:
-   $(CPP) $(CPP_PROJ) $<  
-
-{.}.cpp{$(CPP_OBJS)}.obj:
-   $(CPP) $(CPP_PROJ) $<  
-
-# Begin Target
-
-# Name "VisVim - Win32 Release"
-# Name "VisVim - Win32 Debug"
-
-# Begin Source File
-
-SOURCE=.\VisVim.cpp
-
-"$(INTDIR)\VisVim.obj" : $(SOURCE) "$(INTDIR)"
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\VisVim.def
-# End Source File
-# Begin Source File
-
-SOURCE=.\VisVim.odl
-
-!IF  "$(CFG)" == "VisVim - Win32 Release"
-
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build
-
-"$(INTDIR)\VisVim.tlb" : $(SOURCE) "$(INTDIR)"
-	midl /nologo /mktyplib203 /win32 /tlb VisVim.tlb /h VSVTypes.h .\VisVim.odl /out .\Release /D "NDEBUG"
-
-# End Custom Build
-
-!ELSEIF  "$(CFG)" == "VisVim - Win32 Debug"
-
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build
-
-"$(INTDIR)\VisVim.tlb" : $(SOURCE) "$(INTDIR)"
-	midl /nologo /mktyplib203 /win32 /tlb VisVim.tlb /h VSVTypes.h .\VisVim.odl /out .\Debug /D "_DEBUG"
-
-# End Custom Build
-
-!ENDIF 
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\StdAfx.cpp
-
-"$(INTDIR)\StdAfx.obj" : $(SOURCE) "$(INTDIR)"
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\VisVim.rc
-
-"$(INTDIR)\VisVim.res" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\VisVim.tlb"
- $(RSC) $(RSC_PROJ) /i "$(INTDIR)" $(SOURCE)
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\Reg.cpp
-
-"$(INTDIR)\Reg.obj" : $(SOURCE) "$(INTDIR)"
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\DSAddIn.cpp
-
-"$(INTDIR)\DSAddIn.obj" : $(SOURCE) "$(INTDIR)"
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\OleAut.cpp
-
-"$(INTDIR)\OleAut.obj" : $(SOURCE) "$(INTDIR)"
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\Commands.cpp
-
-"$(INTDIR)\Commands.obj" : $(SOURCE) "$(INTDIR)"
-
-# End Source File
-# End Target
-# End Project
deleted file mode 100644
--- a/src/VisVim/VisVim.odl
+++ /dev/null
@@ -1,61 +0,0 @@
-// VisVim.odl : type library source for VisVim.dll
-
-// This file will be processed by the Make Type Library (mktyplib) tool to
-// produce the type library (VisVim.tlb).
-
-[	uuid(AC726707-2977-11D1-B2F3-006008040780), version(1.0),
-	helpstring ("VisVim Developer Studio Add-in") ]
-library VisVim
-{
-	importlib("stdole32.tlb");
-	importlib("devshl.dll");
-	importlib("ide\devdbg.pkg");
-
-
-	//  Dual interface for CCommands
-	//
-	//  All commands that your add-in adds to DevStudio
-	//   must appear in this interface.  You may use the
-	//   ClassView to add methods to this interface, which
-	//   will cause stub implementations of those methods to
-	//   appear in your CCommands class.
-
-	[	uuid(AC726703-2977-11D1-B2F3-006008040780),
-		oleautomation,
-		dual
-	]
-
-	interface ICommands : IDispatch
-	{
-		// methods
-		[id(1)]
-		HRESULT VisVimDialog();
-		HRESULT VisVimEnable();
-		HRESULT VisVimDisable();
-		HRESULT VisVimToggle();
-		HRESULT VisVimLoad();
-	};
-
-	//  Class information for CCommands
-
-	[ uuid(AC726704-2977-11D1-B2F3-006008040780) ]
-	coclass Commands
-	{
-		[default] interface ICommands;
-	};
-
-	[ hidden, uuid(AC726705-2977-11D1-B2F3-006008040780) ]
-	coclass ApplicationEvents
-	{
-		[default] interface IApplicationEvents;
-	}
-
-	[ hidden, uuid(AC726706-2977-11D1-B2F3-006008040780) ]
-	coclass DebuggerEvents
-	{
-		[default] interface IDebuggerEvents;
-	}
-
-	//{{AFX_APPEND_ODL}}
-	//}}AFX_APPEND_ODL}}
-};
deleted file mode 100644
--- a/src/VisVim/VisVim.rc
+++ /dev/null
@@ -1,202 +0,0 @@
-//Microsoft Developer Studio generated resource script.
-//
-#include "resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include "afxres.h"
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// Englisch (USA) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-#pragma code_page(1252)
-#endif //_WIN32
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE DISCARDABLE 
-BEGIN
-    "resource.h\0"
-END
-
-2 TEXTINCLUDE DISCARDABLE 
-BEGIN
-    "#include ""afxres.h""\r\n"
-    "\0"
-END
-
-3 TEXTINCLUDE DISCARDABLE 
-BEGIN
-    "#define _AFX_NO_SPLITTER_RESOURCES\r\n"
-    "#define _AFX_NO_OLE_RESOURCES\r\n"
-    "#define _AFX_NO_TRACKER_RESOURCES\r\n"
-    "#define _AFX_NO_PROPERTY_RESOURCES\r\n"
-    "\r\n"
-    "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
-    "#ifdef _WIN32\r\n"
-    "LANGUAGE 9, 1\r\n"
-    "#pragma code_page(1252)\r\n"
-    "#endif\r\n"
-    "#include ""afxres.rc""         // Standard components\r\n"
-    "#endif\r\n"
-    "1 TYPELIB ""VisVim.tlb""\r\n"
-    "\0"
-END
-
-#endif    // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Bitmap
-//
-
-IDR_TOOLBAR_MEDIUM      BITMAP  MOVEABLE PURE   "res\\ToolbarM.bmp"
-IDR_TOOLBAR_LARGE       BITMAP  MOVEABLE PURE   "res\\ToolbarL.bmp"
-
-#ifndef _MAC
-/////////////////////////////////////////////////////////////////////////////
-//
-// Version
-//
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,1,0,1
- PRODUCTVERSION 1,1,0,1
- FILEFLAGSMASK 0x3fL
-#ifdef _DEBUG
- FILEFLAGS 0x1L
-#else
- FILEFLAGS 0x0L
-#endif
- FILEOS 0x4L
- FILETYPE 0x2L
- FILESUBTYPE 0x0L
-BEGIN
-    BLOCK "StringFileInfo"
-    BEGIN
-        BLOCK "040904b0"
-        BEGIN
-            VALUE "CompanyName", "\0"
-            VALUE "FileDescription", "VisVim DLL\0"
-            VALUE "FileVersion", "1, 1, 0, 1\0"
-            VALUE "InternalName", "VisVim\0"
-            VALUE "LegalCopyright", "Copyright (C) 1998\0"
-            VALUE "OriginalFilename", "VisVim.DLL\0"
-            VALUE "ProductName", "VisVim Dynamic Link Library\0"
-            VALUE "ProductVersion", "1, 1, 0, 1\0"
-        END
-    END
-    BLOCK "VarFileInfo"
-    BEGIN
-        VALUE "Translation", 0x409, 1200
-    END
-END
-
-#endif    // !_MAC
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_ADDINMAIN DIALOG DISCARDABLE  0, 0, 178, 124
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Vim Add-In 1.4"
-FONT 8, "MS Sans Serif"
-BEGIN
-    CONTROL         "&Open file in DevStudio editor simultaneously",
-                    IDC_DEVSTUDIO_EDITOR,"Button",BS_AUTOCHECKBOX | WS_GROUP | 
-                    WS_TABSTOP,7,7,153,10
-    CONTROL         "Open files in new tabs",
-                    IDC_NEW_TABS,"Button",BS_AUTOCHECKBOX | WS_GROUP | 
-                    WS_TABSTOP,7,21,153,10
-    GROUPBOX        "Current directory",IDC_STATIC,7,35,164,58,WS_GROUP
-    CONTROL         "Set to &source file path",IDC_CD_SOURCE_PATH,"Button",
-                    BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,17,49,85,10
-    CONTROL         "Set to &parent directory of source file path",
-                    IDC_CD_SOURCE_PARENT,"Button",BS_AUTORADIOBUTTON,17,63,
-                    143,10
-    CONTROL         "Do &not change",IDC_CD_NONE,"Button",BS_AUTORADIOBUTTON,
-                    17,78,63,10
-    DEFPUSHBUTTON   "&Ok",IDOK,7,102,74,14,WS_GROUP
-    PUSHBUTTON      "&Cancel",IDCANCEL,97,102,74,14,WS_GROUP
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// DESIGNINFO
-//
-
-#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO DISCARDABLE 
-BEGIN
-    IDD_ADDINMAIN, DIALOG
-    BEGIN
-        LEFTMARGIN, 7
-        RIGHTMARGIN, 171
-        TOPMARGIN, 7
-        BOTTOMMARGIN, 117
-    END
-END
-#endif    // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// String Table
-//
-
-STRINGTABLE DISCARDABLE 
-BEGIN
-    IDS_VISVIM_LONGNAME     "Vim Developer Studio Add-In"
-    IDS_VISVIM_DESCRIPTION  "Allows integration of Vim as the text editor in Developer Studio."
-    IDS_CMD_DIALOG          "\nVim Add-In Dialog\nDisplays the options dialog box of the Vim Add-In\nVim Add-In Dialog"
-    IDS_CMD_ENABLE          "\nEnable Vim Add-In\nEnables Vim as Visual Studio editor\nEnable Vim Add-In"
-    IDS_CMD_DISABLE         "\nDisable Vim Add-In\nDisables Vim as Visual Studio editor\nDisable Vim Add-In"
-    IDS_CMD_TOGGLE          "\nToggle Vim Add-In State\nToggles the enable state of the Vim Add-In\nToggle Vim Add-In State"
-    IDS_CMD_LOAD            "\nVim Add-In Load Document\nLoads the current document in Vim\nVim Add-In Load Document"
-END
-
-#endif    // Englisch (USA) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-#define _AFX_NO_SPLITTER_RESOURCES
-#define _AFX_NO_OLE_RESOURCES
-#define _AFX_NO_TRACKER_RESOURCES
-#define _AFX_NO_PROPERTY_RESOURCES
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE 9, 1
-#pragma code_page(1252)
-#endif
-#include "afxres.rc"         // Standard components
-#endif
-1 TYPELIB "VisVim.tlb"
-
-/////////////////////////////////////////////////////////////////////////////
-#endif    // not APSTUDIO_INVOKED
-
deleted file mode 100644
--- a/src/VisVim/VsReadMe.txt
+++ /dev/null
@@ -1,91 +0,0 @@
-========================================================================
-       DEVELOPER STUDIO ADD-IN : VisVim
-========================================================================
-
-
-The Add-in Wizard has created this VisVim DLL for you.  This DLL not only
-demonstrates the basics of creating a Developer Studio add-in, but it is also
-a starting point for writing your own add-in.
-
-An add-in mainly does two things.
-	(1) It adds commands to Developer Studio, which can then be tied
-	    to keystrokes or toolbar buttons by the user or programmatically
-		by the add-in.
-	(2) It responds to events fired by Developer Studio.
-In both cases, the add-in code has access to the full Developer Studio
-Automation Object Model, and may manipulate those objects to affect the
-behavior of Developer Studio.
-
-This file contains a summary of what you will find in each of the files that
-make up your VisVim DLL.
-
-
-VisVim.h
-    This is the main header file for the DLL.  It declares the
-    CVisVimApp class.
-
-VisVim.cpp
-    This is the main DLL source file.  It contains the class CVisVimApp.
-    It also contains the OLE entry points required of inproc servers.
-
-VisVim.odl
-    This file contains the Object Description Language source code for the
-    type library of your DLL.
-
-VisVim.rc
-    This is a listing of all of the Microsoft Windows resources that the
-    program uses.  It includes the sample toolbar bitmap that is stored
-    in the RES subdirectory.  This file can be directly edited in Microsoft
-    Developer Studio.
-
-res\VisVim.rc2
-    This file contains resources that are not edited by Microsoft
-    Developer Studio.  You should place all resources not
-    editable by the resource editor in this file.
-
-VisVim.def
-    This file contains information about the DLL that must be
-    provided to run with Microsoft Windows.  It defines parameters
-    such as the name and description of the DLL.  It also exports
-	functions from the DLL.
-
-VisVim.clw
-    This file contains information used by ClassWizard to edit existing
-    classes or add new classes.  ClassWizard also uses this file to store
-    information needed to create and edit message maps and dialog data
-    maps and to create prototype member functions.
-
-/////////////////////////////////////////////////////////////////////////////
-Add-in-specific files:
-
-DSAddIn.cpp, DSAddIn.h
-    These files contain the CDSAddIn class, which implements the
-    IDSAddIn interface.  This interface contains handlers
-    for connecting and disconnecting the add-in.
-
-Commands.cpp, Commands.h
-    These files contain the CCommands class, which implements your
-    command dispatch interface.  This interface contains one method
-    for each command you add to Developer Studio.
-    These files also contain stub implementations of handlers for all events
-    fired by the Developer Studio Application object.
-
-OleAut.cpp
-    These files contain a general OLE automation class used to communicate
-    with vim.
-
-Reg.cpp
-    These files contain functions to access the registry.
-
-
-/////////////////////////////////////////////////////////////////////////////
-Other standard files:
-
-StdAfx.h, StdAfx.cpp
-    These files are used to build a precompiled header (PCH) file
-    named VisVim.pch and a precompiled types file named StdAfx.obj.
-
-Resource.h
-    This is the standard header file, which defines new resource IDs.
-    Microsoft Developer Studio reads and updates this file.
-
--- a/src/version.c
+++ b/src/version.c
@@ -700,6 +700,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    698,
+/**/
     697,
 /**/
     696,
--- a/uninstall.txt
+++ b/uninstall.txt
@@ -5,7 +5,7 @@ There are three ways to remove Vim:
 1. With the GUI uninstaller.
    This is only available when Vim was installed with the self-installing
    executable.  This has a minimal number of questions.  It can delete
-   everything that was installed.  This also unregisters the VisVim.dll.
+   everything that was installed.
 
 2. With uninstall.exe.
    This removes most installed items, but does not delete the files you