Programming Reference: NULL Constants Used in OpenDoc

# Programming Reference

## NULL Constants Used in OpenDoc

The following constant is used throughout OpenDoc:

kODNULL | A 32-bit value representing null. This constant is for a null reference to an OpenDoc object of any class and for null values of most 32-bit data types.

The following constants must be used instead for null values of the indicated types:

kODNoEditor | For the ODEditor type
kODNullFocus | For a null focus type
kODNULLID | For the types ODID, ODDocumentID, ODDraftID, and ODStorageUnitID
kODNULLKey | For the ODStorageUnitKey type
kODNullTypeToken | For the ODTypeToken type

### _IDL_SEQUENCE_PartKindInfo

A structure representing the part kind for a part handler.

Format

    typedef struct __IDL_SEQUENCE_PartKindInfo {
      unsigned long       _maximum;
      unsigned long       _length;
      PartKindInfo       *_buffer;
    } _IDL_SEQUENCE_PartKindInfo;

Fields

_maximum (unsigned long)

  The maximum size of _buffer.

_length (unsigned long)

  The length of data being passed in _buffer.

_buffer (PartKindInfo *)

  An array of part kind information structures.

### _IDL_SEQUENCE_octet

A structure representing foreign data larger than 4 bytes, or variable-length data in general.

Format

    typedef struct __IDL_SEQUENCE_octet {
      unsigned long       _maximum;
      unsigned long       _length;
      octet              *_buffer;
    } _IDL_SEQUENCE_octet;

Fields

_maximum (unsigned long)

  The size, in bytes, of the memory block containing data.

_length (unsigned long)

  The number of bytes, or length, of the data in the memory block.

_buffer (octet *)

  A pointer to the memory block containing the data.

### ACCEL

An accelerator structure.

Format

    typedef struct _ACCEL {
      USHORT       fs;
      USHORT       key;
      USHORT       cmd;
    } ACCEL;
    typedef ACCEL *PACCEL;

Fields

fs (USHORT)

  Options.

key (USHORT)

  Key.

cmd (USHORT)

  Command code. The value used in the uscmd parameter of a WM_HELP, a WM_COMMAND, or a WM_SYSCOMMAND.

### BOOL

Boolean. Valid values are FALSE, which is 0 and TRUE, which is 1.

Format

    typedef unsigned long BOOL;

### Boolean

Boolean. Valid values are FALSE, which is 0, and TRUE, which is 1.

Format

    typedef boolean Boolean;

### CDATE

A structure that contains date information for a data element in the details view of a container control.

Format

    typedef struct _CDATE {
      UCHAR        day;
      UCHAR        month;
      USHORT       year;
    } CDATE;
    typedef CDATE *PCDATE;

Fields

day (UCHAR)

  The current day.

month (UCHAR)

  The current month.

year (USHORT)

  The current year.

### CTIME

A structure that contains time information for a data element in the details view of a container control.

Format

    typedef struct _CTIME {
      UCHAR       hours;
      UCHAR       minutes;
      UCHAR       seconds;
      UCHAR       ucReserved;
    } CTIME;
    typedef CTIME *PCTIME;

Fields

hours (UCHAR)

  The current hour.

minutes (UCHAR)

  The current minute.

seconds (UCHAR)

  The current second.

ucReserved (UCHAR)

  Reserved.

### DEVOPENSTRUC

An open-device data structure.

Format

    typedef struct _DEVOPENSTRUC {
      ISOString             logAddress;
      ISOString             driverName;
      PDRIVDATA             pdriv;
      ISOString             dataType;
      ISOString             comment;
      ISOString             queueProcName;
      ISOString             queueProcParams;
      ISOString             spoolerParams;
      ISOString             networkParams;
    } DEVOPENSTRUC;
    typedef DEVOPENSTRUC *PDEVOPENSTRUC;

Fields

logAddress (ISOString)

  Logical address.

  This is required for an OD_DIRECT device being opened with DevOpenDC; it is the logical device address, such as "LPT1" on OS/2. Some drivers may accept a file name for this parameter or even a named pipe.

  Where output is to be queued, for an OD_QUEUED device, this is the name of the queue for the output device. The queue name can be a UNC name.

  Note:

  > This parameter can be a port name for a printer device context.

driverName (ISOString)

  Driver name.

  Character string identifying the printer driver, for example, `LASERJET`. The Default Device Driver field of the PRQINFO3 structure, associated with the required print queue, gives the driver and device name, separated by a period, for example `LASERJET.HP LaserJet IIID.` It can contain only the name up to the period, for example `LASERJET`.

pdriv (PDRIVDATA)

  Driver data.

  Data that is to be passed directly to the PM device driver. Whether any of this is required depends upon the device driver.

  For printer device context, this is a pointer to the job properties data.

dataType (ISOString)

  Data type.

  For an OD_QUEUED or OD_DIRECT device, this parameter defines the type of data that is to be queued as follows:

  PM_Q_STD | Standard format.
  PM_Q_RAW | Raw format.

  A device driver can define other data types.

  For OD_QUEUED or OD_DIRECT device types, the default is supplied by the device driver if dataType is not specified. For any other device type, dataType is ignored.

comment (ISOString)

  Comment.

  An optional character string the printer object displays to the user in a job settings notebook. Include the application name in this comment string.

  Note:

  > The job title text is derived from the document name passed to DevEscape (DEVESC_STARTDOC).

queueProcName (ISOString)

  Queue-processor name.

  This is the name of the queue processor, for queued output, and is usually the default.

queueProcParams (ISOString)

  Queue-processor parameters.

  Queue processor parameters (optional). They can include information such as the number of copies you want to print and the size of the output area on the printed page.

  The first parameter (COP) is used for all spool-file formats. The remaining parameters are valid for PM_Q_STD spool files only. Because PM_Q_STD data are used mainly for graphic data, these parameters are described in relation to the printing of picture files.

  The PMPRINT/PMPLOT queue-processor parameters are separated by spaces and are:

  COP=n | The COP parameter specifies the number of copies of the spool file that you want printed. The value of n must be an integer in the range of 1 through 999. The default is COP=1.

  ARE=C | w,h,l,t

  The ARE parameter determines the size and position of the output area. This is the area of the physical page to which printing is restricted.

  The default value of ARE=C means that the output area is the whole page. However, the printer cannot print outside its own device clip limits.

  To size and position the output area at a specific point on the page, use ARE=w,h,l,t, where:

  w, h | the width (w) and height (h) of the desired output area.
  l, t | the offsets of the upper-left corner of the output area from the left (l) and from the top (t) of the maximum output area.

  These four values must be given as percentages of the maximum output dimensions. The maximum output area is the area within the device clip limits.

  FIT=S | l,t

  The FIT parameter determines which part of the picture is to be printed. You can request the whole of the picture, scaled to fit the output area; or you can position the picture (actual size) anywhere within the output area. This means the picture is clipped at the boundaries of the output area.

  The default value of FIT=S causes the output to be scaled until the larger of the height or width just fits within the defined output area. The aspect ratio of the picture is maintained.

  To print the picture in actual size, use FIT=l,t, where l,t are the coordinates of the point in the picture that you want positioned at the center of the output area: l is measured from the left edge of the picture; and t is measured from the top edge. The coordinates must be given as percentages of the actual dimensions of the picture.

  XFM=0 | 1

  The XFM parameter enables you to override the picture-positioning and clipping instructions that are provided by the ARE and FIT parameters, including their defaults.

  The default value of XFM=1 allows the appearance of the output to be determined by the settings of the ARE and FIT parameters.

  A value of XFM=0 yields output as specified in the picture file. For example, applications that use many different forms can define different positions on each form for their output.

  COL=M | C

  The COL parameter enables you to specify color output if you have a color printer.

  A value of COL=M creates monochrome output (black foreground with no background color). This is supported by all devices.

  A value of COL=C creates color output. If you request color output on a monochrome device, the printer presentation driver tries to satisfy your request, that can cause problems because the only color available is black. For example, if the picture file specifies a red line on a blue background, both are drawn in black.

  The default is COL=M when you are addressing a monochrome printer and COL=C when you are addressing a color printer.

  MAP=N | A

  The MAP parameter enables you to decide how the neutral colors (those that are not specified in the picture file) are printed.

  The default value of MAP=N yields a normal representation of the screen picture on a printed page. This means a white page background and a black page foreground.

  A value of MAP=A provides the reverse of the normal representation. The background is black and the foreground is white on the printed page.

  CDP=codepage | The CDP parameter overrides the code page to being used for PM_Q_RAW print jobs. The print queue driver uses DEVESC_SETMODE to set the code page, but not all printer drivers support this device escape.

  XLT=0 | 1

  The XLT parameter can eliminate the translation component when printing a metafile if XLT=1.

  When the resolution of the device is higher than that of the world coordinate space, a small translation of world coordinate point (0,0) occurs on the device to preserve the accuracy of the mapping from world to device coordinate units. For example, (0,0) becomes (1,1) if there are 3 pels to every world coordinate.

  Normally, this is not noticeable, but it can be a problem with some devices. For example, to draw a complete row of 80 characters using a device font, a device may require the text to start at device coordinate position zero. Starting at a position other than zero may cause one or more characters at the end of the row to be clipped. In such cases, elimination of the translation is important and can be accomplished by specifying XLT=1.

  The default is XLT=0.

spoolerParams (ISOString)

  Spooler parameters.

  Spooler parameters (optional) are separated by spaces. They are used for scheduling print jobs and are as follows:

  - The form names that identify the paper to be used, for example, `FORM=A4,A5,ENV`. The form names are optional; but if they are provided, the spooler is able to hold off printing the jobs until the required form is installed in the printer. If the form name is not provided, the spooler attempts to print the job. The printer driver recognizes that there is a forms problem and displays a FORMS MISMATCH message box.

  - Priority of the print job, for example, PRTY=60. The priority is specified as an integer in the range 1 through 99; 99 is the highest. The default priority value is 50. The application can use the spooler priority parameter to prioritize its own jobs.

networkParams (ISOString)

  Network parameters.

  Optional parameter that can be used to specify network options; for example, USER=JOESMITH.

### DRAGITEM

A drag-object structure.

Format

    typedef struct _DRAGITEM {
      HWND         hwndItem;
      ULONG        ulItemID;
      HSTR         hstrType;
      HSTR         hstrRMF;
      HSTR         hstrContainerName;
      HSTR         hstrSourceName;
      HSTR         hstrTargetName;
      SHORT        cxOffset;
      SHORT        cyOffset;
      USHORT       fsControl;
      USHORT       fsSupportedOps;
    } DRAGITEM;
    typedef DRAGITEM *PDRAGITEM;

Fields

hwndItem (HWND)

  Window handle of the source of the drag operation.

ulItemID (ULONG)

  Information used by the source to identify the object being dragged.

hstrType (HSTR)

  String handle of the object type.

  The string handle must be created using the DrgAddStrHandle function. The string is of the form:

      type[,type...]

  The first type in the list must be the true type of the object. The following types are used by the OS/2* shell:

  DRT_ASM | Assembler code
  DRT_BASIC | BASIC code
  DRT_BINDATA | Binary data
  DRT_BITMAP | Bitmap
  DRT_C | C code
  DRT_COBOL | COBOL code
  DRT_DLL | Dynamic link library
  DRT_DOSCMD | DOS command file
  DRT_EXE | Executable file
  DRT_FONT | Font
  DRT_FORTRAN | FORTRAN code
  DRT_ICON | Icon
  DRT_LIB | Library
  DRT_METAFILE | Metafile
  DRT_OS2CMD | OS/2 command file
  DRT_PASCAL | Pascal code
  DRT_RESOURCE | Resource file
  DRT_TEXT | Text
  DRT_UNKNOWN | Unknown type

hstrRMF (HSTR)

  String handle of the rendering mechanism and format.

  The string handle must be created using the DrgAddStrHandle function. The string is of the form:

      mechfmt[,mechfmt...]

  where `mechfmt` can be in one of the following formats:
  - <mechanism(1),format(1)>
  - (mechanism(1)[, mechanism(n)...]) x (format(1)[,format(n)...])

  The first mechanism/format pair must be the native rendering mechanism and format of the object.

  Valid mechanisms are:

  "DRM_DDE" | Dynamic data exchange
  "DRM_OBJECT" | Item being dragged is a Workplace Shell object
  "DRM_OS2FILE" | OS/2 file
  "DRM_PRINT" | Object can be printed using direct manipulation

  Valid formats are:

  "DRF_BITMAP" | OS/2 bitmap
  "DRF_DIB" | DIB
  "DRF_DIF" | DIF
  "DRF_DSPBITMAP" | Stream of bit-map bits
  "DRF_METAFILE" | Metafile
  "DRF_OEMTEXT" | OEM text
  "DRF_OWNERDISPLAY" | Bit stream
  "DRF_PTRPICT" | Printer picture
  "DRF_RTF" | Rich text
  "DRF_SYLK" | SYLK
  "DRF_TEXT" | Null-terminated string
  "DRF_TIFF" | TIFF
  "DRF_UNKNOWN" | Unknown format

hstrContainerName (HSTR)

  String handle of the name of the container holding the source object.

  The string handle must be created using the DrgAddStrHandle function.

