Novell Home

TID101513 (Delinc1) - Problems with Include Files for Delphi

From Developer Community

There are some problems with the declarations of the SDK functions for Pascal/Delphi

See more info in detailed description.


DETAILED DESCRIPTION

  • Return structure for NWScanPhysicalLocksByFile

The return buffers for the function NWScanPhysicalLocksByFile may look different for 16 bit and 32 bit code, since the 32bit DLLs seem to use 32bit padding. This has to be taken care of in the header declaration. This may also depend on the DLL versions used. The correct padding would change the declarations to

TYPE PHYSICAL_LOCK = Record {$IfDef N_ARCH_32} loggedCount : nuint16; {$else} loggedCount : nuint8; {$EndIf} shareableLockCount : nuint16; recordStart : nuint32; recordEnd : nuint32; connNumber : nuint16; taskNumber : nuint16; lockType : nuint8; {$IfDef N_ARCH_32} filler : nuint8; filler2 : nuint16; {$EndIf} End;

PHYSICAL_LOCKS = Record nextRequest : nuint16; numRecords : nuint16; locks : Array[0..31] Of PHYSICAL_LOCK; curRecord : nuint16; reserved : Array[0..7] Of nuint8 End;

Changes are req'd in NWSYNC.INC and NWSYNC.PAS


  • Return structure for NWScanConnectionsUsingFile

The return buffers for the function NWScanConnectionsUsingFile may look different for 16 bit and 32 bit code, since the 32bit DLLs seem to use 32bit padding. This has to be taken care of in the header declaration. The correct padding would change the declarations to

TYPE CONN_USING_FILE = Record connNumber : NWCONN_NUM; taskNumber : nuint16; lockType : nuint8; accessControl : nuint8; lockFlag : nuint8; {$IFDEF N_ARCH_32} filler : nuint8; {$EndIf} End;

CONNS_USING_FILE = Record nextRequest : nuint16; useCount : nuint16; openCount : nuint16; openForReadCount : nuint16; openForWriteCount : nuint16; denyReadCount : nuint16; denyWriteCount : nuint16; locked : nuint8; forkCount : nuint8; connCount : nuint16; connInfo : Array[0..69] Of CONN_USING_FILE End;


Changes affect the NWFILE.INC and NWFILE.H

Problems with Include Files for Delphi

There are some problems with the declarations of the SDK functions for Pascal/Delphi

See more info in detailed description.


DETAILED DESCRIPTION

* Return structure for NWScanPhysicalLocksByFile

The return buffers for the function NWScanPhysicalLocksByFile may look
different for 16 bit and 32 bit code, since the 32bit DLLs seem to use
32bit padding. This has to be taken care of in the header declaration.
This may also depend on the DLL versions used.
The correct padding would change the declarations to

TYPE
PHYSICAL_LOCK = Record
{$IfDef N_ARCH_32}
loggedCount : nuint16;
{$else}
loggedCount : nuint8;
{$EndIf}
shareableLockCount : nuint16;
recordStart : nuint32;
recordEnd : nuint32;
connNumber : nuint16;
taskNumber : nuint16;
lockType : nuint8;
{$IfDef N_ARCH_32}
filler : nuint8;
filler2 : nuint16;
{$EndIf}
End;

PHYSICAL_LOCKS = Record
nextRequest : nuint16;
numRecords : nuint16;
locks : Array[0..31] Of PHYSICAL_LOCK;
curRecord : nuint16;
reserved : Array[0..7] Of nuint8
End;

Changes are req'd in NWSYNC.INC and NWSYNC.PAS

----------------------------------------------------------------

* Return structure for NWScanConnectionsUsingFile

The return buffers for the function NWScanConnectionsUsingFile may
look different for 16 bit and 32 bit code, since the 32bit DLLs seem
to use 32bit padding. This has to be taken care of in the header declaration.
The correct padding would change the declarations to

TYPE
CONN_USING_FILE = Record
connNumber : NWCONN_NUM;
taskNumber : nuint16;
lockType : nuint8;
accessControl : nuint8;
lockFlag : nuint8;
{$IFDEF N_ARCH_32}
filler : nuint8;
{$EndIf}
End;

CONNS_USING_FILE = Record
nextRequest : nuint16;
useCount : nuint16;
openCount : nuint16;
openForReadCount : nuint16;
openForWriteCount : nuint16;
denyReadCount : nuint16;
denyWriteCount : nuint16;
locked : nuint8;
forkCount : nuint8;
connCount : nuint16;
connInfo : Array[0..69] Of CONN_USING_FILE
End;


Changes affect the NWFILE.INC and NWFILE.H

--devsup

Novell® Making IT Work As One

© 2008 Novell, Inc. All Rights Reserved.