Wilson WindowWare Tech Support

WinBatch WinBatch+Compiler WebBatch
Home | Tech Database | Tech BBS | White Papers | Purchase


DllCall to WHLLAPI.DLL

Keywords:    WHLLAPI.DLL

Question:

I am running WinBatch 97D (32 bit) on Windows 95

I am trying to use the WHLLAPI.DLL to connect to a mainframe instance which uses NetSoft NS/Elite Plus 2.2.

The below code gives me a window that is named "INTERNAL DYNALLOC ERROR," and then within this window says "Tag Overwrite 2."

Any suggestions on what my problem is?

	; Load the DLL to NetSoft Mainframe Connection
	dllhandle = DllLoad("c:\Program Files\NetSoft\Elite\UI\whllapi.dll")

	; Just to let me know I got it
	message("Hello",dllhandle)

	; Windows HLLAPI version number
	wVersion = 1.1

	; String containing vendor of the HLLAPI DLL
	sdescript = ''

	result = DllCall(dllhandle,word:"WinHLLAPIStartup",word:wVersion,lpstr:sdescript)

Answer:

Documentation for the function might help, but it probably is that sdescript is a output parameter. Thay have to be handled differently. In addition it is *very* unusual for word parameters to be used in Win32 - but I think you would have also received a stack error if that was the case. See below for my best guess given no function documentation.
	; Load the DLL to NetSoft Mainframe Connection
	dllhandle = DllLoad("c:\Program Files\NetSoft\Elite\UI\whllapi.dll")

	; Just to let me know I got it
	message("Hello",dllhandle)

	; Windows HLLAPI version number
	wVersion = 1.1

	; String containing vendor of the HLLAPI DLL
	sdescript = ''

	bb=BinaryAlloc(10000)
	BinaryEODSet(bb,10000)

	BinaryPokeStr(bb,0,sdescript)


	result=DllCall(dllhandle,word:"WinHLLAPIStartup",word:wVersion,lpbinary:bb)

	sdescript=BinaryPeekStr(bb,0)
	BinaryFree(bb)
	Message("sdescript is",sdescript)

Article ID:   W12717
Filename:   DllCall to WHLLAPI.DLL.txt