Named Block Structures

The structures used by annotation named blocks are as follows:

Structure Definition
AN_POINTS typedef struct tagAnPoints{

    int nMaxPoints;// The maximum number of points; must
// be equal to the value of nPoints.

    int nPoints;// The current number of points.

    POINT ptPoint[1];// Points marking the beginning and
// ending of the line segment(s); in
// FULLSIZE (not scaled) coordinates
// relative to the upper left corner
// of lrBounds in
// OIAN_MARK_ATTRIBUTES.

} AN_POINTS;

AN_NEW_ROTATE_STRUCT typedef struct tagAnNewRotateStruct{

    int rotation;// 1=Original
// 2=Rotate right (90 degrees clockwise)
// 3=Flip (180 degrees clockwise)
// 4=Rotate left (270 degrees clockwise)

// 5=Vertical mirror (reflected around a
// vertical line)

// 6=Vertical mirror + Rotate right
// 7=Vertical mirror + Flip
// 8=Vertical mirror + Rotate left

    int scale;// Set to 1000.

    int nHRes;// Set to value of nOrigHRes.

    int nVRes;// Set to value of nOrigVRes.

    int nOrigHRes;              // Resolution of image mark in DPI.

    int nOrigVRes;              // Resolution of image mark in DPI.

    BOOL bReserved1;// Set to 0.

    BOOL bReserved2;// Set to 0.

    int nReserved[6];

}AN_NEW_ROTATE_STRUCT;

AN_NAME_STRUCT typedef struct tagAnNameStruct{

    char name[1];// A character string designating the
// filename; terminated with a NULL.

}AN_NAME_STRUCT;

AN_IMAGE_STRUCT typedef struct tagAnImageStruct{

    BYTE dibInfo[1];// Standard DIB.

}AN_IMAGE_STRUCT;

STR Character string.

For OiIndex, a 10-character string holding a unique number, left-justified and padded with nulls.

For OiGroup, a null-terminated string giving the name of the group that the mark belongs to; the default is [Untitled]\0.

OIAN_TEXTPRIVDATA typedef struct tagOiAnTextPrivData{

    int        nCurrentOrientation;// Angle of text baseline to image
// in tenths of a degree; valid
// values are 0, 900, 1800, 2700.

    UINT   uReserved1;// Always 1000 when writing;
// ignore when reading.

    UINT   uCreationScale;// Always 72000 divided by
// the vertical resolution of the
// base image when writing;
// Used to modify the
// Attributes.lfFont.lfHeight
// variable for display.

    UINT   uAnoTextLength;// 64K byte limit (32K for multi-
// byte data) for Attach-a-Note,
// typed text, text from file;
// 255 byte limit for text stamp.

    char      szAnoText[1];// Text string for text mark types.

}OIAN_TEXTPRIVDATA;

HYPERLINK_NB intnVersion; // The version number of this data.

intnLinkSize; // The size of the link string in bytes.

charszLinkString; // The variable length multi-byte

// name string.

intnLocationSize; // The size of the location string.

charszLocationString;// The variable length multi-byte

// location string.

intnWorkDirSize; // The size of the working directory string.

charszWorkDirString;// The variable length multi-byte

// working directory string.

intnFlags; // One or more of the following flags

// OR’ed together:

// 1 = Can remove hyperlink from mark.

// 2 = Hyperlink refers to this document.


Note: The Hyperlink annotation type is available with Imaging for Windows Professional Edition (read/write) and Imaging for Windows 98 (read only).