ie6sp1 : Repair Function Blocked - Anyone know of a fix?

D

den

W98SE ie6sp1 - Repair Function Blocked - Cannot get beyond <<An error or
exception occurred while calling the function "DllInstall" in
"c:\windows\system\digest.dll">>

a) Ran setup/install - no fix
b) Clean uninstall [Ieradicator]/install - no fix

Any help would be very much appreciated. Many Thanks.

Denis
 
R

Robert Aldwinckle

There is something here that you aren't telling us. ;)
What were you doing when this message occurred?

One possibility is that you were erroneously given instructions
to issue the command:
regsvr32 /i digest.dll
(or did something which caused that to be executed.)

That would be incorrect because there is no DllRegisterServer entry
point in that module though there is a DllInstall entry point there.
The correct command would have been:
regsvr32 /i /n digest.dll

That says: "execute DllInstall but don't try to execute DllRegisterServer"

Try issuing the correct command as I have coded it for you.


HTH

Robert Aldwinckle
 
D

den

H said:
Digest.dll if part of the IE Repair tool. Check your version against
this article.
Your may be damaged or has been changed with addition of some
programming software.

Description of the Internet Explorer Repair Tool
http://support.microsoft.com/default.aspx?kbid=194177

Henri Leboeuf
Web page: http://www.colba.net/~hlebo49/index.htm
===
den said:
W98SE ie6sp1 - Repair Function Blocked - Cannot get beyond <<An
error or exception occurred while calling the function "DllInstall"
in "c:\windows\system\digest.dll">>

a) Ran setup/install - no fix
b) Clean uninstall [Ieradicator]/install - no fix

Any help would be very much appreciated. Many Thanks.

Denis

Henri,

Many thanks for. Had wondered whether installing an [out-of-date]
digest.dll from W98SE CD Rom
might have been problem so got update from:

http://www.dlldump.com/cgi-bin/dlldownload.cgi?path=dllfiles/D

Unfortunately, haven’t got to the bottom of it yet. Once again, many thanks
for your help.

Denis
 
D

den

Robert said:
There is something here that you aren't telling us. ;)
What were you doing when this message occurred?

One possibility is that you were erroneously given instructions
to issue the command:
regsvr32 /i digest.dll
(or did something which caused that to be executed.)

That would be incorrect because there is no DllRegisterServer entry
point in that module though there is a DllInstall entry point
there.
The correct command would have been:
regsvr32 /i /n digest.dll

That says: "execute DllInstall but don't try to execute
DllRegisterServer"

Try issuing the correct command as I have coded it for you.


HTH

Robert Aldwinckle
---


den said:
W98SE ie6sp1 - Repair Function Blocked - Cannot get beyond <<An
error or exception occurred while calling the function "DllInstall"
in "c:\windows\system\digest.dll">>

a) Ran setup/install - no fix
b) Clean uninstall [Ieradicator]/install - no fix

Any help would be very much appreciated. Many Thanks.

Denis

Robert hi,

Thanks for this. Here is sequence of events:

a) Ran Repair in response to generally very poor ie6 sp1 performance
b) When repair cycle failed got <<An error or exception occurred while
calling the function "DllInstall" in
"c:\windows\system\digest.dll">> plus run ie6 sp1 set up.
c) First tried to re-install digest.dll from W98SE CD Rom
d) When Repair failed to run again thought out-of-date digest.dll might be
problem and obtained correct version from
http://www.dlldump.com/cgi-bin/dlldownload.cgi?path=dllfiles/D
e) Still no joy - ran ie6 sp1 set up
f) Still no joy - ran ieradicator for clean uninstall and then cleanie6 sp1
set up
g) Still no joy - message to newsgroup

Hope this sheds some light.

<<One possibility is that you were erroneously given instructions
to issue the command:
regsvr32 /i digest.dll
(or did something which caused that to be executed.)

That would be incorrect because there is no DllRegisterServer entry
point in that module though there is a DllInstall entry point there.
The correct command would have been:
regsvr32 /i /n digest.dll

That says: "execute DllInstall but don't try to execute DllRegisterServer"

Try issuing the correct command as I have coded it for you.>>

Sorry to say, this is technically beyond me and don't really know what you
are referring to? If you could give me a bit more of a pointer, that would
be much appreciated. Thanks again for your help.

Denis
 
R

Robert Aldwinckle

....
....
Hope this sheds some light.

Yes. Much clearer now. I have just had a look at FixIE.inf and seen
that Henri is right. That is where it is coming from and it is coded
correctly there so the problem is that there is some other corruption
which is preventing the registration from succeeding.

I think it may be useful to make an effort to do a manual re-registration
in case there is any extra information given to a manual invocation of the
command instead of the way that the Repair procedure was doing it.
I'll repeat my suggestion and add some more background detail.

You would enter the above command in a Run... dialog
or in a command window. E.g. press Win-R or do whatever
it is that you do from the Start menu to start an "MS-DOS Window"
(probably in the Programs menu?). I'm not familiar with your OS
so you may have to navigate to the right subdirectory in order to use
that coding in a command window. E.g. once the command window
opens issue a ChDir command to do that. Perhaps something like:
CD \windows\system\
If your Prompt variable is set conventionally you would then see
the prompt change to indicate that the current directory was now that.
You could doublecheck that you were in the right directory by entering:
dir digest.dll
If that command results in File Not Found you would be in the wrong
directory and have to try a different path.

In fact I just thought of a better way to find the correct path.
I know it is going to be in C:\Windows (if that is the way you have
coded your %windir%), just not sure whether your OS has a
System32 or not. (In NTx it is in %SystemRoot%\System32).
So here's a way to eliminate *all* uncertainty (assuming we are in the
right drive <g>). Enter the following commands:
cd \
dir/s digest.dll
Hopefully your OS dir command will list the complete path of the
containing subdirectory before it lists the attributes of the file.
So just type that whole path with a cd and press enter.
Then you can enter the regsvr32 /i /n digest.dll
that started this whole exercise. ;)

Remember, running the command in a command window is our backup plan.
Hopefully the regsvr32 command will give you some results when entered
in the Run... dialog and you won't have to bother with finding the correct directory.

One more thing. I am wondering if you might have some security programs
active which could be interfering with either attempt at repair. If so, it may
be a good idea to make the boot associated with the repair a "safe boot".
E.g. press F8 and thus perhaps prevent some of those things from loading.
You could do all the preceding regarding digest.dll during a safe boot too,
I think.


It appears that digest.dll has something to do with encryption support;
so another tack you might take would be to investigate that.
E.g. use IE's Help About menu command to see if that looks normal
(Cipher Strength: 128)

