112 lines
2.1 KiB
C++
112 lines
2.1 KiB
C++
/*++
|
|
|
|
Copyright (c) 1996 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
uninstal.c
|
|
|
|
Abstract:
|
|
|
|
This file implements the un-install case.
|
|
|
|
Environment:
|
|
|
|
WIN32 User Mode
|
|
|
|
Author:
|
|
|
|
Wesley Witt (wesw) 17-Feb-1996
|
|
|
|
--*/
|
|
|
|
#include "faxocm.h"
|
|
#pragma hdrstop
|
|
|
|
|
|
|
|
|
|
|
|
DWORD
|
|
DoUninstall(
|
|
VOID
|
|
)
|
|
{
|
|
DWORD ErrorCode = 0;
|
|
HKEY hKey;
|
|
HKEY hKeyDevice;
|
|
DWORD RegSize;
|
|
DWORD RegType;
|
|
LONG rVal;
|
|
DWORD i = 0;
|
|
WCHAR Buffer[MAX_PATH*2];
|
|
|
|
|
|
//
|
|
// kill the clients dir
|
|
//
|
|
|
|
wcscpy( Buffer, Platforms[0].DriverDir );
|
|
RemoveLastNode( Buffer );
|
|
wcscat( Buffer, FAXCLIENTS_DIR );
|
|
DeleteDirectoryTree( Buffer );
|
|
|
|
//
|
|
// kill the fax receieve dir(s)
|
|
//
|
|
|
|
rVal = RegOpenKey( HKEY_LOCAL_MACHINE, REGKEY_FAX_DEVICES, &hKey );
|
|
if (rVal == ERROR_SUCCESS) {
|
|
while (RegEnumKey( hKey, i++, Buffer, sizeof(Buffer)/sizeof(WCHAR) ) == ERROR_SUCCESS) {
|
|
wcscat( Buffer, L"\\" );
|
|
wcscat( Buffer, REGKEY_ROUTING );
|
|
rVal = RegOpenKey( hKey, Buffer, &hKeyDevice );
|
|
if (rVal == ERROR_SUCCESS) {
|
|
RegSize = sizeof(Buffer);
|
|
rVal = RegQueryValueEx(
|
|
hKeyDevice,
|
|
REGVAL_ROUTING_DIR,
|
|
0,
|
|
&RegType,
|
|
(LPBYTE) Buffer,
|
|
&RegSize
|
|
);
|
|
if (rVal == ERROR_SUCCESS) {
|
|
DeleteDirectoryTree( Buffer );
|
|
}
|
|
RegCloseKey( hKeyDevice );
|
|
}
|
|
}
|
|
RegCloseKey( hKey );
|
|
}
|
|
|
|
//
|
|
// clean out the registry
|
|
//
|
|
|
|
SetProgress( IDS_DELETING_REGISTRY );
|
|
DeleteFaxRegistryData();
|
|
|
|
//
|
|
// remove the fax service
|
|
//
|
|
|
|
SetProgress( IDS_DELETING_FAX_SERVICE );
|
|
MyDeleteService( L"Fax" );
|
|
|
|
//
|
|
// remove the program groups
|
|
//
|
|
|
|
SetProgress( IDS_DELETING_GROUPS );
|
|
DeleteGroupItems();
|
|
|
|
DeleteFaxMsgServices();
|
|
|
|
if (InstallType & FAX_INSTALL_SERVER) {
|
|
DeleteNetworkShare( FAXCLIENTS_DIR );
|
|
}
|
|
|
|
return TRUE;
|
|
}
|