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:

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:

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.

flTitle  (ULONG) 

Column heading attributes.

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.

flTitleAttrs  (ODULong) 

The display attributes of the column heading.

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.

 

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:  

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 ]