The conventional procedure to use to fix problems with that for your OS
are documented here (in Method2):

<title>KB261328 - Cipher strength appears as 0-bit in Internet Explorer</title>

Notice that essentially it is what you have already tried (reinstalling)
with the added preparation of deleting some other encryption support
modules so that that support can be reinstalled properly.


Good luck

Robert
---
 
D

den

Robert said:
...

Yes. Much clearer now. I have just had a look at FixIE.inf and
seen
that Henri is right. That is where it is coming from and it is
coded
correctly there so the problem is that there is some other corruption
which is preventing the registration from succeeding.

I think it may be useful to make an effort to do a manual
re-registration
in case there is any extra information given to a manual invocation
of the
command instead of the way that the Repair procedure was doing it.
I'll repeat my suggestion and add some more background detail.


You would enter the above command in a Run... dialog
or in a command window. E.g. press Win-R or do whatever
it is that you do from the Start menu to start an "MS-DOS Window"
(probably in the Programs menu?). I'm not familiar with your OS
so you may have to navigate to the right subdirectory in order to use
that coding in a command window. E.g. once the command window
opens issue a ChDir command to do that. Perhaps something like:
CD \windows\system\
If your Prompt variable is set conventionally you would then see
the prompt change to indicate that the current directory was now that.
You could doublecheck that you were in the right directory by
entering: dir digest.dll
If that command results in File Not Found you would be in the wrong
directory and have to try a different path.

In fact I just thought of a better way to find the correct path.
I know it is going to be in C:\Windows (if that is the way you have
coded your %windir%), just not sure whether your OS has a
System32 or not. (In NTx it is in %SystemRoot%\System32).
So here's a way to eliminate *all* uncertainty (assuming we are in the
right drive <g>). Enter the following commands:
cd \
dir/s digest.dll
Hopefully your OS dir command will list the complete path of the
containing subdirectory before it lists the attributes of the file.
So just type that whole path with a cd and press enter.
Then you can enter the regsvr32 /i /n digest.dll
that started this whole exercise. ;)

Remember, running the command in a command window is our backup plan.
Hopefully the regsvr32 command will give you some results when entered
in the Run... dialog and you won't have to bother with finding the
correct directory.

One more thing. I am wondering if you might have some security
programs
active which could be interfering with either attempt at repair. If
so, it may
be a good idea to make the boot associated with the repair a "safe
boot".
E.g. press F8 and thus perhaps prevent some of those things from
loading.
You could do all the preceding regarding digest.dll during a safe
boot too,
I think.


It appears that digest.dll has something to do with encryption
support;
so another tack you might take would be to investigate that.
E.g. use IE's Help About menu command to see if that looks normal
(Cipher Strength: 128)

The conventional procedure to use to fix problems with that for your
OS
are documented here (in Method2):

<title>KB261328 - Cipher strength appears as 0-bit in Internet
Explorer</title>

Notice that essentially it is what you have already tried
(reinstalling)
with the added preparation of deleting some other encryption support
modules so that that support can be reinstalled properly.


Good luck

Robert

Robert,

Many thanks a [novice] explanation and step-by-step account. Sorry to say
not there yet. Hopefully feedback will give further clues:

1) Zone Alarm + AVG (+ possibly McAfee vestiges) - Closed all except
systray/explorer. Ran repair - no joy
2) Ran repair in Safe Mode - no joy
3) Ran regsvr32 /i /n digest.dll - ran first time though unfortunately no
fix
4) Rename Schannel.old, Rsabase.old and Rsaenh.old + run ie6setup.exe -
unfortunately on reboot got <<An
error or exception occurred while calling the function "DllInstall" in
"c:\windows\system\digest.dll">>

Does this help shed any light? Hope so. If not, many thanks in any case
for all your help.

Denis
 
R

Robert Aldwinckle

3) Ran regsvr32 /i /n digest.dll - ran first time though unfortunately no

I think that this proves that the error message could easily be a huge
Red Herring. Let's see what happens if you attempt to simulate
the next command that FixIE.inf apparently would be trying to execute:

regsvr32 /i /n wininet.dll

BTW check on the version of that module because it has been involved
with some recent updates. IE Repair tries to verify that the version of
the module is compatible based on an "upwardly compatible" assumption.
The problem is that the base that it checks on is very old, so it is quite
possible to have something which is upwardly compatible in terms of it
but still inappropriate in terms of the other modules which it depends on.

I'm not sure if the same order of commands will be used in whatever
the ie6setup will generate. Let's hope so. Do you get a choice
about executing the boot? If so you could open RegEdit then
and inspect the HKLM subkey and values that are being added:

HKLM,"Software\Microsoft\Windows\CurrentVersion\RunOnceEx\500"


Another more worrying possibility which occurs to me is that perhaps
it is some kind of symptom of failing hardware. E.g. a bad RAM chip.
Do you have any diagnostics you could run to check on that?

<title>KB138788 - Bad RAM Causes Fatal Exception Errors Running Windows 95/98</title>


Good luck

Robert
---


....
Robert,

Many thanks a [novice] explanation and step-by-step account. Sorry to say
not there yet. Hopefully feedback will give further clues:

1) Zone Alarm + AVG (+ possibly McAfee vestiges) - Closed all except
systray/explorer. Ran repair - no joy
2) Ran repair in Safe Mode - no joy
3) Ran regsvr32 /i /n digest.dll - ran first time though unfortunately no
fix
4) Rename Schannel.old, Rsabase.old and Rsaenh.old + run ie6setup.exe -
unfortunately on reboot got <<An
error or exception occurred while calling the function "DllInstall" in
"c:\windows\system\digest.dll">>

Does this help shed any light? Hope so. If not, many thanks in any case
for all your help.

Denis
 
D

den

Robert said:
3) Ran regsvr32 /i /n digest.dll - ran first time though
unfortunately no fix

I think that this proves that the error message could easily be a huge
Red Herring. Let's see what happens if you attempt to simulate
the next command that FixIE.inf apparently would be trying to
execute:

regsvr32 /i /n wininet.dll

BTW check on the version of that module because it has been involved
with some recent updates. IE Repair tries to verify that the
version of
the module is compatible based on an "upwardly compatible" assumption.
The problem is that the base that it checks on is very old, so it is
quite
possible to have something which is upwardly compatible in terms of it
but still inappropriate in terms of the other modules which it
depends on.

I'm not sure if the same order of commands will be used in whatever
the ie6setup will generate. Let's hope so. Do you get a choice
about executing the boot? If so you could open RegEdit then
and inspect the HKLM subkey and values that are being added:

