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;
|
||
|
}
|