OS/2, eCS & ArcaOS - Technical > Programming

Presentation Manager - About PM DLL's

(1/3) > >>

Martin Iturbide:
Hi

I'm trying to document a little bit more about Presentation Manager on EDM/2. This is also focused for me to understand more how are the Presentation Manager DLL's structured with the hope to have more documentation.   First I'm trying to list which are the files that are part of PM, so I'm comparing what OSFree says is the PM API.

But I still have some question about some PM DLL's.

For example, if you take the "WinInitialize" function, you can see that is included in two DLLs, PMMerge.DLL and PMWIN.DLL.

I had been told that this is because some DLL are forwarders to other DLL, in this case it may mean (I guess on my limited understanding) that the source code of the function is included on PMMERGE.DLL and PMWIN.DLL just forward the application asking for "WinInitialize".

Maybe this is a very basic question but, which is the value of DLL forwarders on this case? does PMWIN.DLL has some intelligence (source code) when refereeing to "WinInitialize"? or does all the work is done on PMMERGE.DLL?

I really do not know if some DLL Forwarders does not have any logic inside and just send all the work to PMMERGE? or if I'm completely misunderstanding how the DLLs works on PM and on OS/2.

Regards.

Dave Yeo:
Not an expert and just guessing but at one time the PM was 16 bit so programs written for OS/2 1.x may call different DLLs and the call may be thunked into 32 bit and then forwarded to the 32 bit DLL.

Martin Iturbide:
Thanks for the reply Dave. Your guessing for a reason to this "forwarders" is very valid.

I want to try to support a thesis that PMWin.DLL is a forward that is has not logic on it, and that can be easily cloned/replaced since PMMerge.DLL is the one that does all the work. but I don't know for sure how to support this thesis.

1) I checked and it looks that all the functions pointed on "PMWIN.DLL" are included on "PMMERGE.DLL"
2) If I check PMWin.DLL with PMDLL application, it points to PMMERGE.DLL

Any thoughts?

Dave Yeo:
I was thinking it may have had logic to thunk the code, meaning translating from 16 bit to 32 bit and back but looking closer it does seem to be nothing but a forwarder dll with pmmerge having the 16bit entry points. Some programs must have been linked against pmwin instead of pmmerge and the main reason I can think of is OS/2 v1.x.
Use exehdr to examine them and other executables which includes DLLs, exehdr comes with the toolkit and you'll need to pipe it through something like less.

Dave Yeo:
I found some OS/2 1.x PM applications (actually dual OS/2 and Win 3.0, they run under OS/2 ver 4 but hang eCS 2.1) and they use PMWIN.DLL.

Navigation

[0] Message Index

[#] Next page

Go to full version