HKLM,"Software\Microsoft\Windows\CurrentVersion\RunOnceEx\500"


Another more worrying possibility which occurs to me is that perhaps
it is some kind of symptom of failing hardware. E.g. a bad RAM chip.
Do you have any diagnostics you could run to check on that?

<title>KB138788 - Bad RAM Causes Fatal Exception Errors Running
Windows 95/98</title>


Good luck

Robert
---


...
Robert,

Many thanks a [novice] explanation and step-by-step account. Sorry
to say not there yet. Hopefully feedback will give further clues:

1) Zone Alarm + AVG (+ possibly McAfee vestiges) - Closed all except
systray/explorer. Ran repair - no joy
2) Ran repair in Safe Mode - no joy
3) Ran regsvr32 /i /n digest.dll - ran first time though
unfortunately no fix
4) Rename Schannel.old, Rsabase.old and Rsaenh.old + run
ie6setup.exe - unfortunately on reboot got <<An
error or exception occurred while calling the function "DllInstall"
in "c:\windows\system\digest.dll">>

Does this help shed any light? Hope so. If not, many thanks in
any case for all your help.

Denis

Robert,

Many thanks - very helpful. I think we're on the right track vis-a-vis
problem with "upwardly compatible" assumptions. Potted history might help:

1) Original Problem: Stuck between rock and hard place - neither repair nor
revert to previous version options available. "Fix/work around" - clean
uninstall Ieradicator. > Clean ie6 sp1 install.
2) Everything works fine till Ierepair etc (As I understand it "upwardly
compatible" pre-supposes a continuous [history/presence] of updated files -
intact and stretching back to the base file - for [continuity] checks to
work OK.)
3) Problem seems to be ie6 sp1 install is either:

a) not completely clean and resulting in discontinuous files/registry
entries?
b) ie6 sp1 is not a standalone/base version but an upgrade and that is the
base version that needs to be installed ie5 etc??
c) tried to test this by clean uninstall/install 4.01 sp1 from old CD Rom.
[Initial file checking failed for security reasons >> check system clock.
Option to rename/disable wintrust.dll - thought it best to ask first??]

Here is quick summary of tests so far:

1) regsvr32 /i /n digest.dll - DllInstall in digest.dll failed. Return
code 0xc0000005 [double-checked and omitted to give full details first
time - apologies]
2) regsvr32 /i /n wininet.dll - DllInstall in wininet.dll Succeeded
3) HKLM,"Software\Microsoft\Windows\CurrentVersion\RunOnceEx\500" . No
"500" subfolder
Entry: (Key); Value: (Key); Last modified: N/A.

Hope this helps and sorry about the incomplete info on digest.dll. With a
bit of luck, this might mean identifying the most recent available [base]
version of ie and doing a clean install followed by Windows Update. Let's
hope life is that simple ... or even simpler! Once again, many thanks for
all your help.

Denis
 
R

Robert Aldwinckle

1) regsvr32 /i /n digest.dll - DllInstall in digest.dll failed. Return
code 0xc0000005 [double-checked and omitted to give full details first
time - apologies]

Aha. That's more understandable then. The error code is a page fault
so there still could be a problem with RAM in a dependent module.

I suggest you try using Dr Watson to see if it captures that page fault.

<title>KB275481 - How to Troubleshoot Program Faults with Dr. Watson</title>


Another thing you could do is use FileMon (freeware from SysInternals)
to monitor .dll usage associated with that regsvr32 command.
It would probably only be useful if you have access to an identical system
which is working properly. Then you could compare the traces on the two
systems and note the main discrepancy.

Similarly if you have access to an indentical system which is working properly
you could compare the versions of the various modules on both systems.
Here are some excerpts from some previous posts which may help you
do that.

<excerpt>
Download the GetVers utility from the MS DLL Help Database
Help page. Then in a command window enter:

for %d in (*.dll) do GetVers "%d" >>versions.txt

(Pathing left as as an exercise for the user.)
</excerpt>

<excerpt>
Ironically an alternative to this would be an excellent
application of WSH scripting. E.g. instead of downloading
GetVers.exe as described above you could create a
GetVers.js script file containing only:

Set arg = WScript.Arguments
Set objFSO = CreateObject("Scripting.FileSystemObject")
Wscript.Echo( objFSO.GetFileVersion(arg(0)))

Note: this is adapted from the topic Retrieve File Version Information
in the System Administration Scripting Guide.
For simplicity we assume that there is only 1 item in the argument
(e.g. no spaces in the filename).
</excerpt>


There is no script engine for file extension ".vbs".

Which OS? If NTx open a command window and enter:

<example>
D:\>assoc | find /i "vbs"
..vbs=VBSFile

D:\>ftype | find /i "vbs"
VBSFile=%SystemRoot%\System32\CScript.exe "%1" %*
</example>


I think that the only reason I have that is because I use command line
scripts and once entered:

<example>
cscript //H:CS
</example>

The default supposedly is WScript.exe and you may also find
similar associations for extension "js"
</excerpt>


Putting all those ideas together (or using just the first)
you would have two lists called versions.txt, one from a system
which seems good but which you think is at the same maintenance level
as yours, and the versions.txt list for yours. The lists would be for
c:\windows\system (e.g.).

Then what I would do is sort them and saved the sorted versions.
E.g. on your system execute:
sort <versions.txt >sortedversions1.txt
and on the other system execute:
sort <versions.txt >sortedversions2.txt
(You may prefer to use different names to enable simpler final analysis
in the last step.)

Then transfer one of those sorted lists to the other system and execute:
fc sortedversions1.txt sortedversions2.txt >diff.txt
notepad diff.txt

Analyse diff.txt to figure out if there are any significant differences between
the two systems which would relate to your problem. This analysis might
be assisted by the list of .dlls that the FileMon trace that you took earlier.

I have commented before that it would have been trivial but extremely
useful for the setupwbv.dll tool to include actual version information
in its Fix IE Log.txt report but unfortunately such is not the case and
thus it is up to the user to do something such as I have outlined above
to try to find out what versions are actually being used.

Hmm... I just thought of another tool which exists in XP, which doesn't
exist in all OS but which would be worthwhile investigating first before
jumping in with a scripting alternative: msinfo32. If you have that tool
see if it shows you the version information for the modules it lists.
If you can save the list to a text file (possible in XP), so much the better.

Apparently its availability may depend on what other software
you have installed:

<title>KB159213 - MSINFO: A Tool to Investigate DLL and Executable Modules</title>