hstrSourceName (HSTR)

  String handle of the name of the source object.

  The string handle must be created using the DrgAddStrHandle function.

hstrTargetName (HSTR)

  String handle of the suggested name of the object at the target.

  It is the responsibility of the source of the drag operation to create this string handle before calling DrgDrag.

cxOffset (SHORT)

  X-offset from the pointer hot spot to the origin of the image that represents this object.

  This value is copied from cxOffset in the DRAGIMAGE structure by DrgDrag.

cyOffset (SHORT)

  Y-offset from the pointer hot spot to the origin of the image that represents this object.

  This value is copied from cyOffset in the DRAGIMAGE structure by DrgDrag.

fsControl (USHORT)

  Source-object control flags.

  DC_OPEN | Object is open
  DC_REF | Reference to another object
  DC_GROUP | Group of objects
  DC_CONTAINER | Container of other objects
  DC_PREPARE | Source requires a DM_RENDERPREPARE message before it establishes a data transfer conversation
  DC_REMOVEABLEMEDIA | Object is on removable media or cannot be recovered after a move operation

fsSupportedOps (USHORT)

  Direct manipulation operations supported by the source object.

  DO_COPYABLE | Source supports DO_COPY
  DO_LINKABLE | Source supports DO_LINK
  DO_MOVEABLE | Source supports DO_MOVE

### DRAGIMAGE

Dragged-object-image structure that describes the images that are to be drawn under the direct-manipulation pointer for the duration of a drag operation.

Format

    typedef struct _DRAGIMAGE {
      USHORT        cb;
      USHORT        cptl;
      LHANDLE       hImage;
      SIZEL         sizlStretch;
      ULONG         fl;
      SHORT         cxOffset;
      SHORT         cyOffset;
    } DRAGIMAGE;
    typedef DRAGIMAGE *PDRAGIMAGE;

Fields

cb (USHORT)

  Size, in bytes, of the DRAGIMAGE structure.

cptl (USHORT)

  The number of points in the point array if fl is specified as DRG_POLYGON.

hImage (LHANDLE)

  Handle representing the image to display.

  The type is determined by fl.

sizlStretch (SIZEL)

  Dimensions for stretching when fl is specified as DRG_STRETCH.

fl (ULONG)

  Flags.

  DRG_ICON | hImage is an HPOINTER.
  DRG_BITMAP | hImage is an HBITMAP.
  DRG_POLYGON | hImage is a pointer to an array of points that will be connected with GpiPolyLine to form a polygon. The first point of the array must be (0,0) with the other points placed relative to this position.
  DRG_STRETCH | If DRG_ICON or DRG_BITMAP is specified, the image is expanded or compressed to the dimensions specified by sizlStretch.
  DRG_TRANSPARENT | If DRG_ICON is specified, an outline of the icon is generated and displayed instead of the original icon.
  DRG_CLOSED | If DRG_POLYGON is specified, a closed polygon is formed by moving the current position to the last point in the array before calling GpiPolyLine.

cxOffset (SHORT)

  X-offset from the pointer hot spot to the origin of the image.

cyOffset (SHORT)

  Y-offset from the pointer hot spot to the origin of the image.

### DRAGINFO

Drag-information structure.

Format

    typedef struct _DRAGINFO {
      ULONG        cbDraginfo;
      USHORT       cbDragitem;
      USHORT       usOperation;
      HWND         hwndSource;
      SHORT        xDrop;
      SHORT        yDrop;
      USHORT       cditem;
      USHORT       usReserved;
    } DRAGINFO;
    typedef DRAGINFO *PDRAGINFO;

Fields

cbDraginfo (ULONG)

  Structure size, in bytes.

  The size includes the array of DRAGITEM structures.

cbDragitem (USHORT)

  Size, in bytes, of each DRAGITEM structure.

usOperation (USHORT)

  Modified drag operations.

  An application can define its own modified drag operations for use when simulating a drop. These operations must have a value greater than DO_UNKNOWN. Possible values are described in the following list:

  DO_DEFAULT | Execute the default drag operation. No modifier keys are pressed.
  DO_COPY | Execute a copy operation. The Ctrl key is pressed.
  DO_LINK | Execute a link operation. The Ctrl+Shift keys are pressed.
  DO_MOVE | Execute a move operation. The Shift key is pressed.
  DO_CREATE | Execute a create operation. (A template is being dropped.)
  DO_NEW | Execute a create another operation. This value must be defined as DO_UNKNOWN+3 if it is not recognized in the current level of the toolkit.
  DO_UNKNOWN | An undefined combination of modifier keys is pressed.

hwndSource (HWND)

  Window handle of the source of the drag operation.

xDrop (SHORT)

  X-coordinate of drop point expressed in desktop coordinates.

yDrop (SHORT)

  Y-coordinate of drop point expressed in desktop coordinates.

cditem (USHORT)

  Count of DRAGITEM structures.

usReserved (USHORT)

  Reserved.

### Environment

SOM environment information.

Format

    typedef struct _Environment {
      exception_type              _major;
      struct exception {
        char                        *_exception_name;
        void                        *_params;
      } exception;
      char                       *_somdAnchor;
    } Environment;

This structure contains environmental information that can be passed between a caller and a called object when a method is executed. For example, it can be used to pass information about the user ID of a client or to return exception data to the client following a method call.

To set an exception value in the caller's Environment, a method implementation makes a call to the somSetException function; for example:

    void somSetException ( Environment *ev
                           exception_type major,
                           string exception_name,
                           void *params);

where ev is a pointer to the Environment passed to the method, _major is an exception type, _exception_name is the exception name, and _params is a pointer to an initialized exception allocated by calling SOMMalloc.

Note:

> The somSetException method simply sets the exception value; it does not perform exit processing. If there are multiple calls to somSetException before the method returns, the call sees only the last exception value.

After a method returns, the calling client program can look at the Environment structure to determine whether an exception occurred. If _major does not equal NO_EXCEPTION, an exception was returned by the call. The user can retrieve the exception name and values by calling somExceptionID to retrieve a string containing the exception name and somExceptionValue to retrieve a pointer to the value of the exception. If NULL is passed as the Environment pointer in any of these calls, an implicit call is made to somGetGlobalEnvironment.

Fields

_major (exception_type)

  Type of exception returned from the call.

  Possible values are described in the following list:

  NO_EXCEPTION | An exception was not returned.
  USER_EXCEPTION | A user exception was returned.
  SYSTEM_EXCEPTION | A system exception was returned.

_exception_name (char *)

  String containing the exception name.

_params (void *)

  Pointer to an initialized exception structure that must be allocated by SOMMalloc.

_somdAnchor (char *)

### exception_type

An exception type.

Format

    enum exception_type {NO_EXCEPTION, USER_EXCEPTION, SYSTEM_EXCEPTION};

Fields

NO_EXCEPTION

  An exception was not returned.

USER_EXCEPTION

  A user exception was returned.

SYSTEM_EXCEPTION

  A system exception was returned.

### FIELDINFO

Structure that contains information about column data in the details view of the container control. The details view displays each FIELDINFO structure as a column of data that contains specific information about each container record. For example, one FIELDINFO structure, or column, might contain icons or bitmaps that represent each container record. Another FIELDINFO structure might contain the date or time that each container record was created.

Format

    typedef struct _FIELDINFO {
      ULONG                   cb;
      ULONG                   flData;
      ULONG                   flTitle;
      PVOID                   pTitleData;
      ULONG                   offStruct;
      PVOID                   pUserData;
      struct _FIELDINFO      *pNextFieldInfo;
      ULONG                   cxWidth;
    } FIELDINFO;
    typedef FIELDINFO *PFIELDINFO;

Fields

cb (ULONG)

  Structure size.

  The size (in bytes) of the FIELDINFO structure.

flData (ULONG)

  Data attributes.

  Attributes of the data in a field.

  - Specify one of the following for each column to choose the type of data that is displayed in each column:

    CFA_BITMAPORICON | The column contains bit-map or icon data.
    CFA_DATE | The data in the column is displayed in date format. National Language Support is enabled for date format. Use the data structure described in CDATE.
    CFA_STRING | Character or text data is displayed in this column.
    CFA_TIME | The data in the column is displayed in time format. National Language Support is enabled for time format. Use the data structure described in CTIME.
    CFA_ULONG | Unsigned number data is displayed in this column. National Language Support is enabled for number format.

  - Specify any or all of the following column attributes:

    CFA_FIREADONLY | Prevents text in a FIELDINFO data structure (text in a column) from being edited directly. This attribute applies only to columns for which the CFA_STRING attribute has been specified.
    CFA_HORZSEPARATOR | A horizontal separator is provided beneath column headings.
    CFA_INVISIBLE | Invisible container column. The default is visible.
    CFA_OWNER | Ownerdraw is enabled for this container column.
    CFA_SEPARATOR | A vertical separator is drawn after this column.

  - Specify one of the following for each column to vertically position data in that column:

    CFA_BOTTOM | Bottom-justified field data.
    CFA_TOP | Top-justified field data.
    CFA_VCENTER | Vertically centers field data. This is the default.

  - Specify one of the following for each column to horizontally position data in that column. These attributes can be combined with the attributes used for vertical positioning of column data by using an OR operator (|).

    CFA_CENTER | Horizontally centers field data.
    CFA_LEFT | Left-justified field data. This is the default.
    CFA_RIGHT | Right-justified field data.

flTitle (ULONG)

  Column heading attributes.

  - Specify the following if icon or bit-map data is to be displayed in the column heading:

    CFA_BITMAPORICON | The column heading contains icon or bit-map data. If CFA_BITMAPORICON is not specified, any data that is assigned to a column heading is assumed to be character or text data.

  - Specify the following to prevent direct editing of a column heading:

    CFA_FITITLEREADONLY | Prevents a column heading from being edited directly.

  - Specify one of the following for each column heading to vertically position data in that column heading:

    CFA_TOP | Top-justified column headings.
    CFA_BOTTOM | Bottom-justified column headings.
    CFA_VCENTER | Vertically centers column headings. This is the default.

  - Specify one of the following for each column heading to horizontally position data in that column heading. These attributes can be combined with the attributes used for vertical positioning of column heading data by using an OR operator (|).

    CFA_CENTER | Horizontally centers column headings.
    CFA_LEFT | Left-justified column headings. This is the default.
    CFA_RIGHT | Right-justified column headings.

pTitleData (PVOID)

  Column heading data.

  Column heading data, which can be a text string or an icon or bitmap. The default is a text string. If the flTitle field is set to the CFA_BITMAPORICON attribute, this must be an icon or bitmap.

offStruct (ULONG)

  Structure offset.

  Offset from the beginning of a RECORDCORE structure to the data that is displayed in this column.

  Note:

  > If the CCS_MINIRECORDCORE style bit is specified when a container is created, then MINIRECORDCORE must be used instead of RECORDCORE and PMINIRECORDCORE must be used instead of PRECORDCORE in all applicable data structures and messages.

pUserData (PVOID)

  Pointer to user data.

pNextFieldInfo (struct _FIELDINFO *)

  Pointer to the next linked FIELDINFO data structure.

cxWidth (ULONG)

  Column width.

  Used to specify the width of a column. The default is a column the width of its widest element. If this field is set and the data is too wide, the data is truncated.

### Handle

Address of a pointer to a char.

Format

    typedef Ptr *Handle;

### HBITMAP

Bit-map handle.

Format

    typedef LHANDLE HBITMAP;

### HMODULE

Module handle.

Format

    typedef LHANDLE HMODULE;

### HPOINTER

Pointer handle.

Format

    typedef LHANDLE HPOINTER;

### HPS

Presentation-space handle.

Format

    typedef LHANDLE HPS;

### HRGN

Region handle.

Format

    typedef LHANDLE HRGN;

### HSTR

String handle.

Format

    typedef LHANDLE HSTR;

### HWND

Window handle.

Format

    typedef LHANDLE HWND;

### ICONINFO

Icon information data structure.

Format

    typedef struct _ICONINFO {
      ULONG         cb;
      ULONG         fFormat;
      ISOString     fileName;
      HMODULE       hmod;
      ULONG         resid;
      ULONG         cbIconData;
      PVOID         pIconData;
    } ICONINFO;
    typedef ICONINFO *PICONINFO;

Fields

cb (ULONG)

  Length of the ICONINFO structure.

fFormat (ULONG)

  Indicates where the icon resides.

  Possible values are:

  ICON_FILE | Icon file supplied.
  ICON_RESOURCE | Icon resource supplied.
  ICON_DATA | Icon data supplied.
  ICON_CLEAR | Go back to default icon.

fileName (ISOString)

  Name of the file containing icon data. This value is ignored if fFormat is not equal to ICON_FILE.

hmod (HMODULE)

  Module containing the icon resource. This value is ignored if fFormat is not equal to ICON_RESOURCE.

resid (ULONG)

  Identity of the icon resource. This value is ignored if fFormat is not equal to ICON_RESOURCE.

cbIconData (ULONG)

  Length of the icon data in bytes. This value is ignored if fFormat is not equal to ICON_DATA.

pIconData (PVOID)

  Pointer to the buffer containing icon data. This value is ignored if fFormat is not equal to ICON_DATA.

### ISOString

ISO string.

Format

    typedef string ISOString;

