Sub Main
Dim lngCLFlags, lngMode, lngRC, strProfile, strVersion, blnVerbose, arrConfig
? BEGIN COMMENT
? Переключатели /ENABLE и /DISABLE еще не указаны.
? END COMMENT
lngCLFlags = CL_NONE
With WScript.Arguments
If .Named.Exists(?) Then Usage
If .Named.Exists(DISABLE) Then lngCLFlags = lngCLFlags Or CL_DISABLE
If .Named.Exists(ENABLE) Then lngCLFlags = lngCLFlags Or CL_ENABLE
strProfile = .Named(P)
blnVerbose = .Named.Exists(V)
End With
If ScriptHost() <> cscript.exe Then _
Die You must run this script using the CScript host., 1
? BEGIN COMMENT
? Нельзя указать одновременно переключатели /ENABLE и /DISABLE.
? END COMMENT
If ((lngCLFlags And CL_DISABLE) <> 0) _
And ((lngCLFlags And CL_ENABLE) <> 0) Then Usage
? BEGIN COMMENT
? Получение класса StdRegProv из инструментария WMI.
? END COMMENT
Set g_objReg = GetObject(WinMgmts: _
& {impersonationlevel=impersonate}!root/default:StdRegProv)
strVersion = GetOutlookVersion()
If blnVerbose Then _
WScript.Echo Outlook.exe is version & strVersion
? BEGIN COMMENT
? Требуется служба Outlook 11 (2003) или более поздняя версия.
? END COMMENT
If GetVersionPortion(strVersion, 0) < 11 Then _
Die Outlook is not installed, or is not version 2003 or later., 1
If strProfile = Then strProfile = GetDefaultProfile()
If strProfile = Then _
Die Unable to determine default Outlook profile., 2
If blnVerbose Then _
WScript.Echo Outlook profile: & strProfile
If Not ProfileKeyExists(strProfile) Then _
Die Outlook profile registry subkey not found., 2
? BEGIN COMMENT
? Получение массива байтов из реестра.
? END COMMENT
arrConfig = GetExchangeConfig(strProfile)
? BEGIN COMMENT
? Проверка состояния бита, определяющего настройку режима Cached Exchange Mode.
? END COMMENT
lngMode = GetCachedExhangeMode(arrConfig)
If lngMode = -2 Then _
Die Unable to read Cached Exchange Mode setting from registry., 13
If blnVerbose Then _
WScript.Echo Registry data: & ByteArrayToString(arrConfig)
If lngCLFlags = CL_NONE Then
WScript.Echo Cached Exchange Mode is currently _
& IIf(CBool(lngMode), ENABLED, DISABLED)
lngRC = IIf(CBool(lngMode), 1, 0)
Else
? BEGIN COMMENT
? Изменение битов массива для включения режима Cached Exchange Mode.
? END COMMENT
SetCachedExchangeMode (lngCLFlags And CL_ENABLE) <> 0, arrConfig
? Write the array of bytes back to the registry.
lngRC = UpdateRegistry(strProfile, arrConfig)
If lngRC = 0 Then
If blnVerbose Then
arrConfig = GetExchangeConfig(strProfile)
WScript.Echo New registry data: & ByteArrayToString(arrConfig)
End If
WScript.Echo Cached Exchange Mode is now _
& IIf((lngCLFlags And CL_ENABLE) <> 0, ENABLED, DISABLED)
Else
WScript.Echo Error updating registry.
End If
End If
WScript.Quit lngRC
End Sub