<quote>
Msinfo is distributed in the Microsoft Office distribution.
</quote>

Unfortunately it is not clear if that is a typo for msinfo32
(in both places) but it appears to be.


HTH

Robert
---


....
Robert,

Many thanks - very helpful. I think we're on the right track vis-a-vis
problem with "upwardly compatible" assumptions. Potted history might help:

1) Original Problem: Stuck between rock and hard place - neither repair nor
revert to previous version options available. "Fix/work around" - clean
uninstall Ieradicator. > Clean ie6 sp1 install.
2) Everything works fine till Ierepair etc (As I understand it "upwardly
compatible" pre-supposes a continuous [history/presence] of updated files -
intact and stretching back to the base file - for [continuity] checks to
work OK.)
3) Problem seems to be ie6 sp1 install is either:

a) not completely clean and resulting in discontinuous files/registry
entries?
b) ie6 sp1 is not a standalone/base version but an upgrade and that is the
base version that needs to be installed ie5 etc??
c) tried to test this by clean uninstall/install 4.01 sp1 from old CD Rom.
[Initial file checking failed for security reasons >> check system clock.
Option to rename/disable wintrust.dll - thought it best to ask first??]

Here is quick summary of tests so far:

1) regsvr32 /i /n digest.dll - DllInstall in digest.dll failed. Return
code 0xc0000005 [double-checked and omitted to give full details first
time - apologies]
2) regsvr32 /i /n wininet.dll - DllInstall in wininet.dll Succeeded
3) HKLM,"Software\Microsoft\Windows\CurrentVersion\RunOnceEx\500" . No
"500" subfolder
Entry: (Key); Value: (Key); Last modified: N/A.

Hope this helps and sorry about the incomplete info on digest.dll. With a
bit of luck, this might mean identifying the most recent available [base]
version of ie and doing a clean install followed by Windows Update. Let's
hope life is that simple ... or even simpler! Once again, many thanks for
all your help.

Denis
 
D

den

Robert said:
1) regsvr32 /i /n digest.dll - DllInstall in digest.dll failed.
Return code 0xc0000005 [double-checked and omitted to give full
details first time - apologies]

Aha. That's more understandable then. The error code is a page
fault
so there still could be a problem with RAM in a dependent module.

I suggest you try using Dr Watson to see if it captures that page
fault.

<title>KB275481 - How to Troubleshoot Program Faults with Dr.
Watson</title>


Another thing you could do is use FileMon (freeware from
SysInternals)
to monitor .dll usage associated with that regsvr32 command.
It would probably only be useful if you have access to an identical
system
which is working properly. Then you could compare the traces on the
two
systems and note the main discrepancy.

Similarly if you have access to an indentical system which is working
properly you could compare the versions of the various modules on
both systems.
Here are some excerpts from some previous posts which may help you
do that.

<excerpt>
Download the GetVers utility from the MS DLL Help Database
Help page. Then in a command window enter:

for %d in (*.dll) do GetVers "%d" >>versions.txt

(Pathing left as as an exercise for the user.)
</excerpt>

<excerpt>
Ironically an alternative to this would be an excellent
application of WSH scripting. E.g. instead of downloading
GetVers.exe as described above you could create a
GetVers.js script file containing only:

Set arg = WScript.Arguments
Set objFSO = CreateObject("Scripting.FileSystemObject")
Wscript.Echo( objFSO.GetFileVersion(arg(0)))

Note: this is adapted from the topic Retrieve File Version
Information
in the System Administration Scripting Guide.
For simplicity we assume that there is only 1 item in the argument
(e.g. no spaces in the filename).
</excerpt>


There is no script engine for file extension ".vbs".

Which OS? If NTx open a command window and enter:

<example>
D:\>assoc | find /i "vbs"
.vbs=VBSFile

D:\>ftype | find /i "vbs"
VBSFile=%SystemRoot%\System32\CScript.exe "%1" %*
</example>


I think that the only reason I have that is because I use command line
scripts and once entered:

<example>
cscript //H:CS
</example>

The default supposedly is WScript.exe and you may also find
similar associations for extension "js"
</excerpt>


Putting all those ideas together (or using just the first)
you would have two lists called versions.txt, one from a system
which seems good but which you think is at the same maintenance level
as yours, and the versions.txt list for yours. The lists would be
for c:\windows\system (e.g.).

Then what I would do is sort them and saved the sorted versions.
E.g. on your system execute:
sort <versions.txt >sortedversions1.txt
and on the other system execute:
sort <versions.txt >sortedversions2.txt
(You may prefer to use different names to enable simpler final
analysis
in the last step.)

Then transfer one of those sorted lists to the other system and
execute: fc sortedversions1.txt sortedversions2.txt >diff.txt
notepad diff.txt

Analyse diff.txt to figure out if there are any significant
differences between the two systems which would relate to your
problem. This analysis might
be assisted by the list of .dlls that the FileMon trace that you
took earlier.

I have commented before that it would have been trivial but extremely
useful for the setupwbv.dll tool to include actual version
information
in its Fix IE Log.txt report but unfortunately such is not the case
and
thus it is up to the user to do something such as I have outlined
above
to try to find out what versions are actually being used.

Hmm... I just thought of another tool which exists in XP, which
doesn't
exist in all OS but which would be worthwhile investigating first
before
jumping in with a scripting alternative: msinfo32. If you have
that tool
see if it shows you the version information for the modules it lists.
If you can save the list to a text file (possible in XP), so much the
better.

Apparently its availability may depend on what other software
you have installed:

<title>KB159213 - MSINFO: A Tool to Investigate DLL and Executable
Modules</title>

<quote>
Msinfo is distributed in the Microsoft Office distribution.
</quote>

Unfortunately it is not clear if that is a typo for msinfo32
(in both places) but it appears to be.


HTH

Robert
---


...
Robert,

Many thanks - very helpful. I think we're on the right track
vis-a-vis problem with "upwardly compatible" assumptions. Potted
history might help:

1) Original Problem: Stuck between rock and hard place - neither
repair nor revert to previous version options available. "Fix/work
around" - clean uninstall Ieradicator. > Clean ie6 sp1 install.
2) Everything works fine till Ierepair etc (As I understand it
"upwardly compatible" pre-supposes a continuous [history/presence]
of updated files - intact and stretching back to the base file - for
[continuity] checks to work OK.)
3) Problem seems to be ie6 sp1 install is either:

