New high color icons do not appear after you upgrade to Office 2003 (825936)



The information in this article applies to:

  • Microsoft Office Professional Edition 2003
  • Microsoft Office Excel 2003
  • Microsoft Office FrontPage 2003
  • Microsoft Office Outlook 2003
  • Microsoft Office PowerPoint 2003
  • Microsoft Office Publisher 2003
  • Microsoft Office Word 2003
  • Microsoft Office Standard Edition 2003
  • Microsoft Office Student and Teachers Edition 2003
  • Microsoft Office Small Business Edition 2003
  • Microsoft Office Basic Edition 2003
  • Microsoft Office Access 2003

SYMPTOMS

When you upgrade an earlier version of Microsoft Office to Microsoft Office 2003, the Microsoft Office icons on your desktop, on the Start menu, or in My Documents are not upgraded to the new Office 2003 high color icons.

CAUSE

This problem occurs because the system shell caches the old Office icons and does not update the cache when Office 2003 is installed.

RESOLUTION

To resolve this problem, you must force the shell to update the cache. To do this, follow these steps.

Microsoft Windows XP

Follow these steps to resolve the problem on a Windows XP-based computer.
  1. Right-click your taskbar, and then click Properties.
  2. Click the Start Menu tab, and then click Start Menu.
  3. Click Customize, and then click Clear List in the Programs area.
  4. Click OK, click Apply, and then click OK.

Microsoft Windows 2000 and Windows XP

Follow these steps to resolve the problem on a Windows 2000-based computer. Alternatively, you may follow these steps to update the shell cache on a Windows XP-based computer.
  1. Right-click your desktop, and then click Properties.
  2. Click the Settings tab, click Medium (16 bit) in the Color quality list, and then click Apply.
  3. Click Yes when you are prompted to keep the changes made.
  4. Use this step for Windows-2000 based computers. In the Colors list, click True color (24 bit) or True Color (32 bit), and then click Apply.
  5. Use this step for Windows XP-based computers. In the Color quality list, click High (24bit) or Highest (32 bit), and then click Apply
  6. Click OK.
To resolve this problem, you can run the following Microsoft Visual Basic for Applications (VBA) code as a full user profile to refresh the icons.

Disclaimer Microsoft provides examples of Windows API procedures for illustration only, without warranty either expressed or implied, including but not limited to the implied warranties of merchantability and/or fitness for a particular purpose. This code procedure is provided 'as is' and Microsoft does not guarantee that it can be used in all situations. Microsoft does not support modifications of this procedure to suit customer requirements for a particular purpose.
---CODE START---
Option Explicit
Const WM_DISPLAYCHANGE = &H7E
Const HWND_BROADCAST = &HFFFF&
Const EWX_LOGOFF = 0
Const EWX_SHUTDOWN = 1
Const EWX_REBOOT = 2
Const EWX_FORCE = 4
Const CCDEVICENAME = 32
Const CCFORMNAME = 32
Const DM_BITSPERPEL = &H40000
Const DM_PELSWIDTH = &H80000
Const DM_PELSHEIGHT = &H100000
Const CDS_UPDATEREGISTRY = &H1
Const CDS_TEST = &H4
Const DISP_CHANGE_SUCCESSFUL = 0
Const DISP_CHANGE_RESTART = 1
Const BITSPIXEL = 12
Private Type DEVMODE
    dmDeviceName As String * CCDEVICENAME
    dmSpecVersion As Integer
    dmDriverVersion As Integer
    dmSize As Integer
    dmDriverExtra As Integer
    dmFields As Long
    dmOrientation As Integer
    dmPaperSize As Integer
    dmPaperLength As Integer
    dmPaperWidth As Integer
    dmScale As Integer
    dmCopies As Integer
    dmDefaultSource As Integer
    dmPrintQuality As Integer
    dmColor As Integer
    dmDuplex As Integer
    dmYResolution As Integer
    dmTTOption As Integer
    dmCollate As Integer
    dmFormName As String * CCFORMNAME
    dmUnusedPadding As Integer
    dmBitsPerPel As Integer
    dmPelsWidth As Long
    dmPelsHeight As Long
    dmDisplayFlags As Long
    dmDisplayFrequency As Long
End Type
Private Declare Function EnumDisplaySettings Lib "user32" Alias "EnumDisplaySettingsA" (ByVal lpszDeviceName As Long, ByVal iModeNum As Long, lpDevMode As Any) As Boolean
Private Declare Function ChangeDisplaySettings Lib "user32" Alias "ChangeDisplaySettingsA" (lpDevMode As Any, ByVal dwFlags As Long) As Long
Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long
Private Declare Function CreateDC Lib "gdi32" Alias "CreateDCA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, ByVal lpInitData As Any) As Long
Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Dim OldX As Long, OldY As Long, nDC As Long
Sub ChangeRes(X As Long, Y As Long, Bits As Long)
    Dim DevM As DEVMODE, ScInfo As Long, erg As Long, an As VbMsgBoxResult
    'Get the info into DevM
    erg = EnumDisplaySettings(0&, 0&, DevM)
    'This is what we're going to change
    DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT Or DM_BITSPERPEL
    DevM.dmPelsWidth = X 'ScreenWidth
    DevM.dmPelsHeight = Y 'ScreenHeight
    DevM.dmBitsPerPel = Bits '(can be 8, 16, 24, 32 or even 4)
    'Now change the display and check if possible
    erg = ChangeDisplaySettings(DevM, CDS_TEST)
End Sub
Private Sub Form_Load()
    Dim nDC As Long
    Me.Hide
    'retrieve the screen's resolution
    OldX = Screen.Width / Screen.TwipsPerPixelX
    OldY = Screen.Height / Screen.TwipsPerPixelY
    'Create a device context, compatible with the screen
    nDC = CreateDC("DISPLAY", vbNullString, vbNullString, ByVal 0&)
    'Change the screen's resolution to 8 bit
    ChangeRes OldX, OldY, 8
    Sleep 5000
    'Change the resolution to 32 bit
    ChangeRes OldX, OldY, 32
    Unload Me
End Sub
 
---CODE END---
Note The code requires that the shell (includes the desktop) is completely loaded.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

Modification Type:MinorLast Reviewed:8/29/2006
Keywords:kbsetup KbVBA kbUpgrade kbpending kbBug KB825936 kbAudEndUser