Skip to main content
Skip table of contents

D_SECURITY (PostScript device plugins)

This page applies to Harlequin v13.1r0 and later; and to Harlequin MultiRIP but not Harlequin Core


Parameter: devSecurityParam * securityparam

Call type: Single‐call

This call is made to determine whether the plugin works with the version of the RIP making the call, and the security device in use, whether it is a dongle or license from the license server.

The plugin tests values in the structure supplied to decide whether it will permit calling the RIP to use it. It reports its decision to the RIP in the s_result field.

      typedef struct devSecurityParam { int32 s_key;
      int32 s_customerid; int32 s_uniqueid; int32 s_level; int32 s_demo;
      int32 s_result; int32 s_platform;
    } devSecurityParam;

The D_SECURITY call may be made at any time between the D_INITIALISE and D_GEN_SHUTDOWN calls. If your plugin refuses to let the RIP use it, the RIP will attempt to unload it by calling D_GEN_SHUTDOWN . This happens even if the plugin's “don't unload” flag is set.

Caution: Even if your plugin refuses to be used, the result of D_SECURITY could be patched so that the RIP thinks that the plugin granted its permission. To defeat this, code your plugin so that if it declines permission to be used, it can no longer work properly.

D_SECURITY will always be called before anything significant after D_INITIALISE .


A value provided by the RIP. See s_result , below.


An identifier for a particular OEM. The version of the RIP calling the plugin will have this ID encoded in it. The ID declares whom the version in question was produced for.

The plugin can decide which IDs it will permit itself to be used with. If no restrictions on users are required, the plugin need not test the s_customerid field.

The plugin may, alternatively, be restricted to the developer's ID and two Harlequin IDs (0x00 and 0x0B ).

If you choose this option, note that the two Harlequin IDs must be supported. One (0x00 ) will facilitate Harlequin testing and support, while the other (0x0B ) is for Harlequin's generic version of the RIP. By supporting this, you will be able to use your plugin in tests of new RIP features. (These are generally seen in a generic version of the RIP before they are supplied in special OEM versions.)


The unique security identifier obtained from the dongle. This can be used to tie a plugin to use with a particular dongle.


This field is obsolete.


This field will be TRUE (that is, non‐zero) if the software and dongle combination is for demonstration only. It need only be tested if you wish to restrict the plugin to use with non‐demonstration versions.


This field is set by the plugin to inform the RIP of its decision. If it is going to allow the calling version of the RIP to use it, it should set this field to the following:

s_key ^ s_customerid ^ s_uniqueid

That is, s_result should be the exclusive‐OR of s_key , s_customerid and s_uniqueid .

Any other value tells the RIP that the plugin may not be used. Avoid setting s_result to the number above by accident!


This field contains a number signifying the platform and operating system upon which it is being run. Clearly, a plugin compiled for a Power PC Mac simply would not get this far if started up on an Intel‐ based machine, but this information is useful to a plugin dealing with the difference between versions of Windows.

3 m.s.b


5 l.s.b.



Intel x64


Windows 7


Intel x 86

8 . . . 20

Already allocated to older platforms - no longer used.

Figure: Codes for Platform and OS for s_platform

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.