On 06 May 2015, at 12:29 , Nicolai Hess <nicolaihess@web.de> wrote:



2015-05-06 12:10 GMT+02:00 phil@highoctane.be <phil@highoctane.be>:
I've loaded your package.

A prerequisite is to load OS-Window to make it work.

I've got the DLL call working nicely and the nativeboost with the structure freezing.

This is because you have a recursive datastructure description, but acutually the IP_ADAPTER_INFO structure is not recursive:

PIP_ADAPTER_INFO class >>fieldsDex
^ #(
 PIP_ADAPTER_INFO  nextVariable;
  DWORD                   ComboIndex;
  CHAR                    AdapterName;
  CHAR                    Description;
....)

The "nextVariable" should be a pointer to the structure.

from MSDN:

 struct _IP_ADAPTER_INFO {
  struct _IP_ADAPTER_INFO  *Next;   "<- pointer"
  DWORD                   ComboIndex;
  char                    AdapterName[MAX_ADAPTER_NAME_LENGTH + 4];
  char                    Description[MAX_ADAPTER_DESCRIPTION_LENGTH + 4];
  UINT                    AddressLength;

....

Also, the pOutBufLen parameter to GetAdaptorInfo is supposed to be a pointer to an unsigned long, holding the size of the buffer.
Setting that to an int in the NB declaration, will cause all sorts of trouble...

Cheers,
Henry