
/*
 * This file was generated by the SOM Compiler.
 * FileName: \odwin\h\ODTYPESM.h.
 * Generated using:
 *     SOM Precompiler somipc: 2.29.1.3
 *     SOM Emitter emith.dll: 2.41
 */

#ifndef SOM_Module_5codwin5ch5cODTYPESM_OpenDoc_Global_Types_defined
#define SOM_Module_5codwin5ch5cODTYPESM_OpenDoc_Global_Types_defined 1
#include <som.h>

/*
 * Start of user-defined types:
 */
#define kODNULL 0 /* 0 */
typedef unsigned long ODDoneState;
#define kODDone 1UL
#define kODUndone 2UL
#define kODRedone 3UL
typedef
boolean  ODBoolean;

/*
 *  boolean value. Do not count on its size.
 */
typedef
octet  ODUByte;

/*
 *  unsigned >= 8-bit value
 *   KLS:  Changed from unsigned char
 */
typedef
char  ODSByte;

/*
 *  signed >= 8-bit value
 */
typedef
unsigned short  ODUShort;

/*
 *  unsigned >= 16-bit value
 */
typedef
short  ODSShort;

/*
 *  signed >= 16-bit value
 */
typedef
unsigned long  ODULong;

/*
 *  unsigned >= 32-bit value
 */
typedef
long  ODSLong;

/*
 *  signed >= 32-bit value
 */
typedef
float  ODFloat;

/*
 *  floating-point value
 */
typedef
void*  ODPtr;

/*
 *  OD pointer
 */
typedef
ODUByte* ODRawPtr;

/*
 *  generic pointer
 */
typedef
string  ODISOStr;

/*
 *  7 bit ascii. No embedded NULLs. NULL
 *   terminated.
 */
typedef
ODISOStr ODType;

/*
 *  Used for storage types, focus types,
 *   data types, etc.
 */
typedef
ODULong ODTypeToken;

/*
 *  Tokenized form of ODType
 */
typedef
ODULong ODID;

/*
 *  Storage Unit IDs
 */
typedef
ODType ODValueType;

/*
 *  Used to identify the type of the value, e.g., TEXT, PICT and so
 *   on. Obviously, the type doesn't need to be an OSType.
 */
typedef
ODUByte* TValue;

/*
 *  Pointer to a stream of bytes.
 */
typedef
ODSLong ODError;

/*
 *  >= 32-bit exception code
 */
typedef
ODULong ODToken;

/*
 *  >= 32-bit unsigned value for tokens
 */
typedef
ODULong ODSize;

/*
 *  >= 32-bit unsigned value for size
 */
typedef
ODULong ODInfoType;

/*
 *  The type for the part info stored in a frame
 */
typedef
ODULong ODFlags;

/*
 *  >= 32-bit unsigned value for flags
 */
#ifndef _IDL_SEQUENCE_octet_defined
#define _IDL_SEQUENCE_octet_defined
typedef struct {
    unsigned long _maximum;
    unsigned long _length;
    octet *_buffer;
} _IDL_SEQUENCE_octet;
#endif /* _IDL_SEQUENCE_octet_defined */ 
typedef
_IDL_SEQUENCE_octet ODByteArray;

/*
 *  ODByteArray should be used for foreign types larger than 4 bytes
 *  and for variable length data in general
 */
typedef
ODByteArray ODContainerID;
typedef
ODISOStr ODContainerType;
typedef
ODType ODFocusType;

/*
 *  This is a string, which can be tokenized
 */
typedef
ODPtr ODActionData;

/*
 *  Action data for undo/redo
 */
typedef unsigned long ODFramePosition;
#define kODFrameBehind 1UL
#define kODFrameInFront 2UL
typedef unsigned long ODTraversalType;
#define kODTopDown 1UL
#define kODBottomUp 2UL
#define kODChildrenOnly 3UL
typedef unsigned long ODSiblingOrder;
#define kODFrontToBack 1UL
#define kODBackToFront 2UL
typedef unsigned long ODNSTypeSpec;
#define kODNSDataTypeODObject 1UL
#define kODNSDataTypeODValue 2UL
typedef unsigned long ODRespectMarksChoices;
#define kODDontRespectMarks 1UL
#define kODRespectMarks 2UL
typedef unsigned long ODActionType;
#define kODSingleAction 1UL
#define kODBeginAction 2UL
#define kODEndAction 3UL
typedef
ODSLong ODFixed;

/*
 *  16.16 fixed-point value
 */
typedef
ODSLong ODFract;

/*
 *   2.30 fixed-point value
 */
typedef
ODFixed ODCoordinate;

/*
 *  Graphics coordinates; 16.16 fixed by default
 */
typedef
struct ODMatrix {
ODCoordinate m[3][3];

/*
 *  Same as "mapping" in QuickDraw GX.
 */
} ODMatrix;

