Novell is now a part of Micro Focus

Developer Pointers

Articles and Tips: article

01 Jan 1998


Novell Technical Information Documents

All of the Technical Information Documents (TIDs) discussed below are available at the following locations:

  • The Novell Technical Solutions Database on CompuServe (GO NTID)

  • The DeveloperNet Support World Wide Web site (http://devsup.novell.com)

  • The DeveloperNet Support Bulletin Board (801-861-5836)

DevNotes C3PO Delphi 2.0 Sample


Author:

RL

DocumentID:

TID101425

Date:

10/29/97 4:53 PM

Alert status:

Yellow

Information type:

Issue

Readme for:

GW5C3X21.EXE

Novell productclass:

NetWare API

Novell product andversion:

NetWare SDK

Category:

None

Abstract

This is the sample application that is published in the March issue of Developer Notes . This sample has a few additions to the Developer Notes sample. It closes down with GroupWise shutdown.

It includes the documentation, completed sample code, and reg file--everything that is needed to make the C3PO work with GroupWise 5.

File Information

Self-Extracting File Name: GW5C3X21.EXE


Files Included:

Size

Date

Time

GW5C3X21.TXT

(this file)

SERVOBJ.PAS

7214

10-26-97

1:08 AM

REGEXE.REG

980

10-26-97

1:08 AM

PROJECT1.EXE

221184

10-26-97

1:09 AM

PROJECT1.DPR

250

10-26-97

1:10 AM

EXESRV.PAS

810

10-26-97

1:10 AM

EXESRV.DFM

970

10-26-97

1:10 AM

C3PODOC.WPD

27497

10-26-97

1:10 AM

C3POCALC.PAS

30723

10-26-97

1:10 AM

GW5C3X21.MSG

322

10-26-97

1:10 AM

Return Codes from NDS APIs Not Necessarily Negative


Author:

KB

DocumentID:

TID101415

Date:

10/13/97 6:56 PM

Alert status:

Yellow

Information type:

Issue

Readme for:

XNDSKBG.EXE

Novell productclass:

NetWare API

Novell product andversion:

NetWare SDK

Category:

None

Abstract

Novell has long preached the idea that NDS error codes returned from NDS APIs will be negative. Under true 32-bit environments, this is not necessarily true.

Detailed Description

Novell has long expounded that to check the return codes from an NDS API you should use the following:


if (ccode < 0)

indicating that all the possible error codes returned from an NDS API will be negative. This is true only concerning errors from DS.NLM, which will be in the range of -300s or -600s. It is also possible to get positive error codes from the NetWare Requester, Clib and NetWare OS. These error codes vary from positive single digit to 88xx and 89xx hexadecimal values.

When using NDS APIs, like all other NetWare APIs, completion codes should be checked as follows:


if (ccode != 0) or if (ccode), assuming a completion code of 0 issuccessful.

These positive return values have been verified on true 32-bit platforms where the first byte of a 32-bit variable is not set to FFFF

Note: All error codes returned from DS.NLM have the FFFF set andwillbe negative. Error codes returned from other sources most likely will not.

File Information

Self-Extracting File Name: XNDSKBG.EXE


Files Included:

Size

Date

Time

XNDSKBG.TXT

(this file)

XNDSKBG.MSG

160

10-10-97

6:23 AM

Sample Admin API (VB5 App)


Author:

RL

DocumentID:

TID101420

Date:

10/20/97 2:31 PM

Alert status:

Yellow

Information type:

Issue

Readme for:

GW5XOB34.EXE

Novell productclass:

NetWare API

Novell product andversion:

NetWare SDK

Category:

None

Abstract

This sample application is a duplicate of GW5xOB30, except this sample is written in VB5 instead of Delphi.

You need to be logged in to the server as admin for this application to work.

File Information

Self-Extracting File Name: GW5XOB34.EXE


Files Included:

Size

Date

Time

GW5XOB34.TXT

(this file)

ADMINAPP.VBW

44

10-20-97

2:31 PM

ADMIN.FRM

10812

10-20-97

2:31 PM

ADMINAPP.EXE

18944

10-20-97

2:31 PM

ADMINAPP.VBP

626

10-20-97

2:31 PM

GW5XOB34.TXT

1882

10-20-97

2:31 PM

GW5XOB34.MSG

195

10-20-97

2:31 PM

Brainshare Document Management Sample


Author:

RL

DocumentID:

TID101421

Date:

10/20/97 2:37 PM

Alert status:

Yellow

Information type:

Issue

Readme for:

GW5XOB43.EXE

Novell productclass:

NetWare API

Novell product andversion:

NetWare SDK

Category:

None

Abstract

This sample code and the step samples are from the BrainShare Document Management CodeBreak (D02D) used in Nice and in Australia. This sample is a query sample for document libraries. The zip file includes the /final, /step1, and /step2 directories. If you are using pkunzip from DOS use the -d options to retain the directories.

File Information

Self-Extracting File Name: GW5XOB43.EXE


Files Included:

Size

Date

Time

W5XOB43.TXT

(this file)

DOC.ZIP

858999

10-20-97

2:36 PM

GW5XOB43.TXT

1911

10-20-97

2:36 PM

GW5XOB43.MSG

331

10-20-97

2:36 PM

Get Last Sent Message Sample (Delphi 3)


Author:

RL

DocumentID:

TID101422

Date:

10/21/97 9:08 AM

Alert status:

Yellow

Information type:

Issue

Readme for:

GW5XOB35.EXE

Novell productclass:

NetWare API

Novell product andversion:

NetWare SDK

Category:

None

Abstract

This sample shows how to get the last sent message by doing a query and then sorting the message list.

File Information

Self-Extracting File Name: GW5XOB35.EXE


Files Included:

Size

Date

Time

GW5XOB35.TXT

(this file)

SENTITMS.PAS

5908

10-21-97

9:07 AM

SENTITMS.DFM

1500

10-21-97

9:07 AM

ITEMSENT.DPR

291

10-21-97

9:07 AM

LASTMSG.DFM

1058

10-21-97

9:07 AM

ITEMSENT.EXE

257536

10-21-97

9:07 AM

LASTMSG.PAS

1706

10-21-97

9:07 AM

GW5XOB35.MSG

104

10-21-97

9:07 AM

How To Expand NDS Objects to UNC Paths


Author:

HW

DocumentID:

TID101412

Date:

10/9/97 4:12 PM

Alert status:

Yellow

Information type:

Issue

Readme for:

VBDSPATH.EXE

Novell productclass:

NetWare API

Novell product andversion:

NetWare SDK

Category:

None

Abstract

This TID shows how to extract UNC path information from NDS volume and directory map objects. It does this by implementing a DS browser dialog that lets you select files by double clicking and expanding objects in a tree view, much as you would in NWAdmin. Sources are in Visual Basic 4.

Detailed Description

The sample uses the DeveloperNet 2000 ActiveX controls to build an NDS tree view that displays volume and directory map objects. Expanding these objects will allow the user to browse subdirectories and files. The dialog can be used as a lookup when entering UNC path information, such as for application objects.

File Information

Self-Extracting File Name: VBDSPATH.EXE


Files Included:

Size

Date

Time

VBDSPATH.TXT

(this file)

VBPATH.VBP

634

10-7-97

5:12 AM

TREE.ICO

1078

10-7-97

5:12 AM

PATH.FRM

19045

10-7-97

5:12 AM

DECLARE.BAS

2641

10-7-97

5:12 AM

FILE.ICO

1078

10-7-97

5:12 AM

RESOLVER.CLS

3249

10-7-97

5:12 AM

CLOSED.ICO

1078

10-7-97

5:12 AM

OPEN.ICO

1078

10-7-97

5:12 AM

DRIVER.BAS

1950

10-7-97

5:12 AM

VBDSPATH.MSG

290

10-7-97

5:12 AM

Accessing NetWare Resources from an NT Service


Author:

JB

DocumentID:

TID101423

Date:

10/24/97 10:55 AM

Alert status:

Yellow

Information type:

Issue

Readme for:

NWNTSRVC.EXE

Novell productclass:

NetWare API

Novell product andversion:

NetWare SDK

Category:

None

Abstract

With the advent of the IntranetWare Client for Windows NT 4.11, the mechanism for sharing/delimiting connections used by the logged-on user and services was changed. This is to explain the way to access resources on NetWare servers from an NT service with this new client.

Detailed Description

Starting with the IntranetWare Client for Windows NT 4.11, services no longer share connections with each other or the logged-on user. Each service (and specifically each child process of a service) has its own set of connections, requiring the service and every one of its children to establish private connections to servers from which they want to access resources. The attached sample demonstrates this process. The only further restriction that should be considered is that services should not attempt to create drive letters in order to access files on a server. UNC names should be used instead, due to the global (to the local system) nature of drive letters. (They are actually symbolic link objects, and all objects are globally visible by definition.)

File Information

Self-Extracting File Name: NWNTSRVC.EXE


Files Included:

Size

Date

Time

NWNTSRVC.TXT

(this file)

SERVICE.MC

1172

10-24-97

6:17 AM

SERVICE.C

12386

10-24-97

6:17 AM

NWNTSRVC.MSG

274

10-24-97

6:17 AM

How To Get the ServerUp Time in the 3x Environment from a Client


Author:

MM

DocumentID:

TID101429

Date:

11/7/97 3:27 PM

Alert status:

Yellow

Information type:

Issue

Readme for:

IMMUPTIM.EXE

Novell productclass:

NetWare API

Novell product andversion:

NetWare SDK

Category:

None

Abstract

Currently the only client API on NetWare 3x that will return the ServerUp time is NWGetObjectDiskSpaceLeft. The third output argument is systemElapsedTime.

File Information

Self-Extracting File Name: IMMUPTIM.EXE


Files Included:

Size

Date

Time

IMMUPTIM.TXT

(this file)

IMMUPTIM.MSG

152

10-26-97

1:22 AM

How To Add a Print Queue object


Author:

JB

DocumentID:

TID101424

Date:

10/24/97 10:55 AM

Alert status:

Yellow

Information type:

Issue

Readme for:

IPRINTQ.EXE

Novell productclass:

NetWare API

Novell product andversion:

NetWare SDK

Category

None

Abstract

This TID details the steps necessary to add an NDS print queue object. Note that the contents are rather abstract so you can it use it with the SDK or with other tools, such as the ActiveX controls.

Detailed Description

Creating a queue object in NDS involves the following steps:

1. Name the queue 2. Select a volume to hold the queue files 3. Apply the default ACL template

The first step is straightforward. You add the name of the queue as a mandatory attribute. You will also want to specify the "Object Class" attribute to be "Queue".

Let's have a look at the "Queue Directory" attribute. This is where the queue files are placed.

In NWAdmin, you would just select a Volume. But, when adding the queue object yourself, you have to do the work that NWAdmin hides from the user.

First, you want to select a volume object for the queue. This will be the (optional) "Volume" attribute. The actual directory for queue files resides under a hidden directory "Queues" under the root of the volume. Furthermore, the system will add another subdirectory dedicated to our queue object.

The name of the latter directory is formed from a queue ID. If the volume resides on the server on which you created the queue ("Host Server"), the queue directory will be named by the local object ID for the queue. Otherwise, an ID is generated artificially.

Normally, the distinguished name of the volume and the subdirectory should suffice, but for historical reasons, the physical volume name is needed as well. You can get it by reading the "Host Resource Name" of the volume.

Thus, the full name of the queue directory is <volume name<:QUEUES\<queue id>.QDR. This is also what you observe when reading out the attribute later. The queue ID, obviously, is generated only after the queue object is added, so you cannot supply it. Consequently, the content for the "Queue Directory" attribute is just <volume name<:QUEUES.

Finally, you have to enforce the default ACL template. It grants supervisory rights to the object for the creator, and read rights to all attributes for any authenticated object, i.e. [Root].

As a common sense measure, the creator object should be made both a member of the "Operator" and the "User" attribute of the queue. NWAdmin also makes the creation context a "User" of the queue. This makes the queue usable in the current part of the tree.

There are some interesting details here in the way NWAdmin creates a queue object. In addition to the above, it will also attempt to grant read rights to an object named "EVERYONE" located in the same container as the queue object. This is to allow bindery users to access the queue, should the current context be a bindery emulation context.

File Information

Self-Extracting File Name: IPRINTQ.EXE


Files Included:

Size

Date

Time

IPRINTQ.TXT

(this file)

IPRINTQ.MSG

205

10-24-97

6:20 AM

NWScanVolDiskRestrictions2 Not Fully Functional


Author:

JB

DocumentID:

TID101414

Date:

10/9/97 4:12 PM

Alert status:

Yellow

Information type:

Issue

Readme for:

SCVOLDSK.EXE

Novell productclass:

NetWare API

Novell product andversion:

NetWare SDK

Category:

None

Abstract

Although designed to allow for 16 returned restrictions per iteration, the current implementation inhibits this.

Detailed Description

The internally allocated buffer to get the NCP reply from the server fits only 12 restrictions, and depending on the OS, the function returns either a buffer-too-small error or garbage in the last 4 entries . This is to be corrected in a future revision of the library (current assumption is SDK Vol. 14). Using NWScanVolDiskRestrictions does not help as it maps to NWScanVolDiskRestrictions2.

File Information

Self-Extracting File Name: SCVOLDSK.EXE


Files Included:

Size

Date

Time

SCVOLDSK.TXT

(this file)

SCVOLDSK.MS

113

10-7-97

5:13 AM

ActiveX: Selecting Objects from Multiple NDS Trees


Author:

HW

DocumentID:

TID101413

Date:

10/9/97 4:12 PM

Alert status:

Yellow

Information type:

Issue

Readme for:

VBSELECT.EXE

Novell productclass:

NetWare API

Novell product andversion:

NetWare SDK

Category:

None

Abstract

This sample supersedes the XSelect sample. It implements a simple object selector that can be used to browse an NDS tree for an object of any class.

Detailed Description

The current release of the ActiveX controls exposes a problem when being used with Delphi 3, in that Delphi is not able to translate all of the interfaces of the session control into a VCL. Thus, the collection methods of ConnectedTrees, ConnectedServers, and ConnectedVolumes cannot be used in a straightforward way.

Note: This limitation does not affect the use of the controls withVisualBasic.

Self-Extracting File Name: VBSELECT.EXE


Files Included:

Size

Date

Time

VBSELECT.TXT

(this file)

VBSELECT.VBP

680

10-7-97

5:12 AM

TREE.ICO

1078

10-7-97

5:12 AM

NWSELECT.CLS

2943

10-7-97

5:12 AM

MODWIN32.BAS

1939

10-7-97

5:12 AM

VBSELECT.MSG

151

10-7-97

5:12 AM

An NDPS Sample To Create a Printer Agent and Install It on the Workstation


Author:

MM

DocumentID:

TID101428

Date:

11/5/97 2:41 PM

Alert status:

Yellow

Information type:

Issue

Readme for:

XMMDPA.EXE

Novell productclass:

NetWare API

Novell product andversion:

NetWare SDK

Category:

None

Abstract

An NDPS sample code for creating a printer agent and installing it on the workstation.

File Information

Self-Extracting File Name: XMMDPA.EXE


Files Included:

Size

Date

Time

XMMDPA.TXT

(this file)

NEWPA.EXE

98304

10-26-97

1:17 AM

NEWPA.CPP

22473

10-26-97

1:17 AM

XMMDPA.MSG

87

10-26-97

1:17 AM

Sample for Using NIOS API To Hook int21


Author:

MM

DocumentID:

TID101418

Date:

10/14/97 4:18 PM

Alert status:

Yellow

Information type:

Issue

Readme for:

XMMNIOS.EXE

Novell productclass:

NetWare API

Novell product andversion:

NetWare SDK

Category:

None

Abstract

Client32 was released before Microsoft published their specification for an FSD(file system driver) that conformed to Windows 95 IFS manager, and hence, it is not currently implemented as an FSD. A workaround for this is to use NIOS API to hook int21 for file I/O before Client32.

File Information

Self-Extracting File Name: XMMNIOS.EXE


Files Included:

Size

Date

Time

XMMNIOS.TXT

(this file)

WAS.BAT

63

10-14-97

4:06 PM

SAMPLEC.OBJ

8575

10-14-97

4:06 PM

SAMPLEC.NLM

1282

10-14-97

4:06 PM

SAMPLEC.MAP

2207

10-14-97

4:06 PM

SAMPLEC.LNK

428

10-14-97

4:06 PM

SAMPLEC.IMP

124

10-14-97

4:06 PM

SAMPLEC.H

1354

10-14-97

4:06 PM

SAMPLEC.EXP

0

10-14-97

4:06 PM

SAMPLEC.ERR

84

10-14-97

4:06 PM

SAMPLEC.C

16556

10-14-97

4:06 PM

README.TXT

351

10-14-97

4:06 PM

MAKEFILE.MAK

2308

10-14-97

4:06 PM

M.BAT

23

10-14-97

4:06 PM

ASMINT21.OBJ

172

10-14-97

4:06 PM

ASMINT21.ASM

428

10-14-97

4:06 PM

XMMNIOS.MSG

272

10-14-97

4:06 PM

SetPassword of NWEntry Requires Update to Actually Change the Password


Author:

MM

DocumentID:

TID101426

Date:

10/31/97 2:54 PM

Alert status:

Yellow

Information type:

Issue

Readme for:

IMMPASS.EXE

Novell productclass:

NetWare API

Novell product andversion:

NetWare SDK

Category:

None

Abstract

The documentation for SetPassword in NWEntry for the directory control is incorrect. In order to change the password, you must call Update after setting the password with SetPassword. Update returns a Boolean indicating if the password was changed or not. SetPassword does not return any value. The documentation will be corrected in the next release.

File Information

Self-Extracting File Name: IMMPASS.EXE


Files Included:

Size

Date

Time

IMMPASS.TXT

(this file)

IMMPASS.MSG

352

10-26-97

1:24 AM

Sample Code To Submit a Job under NDPS


Author:

MM

DocumentID:

TID101427

Date:

11/5/97 2:34 PM

Alert status:

Yellow

Information type:

Issue

Readme for:

XNDPSJOB.EXE

Novell productclass:

NetWare API

Novell product andversion:

NetWare SDK

Category:

None

Abstract

This is the answer code used for a lab session for Novell Distributed Print Services (NDPS). This sample code submits a job under NDPS.

File Information

Self-Extracting File Name: XNDPSJOB.EXE


Files Included:

Size

Date

Time

XNDPSJOB.TXT

(this file)

SUBJOB.IDE

38588

10-26-97

1:26 AM

SUBJOB.EXE

89993

10-26-97

1:27 AM

SJOBANS.CPP

28986

10-26-97

1:27 AM

SUBJOB.DSW

1613

10-26-97

1:27 AM

XNDPSJOB.MSG

136

10-26-97

1:27 AM


Disclaimer

The origin of this information may be internal or external to Novell. While Novell makes all reasonable efforts to verify this information, Novell does not make explicit or implied claims to its validity.

© Copyright Micro Focus or one of its affiliates