windows-nt/Source/XPSP1/NT/base/ntsetup/win95upg/migdlls/setup/winfax.c
2020-09-26 16:20:57 +08:00

189 lines
3.4 KiB
C

/*++
Copyright (c) 1998 Microsoft Corporation
Module Name:
winfax.c
Abstract:
This source file implements the operations needed to properly migrate
Symantec WinFax Starter Edition (shipped as a value-add component to
Outlook 2000). In particular, this migration dll is designed to get rid of the
incompatiblity message reported by the printer migration dll and clean up
some registry settings.
Author:
Marc R. Whitten (marcw) 14-Jul-1999
Revision History:
--*/
#include "pch.h"
#define S_WINFAX_STARTER_REGKEYA "HKLM\\System\\CurrentControlSet\\Control\\Print\\Printers\\Symantec WinFax Starter Edition"
PSTR g_HandleArray[] = {
"HKLM\\Software\\Microsoft\\Office\\8.0\\Outlook\\OLFax",
"HKLM\\Software\\Microsoft\\Office\\9.0\\Outlook\\OLFax",
"HKLM\\Software\\Microsoft\\Active Setup\\Outlook Uninstall\\OMF95",
"HKR\\Software\\Microsoft\\Office\\8.0\\Outlook\\OLFax",
"HKR\\Software\\Microsoft\\Office\\9.0\\Outlook\\OLFax",
"HKR\\Software\\Microsoft\\Office\\9.0\\Outlook\\Setup\\WinFax",
"HKR\\Software\\Microsoft\\Office\\8.0\\Outlook\\Setup\\WinFax",
"HKR\\Software\\Microsoft\\Office\\9.0\\Outlook\\Setup\\WinFax",
"HKR\\Software\\Microsoft\\Office\\8.0\\Outlook\\Setup\\WinFax",
"HKR\\Software\\Microsoft\\Office\\9.0\\Outlook\\Setup\\[WinFaxWizard]",
"HKR\\Software\\Microsoft\\Office\\8.0\\Outlook\\Setup\\[WinFaxWizard]",
""
};
BOOL
SymantecWinFax_Attach (
IN HINSTANCE DllInstance
)
{
return TRUE;
}
BOOL
SymantecWinFax_Detach (
IN HINSTANCE DllInstance
)
{
return TRUE;
}
LONG
SymantecWinFax_QueryVersion (
IN PCSTR *ExeNamesBuf
)
{
HKEY h;
h = OpenRegKeyStrA ("HKLM\\Software\\Microsoft\\Active Setup\\Outlook Uninstall\\OMF95");
if (!h) {
return ERROR_NOT_INSTALLED;
}
CloseRegKey (h);
return ERROR_SUCCESS;
}
LONG
SymantecWinFax_Initialize9x (
IN PCSTR WorkingDirectory,
IN PCSTR SourceDirectories
)
{
return ERROR_SUCCESS;
}
LONG
SymantecWinFax_MigrateUser9x (
IN HWND ParentWnd,
IN PCSTR UnattendFile,
IN HKEY UserRegKey,
IN PCSTR UserName
)
{
return ERROR_SUCCESS;
}
LONG
SymantecWinFax_MigrateSystem9x (
IN HWND ParentWnd,
IN PCSTR UnattendFile
)
{
HKEY h;
PSTR *p;
//
// Handle the registry key so that the printer migration dll doesn't report it as incompatible.
//
WritePrivateProfileStringA (
S_HANDLED,
S_WINFAX_STARTER_REGKEYA,
"Registry",
g_MigrateInfPath
);
//
// Handle other registry keys so that the reinstall will actually work.
//
for (p = g_HandleArray; **p; p++) {
h = OpenRegKeyStrA (*p);
if (h) {
WritePrivateProfileStringA (
S_HANDLED,
*p,
"Registry",
g_MigrateInfPath
);
CloseRegKey (h);
}
}
return ERROR_SUCCESS;
}
//
// Nothing to do during GUI mode.
//
LONG
SymantecWinFax_InitializeNT (
IN PCWSTR WorkingDirectory,
IN PCWSTR SourceDirectories
)
{
return ERROR_SUCCESS;
}
LONG
SymantecWinFax_MigrateUserNT (
IN HINF UnattendFile,
IN HKEY UserRegKey,
IN PCWSTR UserName
)
{
return ERROR_SUCCESS;
}
LONG
SymantecWinFax_MigrateSystemNT (
IN HINF UnattendFile
)
{
return ERROR_SUCCESS;
}