a) not completely clean and resulting in discontinuous files/registry
entries?
b) ie6 sp1 is not a standalone/base version but an upgrade and that
is the base version that needs to be installed ie5 etc??
c) tried to test this by clean uninstall/install 4.01 sp1 from old
CD Rom. [Initial file checking failed for security reasons >> check
system clock. Option to rename/disable wintrust.dll - thought it
best to ask first??]

Here is quick summary of tests so far:

1) regsvr32 /i /n digest.dll - DllInstall in digest.dll failed.
Return code 0xc0000005 [double-checked and omitted to give full
details first time - apologies]
2) regsvr32 /i /n wininet.dll - DllInstall in wininet.dll
Succeeded 3)
HKLM,"Software\Microsoft\Windows\CurrentVersion\RunOnceEx\500" . No
"500" subfolder
Entry: (Key); Value: (Key); Last modified: N/A.

Hope this helps and sorry about the incomplete info on digest.dll.
With a bit of luck, this might mean identifying the most recent
available [base] version of ie and doing a clean install followed by
Windows Update. Let's hope life is that simple ... or even simpler!
Once again, many thanks for all your help.

Denis

Robert hi,

Many thanks - plenty to be getting on with. Main focus at this stage
constructing an up-to-date versions database. Desktop and laptop fairly
similar except laptop W98 and desktop W98SE. MsInfo very useful. With
W98SE gives specific details of ie whereas with W98 does not. Have a very
useful utility called JV 16 Power Tools which kind of acts as a bridging
tool and enables you to output to Excel - so easy to sort on date version
etc (do you know it?). Dll Help Database is good - it's just a shame you
can't download as well! Would you happen to know of a really good dll
download site - one where one could get all the necessary file information
as well? FileMon looks very impressive though I lack the knowledge to make
informed interpretations - though certainly a programme to grow into!
Unfortunately am having a bit of difficulty with GetVers. It outputs to
screen OK but I cannot get the redirection to versions.txt. The file is
created but is not written to. It could be it needs the right switch but I
can't fathom it. Have tried:

for %d in (*.dll) do GetVers "%d" >>versions.txt

for %d in (*.dll) do GetVers "%d" > versions.txt

for %d in (*.dll) do GetVers "%d" dir> versions.txt

for %d in (*.dll) do GetVers "%d" dir /b /s > versions.txt

Any alternatives to the original that might work? Once again many thanks
for your help.

Denis
 
R

Robert Aldwinckle

....
Unfortunately am having a bit of difficulty with GetVers. It outputs to
screen OK but I cannot get the redirection to versions.txt. The file is
created but is not written to. It could be it needs the right switch but I
can't fathom it. Have tried:

for %d in (*.dll) do GetVers "%d" >>versions.txt

It's probably a difference in our OS. NTx has a much more usable for
command and better integration of output filtering. Your OS may be
making the (useless) assumption that the filter should be applied to the
for command itself not to the thing it is being used to execute.


Try experimenting with using the dir/b command to generate a bat file,
then modifying it to do the call and append, then execute the bat file.

E.g. something like this:

dir/b *.dll >dlls.bat

Then edit dlls.bat to prefix each line with getvers and append >>versions.txt
And finally execute the created bat file.

Without a good editor which can do regular expression pattern matching
that step may be a pain. E.g. globally change ^ (representing beginning
of line to "getsvers " and globally change $ (representing end of line
to " >>versions.txt". Note that doublequotes are only being used to emphasize
the need for blank separators after and before each prefix and suffix
respectively.


A better choice may be just to forget about the output filter problem entirely
and expand your command window sufficiently to allow you to capture
everything you want in it. Then select it all, copy, paste and save into
versions.txt (e.g.). Press Alt-Space on your Command window to see
what your options are for doing that. In NTx we have a Properties menu
item which leads to a Layout tab where we can change the Screen Buffer Size.


Alternatively, I'm sure we could modify the getvers.js script to
append to a file instead of just using the simple echo function
as it is currently written.


Another problem I think you are going to have is trying to compare two
significantly different versions of your OS. They have to be much closer
I think to provide a useful comparison. If you are going to do that perhaps
you should limit your comparison to the set of modules implied by FixIE.inf
In fact, I once made that suggestion to someone else, to base a script
on the Verification phase listed in Fix IE Log.txt. ...

Hmm... this could be better for you on all counts. E.g. start with

find "Verifying" "Fix IE Log.txt" >versions.bat

With that output you would have some common prefix text and a suffix
(=) to assist you with subsequent editing for finishing your bat file.
(I.e., avoiding the requirement to have the ^ and $ regular expression
metacharacters to construct each command line.)


But is any of this necessary? E.g. does your msinfo32 allow you
to save its output? It sounds as if your third-party tool also makes
getvers unnecessary.


Good luck

Robert
---
 
D

den

Robert said:
...

It's probably a difference in our OS. NTx has a much more usable for
command and better integration of output filtering. Your OS may be
making the (useless) assumption that the filter should be applied to
the
for command itself not to the thing it is being used to execute.


Try experimenting with using the dir/b command to generate a bat file,
then modifying it to do the call and append, then execute the bat
file.

E.g. something like this:

dir/b *.dll >dlls.bat

Then edit dlls.bat to prefix each line with getvers and append

Without a good editor which can do regular expression pattern matching
that step may be a pain. E.g. globally change ^ (representing
beginning
of line to "getsvers " and globally change $ (representing end of
line
to " >>versions.txt". Note that doublequotes are only being used to
emphasize the need for blank separators after and before each prefix
and suffix respectively.


A better choice may be just to forget about the output filter problem
entirely and expand your command window sufficiently to allow you to
capture
everything you want in it. Then select it all, copy, paste and save
into versions.txt (e.g.). Press Alt-Space on your Command window
to see
what your options are for doing that. In NTx we have a Properties
menu
item which leads to a Layout tab where we can change the Screen
Buffer Size.


Alternatively, I'm sure we could modify the getvers.js script to
append to a file instead of just using the simple echo function
as it is currently written.


Another problem I think you are going to have is trying to compare two
significantly different versions of your OS. They have to be much
closer
I think to provide a useful comparison. If you are going to do that
perhaps
you should limit your comparison to the set of modules implied by
FixIE.inf
In fact, I once made that suggestion to someone else, to base a script
on the Verification phase listed in Fix IE Log.txt. ...

Hmm... this could be better for you on all counts. E.g. start with

find "Verifying" "Fix IE Log.txt" >versions.bat

With that output you would have some common prefix text and a suffix
(=) to assist you with subsequent editing for finishing your bat file.
(I.e., avoiding the requirement to have the ^ and $ regular expression
metacharacters to construct each command line.)


But is any of this necessary? E.g. does your msinfo32 allow you
to save its output? It sounds as if your third-party tool also makes
getvers unnecessary.


Good luck

Robert
---

Robert,

Many thanks for your excellent help. I think we are fairly close to a
diagnosis and would appreciate your thoughts.

First, however, thanks for the advice on DOS, as a newbie I must confess the
original script >>versions.txt worked fine. I'd omitted to give the full
path, being so used to using Explorer with Sub-directories ticked!
Nonetheless, it was a very useful introduction to editor, call and *.bat

Here is a summary of what seem to be relavent findings:

1) Problem identified in DoRunOnceExProcess of FixIE:

Current=55 ; Max=61 ; Error=
<<Current=0 ; Max=0 ; Error=An error or exception occurred while calling the
function "DllInstall" in "C:\WINDOWS\SYSTEM\digest.dll".>>
Current=56 ; Max=61 ; Error=

2) Attempted Regsvr32 digest.dll:

<<Regsvr32 digest.dll "digest.dll was loaded but the DllRegisterServer entry
point was not found. DllRegisterServer may not be exported or a corrupt
version of digest.dll may be in memory. Consider using Pview to detect and
remove it.">>

3) PView shows 3 active versions of digest.dll!

- 2 in c:\windows\system\ (only 1 visible from Explorer)
- 1 on desktop (wrongly downloaded)

4) Attempted to delete desktop digest.dll:

