DOCUMENT:Q185223 11-JUN-2002 [vbwin] TITLE :HOW TO: Manually Uninstall Visual Basic CE Programs PRODUCT :Microsoft Visual Basic for Windows PROD/VER::3.0 OPER/SYS: KEYWORDS:kbToolkit kbVBp500 kbVBp600 kbOSWinCE100 kbGrpDSVB kbAudDeveloper kbHOWTOmaster ====================================================================== ------------------------------------------------------------------------------- The information in this article applies to: - Microsoft eMbedded Visual Basic, version 3.0 - Microsoft Windows CE Toolkit for Visual Basic 6.0 ------------------------------------------------------------------------------- IN THIS TASK ------------ - SUMMARY - Cleaning Up Application Manager Files - Cleaning Up Registry Entries - Deleting the Visual Basic Run Time - REFERENCES SUMMARY ======= This article describes how to manually remove a program created by the Windows CE Toolkit for Visual Basic (VBCE) or eMbedded Visual Basic (eVB) from Windows CE device. To uninstall a VBCE/eVB program, you must remove the files generated by the Application Manager, remove any controls registered by the program, and delete whatever files and folders were added during the installation process, while avoiding the removal of components or files that are shared by other applications. A VBCE/eVB program consists of the following parts: - The .vb file for the application. - The VBCE/eVB run-time files: - pvbform2.dll - pvbhost2.dll - pvbload.exe - vbscript.dll - vbsen.dll (for Windows CE 2.11-based platforms only) - Any .dll, data or other associated files added for the application. VBCE programs are usually installed and uninstalled by the CE Services Application Manager. If, for some reason, the Application Manager fails to completely install or remove the program, you may manually remove it by removing all of its files and registry settings. Cleaning Up Application Manager Files ------------------------------------- The Application Manager does the following when installing a program: - Copies the CAB file to Windows\AppMgr\Install. - Decompresses and copies the files. - Creates folders as needed. - Puts DAT and DLL files in Windows\AppMgr. - Puts files in the application folder. - Puts files in the Windows folder (no other folders usually needed). - Registers controls. - Creates an Unload file. - Writes uninstall registry entries. - Deletes the CAB file from Windows\AppMgr\Install Using Pocket Word (PWD), you may look at the .unload or .dat files for clues on what was added during the install process. In most cases, the Application Install Wizard instructs the Application Manager to use file names of the form "CompanyName AppName." NOTE: The .dat and .unload files are not in Pocket Word or pure text format. Do not modify the files if they are to be used later. 1. If it exists, delete the CAB file for the application. If the Application Manager runs of out room while copying the CAB file, the device may drop the connection to the desktop and exhibit other strange behavior because it is out of working room. To recover, allocate some application memory for storage using the Memory tab under the System icon in the Control Panel (reset the device if needed), and delete the CAB file from the \Windows\AppMgr\Install folder. 2. If they exist, delete the .dll and .dat file for the application from the \Windows\AppMgr folder. 3. Delete the program's .lnk file from the \Windows\Programs folder. This will remove the program from the Start menu. On PocketPC devices, the shortcut file will be located in the \Windows\Start Menu\Programs folder. 4. Delete the application's program folder. Application files are usually stored in a folder called \Program Files\[appname] where [appname] is the name of the application (as specified in Step 7 of the Application Install Wizard). 5. Delete the other files (except .dll files) that were installed in the Windows folder. NOTE: If you are unsure whether another application requires the file, it is safer not to delete it. Cleaning Up Registry Entries ---------------------------- Because many Windows CE devices do not ship with a registry editor, you must use a third-party program, the Remote Registry Editor shipped with VBCE/eVB, or the Control Manager to manually change registry settings. 1. Unregister installed .dll files that are not shared by other applications. If you are unsure whether a .dll is shared, it is safer to leave it. To unregister a control run the following: RegSvr.Exe /u \windows\[controlname] Where [controlname] is the name of a control such as MSCEFile.dll. You can use the Windows CE Control Manager to automatically run RegSvr /u on the device in an attempt to remove controls. 2. Due to a bug in RegSvr.exe, controls may not be completely unregistered and may still show as installed in the Control Manager. WARNING: If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk. The registry holds control information in three places: ProgId, CLSID, and TypeLib. NOTE: Deleting the CLSID information (in HKey_Classes_Root\CLSID\) is required to ensure the control is unregistered. Removing the ProgId and TypeLib information is not required. Partially uninstalled controls are safe to leave on your system, but will not function properly. For example, identify the registry entries for the MSCEFile.dll. The File control actually has two classes: File and File System. This example focuses only on the File class. a. ProgIds are listed in HKEY_CLASSES_ROOT\: HKEY_CLASSES_ROOT\FILECTL.FileSystem HKEY_CLASSES_ROOT\FILECTL.FileSystem.1 (In the Clsid subfolder will be the matching Clsid: {3F0C2794-5C3A-11D1-A717-00AA0044064C} ) HKEY_CLASSES_ROOT\FILECTL.File HKEY_CLASSES_ROOT\FILECTL.File.1 (Clsid={25C953B5-5464-11D1-A714-00AA0044064C}) b. CLSID information is listed in HKEY_CLASSES_ROOT\CLSID\. Use the CLSID found in step A above to locate the matching entry, such as the following: HKEY_CLASSES_ROOT\CLSID\{25C953B5-5464-11D1-A714-00AA0044064C} Under this key will be numerous entries that provide additional information about the server, such as: Version, TypeLib, InProcServer32, and ProgId (useful as a cross reference). WARNING: DO NOT delete the parent key HKey_Classes_Root\CLSID! Note the TypeLib value from HKEY_CLASSES_ROOT\CLSID\\TypeLib. For the File class is should be: {25C953A7-5464-11D1-A714-00AA0044064C}. c. TypeLib information is listed in HKEY_CLASSES_ROOT\TypeLib\. Use the TypeLib value obtained in step B above to locate the matching TypeLib key. HKEY_CLASSES_ROOT\TypeLib\{25C953A7-5464-11D1-A714-00AA0044064C} d. Now that you have found the entries for the class, you can delete the appropriate CLSID subkey (not the entire KEY_CLASSES_ROOT\CLSID). Deleting the matching TypeLib and ProgId entries are optional. 3. You may delete the .dll file that you just unregistered. To re-register a control that you accidentally unregister, run the following: RegSvr.Exe \windows\[controlname] This is not possible if you delete the control. 4. Also in the registry are entries for the Start menu: HKEY_Local_Machine\Software\Apps\application name This key can be deleted if desired. Deleting the Visual Basic Run Time ---------------------------------- If no other VBCE/eVB programs are installed on the Windows CE device, it might be possible to remove the following files: - pvbdecl.dll - pvbform2.dll - pvbhost2.dll - pvbload.exe - vbscript.dll - vbsen.dll On some devices, these files may be in ROM, making it impossible to delete them. WARNING: These files are required to run Visual Basic programs on Windows CE. If they are deleted, you cannot run other programs created by the Toolkit until they are restored. Please use caution when removing them. Follow the steps in this article to remove a VBCE/eVB program from the Windows CE device. The steps do not remove the installation program from the desktop. NOTE: Development machines may still contain other files used by the remote tools and the debugger. REFERENCES ========== Books Online for Microsoft Windows CE Toolkit for Visual Basic 6.0 eMbedded Visual Basic 3.0 Online Help http://msdn.microsoft.com/library/en-us/wcesetup/htm/insintro.asp?frame=true Additional query words: uninstall wince wce vbce vbce6 evb inf cab ====================================================================== Keywords : kbToolkit kbVBp500 kbVBp600 kbOSWinCE100 kbGrpDSVB kbAudDeveloper kbHOWTOmaster Technology : kbVBSearch kbAudDeveloper kbZNotKeyword2 kbVBeMbSearch kbWinCETKVBSearch kbWinCESearch kbVBeMb300 Version : :3.0 Issue type : kbhowto ============================================================================= THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY. Copyright Microsoft Corporation 2002.