### LHANDLE

The handle of a resource.

Format

    typedef unsigned long LHANDLE;

### LONG

Signed integer in the range -2 147 483 648 through 2 147 483 647.

Format

    #define LONG long

Note:

> Where this data type represents a graphic coordinate in world or model space, its value is restricted to -134 217 728 through 134 217 727.

> A graphic coordinate in device or screen coordinates is restricted to -32 768 through 32 767.

> The value of a graphic coordinate may be restricted by any current transforms, including the positioning of the origin of the window on the screen. In particular, coordinates in world or model space must not generate coordinate values after transformation (that is, in device or screen space) outside the range -32 768 through 32 767.

### MATRIXLF

Matrix-elements structure.

Format

    typedef struct _MATRIXLF {
      FIXED       fxM11;
      FIXED       fxM12;
      LONG        lM13;
      FIXED       fxM21;
      FIXED       fxM22;
      LONG        lM23;
      LONG        lM31;
      LONG        lM32;
      LONG        lM33;
    } MATRIXLF;
    typedef MATRIXLF *PMATRIXLF;

Fields

fxM11 (FIXED)

  First element of first row.

fxM12 (FIXED)

  Second element of first row.

lM13 (LONG)

  Third element of first row.

fxM21 (FIXED)

  First element of second row.

fxM22 (FIXED)

  Second element of second row.

lM23 (LONG)

  Third element of second row.

lM31 (LONG)

  First element of third row.

lM32 (LONG)

  Second element of third row.

lM33 (LONG)

  Third element of third row.

### MENUITEM

Menu item.

Format

    typedef struct _MENUITEM {
      SHORT        iPosition;
      USHORT       afStyle;
      USHORT       afAttribute;
      USHORT       id;
      HWND         hwndSubMenu;
      ULONG        hItem;
    } MENUITEM;
    typedef MENUITEM *PMENUITEM;

Fields

iPosition (SHORT)

  Position.

afStyle (USHORT)

  Style.

afAttribute (USHORT)

  Attribute.

id (USHORT)

  Identity.

hwndSubMenu (HWND)

  Submenu.

hItem (ULONG)

  Item.

### MPARAM

A 4-byte message-dependent parameter structure.

Format

    typedef VOID *MPARAM;

Certain elements of information, placed into the parameters of a message, have data types that do not use all four bytes of this data type. The rules governing these cases are:

BOOL | The value is contained in the low word and the high word is 0.
SHORT | The value is contained in the low word and its sign is extended into the high word.
USHORT | The value is contained in the low word and the high word is 0.
NULL | The entire four bytes are 0.

The structure of this data type depends on the message. For details, see the description of the particular message.

### MRESULT

A 4-byte message-dependent reply parameter structure.

Format

    typedef VOID *MRESULT;

Certain elements of information, placed into the parameters of a message, have data types that do not use all four bytes of this data type. The rules governing these cases are:

BOOL | The value is contained in the low word and the high word is 0.
SHORT | The value is contained in the low word and its sign is extended into the high word.
USHORT | The value is contained in the low word and the high word is 0.
NULL | The entire four bytes are 0.

The structure of this data type depends on the message. For details, see the description of the particular message.

### ODACCEL

Accelerator information.

Format

    typedef struct _ODACCEL {
      ACCEL       aAccel[MAX];
    } ODACCEL;

Fields

aAccel[MAX] (ACCEL)

  An array of ACCEL structures containing accelerator information.

### ODActionData

A structure containing the action data for Undo and Redo commands.

Format

    typedef ODByteArray ODActionData;

### ODActionType

An enumeration specifying the possible values for an Undo action.

Format

    enum ODActionType {kODBeginAction, kODEndAction, kODSingleAction};

Fields

kODBeginAction

  The action was the first of a two-part action, such as the drag part of a drag and drop action.

kODEndAction

  The action was the second of a two-part action, such as the drop part of a drag and drop action.

kODSingleAction

  The action was a single action.

### ODBoolean

A Boolean value; the size of this type is platform-dependent.

Format

    typedef boolean ODBoolean;

kODTrue | True
kODFalse | False

### ODByteArray

This data type represents foreign data types larger than 4 bytes, or variable-length data in general.

Format

    typedef _IDL_SEQUENCE_octet ODByteArray;

In most cases, this structure is used to pass raw data between OpenDoc and its clients. If a method expects a specific structure in the _buffer field, the method description explains what structure this field must contain.

### ODClipboardKey

Clipboard key.

Format

    typedef ODULong ODClipboardKey;

### ODCloneKind

An enumeration specifying the possible semantic values of a clone operation.

Format

    typedef ODULong ODCloneKind;

Values of this type are passed to the draft object's BeginClone method.

This type can be set to one of the following values:

kODCloneCopy | Copy into the content storage unit of the clipboard object or the drag-and-drop object.
kODCloneCut | Cut into the content storage unit of the clipboard object or the drag-and-drop object.
kODCloneDropCopy | Copy at the destination of a drop.
kODCloneDropMove | Move at the destination of a drop.
kODCloneFromLink | Clone from a link.
kODClonePaste | Paste from the content storage unit of the clipboard object or the drag-and-drop object.
kODCloneToLink | Clone to a link.

### ODCloneKindConsts

