/*++ Copyright (c) 2002 Microsoft Corporation Module Name: progacc.c Abstract: This source file implements the operations needed to properly migrate program access settings for OE access. Author: Tim Noonan (tnoonan) 17-Jul-2002 Revision History: --*/ #include "pch.h" #define S_OE_FILE "MSIMN.EXE" #define S_MAIL_KEY "HKLM\\Software\\Clients\\Mail" #define S_OUTLOOK_EXPRESS "Outlook Express" #define S_IMN "Internet Mail and News" static GROWBUFFER g_FilesBuff = GROWBUF_INIT; BOOL ProgramAccess_Attach ( IN HINSTANCE DllInstance ) { return TRUE; } BOOL ProgramAccess_Detach ( IN HINSTANCE DllInstance ) { FreeGrowBuffer(&g_FilesBuff); return TRUE; } LONG ProgramAccess_QueryVersion ( IN PCSTR *ExeNamesBuf ) { MultiSzAppendA (&g_FilesBuff, S_OE_FILE); *ExeNamesBuf = g_FilesBuff.Buf; return ERROR_SUCCESS; } LONG ProgramAccess_Initialize9x ( IN PCSTR WorkingDirectory, IN PCSTR SourceDirectories ) { return ERROR_SUCCESS; } LONG ProgramAccess_MigrateUser9x ( IN HWND ParentWnd, IN PCSTR UnattendFile, IN HKEY UserRegKey, IN PCSTR UserName ) { return ERROR_SUCCESS; } LONG ProgramAccess_MigrateSystem9x ( IN HWND ParentWnd, IN PCSTR UnattendFile ) { CHAR OEAccess[MAX_PATH]; DWORD cch = GetPrivateProfileStringA("Components", "OEAccess", "", OEAccess, ARRAYSIZE(OEAccess), UnattendFile); if ((cch > 0) && StringIMatchA(OEAccess, "off")) { HKEY key; DEBUGMSGA((DBG_VERBOSE, "ProgramAccess: OEAccess is off.")); key = OpenRegKeyStrA(S_MAIL_KEY); if (NULL != key) { PCTSTR currentClient = GetRegValueStringA(key, ""); if (NULL != currentClient) { if (StringIMatchA(currentClient, S_OUTLOOK_EXPRESS) || StringIMatchA(currentClient, S_IMN)) { DEBUGMSGA((DBG_VERBOSE, "ProgramAccess: OE was the default client and we are marking the key as handled.")); WritePrivateProfileStringA(S_HANDLED, S_MAIL_KEY, "Registry", g_MigrateInfPath); } else { DEBUGMSGA ((DBG_VERBOSE, "ProgramAccess: OE was not the default client.")); } MemFree(g_hHeap, 0, currentClient); } else { DEBUGMSGA ((DBG_VERBOSE, "ProgramAccess: Error getting current client or no default client.")); } CloseRegKey(key); } else { DEBUGMSGA ((DBG_VERBOSE, "ProgramAccess: Error opening " S_MAIL_KEY ".")); } } else { DEBUGMSGA ((DBG_VERBOSE, "ProgramAccess: OEAccess is on -- not messing with default client.")); } return ERROR_SUCCESS; } LONG ProgramAccess_InitializeNT ( IN PCWSTR WorkingDirectory, IN PCWSTR SourceDirectories ) { return ERROR_SUCCESS; } LONG ProgramAccess_MigrateUserNT ( IN HINF UnattendFile, IN HKEY UserRegKey, IN PCWSTR UserName ) { return ERROR_SUCCESS; } LONG ProgramAccess_MigrateSystemNT ( IN HINF UnattendFile ) { return ERROR_SUCCESS; }