/*
 *  *** old Graphics system stuff
 *  $$$$$ Conflicts with SOM output: typedef ODRgnHandle  ODShapeData;    // Shape Data
 */
typedef
struct ODMatrix* ODMapping;

/*
 *  Pointer to transform matrixtypedef
 */
typedef
ODSShort ODGraphicsSystem;

/*
 *  Type of graphics system
 */
#define kODNoGraphicsSystem 0 /* 0 */
typedef
ODSShort ODTransformType;
#define kODIdentityXform 0 /* 0 */
#define kODTranslateXform 1 /* 1 */
#define kODScaleXform 2 /* 2 */
#define kODScaleTranslateXform 3 /* 3 */
#define kODLinearXform 4 /* 4 */
#define kODLinearTranslateXform 5 /* 5 */
#define kODPerspectiveXform 6 /* 6 */
#define kODUnknownXform -1 /* -1 */
#define kODInvalidXform 7 /* 7 */
#define kODNullTypeToken 0 /* 0 */
#define kODViewAsSmallIcon "OpenDoc:ViewAs:SmallIcon"
#define kODViewAsLargeIcon "OpenDoc:ViewAs:LargeIcon"
#define kODViewAsThumbnail "OpenDoc:ViewAs:Thumbnail"
#define kODViewAsFrame "OpenDoc:ViewAs:Frame"
typedef unsigned long ODGeometryMode;
#define kODLoseGeometry 1UL
#define kODPreserveGeometry 2UL
#define kODNeedsGeometry 3UL
typedef unsigned long ODLinkStatusConsts;
#define kODInLinkDestination 1UL
#define kODInLinkSource 2UL
#define kODNotInLink 3UL
typedef
ODULong ODLinkStatus;

/*
 *  # $$$$$ Moved from Facet.h
 */
typedef unsigned long ODHighlight;
#define kODNoHighlight 1UL
#define kODFullHighlight 2UL
#define kXMPDimHighlight 3UL
typedef unsigned long ODDropResult;
#define kODDropFail 1UL
#define kODDropCopy 2UL
#define kODDropMove 3UL
#define kODDropUnfinished 4UL
#define kODdragHasLeftSourceFrame 1 /* 0x00000001 */
#define kODdragIsInSourcePart 2 /* 0x00000002 */
#define kODdragIsInSourceFrame 4 /* 0x00000004 */
typedef
ODULong ODLinkKey;
#define kODNoWait 0 /* 0 */
typedef
ODULong ODTranslateResult;
typedef
ODULong ODPlatformTypeSpace;
typedef unsigned long ODTranslateResultConsts;
#define kODCannotTranslate 1UL
#define kODCanTranslate 2UL
#define kODNative 3UL
typedef unsigned long ODPlatformTypeSpaceConsts;
#define kODPlatformFileType 1UL
#define kODPlatformDataType 2UL
#define kODPosUndefined 4294967295 /* 0xFFFFFFFF */
#define kODPosSame 0 /* 0x00 */
#define kODPosAll 1 /* 1 */
#define kODPosFirstSib 2 /* 2 */
#define kODPosLastSib 3 /* 3 */
#define kODPosNextSib 4 /* 4 */
#define kODPosPrevSib 5 /* 5 */
#define kODPosFirstBelow 6 /* 6 */
#define kODPosLastBelow 7 /* 7 */
#define kODPosFirstAbove 8 /* 8 */
#define kODPosLastAbove 9 /* 9 */
#define kODPosReserved11 10 /* 10 */
#define kODPosReserved12 11 /* 11 */
#define kODPosReserved13 12 /* 12 */
#define kODPosReserved14 13 /* 13 */
#define kODPosReserved15 14 /* 14 */
#define kODPosMWrap 16 /* 0x10 */
#define kODPosTop 32 /* 0x20 */
#define kODPosMOtherTypes 48 /* 0x30 */
#define kODIDAll 0 /* 0 */
#define kODIndexAll 0 /* 0 */
#define kODIDWild 0 /* 0 */
#define kODTypeAll 0 /* 0 */
typedef
void*  ODValue;
typedef
ODID ODValueIndex;
typedef
ODID ODStorageUnitID;
typedef
ODID ODStorageUnitRef;
typedef
ODULong ODStorageUnitKey;
typedef
ODISOStr ODPropertyName;
typedef
ODISOStr ODStorageUnitName;
typedef
ODULong ODPositionCode;
typedef
ODID ODDocumentID;
#define kODDefaultDocument 1 /* 1 */
typedef unsigned long ODPurgePriorityConsts;
#define kInvisibleBlocks 1UL
#define kAllBlocks 2UL
#define kVisibleBlocks 3UL
typedef
ODULong ODPurgePriority;
typedef unsigned long ODCloneKindConsts;
#define kODCloneCopy 1UL
#define kODCloneCut 2UL
#define kODClonePaste 3UL
#define kODCloneDuplicate 4UL
#define kODCloneDropCopy 5UL
#define kODCloneDropMove 6UL
#define kODCloneToLink 7UL
#define kODCloneFromLink 8UL
#define kODCloneAll 9UL
typedef
ODULong ODCloneKind;
typedef unsigned long ODDraftPermissionsConsts;
#define kDPNone 1UL
#define kDPTransient 2UL
#define kDPReadOnly 3UL
#define kDPSharedWrite 4UL
#define kDPExclusiveWrite 5UL
typedef
ODULong ODDraftPermissions;
typedef
ODULong ODVersionID;
typedef
ODID ODDraftID;
typedef
ODID ODLinkID;
typedef
ODISOStr ODDraftName;
#define kODDefaultFileContainer "Apple:ContainerType:File"
#define kODDefaultMemoryContainer "Apple:ContainerType:Memory"
#define kODBentoEmbeddedContainer "Apple:Bento:ContainerType:Embedded"
#define kODBentoFileContainer "Apple:Bento:ContainerType:File"
#define kODBentoMemoryContainer "Apple:Bento:ContainerType:Memory"
#define kODExtSemanticInterface "SemanticInterface"
#define ex_ODException "::ODException"
typedef
struct ODException {
ODError error;
char  message[256];

/*
 *  $$$$$ Do we really need this field???
 */
} ODException;