An enumeration used to indicate the desired semantics of a clone operation (a value for ODCloneKind.

Format

    enum ODCloneKindConsts {kODCloneCopy, kODCloneCut, kODClonePaste,
                            kODCloneDropCopy, kODCloneDropMove, kODCloneAll};

Fields

kODCloneCopy

  Copy an object from the source to the data-transfer object.

kODCloneCut

  Clone an object from the source to the data-transfer object.

kODClonePaste

  Paste an object from the data-transfer object to the destination of a drop.

kODCloneDropCopy

  Copy an object to the destination of a drop.

kODCloneDropMove

  Move an object to the destination of a drop.

kODCloneAll

  Copy all objects from the source to the data-transfer object.

### ODCommandID

A 32-bit value representing the Command ID associated with a particular menu/item combination.

Format

    typedef ODSLong ODCommandID;

### ODContainerID

A structure identifying a container.

Format

    typedef ODByteArray ODContainerID;

The _buffer field of this byte array holds a container-suite-specific identifier for a container.

The structure of the _buffer field depends on the type of container. For example, the identifier for a Bento file container specifies a file-system file; the identifier for a Bento memory container is a handle for a relocatable memory block.

### ODContainerName

A user-readable name for a container object.

Format

    typedef ODName ODContainerName;

### ODContainerSuite

An opaque type representing a specific container suite.

Format

    typedef ODISOStr ODContainerSuite;

### ODContainerType

A string used to specify a type of storage container.

Format

    typedef ODISOStr ODContainerType;

On each platform, OpenDoc has a default container type that it uses for documents and a default container type that it used for the drag and drop and the clipboard.

This type can be set to one of the following values:

kODBentoFileContainer | The Bento container class for documents on this platform.
kODBentoIStreamContainer | The Bento file container for documents embedded in OLE. This container type is valid only on the Windows platform.
kODBentoMemoryContainer | The Bento container class for drag and drop operations and the clipboard on this platform.
kODDefaultFileContainer | The default container type for documents on this platform.
kODDefaultMemoryContainer | The default container type for drag and drop operations and the clipboard on this platform.

### ODContour

Contour of a polygon. A structure of type ODByteArray representing a contour of a polygon.

Format

    typedef ODByteArray ODContour;

A contour consists of a closed loop of three or more points connected by straight edges. The _buffer field of a contour byte array points to a 32-bit signed value, indicating the number of points in the contour, followed by the specified number of ODPoint structures, representing the individual points.

The order of points in a contour is significant: for a right-oriented coordinate system like GPI, points arranged in a counter-clockwise order represent a positive area, while in the opposite order they represent a negative area or hole (in a left-oriented coordinate system such as QuickDraw, the reverse is true).

An ODContour structure exists only as a component of an ODPolygon structure.

### ODCoordinate

A 32-bit value representing a spatial coordinate in a document or window.

Format

    typedef ODFixed ODCoordinate;

By default, OpenDoc represents a coordinate with 16 integer bits and 16 fractional bits. This is identical to a value of the ODFixed type. You can partition the bits of an ODCoordinate in any way, provided you shift the values appropriately when passing information outside of OpenDoc.

Note:

> If you are using a graphics system that handles arbitrary transformations, you can do this by assigning a scaling factor to your internal transform.

### ODDocumentID

An identifier for a document.

Format

    typedef ODID ODDocumentID;

kODDefaultDocument | The default document ID.
kODNULLID | A null document ID.

### ODDocumentName

A user-readable name for a document.

Format

    typedef ODName ODDocumentName;

### ODDoneState

An enumeration indicating the state of an undo action.

Format

    enum ODDoneState {kODDone, kODRedone, kODUndone};

Fields

kODDone

  The action was done and is now on the Undo stack.

kODRedone

  The action was done, undone, and redone and is now back on the Undo stack.

kODUndone

  The action was done and undone and is now on the Redo stack.

### ODDraftID

A 32-bit value used as an identifier for a draft.

Format

    typedef ODID ODDraftID;

### ODDraftKey

A 32-bit value used as a key for a cloning transaction.

Format

    typedef ODULong ODDraftKey;

### ODDraftName

A name for a draft.

Format

    typedef ODISOStr ODDraftName;

### ODDraftPermissions

An enumeration specifying the possible values for draft permissions.

Format

    typedef ODULong ODDraftPermissions;

kODDPExclusiveWrite | Read access and exclusive-write access.
kODNone | No access.
kODDPReadOnly | Read-only access.
kODSharedWrite | Read access and shared-write access.
kODTransient | Navigation-only access.

The Bento container suite supports only the kODDPReadOnly and kODDPExclusiveWrite draft permissions.

### ODDragResult

A flag indicating whether this part can accept the dragged data in the given facet.

Format

    typedef ODBoolean ODDragResult;

### ODDropResult

An enumeration used to specify the result of a drop operation.

Format

    enum ODDropResult {kODDropCopy, kODDropFail, kODDropMove, kODDropUnfinished};

Fields

kODDropCopy

  Successful drop with copy semantics.

kODDropFail

  Unsuccessful drop.

kODDropMove

  Successful drop with move semantics.

kODDropUnfinished

  An asynchronous drop was started.

### ODEditor

An opaque, platform-specific type identifying a specific part editor, or kODNoEditor for a null OpenDoc editor.

Format

    typedef ODISOStr ODEditor;

### ODError

A 32-bit exception code.

Format

    typedef ODSLong ODError;

The OpenDoc Problem Determination Guide describes the constants defined for this type.

### ODEventData

A platform-specific structure representing an event. On AIX, it corresponds to an X11 XEvent structure. On OS/2, it corresponds to a PM message structure. On Windows, it corresponds to a Windows MSG structure.

Format

For AIX

    typedef struct {
           ODEventType   type;
         unsigned long   serial;
               boolean   send_event;
                  void*  display;
      ODPlatformWindow   window;
    } ODEventData;

For OS/2

    typedef struct {
      ODPlatformWindow   hwnd;
           ODEventType   msg;
         unsigned long   mp1;
         unsigned long   mp2;
         unsigned long   result;
    } ODEventData;

For Windows

    typedef struct {
      ODPlatformWindow   hwnd;
           ODEventType   message;
         unsigned long   wParam;
         unsigned long   lParam;
         unsigned long   time;
               ODPoint   pt;
    } ODEventData;

### ODEventInfo

A structure containing context-specific event information.

Format

    typedef struct _ODEventInfo {
          ODFrame *embeddedFrame;
          ODFacet *embeddedFacet;
          ODPoint  where;
    #ifdef _PLATFORM_OS2_
          ODULong  flags;
    #else
        ODBoolean  propagated;
    #endif

      ODEventType  orignalType;

    } ODEventInfo;

Fields

embeddedFrame (ODFrame *)

  The frame within which the event occurred. Only relevant for events that are delivered to the containing part.

embeddedFacet (ODFacet *)

  The facet within which the event occurred. Only relevant for events that are delivered to the containing part.

where (ODPoint)

  The position in local (frame) coordinates where the event occurred. Only relevant for mouse-related events.

flags (ODULong)

  If this is equal to kODPropagated, the event was propagated from an embedded part.

  Note:

  > This field is valid only for OS/2.

propagated (ODBoolean)

  If this is equal to kODTrue, the event was propagated from an embedded part.

  Note:

  > This field is valid only for AIX and Windows.

orignalType (ODEventType)

  The original event type, if the type of this event has been modified by the dispatcher.

### ODEventType

A 16-bit platform-specific code specifying an event type.

Format

    typedef ODUShort ODEventType;

### ODException

A structure describing an exception.

Format

    typedef struct _ODException {
      ODError       error;
      char          message[256];
    } ODException;

Fields

error (ODError)

  The error code identifying the exception.

message[256] (char)

  A string, used only for debugging purposes, that contains additional information about the exception.

### ODFIELDINFO

Format

    typedef struct _ODFIELDINFO {
      ODULong       cb;
      ODULong       flDataAttrs;
      ODULong       flTitleAttrs;
      STR64         pTitleText;
    } ODFIELDINFO;
    typedef ODFIELDINFO *PODFIELDINFO;

Fields

cb (ODULong)

  The size (in bytes) of the FIELDINFO structure.

flDataAttrs (ODULong)

  The display attributes of the display data.

  - Specify one of the following for each column to choose the type of data that is displayed in each column:

    CFA_BITMAPORICON | The column contains bit-map or icon data.
    CFA_DATE | The data in the column is displayed in date format. National Language Support is enabled for date format. Use the data structure described in CDATE.
    CFA_STRING | Character or text data is displayed in this column.
    CFA_TIME | The data in the column is displayed in time format. National Language Support is enabled for time format. Use the data structure described in CTIME.
    CFA_ULONG | Unsigned number data is displayed in this column. National Language Support is enabled for number format.

  - Specify any or all of the following column attributes:

    CFA_FIREADONLY | Prevents text in a FIELDINFO data structure (text in a column) from being edited directly. This attribute applies only to columns for which the CFA_STRING attribute has been specified.
    CFA_HORZSEPARATOR | A horizontal separator is provided beneath column headings.
    CFA_INVISIBLE | Invisible container column. The default is visible.
    CFA_OWNER | Ownerdraw is enabled for this container column.
    CFA_SEPARATOR | A vertical separator is drawn after this column.

  - Specify one of the following for each column to vertically position data in that column:

    CFA_BOTTOM | Bottom-justified field data.
    CFA_TOP | Top-justified field data.
    CFA_VCENTER | Vertically centers field data. This is the default.

  - Specify one of the following for each column to horizontally position data in that column. These attributes can be combined with the attributes used for vertical positioning of column data by using an OR operator (|).

    CFA_CENTER | Horizontally centers field data.
    CFA_LEFT | Left-justified field data. This is the default.
    CFA_RIGHT | Right-justified field data.

flTitleAttrs (ODULong)

  The display attributes of the column heading.

  - Specify the following if icon or bit-map data is to be displayed in the column heading:

    CFA_BITMAPORICON | The column heading contains icon or bit-map data. If CFA_BITMAPORICON is not specified, any data that is assigned to a column heading is assumed to be character or text data.

  - Specify the following to prevent direct editing of a column heading:

    CFA_FITITLEREADONLY | Prevents a column heading from being edited directly.

  - Specify one of the following for each column heading to vertically position data in that column heading:

    CFA_TOP | Top-justified column headings.
    CFA_BOTTOM | Bottom-justified column headings.
    CFA_VCENTER | Vertically centers column headings. This is the default.

  - Specify one of the following for each column heading to horizontally position data in that column heading. These attributes can be combined with the attributes used for vertical positioning of column heading data by using an OR operator (|).

    CFA_CENTER | Horizontally centers column headings.
    CFA_LEFT | Left-justified column headings. This is the default.
    CFA_RIGHT | Right-justified column headings.

pTitleText (STR64)

  The column heading text.

### ODFileRefNum

A 32-bit file reference number.

Format

    typedef ODForeign ODFileRefNum;

### ODFileSpec

A 32-bit structure specifying a file on disk.

Format

    typedef ODForeign ODFileSpec;

### ODFixed

A 32-bit fixed-point value used to represent non-integer numbers in the range [-32768, 32768).

Format

    typedef ODSLong ODFixed;

The high 16 bits (including a sign bit) represent the integer part, and the low 16 bits represent a fractional part. In effect, the binary point is in the middle of the number.

You can convert an integer to ODFixed by shifting it left 16 bits. You can round an ODFixed value to an integer by adding 0x8000 (0.5) and shifting the result right 16 bits. You can convert between ODFixed and floating-point by multiplying or dividing by 65536.0. You can add and subtract ODFixed values as though they were integers; however, you cannot multiply or divide them directly.

### ODFlags

An unsigned 32-bit value used to represent a collection of flags.

Format

    typedef ODULong ODFlags;

### ODFloat

A floating-point value. The size of this type is platform-dependent.

Format

    typedef float ODFloat;

### ODFocusType

A string of type ODType used to identify a focus type.

Format

    typedef ODType ODFocusType;

A string of this type can be tokenized using the session object's Tokenize method. Arbitrator methods use the tokenized forms of these strings.

This type can take one of the following values:

kODClipboardFocus | The frame with the clipboard focus has access to the clipboard.
kODKeyFocus | The frame with keyboard focus receives keyboard events, excluding page-movement key events.
kODMenuFocus | The frame with menu focus receives menu events.
kODModalFocus | A frame with modal focus is notifying other frames that it is the only modal frame.
kODMouseFocus | The frame with mouse focus receives all mouse events independent of the facet in which the mouse pointer is located.
kODScrollingFocus | The frame with the scrolling focus receives page-movement key events, such as PageUp. This frame does not need to own keyboard focus.
kODSelectionFocus | The frame with the selection focus receives modified mouse-click events (Shift+click and Ctrl+click). OpenDoc draws the active frame border around all facets of this frame.

### ODForeign

A 32-bit platform-dependent type.

Format

    typedef void *ODForeign;

### ODFract

A 32-bit fixed-point value used to represent non-integer numbers in the range (-2, 2).

Format

    typedef ODSLong ODFract;

The high two bits (including the sign bit) represent the integer part and the low 30 bits represent a fractional part.

You can convert an integer to ODFract by shifting it left 30 bits. You can round an ODFract value to an integer by adding 0x20000000 (.5) and shifting the result right 30 bits. You can convert between ODFract and floating-point numbers my multiplying or dividing by a scaling factor of 1073741824.0. You can add and subtract ODFract values as though they were integers; however, you cannot multiply or divide them directly.

### ODFramePosition

An enumeration specifying the possible positions of a frame relative to a sibling frame.

Format

    enum ODFramePosition {kODFrameBehind, kODFrameInFront};

Fields

kODFrameBehind

  This frame is behind its sibling.

kODFrameInFront

  This frame is in front of its sibling.

### ODGeometryMode

An enumeration specifying the geometry modes of a shape object, indicating whether the shape is required to maintain its geometric (polygonal) representation.

Format

    enum ODGeometryMode {kODLoseGeometry, kODNeedsGeometry, kODPreserveGeometry};

This data type tells whether the shape's geometric information (its polygonal representation) will be needed in the future.

Fields

kODLoseGeometry

  The shape does not need to use a polygon to describe its geometric representation. The polygonal representation can be discarded to optimize speed, at the expense of accuracy and persistent storage capability. A facet's clip shape will generally have this mode.

kODNeedsGeometry

  The shape must maintain its polygonal representation. A facet's frame shape and used shape will have this mode because they are stored persistently in polygonal form.

kODPreserveGeometry

  The shape must maintain its polygonal representation for as long as possible. This is the default value.

### ODGraphicsSystem

A 16-bit value specifying a native platform graphics system.

Format

    typedef ODSShort ODGraphicsSystem;

This data type is used to identify the type of graphic system on platforms with more than one graphic system.

Every graphics system supported by OpenDoc must be identified by a unique ODGraphicsSystem value. These values are used by transform objects and shape objects to tag graphics-system-specific data.

- For OS/2, this is defined as kODPM.
- For Windows, this is kODWin95 or kODWinNT.
- For AIX, this is defined as kODAIX.

### ODGUID

A 128-bit value that specifies the globally uniquie identifier (GUID) that identifies a particular object class and interface.

Format

    typedef struct _ODGUID
      {
        unsigned long  Data1;
        unsigned short Data2;
        unsigned short Data3;
        unsigned char  Data4[8];
      } ODGUID;

Fields

Data1

  An unsigned long integer data value.

Data2

  An unsigned short integer data value.

Data3

  An unsigned short integer data value.

Data4

  An array of unsinged characters.

The GUID structure is defined in ODDSConn.h. The value may be obtained by using the Microsoft Visual C++ function guidgen.exe.

### ODHandle

A 32-bit value representing a handle.

Format

    typedef ODULong ODHandle;

### ODHighlight

An enumeration specifying the possible highlight states of a facet.

Format

    enum ODHighlight {kODDimHighlight, kODFullHighlight, kODNoHighlight};

Fields

kODDimHighlight

  The facet is highlighted in background style.

kODFullHighlight

  The facet is highlighted in foreground style.

kODNoHighlight

  The facet is not highlighted.

### ODIconFamily

An opaque platform-specific type that contains a collection of icons for rendering a part or other content in icon form.

Format

    typedef ODHandle ODIconFamily;

kODLargeIconSize | The size of a large icon, 32x32 pels.
kODSmallIconSize | The size of a small icon, 16x16 pels.
kODThumbnailSize | The size of a thumb nail icon, 64x64 pels.
kODTinyIconSize | The size of a tiny icon, 12x12 pels.

### ODID

A 32-bit value used as an identifier for a particular type of object (for example, a document or a storage unit).

Format

    typedef ODULong ODID;

This type can be set to one of the following values:

kODIDALL | Any ID. Use this value when specifying which storage units (or other objects) are of interest to a particular operation.
kODIDWild | Any ID. Use this value when specifying which storage units (or other objects) are of interest to a particular operation.
kODNULLID | A null ID or an invalid ID.

These three constants have the same value; their different names provide clarity to the code that uses them. Typically kODNULLID is used to mean an absent or invalid ID. kODIDALL or kODIDWild are used to specify no restrictions on the scope of a cloning operation.

### ODIdleFrequency

An 32-bit unsigned number representing the frequency, in ticks (1/60 of a second), at which null events are sent during idle times.

Format

    typedef ODULong ODIdleFrequency;

### ODInfoType

An opaque type for the part information data.

Format

    typedef ODULong ODInfoType;

To use the data, you must cast an ODInfoType value to and from your part's own representation of the data.

### ODISOStr

A pointer to an ISO string.

Format

    typedef string ODISOStr;

An ISO string is a string composed of ASCII characters, terminated by a null character (zero byte). Because the first null character terminates the string, null characters cannot be embedded.

Name-Mapping Resources

The following constants identify the name-mapping (nmap) resources that a part editor uses to describe the kinds of data it can edit. OpenDoc uses these resources to construct the specified tables.

kODCategoryUserString | A table that maps a part category to a user-visible string naming that category.
kODContainerSuite | A table that maps a container type to the container suite ID for that type.
kODEditorHelpFile | A table that maps an editor ID to the name of that editor's help file.
kODEditorKinds | A table that map an editor ID to the part kinds that the editor supports.
kODEditorUserString | A table the maps an editor ID to a user-visible string naming that editor.
kODKind | A table that maps a part kind to the categories that the kind belongs to.
kODKindUserString | A table the maps a part kind to a user-visible string naming that kind.
kODViewer | A table that maps a part viewer ID to the viewer type. The only supported viewer type is kODSimpleViewer.

Part Categories

The following constants are used to identify part categories in the part registration.

kODCategoryCalendar | Calendar data.
kODCategoryChart | Chart data.
kODCategoryCompressed | Compressed data (such as in ZIP format).
kODCategoryConnection | Connection part kinds.
kODCategoryControl | Controls, such as a button.
kODCategoryControlPanel | Control panels.
kODCategoryDatabase | Databases, such as in DB/2 format.
kODCategoryDrawing | Drawing part kinds, such as in PM metafile format.
kODCategoryExecutable | Executable part kinds, such as in .COM, .EXE, or other executable format.
kODCategoryForm | Form data.
kODCategoryFormula | Formula data, such as in an equation-editor format.
kODCategoryKey | Key data.
kODCategoryLocator | Locator data, such as a URL.
kODCategoryMailingLabel | Mailing labels.
kODCategoryMovie | Movie data, such as in AVI format.
kODCategoryOutline | Document-outline data.
kODCategoryOS2StdTypes | A generic category for the standard OS/2 types.
kODCategoryOS2TypesDisplayName | The display name for kODCategoryOS2StdTypes.
kODCategoryPageLayout | Page-layout data.
kODCategoryPainting | Painting data, such as in TIFF format.
kODCategoryPersonalInfo | Personal information, such as on business cards.
kODCategoryPlainText | Plain text, such as in ASCII code page 850.
kODCategoryPresentation | Presentation data.
kODCategoryPrinter | Printer data.
kODCategoryProject | Project-management data, such as in GA SuperProject format.
kODCategoryQuery | Database queries, such as in SQL format.
kODCategorySampledSound | Sampled sounds, such as in the WOW format.
kODCategoryScript | Scripting data, such as in &objrexx. or any other OSA-compliant scripting-language format.
kODCategorySignature | Digital-signature data.
kODCategorySpace | Space data, such as a folder, hard disk, or server.
kODCategorySpreadsheet | Spreadsheet data.
kODCategoryStructuredSound | Structured sound, such as in MIDI format.
kODCategoryStyledText | Styled text, such as in RTF format.
kODCategory3DGraphic | 3D graphics part kinds.
kODCategoryTable | Tables, such as in tab-delimited text format.
kODCategoryTime | Part kinds related to time, for example, clocks.
kODCategoryUtility | Utilities.

Part Editors and Viewers

The following constants are used to identify part editors and viewers.

kODBlackBoxHandlerOfLastResort | The editor ID for the editor of the last resource used for any part for which a suitable editor cannot be found.
kODSimpleViewer | A viewer for a simple part.

Data Types in Resources

The following constants identify the various data types.

kODIsAnISOStringID | An ISO string.
kODIsAnISOStringListID | A list of ISO strings.
kODIsINTLTextID | International text structure.
kODIsPltfrmTypeSpacID | A platform type space (file or data).
kODIsHelpFileNameID | A help file name.

Standard ISO Prefixes

The following constant is used to identify standard ISO prefixes.

kODISOPrefix | The standard ISO prefix for properties, kinds and types.

Data Interoperability

The following constants are used to identify standard presentation manager (PM) formats and drag-and-drop rendering mechanism and format pairs.

kODKindAudioAU | AU Waveform Audio
kODKindGraphicsCGM | CGM graphics
kODKindImageGIF | GIF image
kODKindImageJPEG | JPEG image
kODKindMusicMIDI | MIDI
kODKindPlainText | Plain ASCII text in code page 850
kODKindTextRTF10 | Rich Text Format 1.0
kODKindVideoMPEG | MPEG video

### ODIText

A platform-specific structure representing a user-visible, international text string.

Format

    typedef struct _ODIText {
      ODITextFormat       format;
      ODByteArray         text;
    } ODIText;

The characters in an international text string are represented by 8-bit bytes, thus a total 256 byte values can be used; in contrast, the only the 128 ASCII characters can be used in an ISO string.

The kODISO10646_1993BaseEncoding constant is an 18-bit code indicating the document interchange format of text written out by OpenDoc. This format corresponds to ISO standard 10646-1, 1993, fully decomposed; it is the only interchange format for text supported by OpenDoc.

When international text is stored in an interchange format, the interchange-format code is stored with the encoded text.

Fields

format (ODITextFormat)

  The format of the text. This parameter can be set to the following value:

  kODISO10646_1993BaseEncoding | The unicode format for IText data in storage units.
  kODOS2PlainText | The international text standard of language code/language code/string.

text (ODByteArray)

  The text string, represented as an ODByteArray structure in the specified format.

  In the kODOS2PlainText format, the _buffer field of this byte array contains two 16-bit values followed by the raw text. The first 16-bit value is the script code, the second is the language code. The _length field of this byte array indicates the entire length of the _buffer field in 8-bit bytes; subtract the length of the two codes (4 bytes) to get the text length.

### ODITextFormat

A 32-bit value specifying a text format.

Format

    typedef long ODITextFormat;

kODISO10646_1993BaseEncoding | The unicode format for IText data in storage units.
kODOS2PlainText | The international text standard of language code/language code/string.

### ODLinkDescription

A string used to hold the user-given name to a link or link source.

Format

    typedef ODIText ODLinkDescription;

### ODLinkID

A 32-bit value representing a link or link source.

Format

    typedef ODID ODLinkID;

### ODLinkInfo

A structure that contains information about a link destination for display in the Link Destination Info dialog box.

Format

    typedef struct _ODLinkInfo {
      ODType           kind;
      ODTime           creationTime;
      ODTime           changeTime;
      ODUpdateID       change;
      ODBoolean        autoUpdate;
    } ODLinkInfo;

Fields

kind (ODType)

  The part kind used by the destination of the link.

creationTime (ODTime)

  The date and time of the creation of this link destination.

changeTime (ODTime)

  The date and time of the latest source change read by this destination.

change (ODUpdateID)

  The update ID of the source update last read by this destination.

autoUpdate (ODBoolean)

  A flag indicating whether this destination updates automatically.

  kODTrue | This destination updates automatically.
  kODFalse | This destination does not update automatically.

### ODLinkInfoAction

An enumeration specifying the kind of action to be taken as the result of user selections in the Link Source Info dialog box or the Link Destination Info dialog box.

Format

    enum ODLinkInfoAction {kODLinkInfoBreakLink, kODLinkInfoCancel,
                           kODLinkInfoFindSource, kODLinkInfoOK,
                           kODLinkInfoUpdateNow};

Fields

kODLinkInfoBreakLink

  Break the link.

kODLinkInfoCancel

  Take no action; the user cancelled the dialog box.

kODLinkInfoFindSource

  Display the source of the link. Relevant only in the Link Destination Info dialog box.

kODLinkInfoOK

  Accept any new settings selected by the user in the dialog box.

kODLinkInfoUpdateNow

  Update the link immediately.

### ODLinkInfoResult

A structure that contains the results of user selections in the Link Source Info dialog box or the Link Destination Info dialog box.

Format

    typedef struct _ODLinkInfoResult {
      ODLinkInfoAction       action;
      ODBoolean              autoUpdate;
    } ODLinkInfoResult;

Fields

action (ODLinkInfoAction)

  The action taken by the user to dismiss the dialog box.

autoUpdate (ODBoolean)

  A flag indicating whether the user chose automatic updating.

  kODTrue | The user chose automatic updating.
  kODFalse | The user did not choose automatic updating.

### ODLinkKey

An opaque 32-bit type used to provide thread-safe access to link content.

Format

    typedef ODULong ODLinkKey;

A link key can be created by the methods ODLink::Lock and ODLinkSource::Lock. The link key must be used in any method that returns or modifies the content storage unit of a link object or link-source object.

### ODLinkStatus

An enumeration specifying the link status of a frame.

Format

    enum ODLinkStatus {kODInLinkDestination, kODInLinkSource, kODNotInLink};

Fields

kODInLinkDestination

  The frame is embedded in the destination of a link; the content of this frame is thus supplied by a link.

kODInLinkSource

  The frame is embedded in content that is the source of one or more links, but not in content that is the destination of a link.

kODNotInLink

  The frame is not embedded in any linked content, source or destination.

### ODMapping

Pointer to a transform matrix.

Format

    typedef ODMatrix *ODMapping;

### ODMatrix

A transform matrix for translation, scaling, skewing, rotation, or any combination. This structure is the same as mapping in QuickDraw GX.

Format

    struct ODMatrix
      {
        ODFixed m[3][3];
      };

### ODMenuID

A platform-specific identifier for a menu.

Format

    typedef ODSShort ODMenuID;

To prevent menu IDs from clashing, there is a convention for root parts, parts, and shells. Root parts must restrict their root menu IDs to be in the range ODMENUID_ROOTPART_FIRST to ODMENUID_ROOTPART_LAST. Parts must restrict their menu IDs of menu items they create for display to be in the range ODMENUID_ACTIVEPART_FIRST to ODMENUID_ACTIVEPART_FIRST. Shells must restrict their values in the range ODMENUID_SHELL_FIRST to ODMENUID_SHELL_LAST. If this convention is not adhered to, there is a risk that the part and the shell might both create menu items on the same menu using the same menu ID. If this occurs, ambiguity and misdirected menu modifications may result.

OpenDoc has two other predefined meta menu IDs. ODMENUID_ROOT represents the parent menu item of the top-level menu, and ODMENUID_ALL represents the entire menu tree.

### ODMenuItem

A menu item.

Format

    typedef MENUITEM ODMenuItem;

### ODMenuItemID

A platform-specific identifier for a menu item.

Format

    typedef ODSShort ODMenuItemID;

### ODName

A name in international text.

Format

    typedef ODIText ODName;

### ODNSTypeSpec

An enumeration specifying the types of data that a name space applies to.

Format

    enum ODNSTypeSpec {ODNSDataTypeODObject, ODNSDataTypeODValue};

Fields

ODNSDataTypeODObject

  An object name space.

ODNSDataTypeODValue

  A value name space.

### ODObjectType

A string specifying the type of persistent object represented by a particular storage unit.

Format

    typedef ODType ODObjectType;

kODFrameObject | A frame.
kODNonPersistentFrameObject | A nonpersistent frame.
kODPartObject | A part.

### ODPasteAsMergeSetting

A 32-bit value used to communicate settings to the ODClipboard::ShowPasteAsDialog and ODDragAndDrop::ShowPasteAsDialog methods.

Format

    typedef struct ODPasteAsMergeSetting;

Values specify which At the Destination radio button (Merge with Contents or Embed As) is initially selected and whether the other button is available.

kODPasteAsEmbed | Embed As is initially selected; Merge with Contents is available.
kODPasteAsEmbedOnly | Embed As is selected; Merge with Contents is disabled.
kODPasteAsMerge | Merge with Contents is initially selected; Embed As is available.
kODPasteAsMergeOnly | Merge with Contents is selected; Embed As is disabled.

### ODPasteAsResult

A structure for storing the results from the Paste As dialog box.

Format

    typedef struct _ODPasteAsResult {
      ODBoolean         pasteLinkSetting;
      ODBoolean         autoUpdateSetting;
      ODBoolean         mergeSetting;
      ODTypeToken       selectedView;
      ODType            selectedKind;
      ODType            translateKind;
      ODEditor          editor;
    } ODPasteAsResult;

Fields

pasteLinkSetting (ODBoolean)

  A flag indicating whether a link was chosen

  kODTrue | A link was chosen.
  kODFalse | A link was not chosen.

autoUpdateSetting (ODBoolean)

  A flag indicating whether automatic link updates were chosen. This parameter is relevant only if the pasteLinkSetting parameter is kODTrue.

  kODTrue | Automatic link updates were chosen.
  kODFalse | Automatic link updates were not chosen.

mergeSetting (ODBoolean)

  A flag indicating whether incorporation or embedding was chose.

  kODTrue | Incorporation was chosen
  kODFalse | Embedding was chosen.

selectedView (ODTypeToken)

  The view type chosen.

selectedKind (ODType)

  The part kind chosen for merging.

translateKind (ODType)

  If data translation was chosen, this parameter indicates the available type that are translated to the selected kind. If an available kind was chosen, this field will be kODNULL.

editor (ODEditor)

  The preferred editor to bind to the part after embedding or kODNoEditor if no specific editor was chosen. This parameter is relevant only if the mergeSetting parameter is kODFalse.

### ODPersistentObjectID

A 32-bit ID of a part or frame, used for scripting.

Format

    typedef ODULong ODPersistentObjectID;

### ODPlatformCanvas

A 32-bit wrapper for a pointer to a platform-specific or graphics-system-specific drawing environment.

Format

    typedef unsigned long ODPlatformCanvas;

### ODPlatformCanvasTupe

An enumeration defined in `ODTypesB.idl`.

Format

    enum ODPlatformCanvasType
      {
        kODNoPlatformCanvas,
        kODPlatformStandardCanvas,
        kODPlatformWindowCanvas,
      };

### ODPlatformDragReference

Drag reference.

Format

    typedef ULONG ODPlatformDragReference;

### ODPlatformMenu

A 32-bit wrapper for a platform-specific structure representing a menu.

Format

    typedef unsigned long ODPlatformMenu;

### ODPlatformMenuBar

A 32-bit wrapper for a platform-specific structure representing a menu bar.

Format

    #define unsigned long ODPlatformMenuBar

### ODPlatformMenuItem

Platform menu item.

Format

    typedef struct _ODPlatformMenuItem {
      short                iPosition;
      unsigned short       afStyle;
      unsigned short       afAttribute;
      unsigned short       id;
      unsigned long        hwndSubMenu;
      unsigned long        hItem;
    } ODPlatformMenuItem;

Fields

iPosition (short)

  Position.

afStyle (unsigned short)

  Style.

afAttribute (unsigned short)

  Attribute.

id (unsigned short)

  Identity.

hwndSubMenu (unsigned long)

  Handle to the submenu.

hItem (unsigned long)

  Item.

### ODPlatformPrintJob

A 32-bit wrapper for a pointer to a platform-specific or graphics-system-specific print job data structure.

Format

    typedef unsigned long ODPlatformPrintJob;

When a part creates a print job, it creates an ODPlatformCanvas object and initializes it with the presentation space handle for the printer. It then creates an ODCanvas object and initializes this using the ODPlatformCanvas object. The part must also create and initialize an ODPlatformPrintJob structure and call the canvas' GetPlatformPrintJob method.

### ODPlatformShape

A 32-bit wrapper for a pointer to graphics-system-specific shape data.

Format

    typedef unsigned long ODPlatformShape;

The data format is unspecified, and it must be tagged with an ODGraphicsSystem value to identify the graphics system to which it belongs. Given the pair (ODPlatformShape, ODGraphicsSystem), it is possible to identify the exact type of the shape data.

### ODPlatformTransform

A 32-bit wrapper for graphics-system-specific transformation data.

Format

    typedef unsigned long ODPlatformTransform;

The data format is unspecified, and it must be tagged with an ODGraphicsSystem value to identify the graphics system to which it belongs. Given the pair (ODPlatformTransform, ODGraphicsSystem), it is possible to identify the exact type of the transformation data.

### ODPlatformType

A 32-bit wrapper for the platform-specific type used to identify data formats for data interchange.

Format

    typedef unsigned long ODPlatformType;

### ODPlatformTypeSpace

A 32-bit value used to specify the type of a platform-specific structure identifying a type space (data or file).

Format

    typedef ODULong ODPlatformTypeSpace;

kODPlatformDataType | The native operating system scrap type.
kODPlatformFileType | The native operating system file type.

### ODPlatformTypeSpaceConsts

An enumeration specifying types of platform-specific structures.

Format

    enum ODPlatformTypeSpaceConsts {kODPlatformFileType, kODPlatformDataType};

Fields

kODPlatformFileType

  The file type of the native operating system.

kODPlatformDataType

  The data type of the native operating system.

### ODPlatformWindow

A 32-bit wrapper for a platform-specific structure representing a window.

Format

    typedef unsigned long ODPlatformWindow;

### ODPlatformWindowCreateOptions

Options for creating platform windows.

Format

    typedef unsigned long ODPlatformWindowCreateOptions;

This data type can have one of the following values:

FCF_ACCELTABLE | An accelerator-table resource is required.
FCF_SHELLPOSITION | The size, coordinates, and position is determined by the system.
FCF_STANDARD | A menu template is required.

### ODPoint

A structure representing a spatial point in a window or document.

Format

    typedef struct _ODPoint {
      ODCoordinate       x;
      ODCoordinate       y;
    } ODPoint;

In two-dimensional imaging models, a point is represented as a pair of ODCoordinate values.

Fields

x (ODCoordinate)

  X-coordinate.

y (ODCoordinate)

  Y-coordinate.

### ODPolygon

A two-dimensional shape composed of one or more contours.

Format

    typedef ODByteArray ODPolygon;

Polygons with multiple contours can be composed of disjoint pieces, or can have interior holes. The _buffer field of a polygon byte array points to a 32-bit signed value, indicating the number of contours in the polygon, followed by the contour data for the specified number of contours as described for the ODContour byte array. The polygon data does not contain ODContour byte array structures, but the actual contour data for each contour.

### ODPolygonData

A structure containing the data for a polygon.

Format

    typedef struct _ODPolygonData {
      ODSLong         nContours;
      ODContour       firstContour;
    } ODPolygonData;

Fields

nContours (ODSLong)

  The number of contours.

firstContour (ODContour)

  The contours that follow after the first.

### ODPositionCode

A 32-bit value used to specify the position of a draft within a document, or the position of a property or value that defined the focus context for a storage unit.

Format

    typedef ODULong ODPositionCode;

Draft Position Codes

The following constants of the ODPositionCode type represent positions of one draft in a document relative to another draft of the same document. The drafts of a document can be thought of as a stack with the most recent on top; a given draft is said to be above an earlier draft and below a more recent draft.

kODPosFirstAbove | The draft above (immediately more recent than) the specified draft.
kODPosFirstBelow | The draft below (immediately previous to) the specified draft.
kODPosLastAbove | The draft above (immediately more recent than) the specified draft.
kODPosLastBelow | The draft below (immediately previous to) the specified draft.
kODPosSame | The same draft as the specified draft.
kODPosTop | The top (most recent) draft in the document.

Storage-Unit Position Codes

The following constant of the ODPositionCode type represent positions of properties and values within a storage unit; they are used to define or to change the focus context of a storage unit.

kODPosAll | All properties or all values.
kODPosFirstSib | The first property of the storage unit or the first value of the specified property.
kODPosLastSib | The last property of the storage unit or the last value of the specified property.
kODPosMWrap | Wraps iteration of properties or values.
kODPosNextSib | The next property of the storage unit or the next value of the specified property, relative to the current focus context.
kODPosPrevSib | The previous property of the storage unit or the previous value of the specified property, relative to the current focus context.
kODPosSame | The same property or value context as in the current focus context.
kODPosUndefined | Undefined property or value context; typically used when a property name specifies the property and when a value type or value index specifies the value.

Unused Position Codes

The following constants of type the ODPositionCode type are reserved.

kODPosReserved11 | Reserved.
kODPosReserved12 | Reserved.
kODPosReserved13 | Reserved.
kODPosReserved14 | Reserved.
kODPosReserved15 | Reserved.

### ODPropertyName

A name for a property within a storage unit.

Format

    typedef ODISOStr ODPropertyName;

Prefixes

The following constants are prefixes used in property names; they specify the type of information stored in the property.

kODPropPreAnnotation | A prefix in the property names of all annotation properties (value "OpenDoc:Annotation:"). OpenDoc copies an annotation when the storage unit is cloned. Part-editor developers can use this string as a prefix in the names of annotation properties they define.
kODPropPreODMetaData | A prefix used in the property names of all OpenDoc metadata properties. Metadata is information about the data itself, such as the time it was last modified. Part-editor developers should not use this prefix.

Draft Properties

The following properties save the specified information about the draft, link manager, and window state.

kODPropDocumentName | A user-readable name for a document, of type ODName.
kODPropDraftComment | Any user-created comments on the draft; value type kODOS2IText.
kODPropDraftName | A name for a draft, of type ODISOStr.
kODPropDraftNumber | The number of this draft; value type kODSLong.
kODPropDraftSavedDate | The draft-saved date for drafts that were saved via the Draft History dialog box; value type kODTime_T.
kODPropEditionID | The last edition file ID used by this draft of the document; value type kODULong.
kODPropOriginalID | The original ID of a cloned object; used by the draft cloning methods; value type kODULong.
kODPropRootFrameList | A list of strong references to the root frames of saved windows; value type kODStrongStorageUnitRef.
kODPropRootPartSU | A strong reference to the storage unit of the root part of this draft; value type kODStrongStorageUnitRef.
kODPropSectionID | The last section ID used by the current draft of the document; value type kODULong.
kODPropStorageUnitName | A name for a storage unit, of type ODISOStr.

Persistent-Object Properties

The following properties are used by persistent objects of all kinds.

kODPropObjectType | The type of persistent object (for example, part, frame, link); value type kODObjectType.
kODPropStorageUnitType | The type of storage unit (for example, the storage unit for a frame object, for link content, and so forth); value type kODISOStr.

Part Properties

The following properties save the specified information about parts.

kODPropComments | Any user-created comments about the part; value type kODOS2IText).
kODPropContents | The stored intrinsic data for the part; the value types correspond to part kinds supported by the part.
kODPropCreateDate | The creation date and time of the object; value type kODTime_T.
kODPropCustomIcon | The custom icon for a part.
kODPropIconFamily | The data used for the custom icon of a part on the General page of the Properties notebook.
kODPropDisplayFrames | A list of weak references to the display frames of this part; value type kODWeakStorageUnitRefs.
kODPropHistory | The data used for the history information on the General page of the Properties notebook.
kODPropIsStationery | A Boolean specifying whether this part is a template part; value type kODBoolean.
kODPropKeyPhrases | The data used for the key phrases information on the File page of the Properties notebook.
kODPropModDate | The date and time the part was last modified; value type kODTime_T.
kODPropModUser | The user name when the part was last modified; value type kODOS2IText.
kODPropName | The name of the part; value type kODOS2IText.
kODPropPreferredEditor | The editor ID of the preferred editor (the editor that last wrote this part to persistent storage); value type kODEditor.
kODPropPreferredKind | The value in the kODPropContents property that is read by an editor bound to this part; value type kODISOStr. This property, if present, overrides the ordering of values in the kODPropContents property.