<<Cannot move DIGEST: Access Denied. Make sure the disc is not full or
right protected and that the file is not currently in use.>>

- Noticed no attributes set. Set -A. Still unable to delete.
- Checked ..\system\digest.dll. Also no atttributes set.
Set -A.

5) Ran Registry Find - one entry:

Root: HKEY_LOCAL_MACHINE
Key:System\CurrentControlSet\Control\SecurityProviders
Entry: SecurityProviders
Values: msapsspc.dll, msnsspc.dll, digest.dll, schannel.dll

6) Checked PView for other 3 modules:

- all 4 *.dll files show twice

7) Checked for additional registry entries:

Root: HKEY_LOCAL_MACHINE
Key: Software\Microsoft\Windows\CurrentVersion\
Setup\ Updates\W98\UPD\329115
Entry: C:\Windows\System\schannel.dll
Values:

It would seem our objective is to remove all superflous/corrupt *.dlls and
register again from scratch.

Assuming diagnosis is correct, would very I appreciate help with how to go
about that. Am aware that, as they are SSPI Authentication Files, some
special kind of routine may be involved? Once again, very many thanks for
all your help.

Denis
 
R

Robert Aldwinckle

2) Attempted Regsvr32 digest.dll:
<<Regsvr32 digest.dll "digest.dll was loaded but the DllRegisterServer entry
point was not found.

Denis,

We're going in circles. I already explained that that command cannot
work because there is no DllRegisterServer entry point in that module.
However, there is a DllInstall entry point there. If you would like to try
re-registering it manually issue the command:

regsvr32 /i /n digest.dll

Do that in the correct directory in case it matters.
Remember, though, that you have already tried this and found that it
resulted in an error code which made me think that you could have
a problem with some of your RAM.

4) Attempted to delete desktop digest.dll:

Is that the one that you registered?
Which one is msinfo32 showing?

You can't delete certain modules which are in use by the OS.
Your options are to do it by booting into DOS (not Windows),
booting a different OS with access to the first one's file system,
or using the wininit mechanism.

I don't know but I will guess that the sfc tool can be used to set
up the latter. Also it is implied that the sfc tool can be used to
choose the replacement automatically but if that is not the case
you should use the DLL Help Database to find out which .cab
file to use as your source.

Here are some excerpts from previous posts about those details
which may help.

<excerpt>
Try posting about that in a newsgroup which specializes in your OS.

FWIW my understanding is that your sfc command can automatically
show you which .cab file to use. Extract is only needed when you
are doing something non-standard (or when your OS doesn't give you
any alternative.)

Hmm... here's a caveat and some links about the command

<title>KB192832 - System File Checker Tool Extracts Incorrect File Versions</title>

(MSKB Boolean search for
sfc AND kbwin98search
)
</excerpt>


I tried the steps in Article 221863: rename wininit.exe -

If that is what you really did and not a typo for wininit.ini
read the article again and fix your mistake.

The implementation for renaming system files is completely different
in NTx. Win9x uses wininit.ini; NTx uses the registry value.

See this article for more information:

<title>KB191096 - PRB: Multiple "System Files Are Out of Date" Errors</title>

(MSKB Boolean search for
wininit AND PendingFileRenameOperations
)

To add to the list of known sources of interference they should have
mentioned Anti-Virus scanner.


This article explains what wininit.exe is used for:

<title>KB140570 - HOWTO: Move Files That Are Currently in Use</title>

(MSKB Boolean search for
"wininit.exe"
)
</excerpt>


Good luck

Robert
 
D

den

Robert said:
Denis,

We're going in circles. I already explained that that command cannot
work because there is no DllRegisterServer entry point in that
module.
However, there is a DllInstall entry point there. If you would
like to try re-registering it manually issue the command:

regsvr32 /i /n digest.dll

Do that in the correct directory in case it matters.
Remember, though, that you have already tried this and found that it
resulted in an error code which made me think that you could have
a problem with some of your RAM.



Is that the one that you registered?
Which one is msinfo32 showing?

You can't delete certain modules which are in use by the OS.
Your options are to do it by booting into DOS (not Windows),
booting a different OS with access to the first one's file system,
or using the wininit mechanism.

I don't know but I will guess that the sfc tool can be used to set
up the latter. Also it is implied that the sfc tool can be used to
choose the replacement automatically but if that is not the case
you should use the DLL Help Database to find out which .cab
file to use as your source.

Here are some excerpts from previous posts about those details
which may help.

<excerpt>
Try posting about that in a newsgroup which specializes in your OS.

FWIW my understanding is that your sfc command can automatically
show you which .cab file to use. Extract is only needed when you
are doing something non-standard (or when your OS doesn't give you
any alternative.)

Hmm... here's a caveat and some links about the command

<title>KB192832 - System File Checker Tool Extracts Incorrect File
Versions</title>

(MSKB Boolean search for
sfc AND kbwin98search
)
</excerpt>




If that is what you really did and not a typo for wininit.ini
read the article again and fix your mistake.

The implementation for renaming system files is completely different
in NTx. Win9x uses wininit.ini; NTx uses the registry value.

See this article for more information:

<title>KB191096 - PRB: Multiple "System Files Are Out of Date"
Errors</title>