/*
 * 
 *  Scalar Types
 * 
 * 
 *  ODForeign is used for any 4 byte thing that is platform dependent.
 * 
 *  somobj.xh doesn't get included in ODTypesM.xh
 */
typedef
void*  ODForeign;
typedef
HGLOBAL ODHandle;

/*
 *  typedef ODULong       OSType;
 */
typedef
ODULong ODDescType;

/*
 *  Types added for OSAObject support
 */
typedef
ODULong ODScriptingSubType;
typedef
ODULong ODScriptingConnection;
typedef
ODULong ODOSAID;

/*
 * typedef ODDesc		ODObjectSpec;
 * typedef ODDesc		ODAddressDesc;
 * typedef ODDesc		ODDescList;
 * typedef	ODRecord	ODAppleEvent;
 */
typedef
ODSLong ODSendMode;
typedef
ODSShort ODSendPriority;
typedef
ODULong ODEventClass;
typedef
ODULong ODEventID;

/*
 * typedef ODULong       AEKeyword;
 * typedef ODSLong       AEEventID;
 * typedef void* CallbackCallerProc;
 *  OS specific types
 * 
 *   The following typedefs are OS specific. They are put together in this file for the
 *   time being. However, they can be put into separate files if desired. For example,
 *   all the primitive types will be put in ODPlatformMisc.h;
 *   all graphics system types will be put in ODPlatformGraphics.h;
 *   all File system types will be put in ODPlatformFiles.h; and so on.
 *   The advantage of splitting them in separate files is the changing one type will not
 *   require recompiling all the files which includea ODTypes.h. Also, there may be a lot
 *   of OS-specific types. If that's the case, we don't want them all in one file.
 * 
 *  Text
 */
typedef
short  ODScriptCode;
typedef
short  ODLangCode;
typedef
struct ODIText {
ODScriptCode theScriptCode;
ODLangCode theLangCode;
ODByteArray theText;
} ODIText;
typedef
struct ODIText ODName;
typedef
ODName ODContainerName;
typedef
ODName ODDocumentName;

/*
 *  Imaging
 */
typedef
ODUShort ODEventType;

/*
 * bgn#ifdef PLATFORM_WINDOWS
 */
typedef
struct ODEventData {
void*  hwnd;
unsigned long  message;
unsigned long  wParam;
unsigned long  lParam;
unsigned long  time;
POINT pt;
} ODEventData;

/*
 * bgn#endif
 */
typedef
struct ODEventData EventRecord;
typedef
ODULong ODIdleFrequency;
typedef
ODSLong ODMenuID;
typedef
ODSLong ODMenuItemID;
typedef
ODSLong ODCommandID;

/*
 *  Semantic Interface
 * typedef ODForeign   ODObjectSpec; //# $$$$ Do as a sequence?
 * typedef ODForeign ODOSLToken;
 */
