2 * Copyright (C) 1998, 1989 Transarc Corporation - All rights reserved
4 * (C) COPYRIGHT IBM CORPORATION 1987, 1988
5 * LICENSED MATERIALS - PROPERTY OF IBM
11 #include <WINNT/TaLocale.h>
12 #include "cpl_interface.h"
16 static HINSTANCE hinst = 0;
17 static HINSTANCE hinstResources = 0;
20 static BOOL IsWindowsNT (void)
22 static BOOL fChecked = FALSE;
23 static BOOL fIsWinNT = FALSE;
27 OSVERSIONINFO Version;
28 memset (&Version, 0x00, sizeof(Version));
29 Version.dwOSVersionInfoSize = sizeof(Version);
31 if (GetVersionEx (&Version))
33 if (Version.dwPlatformId == VER_PLATFORM_WIN32_NT)
44 static BOOL IsClientInstalled (void)
46 static BOOL fChecked = FALSE;
47 static BOOL fIsInstalled = FALSE;
52 if (RegOpenKey (HKEY_LOCAL_MACHINE, TEXT("Software\\TransarcCorporation\\AFS Client\\CurrentVersion"), &hk) == 0)
54 TCHAR szPath[ MAX_PATH ];
55 DWORD dwSize = sizeof(szPath);
56 DWORD dwType = REG_SZ;
57 if (RegQueryValueEx (hk, TEXT("PathName"), NULL, &dwType, (PBYTE)szPath, &dwSize) == 0)
68 extern "C" LONG APIENTRY CPlApplet(HWND hwndCPl, UINT uMsg, LONG lParam1, LONG lParam2)
70 LPNEWCPLINFO lpNewCPlInfo;
73 case CPL_INIT: /* first message, sent once */
74 hinst = GetModuleHandle("afs_cpa.cpl");
75 hinstResources = TaLocale_LoadCorrespondingModule (hinst);
78 case CPL_GETCOUNT: /* second message, sent once */
82 case CPL_NEWINQUIRE: /* third message, sent once per app */
83 lpNewCPlInfo = (LPNEWCPLINFO) lParam2;
85 lpNewCPlInfo->dwSize = (DWORD) sizeof(NEWCPLINFO);
86 lpNewCPlInfo->dwFlags = 0;
87 lpNewCPlInfo->dwHelpContext = 0;
88 lpNewCPlInfo->lData = 0;
89 if (IsClientInstalled() || !IsWindowsNT())
90 lpNewCPlInfo->hIcon = TaLocale_LoadIcon(IDI_AFSD);
92 lpNewCPlInfo->hIcon = TaLocale_LoadIcon(IDI_CCENTER);
93 lpNewCPlInfo->szHelpFile[0] = '\0';
95 GetString (lpNewCPlInfo->szName, (!IsWindowsNT()) ? IDS_CPL_NAME_95 : (!IsClientInstalled()) ? IDS_CPL_NAME_CCENTER : IDS_CPL_NAME_NT);
96 GetString (lpNewCPlInfo->szInfo, (!IsWindowsNT()) ? IDS_CPL_DESC_95 : (!IsClientInstalled()) ? IDS_CPL_DESC_CCENTER : IDS_CPL_DESC_NT);
99 case CPL_DBLCLK: /* applet icon double-clicked */
100 if (IsClientInstalled() || !IsWindowsNT())
101 WinExec("afs_config.exe", SW_SHOW);
103 WinExec("afs_config.exe /c", SW_SHOW);
108 FreeLibrary (hinstResources);