Part Containing Properties

The following properties are standardized properties for part containers.

kODBackgroundColor | value type kODRGB2.
kODBackgroundTransparency | value type kODBoolean.
kODFont | The font is of type kODFontNameSize.
kODForegroundColor | value type kODRGB2.
kODTransparencySupported | value type kODBoolean.

Frame Properties

The following properties save the specified information about frames.

kODPropBiasTransform | The bias transform to be attached to the canvas on which this frame is drawn; value type kODTransform.
kODPropContainingFrame | A weak reference to the containing frame of this frame; value type kODWeakStorageUnitRef.
kODPropDoesPropagateEvent | A Boolean specifying whether this frame's part propagates events; value type kODBoolean.
kODPropFrameGroup | The group ID of the frame group to which this frame belongs; value type kODULong.
kODPropFrameShape | The frame shape for this frame; value type kODPolygon.
kODPropGraphicsSystem | The graphics system used to draw in this frame's part; value type kODSShort. The stored data is interpreted as type ODGraphicsSystem.
kODPropInternalTransform | The internal transform for this frame; value type kODTransform.
kODPropIsFrozen | A Boolean specifying whether this frame is bundled; value type kODBoolean.
kODPropIsOverlaid | A Boolean specifying whether this frame is overlaid; value type kODBoolean.
kODPropIsRoot | A Boolean specifying whether this frame is the root frame of a window; value type kODBoolean.
kODPropIsSubframe | A Boolean specifying whether this frame is a subframe of another frame; value type kODBoolean.
kODPropLinkStatus | The link status of this frame; value type kODULong, interpreted as type ODLinkStatus.
kODPropPart | A strong reference to the part displayed in this frame; value type kODStrongStorageUnitRef.
kODPropPartInfo | The part Info (part-specific data) stored with this frame. The value type is determined by the part editor.
kODPropPresentation | The presentation of the part displayed in this frame; value type kODISOStr.
kODPropSequenceNumber | The sequence number of this frame within its frame group; value type kODULong.
kODPropViewType | The view type of the part displayed in this frame; value type kODISOStr.
kODPropWindowProperties | A strong reference to a storage unit containing window size and so forth; value type kODStrongStorageUnitRef. This property is added to the root frame of saved windows.

