System ID

Availability LightWave 6.0 | Component Layout, Modeler | Header lwhost.h

The system ID global returns the hardware key serial number. Each unique serial number represents a LightWave license, so a plug-in installed on a particular machine can use this value to lock that installation to the LightWave license. But note that your plug-in can be called in contexts in which the host doesn't require a hardware key, so exercise care when relying on the value returned by this function.

Global Call

   unsigned long sysid;
   sysid = ( unsigned long ) global( LWSYSTEMID_GLOBAL,
      GFUSE_TRANSIENT );

The global function ordinarily returns a void *, so this should be cast to an integer type to get the return value.

The serial number is in the low 28 bits of the return value. The high four bits indicate whether the plug-in is running in an interactive Layout or Modeler session, or in a non-interactive Screamernet session. The two components of the number can be extracted using macros defined in lwhost.h.

   context  = sysid & LWSYS_TYPEBITS;
   serialno = sysid & LWSYS_SERIALBITS;

The context can be LWSYS_LAYOUT, LWSYS_MODELER, or LWSYS_SCREAMERNET.

If the context is LWSYS_SCREAMERNET, the serial number will either be the node number, or 0 if no node number is available. The serial number can also be 0 for products other than LightWave that don't require a hardware key, e.g. Inspire, regardless of the context. (The product info global allows you to identify the product your plug-in is running in.)