(MSKB Boolean search for
wininit AND PendingFileRenameOperations
)

To add to the list of known sources of interference they should have
mentioned Anti-Virus scanner.


This article explains what wininit.exe is used for:

<title>KB140570 - HOWTO: Move Files That Are Currently in Use</title>

(MSKB Boolean search for
"wininit.exe"
)
</excerpt>


Good luck

Robert
Robert,

Many thanks for this. Not quite there yet. Have discovered a very useful
KB 207132: How Regsvr32.exe Registers and Unregisters COM DLLs

This both describes the process and provides a script for trouble shooting.
Would appreciate it if you could please clarify a couple of points about
executing trouble shooting script <<Register.cpp>>:

1) Presume <<Register.cpp>> is placed in c:\windows\system\ together with
Regsvr32.exe and *.dlls?
2) How do you ensure test mode and that the <<Register.cpp>> script gets
called instead of the usual <<??>> used with standard register and
unregister process?

In other words, filling in the additional steps needed for "building the
application and using it to register or unregister your COM DLL" would be
extremely useful. Thanks again for all your help. Hope KB 207132 is of
interest to you too.

Denis
 
R

Robert Aldwinckle

....
Robert,

Many thanks for this. Not quite there yet. Have discovered a very useful
KB 207132: How Regsvr32.exe Registers and Unregisters COM DLLs

This both describes the process and provides a script for trouble shooting.
Would appreciate it if you could please clarify a couple of points about
executing trouble shooting script <<Register.cpp>>:

1) Presume <<Register.cpp>> is placed in c:\windows\system\ together with
Regsvr32.exe and *.dlls?
2) How do you ensure test mode and that the <<Register.cpp>> script gets
called instead of the usual <<??>> used with standard register and
unregister process?

In other words, filling in the additional steps needed for "building the
application and using it to register or unregister your COM DLL" would be
extremely useful.

That part of the article you found addresses C++ programmers.
Register.cpp is a C++ source code module, not a "script".
It would need to be compiled and linked... ;)
Frankly I don't see any advantage to using it over regsvr32.exe

Here is a more relevant article for end-users of regsvr32:

Thanks again for all your help. Hope KB 207132 is of
interest to you too.

Denis


The additional background information at the beginning of the article
is interesting, yes. Thank you.


Robert
---
 
D

den

Robert said:
...

That part of the article you found addresses C++ programmers.
Register.cpp is a C++ source code module, not a "script".
It would need to be compiled and linked... ;)
Frankly I don't see any advantage to using it over regsvr32.exe

Here is a more relevant article for end-users of regsvr32:

<title>KB249873 - Explanation of Regsvr32 Usage and Error



The additional background information at the beginning of the article
is interesting, yes. Thank you.


Robert
---

Robert,

Many thanks for this. Because of all the time and effort you have already
kindly put into seeking a resolution - I thought it best to carefully review
everything before replying. I appreciate there is a point at which we will
have done everything we can. I'm just rather hoping that a final review of
the tests you suggested might just unearth that missing link!

PROBLEM : IE Repair cannot complete cycle because of problem with DllInstall

TESTS:

1) Regsvr32 /I /n digest.dll

- digest.dll loaded
- problem no entry point for DllRegisterServer

2) Control tests with other 2 *.dlls in Section 500

- wininet.dll (success)
- urlmon.dll (success)

Note: Checked registry and only:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx\
i.e. there is no \500

3) Ran comparative *.dll version tests against Fixie.inf/Dll Help.

a) 6 mismatches where newer version corresponds with neither Fixie.inf or
Dll Help:

- browseui.dll (6.00.2800.1400) (6.00.2800.1100-)
- mshtml.dll (6.00.2800.1400) (6.00.2800.1100-)
- shdocvw.dll (6.00.2800.1400) (6.00.2800.1100-)
- shlwapi.dll (6.00.2800.1400) (6.00.2800.1100-)
- urlmon.dll (6.00.2800.1400) (6.00.2800.1100-)
- wininet.dll (6.00.2800.1405) (6.00.2800.1100-)

Note: No changes made yet as wanted to check whether:

- change necessary?
- can copy all (6.00.2800.1100-) files from laptop - and install afresh - or
need to download?

b) Dependency Walker records the expected presence of 3 non-existent XL
files:

- apphelp.dll
- userenv.dll
- uxtheme.dll

CONCLUSION : There is definitely a problem with the DllInstall function with
digest.dll. This is due to their being no entry point for
DllRegisterServer. What is less clear is whether anything can be done to
edit and fix this? KB articles seem to suggest that this might be possible
using C++. << Frankly I don't see any advantage to using it [C++] over
regsvr32.exe>> seems to suggest that you might know a way of editing and
fixing dll entry points etc without resort to C++? If there is a way of
using Regsvr32.exe and Dependency Walker to fix the entry point issue etc
without resort to C++ - then that would be brilliant! Once again, thanks
for all your help.

Denis
 
R

Robert Aldwinckle

1) Regsvr32 /I /n digest.dll
- digest.dll loaded
- problem no entry point for DllRegisterServer

Oops. Evidently those switches have an order dependency.
Otherwise there should have been no mention of DllRegisterServer
because that is what the /n switch is telling it explicitly to bypass.

The KB249873 article documents them in the order:
regsvr32 /n /i digest.dll
not the order that I gave (off the top of my head.)
Also note that you have capitalized the /i switch.
If there are such bizarre dependencies with order perhaps
there are also weird variations due to case.


The versions of the other modules look fine and I wouldn't worry
about the ones that are missing. Probably they don't apply to your OS.


Good luck

Robert
---


den said:
Robert said:
...

That part of the article you found addresses C++ programmers.
Register.cpp is a C++ source code module, not a "script".
It would need to be compiled and linked... ;)
Frankly I don't see any advantage to using it over regsvr32.exe

Here is a more relevant article for end-users of regsvr32:

<title>KB249873 - Explanation of Regsvr32 Usage and Error



The additional background information at the beginning of the article
is interesting, yes. Thank you.


Robert
---

Robert,

Many thanks for this. Because of all the time and effort you have already
kindly put into seeking a resolution - I thought it best to carefully review
everything before replying. I appreciate there is a point at which we will
have done everything we can. I'm just rather hoping that a final review of
the tests you suggested might just unearth that missing link!

PROBLEM : IE Repair cannot complete cycle because of problem with DllInstall

TESTS:

1) Regsvr32 /I /n digest.dll

- digest.dll loaded
- problem no entry point for DllRegisterServer

2) Control tests with other 2 *.dlls in Section 500

- wininet.dll (success)
- urlmon.dll (success)