Window Properties

The following properties save the specified information about windows.

kODPropRootFrame | A strong reference to the root frame; value type kODStrongStorageUnitRef.
kODPropShouldShowLinks | A Boolean specifying whether parts in this window display link borders; value type kODBoolean.
kODPropSourceFrame | A strong reference to the source frame; value type kODStrongStorageUnitRef.
kODPropWindow | A weak reference to a window's storage unit; value type kODWeakStorageUnitRef.
kODPropWindowCreateFlags | OS/2 window create flags; value type kODULong.
kODPropWindowHasCloseBox | A Boolean specifying whether this window has a close box; value type kODBoolean.
kODPropWindowHasZoomBox | A Boolean specifying whether this window has a zoom box; value type kODBoolean.
kODPropWindowIsFloating | A Boolean specifying whether this window can float; value type kODBoolean.
kODPropWindowIsResizable | A Boolean specifying whether this window has a resize box; value type kODBoolean.
kODPropWindowIsRootWindow | A Boolean specifying whether this window is the root window; value type kODBoolean.
kODPropWindowIsVisible | A Boolean specifying whether this window is visible; value type kODBoolean.
kODPropWindowRect | The bounding rectangle of a window; value type kODRect.
kODPropWindowRefCon | The window's reference constant, which is set used by your part; value type kODSLong.
kODPropWindowSwpFlags | OS/2 set window position flags; value type SWP.
kODPropWindowTitle | The title of a window; value type kODOS2ITEXT.

Data-Transfer Properties

The following properties save the specified information in the content storage units of data-interchange objects (the clipboard, the drag-and-drop object, link-source objects and link objects).

kODPropContents | The data being transferred, in the same format as in the storage unit of the source part; the value types correspond to the types (part kinds) of the data being transferred.
kODPropContentFrame | A weak reference to the embedded frame being transferred; value type kODWeakStorageUnitRef. This property exists only if the data being transferred consists of a single embedded frame.
kODPropEditionAlias | The alias of an edition file used in implementing cross-document links.
kODPropLinkSection | The section record of a cross-document link.
kODPropLinkSpec | A link specification; value type kODLinkSpec. This property indicates that the destination part may paste a link to the original content being transferred.
kODPropMouseDownOffset | The offset of the location at which a mouse-down event occurred from the top left corner of the selection; value type kODPoint.
kODPropName | If the transferred data is embedded at the destination, the name to be used for the resulting embedded part; value type kODOS2IText.
kODPropOriginalCloneKind | The kind of clone operation that deposited content in this storage unit; value type kODULong, interpreted as type ODCloneKind.
kODPropOriginalDraft | The nonpersistent reference to the original draft for the cloned data in this storage unit; value type kODULong.
kODPropProxyContents | Suggested adornments to apply to the embedded frame being transferred; value type depends on type of adornment being transferred. This property exists only if the data being transferred consists of a single embedded frame.
kODPropSuggestedFrameShape | If the transferred data is embedded at the destination, the suggested shape for the resulting embedded frame; the value type is a kODPolygon or a platform-specific value type.
kODPropLinkSource | A weak reference to the link-source object associated with this link object; value type kODWeakStorageUnitRef.
kODPropAutoUpdate | A Boolean specifying whether this link is to be updated automatically; value type kODBoolean.
kODPropChangeTime | The date and time of this link's last update; value type kODTime_T.
kODPropLink | A weak reference to the link object associated with this link-source object; value type kODWeakStorageUnitRef.
kODPropLinkContentSU | A strong reference to the contents storage for the linked data; value type kODStrongStorageUnitRef.
kODPropSourcePart | A weak reference to the part that contains (or last contained) the source data for this link; value type kODWeakStorageUnitRef.
kODPropCloneKindUsed | The kind of cloning operation used to clone objects into this data-transfer object; value type kODCloneKind.

### ODPtr

A general-purpose pointer.

Format

    typedef void *ODPtr;

### ODPurgePriority

The purge priority.

Format

    typedef ODUlong ODPurgePriority;

kODAllBlocks | All blocks purged.
kODInvisibleBlocks | Only blocks with no references purged.
kODVisibleBlocks | Only blocks with references purged.

### ODPurgePriorityConsts

An enumeration specifying the purge priority.

Format

    enum ODPurgePriorityConsts {kODAllBlocks, kODInvisibleBlocks, kODVisibleBlocks};

Fields

kODAllBlocks

  All blocks are to be purged.

