Thursday, May 24, 2007
The procedure entry point SHRegGetValueW could not be located in the dynamic link library SHLWAPI.DLL
After some strange maneuvering to recover my disk, my win2k box seems to be behaving well. Except for the above error when I try to run write.exe (which spawns wordpad.exe). The most useful link I found on this is here:
http://troymurray.blogspot.com/2005/11/shreggetvaluew-could-not-be-located-in.html
Which suggests that I need to create a slipstream disk (ugh), and then run sfc. Strangely, when I run wordpad.exe straight out of dllcache, it works fine. Only when I run it using write.exe does it mess up. Here are the procedures:
http://support.microsoft.com/default.aspx?scid=kb;en-us;222471
http://support.microsoft.com/kb/828930/
http://www.microsoft.com/Windows2000/downloads/servicepacks/sp4/hfdeploy.htm
You can also see this suggestion, which suggests that shell32.dll is borked. This is actually not a bad suggestion, because write.exe
http://www.experts-exchange.com/OS/Microsoft_Operating_Systems/Windows/2000/Q_21877920.html
It is certaintly useful to know which hotfixes are installed before doing any of these things, and for this there is a utility:
http://support.microsoft.com/kb/282784
Unfortunately, this utility doesn't work.
To fix it, I ended up removing the WinXP install on the same disk.
Wednesday, May 23, 2007
GUI Updates in Win32
http://osdir.com/ml/windows.devel.dotnet.winforms/2004-10/msg00065.html
The OS's contract to your app is this: "If you agree to only
touch your window when running code within the context of your WndProc,
I'll keep my hands off it during that time. Conversely, you keep your
hands off the window at all other times."
Tuesday, May 22, 2007
DVD vs. LBA
Since my DVD burner fails most of the time, I have been looking into the problem.
Maybe my drive reverted to PIO?
http://winhlp.com/WxDMA.htm
Maybe I should uninstall IAA in order to verify that I'm running DMA?
http://club.cdfreaks.com/showthread.php?t=92320
The problem is that a long time ago, after the great disk crash of 2003, I learned I should install IAA to fix LBA48 problems on Win2k. When I rebuilt in 2004 or 2005, I dutifully installed IAA again. But the real problem it seemed was a bad BIOS implementation by DELL, though I was never sure.
First we check in with DELL:
http://www.dellcommunity.com/supportforums/board/message?board.id=dim_harddrive&message.id=40500
http://www.dellcommunity.com/supportforums/board/message?board.id=dim_harddrive&thread.id=40996
It seems the hard drive corruptions are due to the BIOS setting, not the LBA 48 issues.
Next, regarding LBA 48 in general. The Intel Application accelerator it seems is not necessary in windows 2000, though it may be for windows 98. Perhaps the only thing necessary is the Microsoft registry fix.
http://support.microsoft.com/kb/305098
The Intel site is a little confusing. Here is the site:
http://www.intel.com/support/chipsets/iaa/sb/cs-009299.htm
Windows* XP, Windows 2000, Windows Me, Windows 98 SE, Windows 98, and Windows NT* 4.0 do not provide native support for hard drives that are larger than 137GB. 48-bit LBA support can be added with Windows* XP Service Pack 1 †and Windows* 2000 Service Pack 4 †. Please contact Microsoft* for additional information. In order to enable hard drives larger than 137GB, you will need to install the Intel Application Accelerator or install a 3rd party 48-bit LBA controller card.Also, note the required IAA version for Western Digital.
http://www.intel.com/support/chipsets/iaa/sb/cs-009319.htm