dllmain.cpp revision a8e63ead10cffc72a7a6f4318d5e396926c3c229
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * VBoxC - COM DLL exports and DLL init/term.
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * Copyright (C) 2006-2013 Oracle Corporation
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * available from http://www.virtualbox.org. This file is free software;
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * you can redistribute it and/or modify it under the terms of the GNU
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * General Public License (GPL) as published by the Free Software
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*******************************************************************************
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync* Header Files *
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync*******************************************************************************/
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/*******************************************************************************
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync* Global Variables *
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync*******************************************************************************/
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync OBJECT_ENTRY(CLSID_VirtualBoxClient, VirtualBoxClient)
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/** @def WITH_MANUAL_CLEANUP
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync * Manually clean up the registry. */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync#if defined(DEBUG) && !defined(VBOX_IN_32_ON_64_MAIN_API)
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync//# define WITH_MANUAL_CLEANUP
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/** Type library GUIDs to clean up manually. */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncstatic const char * const g_apszTypelibGuids[] =
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync "{46137EEC-703B-4FE5-AFD4-7C9BBBBA0259}",
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync "{d7569351-1750-46f0-936e-bd127d5bc264}",
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/** Same as above but with a "Typelib\\" prefix. */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncstatic const char * const g_apszTypelibGuidKeys[] =
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync "TypeLib\\{46137EEC-703B-4FE5-AFD4-7C9BBBBA0259}",
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync "TypeLib\\{d7569351-1750-46f0-936e-bd127d5bc264}",
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsync/** Type library version to clean up manually. */
13493ab7596e827b8d0caab2c89e635dd65f78f9vboxsyncstatic const char * const g_apszTypelibVersions[] =
#ifndef WITH_MANUAL_CLEANUP
static void removeOldMess(void);
return TRUE;
#ifndef WITH_MANUAL_CLEANUP
return hrc;
#ifndef WITH_MANUAL_CLEANUP
LONG rc = RegOpenKeyExA(hkeyClassesRoot, "CLSID", NULL, DELETE | KEY_ENUMERATE_SUB_KEYS | KEY_QUERY_VALUE,
&hkeyClsId);
cbValue = 0;
cbValue = 0;
LONG rc = RegOpenKeyExA(hkeyClassesRoot, "Interface", NULL, DELETE | KEY_ENUMERATE_SUB_KEYS | KEY_QUERY_VALUE,
cbValue = 0;
cbValue = 0;
while (iVer-- > 0)
//RTAssertMsg2("Should delete HCR\\%s\\%s\n", g_apszTypelibGuidKeys[i], g_apszTypelibVersions[iVer]);
static void removeOldMess(void)