kODInvisibleBlocks

  Only blocks without references to them are to be purged.

kODVisibleBlocks

  Only blocks with references to them are to be purged.

### ODRawPtr

A generic pointer.

Format

    typedef ODUByte *ODRawPtr;

### ODRect

A structure representing a rectangle whose sides are aligned with the axes of the current coordinate system.

Format

    typedef struct _ODRect {
      ODCoordinate       left;
      ODCoordinate       top;
      ODCoordinate       right;
      ODCoordinate       bottom;
    } ODRect;

A rectangle is represented as four ODCoordinate values. By convention, a rectangle does not include its bottom or right edge; this makes it easier to have adjacent yet non-overlapping rectangles.

Fields

left (ODCoordinate)

  The left extent of the rectangle.

top (ODCoordinate)

  The top extent of the rectangle.

right (ODCoordinate)

  The right extent of the rectangle.

bottom (ODCoordinate)

  The bottom extent of the rectangle.

### ODRespectMarksChoices

An enumeration specifying the possible values for clearing an action history.

Format

    enum ODRespectMarksChoices {kODDontRespectMarks, kODRespectMarks};

Fields

kODDontRespectMarks

  Clear the whole action history, ignoring any marks that indicate the beginning of an action sub-history.

kODRespectMarks

  Clear only the actions within the current sub-history.

### ODSByte

A signed, 8-bit value, typically used to represent a single character.

Format

    typedef char ODSByte;

### ODScrRegRet

A long value from registration routines.

Format

    typedef long ODScrRegRet;

Purpose

This definition takes on the values:

ODScrRegOK | No error.
ODScrRegDup | Attempt to register an object instance with the same name as some other object. Registration failed.
ODScrRegMem | Out of memory error detected.
ODScrRegNone | Registration not done because no script component is associated with the extension.
ODScrRegOver | AddContainedPart failed because the extension did not provide part-specific logic.
ODScrRegErr | Component failure, call _GetComponentInstanceError for the specific error value.

### ODSiblingOrder

An enumeration that specifies the order siblings are processed when iterating through a facet hierarchy.

Format

    enum ODSiblingOrder {kODBackToFront, kODFrontToBack};

Fields

kODBackToFront

  Process the siblings in a facet hierarchy from back to front.

kODFrontToBack

  Process the siblings in a facet hierarchy from front to back.

### ODSize

An unsigned 32-bit integer value used to specify the size of a data type, a buffer, or a memory block.

Format

    typedef ODULong ODSize;

### ODSLong

A signed, 32-bit integer value.

Format

    typedef long ODSLong;

### ODSShort

A signed, 16-bit integer value.

Format

    typedef short ODSShort;

### ODStorageUnitID

An identifier for a storage unit.

Format

    typedef ODID ODStorageUnitID;

kODNULLID | A null storage-unit ID.

### ODStorageUnitKey

A 32-bit value used as an access key used for locking and unlocking a storage unit.

Format

    typedef ODULong ODStorageUnitKey;

kODNULLKey | A storage unit key has not yet been granted, or cannot be granted.

### ODStorageUnitName

A name for a storage unit.

Format

    typedef ODISOStr ODStorageUnitName;

### ODStorageUnitRef

An opaque type representing a persistent reference for a storage unit. A value of the ODStorageUnitID type identifies a storage unit within the current session, but a value of the ODStorageUnitRef type identifies its persistently across sessions.

A value of the ODStorageUnitID type is created by a storage unit, that must be focused on the value for which it was created. If you store it in a different value, it will not refer to the correct storage unit. For more information on persistent references to storage units, see the chapter on storage in OpenDoc Programming Guide.

Format

    typedef ODID ODStorageUnitRef;

kODStorageUnitRefSize | The size (number of bytes) of an ODStorageUnitRef.

### ODTime

A 32-bit value representing a point in time, as the number of seconds elapsed since the beginning of 1970.

Format

    typedef ODForeign ODTime;

### ODTime2

A 32-bit time designation.

Format

    typedef ODTime ODTime2;

### ODTransformType

A 16-bit value used to specify a kind of transformation specified by a transform.

Format

    typedef ODSShort ODTransformType;

kODIdentityXform | Identity (no-op) transform.
kODInvalidXform | Bad matrix [internal use only].
kODLinearTranslateXform | Scale, rotate, skew, and translation.
kODLinearXform | Scale, rotate, and skew.
kODPerspectiveXform | Perspective transformation; applies a 3D or distortion effect.
kODScaleTranslateXform | Scale and translation (offset).
kODScaleXform | Pure scale.
kODTranslateXform | Pure translation (offset).
kODUnknownXform | Type not known yet [internal use only].

### ODTranslateResult

An enumeration specifying the possible results of a translation.

Format

    typedef ODULong ODTranslateResult;

kODCanTranslate | Translation is allowed with the given types.
kODCannotTranslate | Translation is not allowed with the given types.

### ODTranslateResultConsts

An enumeration specifying the possible results of a translation.

Format

    enum ODTranslateResultConsts {kODCannotTranslate, kODCanTranslate, kODNative};

Fields

kODCannotTranslate

  Translation is not allowed with the specified type.

kODCanTranslate

  Translation is allowed with the specified type.

kODNative

  The part handles the data directly.

### ODTraversalType

An enumeration used to specify the order of iteration through a facet hierarchy. The root of the hierarchy is the facet whose embedded facets are being traversed. If that facet's sibling order is front to back, sibling facets at the same level in the hierarchy are traversed starting with the front; if the sibling order is back to front, sibling facets are traversed starting with the back.

Format

    enum ODTraversalType {kODBottomUp, kODChildrenOnly, kODTopDown};

Fields

kODBottomUp

  Traverse the facet tree from the bottom up, visiting a parent facet after visiting all its children. If sibling order is front to back, traversal starts with the frontmost facet at the lowest level in the hierarchy; if back to front, at the backmost facet at the lowest level.

kODChildrenOnly

  Traverse only the children of the specified facet.

kODTopDown

  Traverse the facet tree from the top down.

### ODType

A string used generically within OpenDoc to represent drag-image types, object types and value types for storage units, frame presentation types and view types, focus types, and extension types.

Format

    typedef ODISOStr ODType;

The following constants are defined for this datatype:

Frame Presentations

kODPresDefault | The default presentation for a frame.

Frame View Types

kODViewAsFrame | Framed view type.
kODViewAsLargeIcon | Large (standard)-icon view type.
kODViewAsSmallIcon | Small-icon view type.
kODViewAsThumbnail | Thumbnail view type.

Extensions

kODExtSemanticInterface | An extension to support a semantic interface in your part.
kODExtStatusLine | An extension to support a status line in your part.
kODMenuExtension | An extension that allows parts to share menu bar space.
kODSettingsExtension | An extension to add panels to the part Info dialog box.

### ODTypeToken

A 32-bit value used to represent the tokenized form of an ODType value.

Format

    typedef ODULong ODTypeToken;

kODNullTypeToken | A null type token.
kODNullFocus | No focus. This value is returned by focus iterators.

### ODUByte

An unsigned 8-bit value.

Format

    typedef octet ODUByte;

### ODULong

An unsigned 32-bit value.

Format

    typedef unsigned long ODULong;

### ODUpdateID

A 32-bit value used as an update identifier for clipboard content or linked content.

Format

    typedef ODULong ODUpdateID;

Two ODUpdateID values associated with different versions of the same content may be tested for equality, but any other use of these values is meaningless.

kODUnknownUpdate | A value guaranteed to be different from any actual update ID. This constant can be used by parts when the update ID associated with shared content is unknown.

### ODUShort

An unsigned 16-bit value.

Format

    typedef unsigned short ODUShort;

### ODValue

An opaque type representing a value of a storage unit.

Format

    typedef void *ODValue;

### ODValueIndex

A 32-bit integer used as an index for a value within a property of a storage unit. The first value created for a property has index 1; the second, 2; and so on.

Format

    typedef ODID ODValueIndex;

Possible values are shown in the following list:

kODIndexAll | Any value index. This constant is used when focusing a storage unit on a property and when checking for the existence of a property in a storage unit.

### ODValueType

A string used to identify the type of data in the value of a storage unit.

Format

    typedef ODType ODValueType;

Possible values are shown in the following list:

kODBoolean | Type ODBoolean.
kODCloneKind | Type ODCloneKind.
kODDate | Type CDATE.
kODDragItem | A PM DRAGITEM structure.
kODDragOperation | A PM drag operation.
kODEditor | Type ODEditor.
kODFileType | The name of the dragged file.
kODFileTypeEA | The extended attributes of the dragged file.
kODFontNameSize | A string containing the font size and name in the same format as the OS/2 PRESPARAMS.
kODIconFamily | Type ODIconFamily.
kODIconFamilyWin | Type ODIconFamily representing a Windows icon family.
kODIconFamilyOS2 | Type ODIconFamily representing an OS/2 icon family.
kODIconFamilyAIX | Type ODIconFamily representing an AIX icon family.
kODIntlText | Type ODIText converted to an interchange format that corresponds to ISO standard 10646-1, 1993, fully decomposed.
kODISOStr | Type ODISOStr.
kODISOStrList | A list of ISO strings.
kODLinkSpec | An ODLinkSpec object.
kODObjectType | Type ODObjectType.
kODPoint | Type ODPoint.
kODOS2IText | Type ODIText
kODPolygon | Type ODPolygon.
kODRect | Type ODRect.
kODRGB2 | Type RGB.
kODSelectedKind | The selected kind for the current drag-and-drop operation.
kODSelectedRMF | The selected RMF pair for the current drag-and-drop operation.
kODSLong | Type ODSLong.
kODSShort | Type ODSShort.
kODStrongStorageUnitRef | Type ODStorageUnitRef representing a strong storage-unit reference.
kODStrongStorageUnitRefs | A list of strong storage-unit references.
kODTime_T | Type ODTime.
kODTransform | Type ODMatrix.
kODTypeAll | All value types. This constant is used when focusing a storage unit on a property and when checking for the existence of a property in a storage unit.
kODULong | Type ODULong.
kODUShort | Type ODUShort.
kODWeakStorageUnitRef | Type ODStorageUnitRef representing a weak storage unit reference.
kODWeakStorageUnitRefs | A list of weak storage unit references.

Note:

> kODTypeAll is equivalent to kODNULL. Their different names provide clarity to the code that uses them. kODNULL means an absent or invalid value type; kODTypeAll specifies all values of a given property.

### ODVersionID

A 32-bit value indicating the version ID.

Format

    typedef ODULong ODVersionID;

### ODWide

A 64-bit singed integer.

Format

    typedef struct _ODWide {
      ODSLong       hi;
      ODULong       lo;
    } ODWide;

Fields

hi (ODSLong)

  The high-order 32-bit signed integer.

lo (ODULong)

  The low-order 32-bit unsigned integer.

### OperatingSystem

Operating-system enumeration.

Format

    typedef enum OperatingSystem;

### PAGEINFO

Settings page information structure.

Format

    typedef struct _PAGEINFO {
      ULONG         cb;
      HWND          hwndPage;
      PFNWP         pfnwp;
      ULONG         resid;
      PVOID         pCreateParams;
      USHORT        dlgid;
      USHORT        usPageStyleFlags;
      USHORT        usPageInsertFlags;
      USHORT        usSettingsFlags;
      ISOString           name;
      USHORT        idDefaultHelpPanel;
      USHORT        usReserved2;
      ISOString           helpLibraryName;
      ODUShort       pHelpSubtable;
      HMODULE       hmodHelpSubtable;
      ULONG         ulPageInsertId;
    } PAGEINFO;
    typedef PAGEINFO *PPAGEINFO;

Fields

cb (ULONG)

  Length of PAGEINFO structure.

hwndPage (HWND)

  Handle of page.

pfnwp (PFNWP)

  Window procedure.

resid (ULONG)

  Resource identity.

pCreateParams (PVOID)

  Pointer to creation parameters.

dlgid (USHORT)

  Dialog identity.

usPageStyleFlags (USHORT)

  Notebook control-page style flags.

usPageInsertFlags (USHORT)

  Notebook control-page insertion flags.

usSettingsFlags (USHORT)

  Settings flag.

  This flag must be set to one of the following values:

  0 | You will not get page numbers.
  SETTINGS_PAGE_NUMBERS | Page numbers are put on the status line for pages that have minor pages under the major tab page. If you want to use the page numbers, make sure all pages have this setting.

name (ISOString)

  Pointer to a string containing the page name.

idDefaultHelpPanel (USHORT)

  Identity of the default help panel.

usReserved2 (USHORT)

  Reserved, must be zero.

helpLibraryName (ISOString)

  Pointer to the name of the help file.

pHelpSubtable (ODUShort)

  Pointer to the help sub-table.

hmodHelpSubtable (HMODULE)

  Module handle for the help sub-table.

ulPageInsertId (ULONG)

  Notebook control-page identity.

### PartHandlerQueryInfo

A structure containing part handler information.

Format

      long            cBytes;
      ISOString       partHandlerName;
      char           *partHandlerDisplayName;
      char           *partHandlerClassName;
      char           *partKindList;
      char           *ole2ClassId;
      char           *windowsIconFileName;
      char           *dllName;
    };

Fields

cBytes (long)

  The size of the data structure.

