S
Sam Jost
Straaaange!!!
Now I installed debug symbols so I can tell what the system is doing
right before failure:
To start I call FaxStartPrintJob() (which happens to be
_WinFaxStartPrintJobA@16, just like expected).
The first thing there is an unnamed call to 7225153F which seems to be
some kind of initialisation since every WinFax*-routine does call this
address first. And this Initialisation is the place where the error
occures:
The first thing it does is check if FXSAPI.dll is loaded and if it is
not (it aint in my case) it calls LoadLibrary to load it (success
there)
Then it loads function pointers from the routines in FXSAPI: FaxAbort,
FaxAccessCheck, FaxClose, [...], FaxPrintCoverPageA,
FaxPrintCoverPageW
so far so good. then it tries to load the address of
FaxRegisterServiceProviderW
and fails to do so.
Funny thing, if I cheat the return code to make him believe the load
call worked the rest of the calls does work nicely and he does send
the fax without problems.
well, I'd conclude that it does load the wrong faxapi.dll, and a quick
search does conclude I got two different kinds on my system:
Verzeichnis von C:\WINDOWS\system32
29.08.2002 14:00 443.392 fxsapi.dll
Verzeichnis von C:\WINDOWS\system32\spool\drivers\w32x86\3
26.03.2003 14:00 451.584 FXSAPI.DLL
Another check, the PrintSdi-Sample does load the older one out of the
windows-dir while my 'real' program does load the other one from the
spooler. And the new one seems to have 'FaxRegisterServiceProviderW'
replaced by 'FaxRegisterServiceProviderExW'.
'PrintSdi.exe': 'C:\WINDOWS\system32\fxsapi.dll'
'bmed.exe': 'C:\WINDOWS\system32\spool\drivers\w32x86\3\FXSAPI.DLL'
Why does it do that? And why is a second defunct fxsapi.dll sitting
there in the spooler dir? It seems the printer install of a network
fax put it there?
Where do I find information about this?
Sam
Now I installed debug symbols so I can tell what the system is doing
right before failure:
To start I call FaxStartPrintJob() (which happens to be
_WinFaxStartPrintJobA@16, just like expected).
The first thing there is an unnamed call to 7225153F which seems to be
some kind of initialisation since every WinFax*-routine does call this
address first. And this Initialisation is the place where the error
occures:
The first thing it does is check if FXSAPI.dll is loaded and if it is
not (it aint in my case) it calls LoadLibrary to load it (success
there)
Then it loads function pointers from the routines in FXSAPI: FaxAbort,
FaxAccessCheck, FaxClose, [...], FaxPrintCoverPageA,
FaxPrintCoverPageW
so far so good. then it tries to load the address of
FaxRegisterServiceProviderW
and fails to do so.
Funny thing, if I cheat the return code to make him believe the load
call worked the rest of the calls does work nicely and he does send
the fax without problems.
well, I'd conclude that it does load the wrong faxapi.dll, and a quick
search does conclude I got two different kinds on my system:
Verzeichnis von C:\WINDOWS\system32
29.08.2002 14:00 443.392 fxsapi.dll
Verzeichnis von C:\WINDOWS\system32\spool\drivers\w32x86\3
26.03.2003 14:00 451.584 FXSAPI.DLL
Another check, the PrintSdi-Sample does load the older one out of the
windows-dir while my 'real' program does load the other one from the
spooler. And the new one seems to have 'FaxRegisterServiceProviderW'
replaced by 'FaxRegisterServiceProviderExW'.
'PrintSdi.exe': 'C:\WINDOWS\system32\fxsapi.dll'
'bmed.exe': 'C:\WINDOWS\system32\spool\drivers\w32x86\3\FXSAPI.DLL'
Why does it do that? And why is a second defunct fxsapi.dll sitting
there in the spooler dir? It seems the printer install of a network
fax put it there?
Where do I find information about this?
Sam