Note: Checked registry and only:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx\
i.e. there is no \500

3) Ran comparative *.dll version tests against Fixie.inf/Dll Help.

a) 6 mismatches where newer version corresponds with neither Fixie.inf or
Dll Help:

- browseui.dll (6.00.2800.1400) (6.00.2800.1100-)
- mshtml.dll (6.00.2800.1400) (6.00.2800.1100-)
- shdocvw.dll (6.00.2800.1400) (6.00.2800.1100-)
- shlwapi.dll (6.00.2800.1400) (6.00.2800.1100-)
- urlmon.dll (6.00.2800.1400) (6.00.2800.1100-)
- wininet.dll (6.00.2800.1405) (6.00.2800.1100-)

Note: No changes made yet as wanted to check whether:

- change necessary?
- can copy all (6.00.2800.1100-) files from laptop - and install afresh - or
need to download?

b) Dependency Walker records the expected presence of 3 non-existent XL
files:

- apphelp.dll
- userenv.dll
- uxtheme.dll

CONCLUSION : There is definitely a problem with the DllInstall function with
digest.dll. This is due to their being no entry point for
DllRegisterServer. What is less clear is whether anything can be done to
edit and fix this? KB articles seem to suggest that this might be possible
using C++. << Frankly I don't see any advantage to using it [C++] over
regsvr32.exe>> seems to suggest that you might know a way of editing and
fixing dll entry points etc without resort to C++? If there is a way of
using Regsvr32.exe and Dependency Walker to fix the entry point issue etc
without resort to C++ - then that would be brilliant! Once again, thanks
for all your help.

Denis
 
D

den

Robert said:
1) Regsvr32 /I /n digest.dll

- digest.dll loaded
- problem no entry point for DllRegisterServer

Oops. Evidently those switches have an order dependency.
Otherwise there should have been no mention of DllRegisterServer
because that is what the /n switch is telling it explicitly to
bypass.

The KB249873 article documents them in the order:
regsvr32 /n /i digest.dll
not the order that I gave (off the top of my head.)
Also note that you have capitalized the /i switch.
If there are such bizarre dependencies with order perhaps
there are also weird variations due to case.


The versions of the other modules look fine and I wouldn't worry
about the ones that are missing. Probably they don't apply to your
OS.


Good luck

Robert
---


den said:
Robert said:
...
Robert,

Many thanks for this. Not quite there yet. Have discovered a very
useful KB 207132: How Regsvr32.exe Registers and Unregisters COM
DLLs

This both describes the process and provides a script for trouble
shooting. Would appreciate it if you could please clarify a couple
of points about executing trouble shooting script <<Register.cpp>>:

1) Presume <<Register.cpp>> is placed in c:\windows\system\
together with Regsvr32.exe and *.dlls?
2) How do you ensure test mode and that the <<Register.cpp>> script
gets called instead of the usual <<??>> used with standard register
and unregister process?

In other words, filling in the additional steps needed for
"building the application and using it to register or unregister
your COM DLL" would be extremely useful.

That part of the article you found addresses C++ programmers.
Register.cpp is a C++ source code module, not a "script".
It would need to be compiled and linked... ;)
Frankly I don't see any advantage to using it over regsvr32.exe

Here is a more relevant article for end-users of regsvr32:

<title>KB249873 - Explanation of Regsvr32 Usage and Error
Messages</title>


Thanks again for all your help. Hope KB 207132 is of
interest to you too.

Denis


The additional background information at the beginning of the
article is interesting, yes. Thank you.


Robert
---

Robert,

Many thanks for this. Because of all the time and effort you have
already kindly put into seeking a resolution - I thought it best to
carefully review everything before replying. I appreciate there is
a point at which we will have done everything we can. I'm just
rather hoping that a final review of the tests you suggested might
just unearth that missing link!

PROBLEM : IE Repair cannot complete cycle because of problem with
DllInstall

TESTS:

1) Regsvr32 /I /n digest.dll

- digest.dll loaded
- problem no entry point for DllRegisterServer

2) Control tests with other 2 *.dlls in Section 500

- wininet.dll (success)
- urlmon.dll (success)

Note: Checked registry and only:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx\
i.e. there is no \500

3) Ran comparative *.dll version tests against Fixie.inf/Dll Help.

a) 6 mismatches where newer version corresponds with neither
Fixie.inf or Dll Help:

- browseui.dll (6.00.2800.1400) (6.00.2800.1100-)
- mshtml.dll (6.00.2800.1400) (6.00.2800.1100-)
- shdocvw.dll (6.00.2800.1400) (6.00.2800.1100-)
- shlwapi.dll (6.00.2800.1400) (6.00.2800.1100-)
- urlmon.dll (6.00.2800.1400) (6.00.2800.1100-)
- wininet.dll (6.00.2800.1405) (6.00.2800.1100-)

Note: No changes made yet as wanted to check whether:

- change necessary?
- can copy all (6.00.2800.1100-) files from laptop - and install
afresh - or need to download?

b) Dependency Walker records the expected presence of 3 non-existent
XL files:

- apphelp.dll
- userenv.dll
- uxtheme.dll

CONCLUSION : There is definitely a problem with the DllInstall
function with digest.dll. This is due to their being no entry point
for DllRegisterServer. What is less clear is whether anything can
be done to edit and fix this? KB articles seem to suggest that
this might be possible using C++. << Frankly I don't see any
advantage to using it [C++] over regsvr32.exe>> seems to suggest
that you might know a way of editing and fixing dll entry points etc
without resort to C++? If there is a way of using Regsvr32.exe and
Dependency Walker to fix the entry point issue etc without resort to
C++ - then that would be brilliant! Once again, thanks for all
your help.

Denis

Robert,

Thanks for this. Alas, changing switch order hasn't resolved it - just get
a slightly different error message <<DllInstall in digest.dll failed.
Return code was 0xc0000005>> [unable to locate with Dependency Walker]. Btw
"/I" was a typo!

Is there a way one can pinpoint the Entry Point/export
DllRegister/DllUnregister problem and then fix it? Does software exist that
can do the job for novices like me?

Thanks again for your help and patience.

All the best,
Denis
 
R

Robert Aldwinckle

den said:
Robert,

Thanks for this. Alas, changing switch order hasn't resolved it - just get
a slightly different error message <<DllInstall in digest.dll failed.
Return code was 0xc0000005>> [unable to locate with Dependency Walker]. Btw
"/I" was a typo!


Now where have we seen that before? ;)

Are you ready now to try those suggestions I made then? <eg>


Robert
---
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top