partHandlerName (ISOString)

  The name of the part handler.

partHandlerDisplayName (char *)

  The name of the display for the part handler.

partHandlerClassName (char *)

  The SOM class name for the part handler.

partKindList (char *)

  A comma-delimited string containing the part kinds supported by the part handler.

ole2ClassId (char *)

  The OLE2 class ID for this part handler.

windowsIconFileName (char *)

  The name of the Windows' icon file used to represent the part handler.

dllName (char *)

  The name of the DLL for the part handler.

### PartKindInfo

Part-kind information.

Format

    typedef struct _PartKindInfo {
      ISOString       partKindName;
      string          partKindDisplayName;
      string          fileNameFilters;
      string          fileNameTypes;
      string          categories;
      string          categoryDisplayName;
      string          objectID;
    } PartKindInfo;
    typedef PartKindInfo *PPartKindInfo;

Fields

partKindName (ISOString)

  A pointer to a string containing the part kind name.

partKindDisplayName (string)

  A string containing the display name of the part kind.

fileNameFilters (string)

  A string containing the file extensions that the specified part kind can use; for example, "*.TXT, *.BMP".

fileNameTypes (string)

  A string containing the file types that this part kind can manipulate.

categories (string)

  A string containing the categories for this part kind.

categoryDisplayName (string)

  A string containing the suer visible category display name.

objectID (string)

  A string representing the OpenDoc template object ID.

### PFNWP

Pointer to a window procedure.

This is the standard function definition for window procedures.

Format

    typedef FNWP *PFNWP;

The first argument (HWND) is the handle of the window receiving the message. The second argument (ULONG) is a message identifier. The third argument (MPARAM) is the first message parameter (mp1). The fourth argument (MPARAM) is the second message parameter (mp2). The function returns an MRESULT. Each message has a specific set of possible return codes. The window procedure must return a value that is appropriate for the message being processed.

In the header file, this is a two-part definition as shown below: typedef MRESULT (EXPENTRY FNWP)(HWND, ULONG, MPARAM, MPARAM); typedef FNWP *PFNWP;

Window procedures must be exported in the definitions file used by the linker.

### PID

Process identity.

Format

    typedef LHANDLE PID;

### POINT

A platform-dependent point handle defined in `ODTypesF.h`.

Format

    #ifdef _PLATFORM_WIN32_
      typedef POINT Point;
    #endif
    #ifdef _PLATFORM_OS2_
      typedef POINTL Point;
    #endif
    #ifdef _PLATFORM_UNIX_
      typedef XPoint Point;
    #endif

### POINTL

Point structure (long integers).

Format

    typedef struct _POINTL {
      LONG       x;
      LONG       y;
    } POINTL;
    typedef POINTL *PPOINTL;

Fields

x (LONG)

  X-coordinate.

y (LONG)

  Y-coordinate.

### PRESPARAMS

Presentation parameter data.

Format

    typedef struct _PRESPARAMS {
      ULONG       cb;
      PARAM       aparam[1];
    } PRESPARAMS;
    typedef PRESPARAMS *PPRESPARAMS;

Fields

cb (ULONG)

  Length of the aparam parameter, in bytes.

aparam[1] (PARAM)

  Array of presentation attribute parameters.

### PRINTDEST

PRINTDEST data structure.

Contains all the parameters required to issue DevPostDeviceModes and DevOpenDC function calls.

Format

    typedef struct _PRINTDEST {
      ULONG              cb;
      LONG               lType;
      ISOString                token;
      LONG               lCount;
      PDEVOPENDATA       pdopData;
      ULONG              fl;
      ISOString                printer;
    } PRINTDEST;
    typedef PRINTDEST *PPRINTDEST;

Fields

cb (ULONG)

  Length of data structure, in bytes.

lType (LONG)

  Type of device context.

  OD_QUEUED | The device context is queued.
  OD_DIRECT | The device context is direct.

token (ISOString)

  Device-information token.

  This must be an "*".

lCount (LONG)

  Number of items.

  This is the number of items present in the pdopData field.

pdopData (PDEVOPENDATA)

  Open device context data area.

  See DEVOPENSTRUC for information on the format of pdopData.

fl (ULONG)

  Flags.

  PD_JOB_PROPERTY | This flag indicates that DevPostDeviceModes is called with DPDM_POSTJOBPROP before calling DevOpenDC.

printer (ISOString)

  Name of the printer.

  A name that specifies the device; for example, "PRINTER1". The name is used for calling DevPostDeviceModes.

  The printer device name can be found by calling SplQueryQueue and passing to it the information found in the logAddress field of the DEVOPENSTRUC structure pointed to by pdopData. SplQueryQueue returns a PRQINFO3 structure. The printer field in PRQINFO3 contains the printer device name to be used.

### PRQINFO3

Print-queue information structure.

This structure is used at information levels 3 and 4.

Format

    typedef struct _PRQINFO3 {
      ISOString       name;
      USHORT          uPriority;
      USHORT          uStartTime;
      USHORT          uUntilTime;
      USHORT          fsType;
      ISOString       sepFile;
      ISOString       prProc;
      ISOString       parms;
      ISOString       comment;
      USHORT          fsStatus;
      USHORT          cJobs;
      ISOString       printers;
      ISOString       driverName;
      PDRIVDATA       pDriverData;
    } PRQINFO3;
    typedef PRQINFO3 *PPRQINFO3;

Fields

name (ISOString)

  Queue name.

  The maximum length of the name in the network case is 256 (including one byte for zero termination).

uPriority (USHORT)

  Queue priority.

  The range is 1 through 9, with 1 being the highest queue priority.

  The default job priority (DefJobPrio) is determined from:

  DefJobPrio=100-(10* uPriority).

  If a job is added with PRJ_NO_PRIORITY specified, DefJobPrio is used. If a default priority higher than the default job priority is specified, the default job priority is used. If a default priority lower than the default is specified, the specified job priority is used.

  PRQ_DEF_PRIORITY | Default priority
  PRQ_MAX_PRIORITY | Highest priority
  PRQ_MIN_PRIORITY | Minimum priority
  PRQ_NO_PRIORITY | No priority.

uStartTime (USHORT)

  Minutes after midnight when queue becomes active.

  For example, the value 75 represents 1:15 a.m.

  If uStartTime and uUntilTime are both 0, the print queue is available.

uUntilTime (USHORT)

  Minutes after midnight when queue ceases to be active.

  For example, the value 1200 represents 8 p.m.

  If uUntilTime and uStartTime are both 0, the print queue is available.

fsType (USHORT)

  Queue type.

  PRQ3_TYPE_RAW | Data is enqueued in the device specific format.
  PRQ3_TYPE_BYPASS | Allows the spooler to bypass the queue processor and send data directly to the Printer Driver. Setting this bit allows the spooler to print jobs of type PM_Q_RAW while they are still being spooled.
  PRQ3_TYPE_APPDEFAULT | This bit is set for the application default queue only.

sepFile (ISOString)

  Separator-page file.

  The path and file name of a separator-page file on the target computer.

  This file contains formatting information for the page or pages to be used between print jobs. A relative path name is taken as relative to the current spool directory. A NULL string indicates no separator page.

prProc (ISOString)

  Default queue-processor.

parms (ISOString)

  Queue parameters.

  This can be any text string or a NULL string.

comment (ISOString)

  Queue description.

  A NULL string results in no comment. The maximum length is 48 characters (including one byte for the null terminator).

fsStatus (USHORT)

  Queue status.

  PRQ3_PAUSED | Queue is paused (held).
  PRQ3_PENDING | Queue is pending deletion.

cJobs (USHORT)

  Number of jobs in queue.

printers (ISOString)

  Print devices connected to queue.

  This cannot be NULL.

driverName (ISOString)

  Default device driver.

pDriverData (PDRIVDATA)

  Default queue job properties.

  Note:

  > An application can use driverName, pDriverData, prProc, and parms to construct a valid DevOpenDC call based only on the queue name.

### RGB2

RGB color value.

Format

    typedef struct _RGB2 {
      BYTE       bBlue;
      BYTE       bGreen;
      BYTE       bRed;
      BYTE       fcOptions;
    } RGB2;
    typedef RGB2 *PRGB2;

Fields

bBlue (BYTE)

  Blue component of the color definition.

bGreen (BYTE)

  Green component of the color definition.

bRed (BYTE)

  Red component of the color definition.

fcOptions (BYTE)

  Entry options.

  You can use the "or" operand, if required:

  PC_RESERVED | The color entry is reserved for animating color with the palette manager.
  PC_EXPLICIT | The low-order word of the color table entry designates a physical palette slot. This allows an application to show the actual contents of the device palette as realized for other logical palettes. This does not prevent the color in the slot from being changed for any reason.

### SemHandle

A generic pointer to a semaphore handle.

Format

    typedef void *SemHandle;

### SHORT

Signed integer in the range -32 768 through 32 767.

Format

    #define SHORT short

### SIZEL

Size structure (LONG values).

Format

    typedef struct _SIZEL {
      LONG       cx;
      LONG       cy;
    } SIZEL;
    typedef SIZEL *PSIZEL;

Fields

cx (LONG)

  Width.

cy (LONG)

  Height.

### SIZE (Windows)

A Win32 size structure. This structure is defined in `ODTypesM.idl`.

Format

    typedef struct tagSIZE {
      long       cx;
      long       cy;
    } SIZE;

Fields

cx (long)

  Width.

cy (long)

  Height.

### somToken

A generic SOM type used in IDL files for the user type.

Format

    typedef void *somToken;

### Str255

String containing up to 255 characters.

Format

    typedef somToken Str255;

### string

A pointer to a char.

Format

    typedef char *string;

### SWP

Set-window-position structure.

Format

    typedef struct _SWP {
      ULONG       fl;
      LONG        cy;
      LONG        cx;
      LONG        y;
      LONG        x;
      HWND        hwndInsertBehind;
      HWND        hwnd;
      ULONG       ulReserved1;
      ULONG       ulReserved2;
    } SWP;
    typedef SWP *PSWP;

Fields

fl (ULONG)

  Options.

  Possible values are shown in the following list:

  - SWP_ACTIVATE
  - SWP_DEACTIVATE
  - SWP_HIDE
  - SWP_MAXIMIZE
  - SWP_MINIMIZE
  - SWP_MOVE
  - SWP_NOADJUST
  - SWP_NOERASEWINDOW
  - SWP_NOREDRAW
  - SWP_RESTORE
  - SWP_SHOW
  - SWP_SIZE
  - SWP_ZORDER

cy (LONG)

  Window height.

cx (LONG)

  Window width.

y (LONG)

  Y-coordinate of origin.

x (LONG)

  X-coordinate of origin.

hwndInsertBehind (HWND)

  Window behind which this window is placed.

hwnd (HWND)

  Window handle.

ulReserved1 (ULONG)

  Reserved, must be zero.

ulReserved2 (ULONG)

  Reserved, must be zero.

### TValue

A pointer to a stream of bytes.

Format

    typedef ODUByte *TValue;

### TypePS

A constant representing the presentation space (PS) type.

Format

    enum TypePS {NormalPS, DragPS, LockedWindowUpdatePS};

Fields

NormalPS

  A normal PS.

DragPS

  A PS used to provide target feedback to the user during a drag operation.

LockedWindowUpdatePS

  A presentation space that permits drawing if the WinLockWindowUpdate function has been called.

### ULONG

32-bit unsigned integer in the range 0 through 4 294 967 295.

Format

    typedef unsigned long ULONG;

### USHORT

Unsigned integer in the range 0 through 65 535.

Format

    typedef unsigned short USHORT;

### VOID

A data area of undefined format.

Format

    #define VOID void

### WindowProperties

A structure representing window properties.

Format

    typedef struct _WindowProperties {
      RECTL           boundsRect;
      Str255          title;
      ODULong         createFlags;
      ODULong         swpFlags;
      ODBoolean       wasVisible;
      ODBoolean       isResizable;
      ODBoolean       isFloating;
      ODBoolean       isRootWindow;
      ODBoolean       shouldShowLinks;
      ODFrame        *sourceFrame;
    } WindowProperties;

Fields

boundsRect (RECTL)

  kODPropWindowRect

title (Str255)

  kODPropWindowTitle

createFlags (ODULong)

  kODPropWindowCreateFlags

swpFlags (ODULong)

  kODPropWindowSwpFlags

wasVisible (ODBoolean)

  kODPropIsVisible

  kODTrue | The window is visible.
  kODFalse | The window is not visible.

isResizable (ODBoolean)

  kODPropWindowIsResizable

  kODTrue | The window is resizable.
  kODFalse | The window is not resizable.

isFloating (ODBoolean)

  kODPropWindowIsFloating

  kODTrue | The window is floating.
  kODFalse | The window is not floating.

isRootWindow (ODBoolean)

  kODPropWindowIsRootWindow

  kODTrue | The window is the root window.
  kODFalse | The window is not the root window.

shouldShowLinks (ODBoolean)

  kODPropShouldShowLinks

  kODTrue | Links highlighted in this window.
  kODFalse | Links not highlighted in this window.

sourceFrame (ODFrame *)

  kODPropDropSomeFrame

[ Top | Previous | Next | Contents | Index | Documentation Homepage ]