Skip to main content
Skip table of contents

(v13) Details

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

The type names used are:


a 32-bit signed integer. Usually either int or long , according to operating environment.


a 32-bit unsigned integer. Usually either unsigned int or unsigned long .


an 8-bit signed integer. Usually char or signed char .


an 8-bit unsigned char. Usually unsigned char , but sometimes just char .


an integral type which represents a device file descriptor. This type may be converted to/from a void* via the macro's DEVICE_FILEDESCRIPTOR_TO_VOIDPTR and VOIDPTR_TO_DEVICE_FILEDESCRIPTOR . The type of DEVICE_FILEDESCRIPTOR should not be assumed as it is platform specific. For example, on Win64 platforms, its type is defined as intptr_t which is 64 bits wide. On Win32 platforms, its type is defined as int32 .

uintptr_t and intptr_t

integral types which are guaranteed to be wide enough to hold a function pointer or data pointer (void* ). They can be converted to a pointer and vice versa without any truncation.

A Harlequin Core string is an array of uint8 . On some platforms where char is a signed char , this can require casts when converting a C string to or from a Harlequin Core string. Harlequin Core strings may or may not be zero-terminated when passed to, or returned from, an interface routine. See the individual routine descriptions for details.

You should include the header file std.h. The header file hqtypes.h defines what can be included.

Two structures, Hq32x2 and HqU32x2 , provide for 64-bit numbers, signed and unsigned, particularly used to specify seek offsets for which 32-bits are not adequate. Macros and library functions support the use of these types.

The header file also defines TRUE ( 1 ) , FALSE ( 0 ) and NULL ( (void *) 0 ) if necessary.

JavaScript errors detected

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

If this problem persists, please contact our support.