#define cPart 1885434484 /* 0x70617274 */
#define cDraft 1685218932 /* 0x64726674 */
#define typeUserToken 1953459054 /* 0x746F6B6E */
#define kODPCategory 1667331173 /* 0x63617465 */
#define kODPSize 1936292453 /* 0x73697A65 */
#define kODPCreationDate 1668441204 /* 0x63726474 */
#define kODPModDate 1836016756 /* 0x6D6F6474 */
#define kODPAuthor 1635087464 /* 0x61757468 */
#define kODPIcon 1768124270 /* 0x69636F6E */
#define kODPName 1886282093 /* 0x706E616D */
#define kODPKind 1886088804 /* 0x706B6E64 */
#define kODPEditor 1701082226 /* 0x65647472 */
#define kODPComments 1668116084 /* 0x636D6E74 */
#define kODPView 1986618743 /* 0x76696577 */
#define kODPIsFrozen 1718778478 /* 0x66727A6E */
typedef
char * ODEditor;

/*
 *  An opaque type identifying a specific part editor
 */
typedef
char * ODContainerSuite;

/*
 *  An opaque type identifying a specific container suite
 */
typedef
ODULong ODChangeID;

/*
 *  Content change IDs
 *  $$$$$ Added RCR
 */
typedef
ODULong ODDraftKey;

/*
 *  $$$$$ Added RCR
 *  Drag and Drop
 */
typedef
ODBoolean ODDragResult;

/*
 *  Link Protocol
 */
typedef
ODTime ODTime2;
typedef
struct ODLinkInfo {
ODType kind;
ODULong size;
ODTime2 creationTime;
ODTime2 changeTime;
ODChangeID change;
ODBoolean autoUpdate;
} ODLinkInfo;

/*
 *  Link Dialogs
 */
typedef
struct ODPasteAsResult {
ODBoolean pasteLinkSetting;
ODBoolean autoUpdateSetting;
ODBoolean mergeSetting;
ODTypeToken selectedView;
ODType selectedKind;
ODType translateKind;
} ODPasteAsResult;
typedef unsigned long ODLinkInfoAction;
#define kODLinkInfoCancel 1UL
#define kODLinkInfoOk 2UL
#define kODLinkInfoBreakLink 3UL
#define kODLinkInfoUpdateNow 4UL
#define kODLinkInfoFindSource 5UL
typedef
struct ODLinkInfoResult {
ODLinkInfoAction action;
ODBoolean autoUpdate;
} ODLinkInfoResult;

/*
 * 
 *  Constants
 * 
 */
#define kODFalse 0 /* 0 */
#define kODTrue 1 /* 1 */
#define kODAppleMenuID 128 /* 128 */
#define kODDocumentMenuID 129 /* 129 */
#define kODEditMenuID 130 /* 130 */
#define kODOCEFileMenuID 193 /* 193 */
#define kODOCEMailerMenuID 194 /* 194 */
#define kODDASMenuRsrc 1146246738 /* 0x44525652 */
#define kODWindows 1 /* 1 */
#define kODUnknownChange 0 /* 0 */
#define kODEvtNull 0 /* 0x0000 */
#define kODEvtMouseDown 513 /* 0x0201 */
#define kODEvtMouseUp 514 /* 0x0202 */
#define kODEvtKeyDown 256 /* 0x0100 */
#define kODEvtKeyUp 257 /* 0x0101 */
#define kODEvtAutoKey 5 /* 5 */
#define kODEvtUpdate 15 /* 0x000F */
#define kODEvtDisk 7 /* 7 */
#define kODEvtActivate 6 /* 0x0006 */
#define kODEvtOS 15 /* 15 */
#define kODEvtMenu 273 /* 0x0111 */
#define kODEvtMouseDownEmbedded 99 /* 99 */
#define kODEvtMouseUpEmbedded 100 /* 100 */
#define kODEvtMouseDownBorder 101 /* 101 */
#define kODEvtMouseUpBorder 102 /* 102 */
#define kODEvtWindow 103 /* 103 */
#define kODEvtMouseDblClkEmbedded 104 /* 104 */
#define kODMDInDesk 0 /* 0 */
#define kODMDInMenuBar 1 /* 1 */
#define kODMDInSysWindow 2 /* 2 */
#define kODMDInContent 3 /* 3 */
#define kODMDInDrag 4 /* 4 */
#define kODMDInGrow 5 /* 5 */
#define kODMDInGoAway 6 /* 6 */
#define kODMDInZoomIn 7 /* 7 */
#define kODMDInZoomOut 8 /* 8 */
#define OpenDoc_Global_Types_OpenDoc_Types_Version "1.0."

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_OpenDoc_Types_Version
    #ifdef OpenDoc_Types_Version
        #undef OpenDoc_Types_Version
        #define SOMTGD_OpenDoc_Types_Version 1
    #else
        #define OpenDoc_Types_Version OpenDoc_Global_Types_OpenDoc_Types_Version
    #endif /* OpenDoc_Types_Version */
#endif /* SOMTGD_OpenDoc_Types_Version */
#endif /* SOM_DONT_USE_SHORT_NAMES */

/*
 * End of user-defined types.
 */
#endif /* SOM_Module_5codwin5ch5cODTYPESM_OpenDoc_Global_Types_defined */
