typedef enum TQ3FileModeMasks { kQ3FileModeNormal = 0, kQ3FileModeStream = 1 << 0, kQ3FileModeDatabase = 1 << 1, kQ3FileModeText = 1 << 2 } TQ3FileModeMasks; #define kQ3OldVersion Q3FileVersion(0,2) #define kQ3CurrentVersion Q3FileVersion(0,5) #define kQ3StringMaximumLength 1024
#define kQ3UnknownTypeBinary Q3_OBJECT_TYPE('u','k','b','n') #define kQ3UnknownTypeText Q3_OBJECT_TYPE('u','k','t','x')
typedef unsigned long TQ3FileVersion; typedef unsigned long TQ3FileMode; typedef unsigned char TQ3Uns8; /*1-byte unsigned integer*/ typedef signed char TQ3Int8; /*1-byte signed integer*/ typedef unsigned short TQ3Uns16; /*2-byte unsigned integer*/ typedef signed short TQ3Int16; /*2-byte signed integer*/ typedef unsigned long TQ3Uns32; /*4-byte unsigned integer*/ typedef signed long TQ3Int32; /*4-byte signed integer*/ typedef struct TQ3Uns64 { unsigned long hi; unsigned long lo; } TQ3Uns64; /*8-byte unsigned integer*/ typedef struct TQ3Int64 { signed long hi; unsigned long lo; } TQ3Uns64; /*8-byte signed integer*/ typedef float TQ3Float32; /*4-byte floating-pt number*/ typedef double TQ3Float64; /*8-byte floating-pt number*/ typedef TQ3Uns32 TQ3Size;
typedef struct TQ3UnknownTextData { char *objectName; /*'\0' terminated*/ char *contents; /*'\0' terminated*/ } TQ3UnknownTextData; typedef struct TQ3UnknownBinaryData { TQ3ObjectType objectType; unsigned long size; TQ3Endian byteOrder; char *contents; } TQ3UnknownBinaryData;
TQ3FileObject Q3File_New (void);
TQ3Status Q3File_GetStorage (TQ3FileObject file, TQ3StorageObject *storage); TQ3Status Q3File_SetStorage (TQ3FileObject file, TQ3StorageObject storage);
TQ3Status Q3File_OpenRead (TQ3FileObject file, TQ3FileMode *mode); TQ3Status Q3File_OpenWrite (TQ3FileObject file, TQ3FileMode mode); TQ3Status Q3File_IsOpen (TQ3FileObject file, TQ3Boolean *isOpen); TQ3Status Q3File_Close (TQ3FileObject file); TQ3Status Q3File_Cancel (TQ3FileObject file); TQ3Status Q3File_GetMode (TQ3FileObject file, TQ3FileMode *fileMode); TQ3Status Q3File_GetVersion (TQ3FileObject file, TQ3FileVersion *version);
TQ3ObjectType Q3File_GetNextObjectType ( TQ3FileObject file); TQ3Boolean Q3File_IsNextObjectOfType ( TQ3FileObject file, TQ3ObjectType ofType); TQ3Object Q3File_ReadObject (TQ3FileObject file); TQ3Status Q3File_SkipObject (TQ3FileObject file); TQ3Boolean Q3File_IsEndOfFile (TQ3FileObject file);
TQ3Status Q3File_SetIdleMethod (TQ3FileObject file, TQ3FileIdleMethod idle, const void *idleData);
TQ3Boolean Q3File_IsEndOfData (TQ3FileObject file); TQ3Boolean Q3File_IsEndOfContainer ( TQ3FileObject file, TQ3Object rootObject);
TQ3Status Q3Uns8_Read (TQ3Uns8 *data, TQ3FileObject file); TQ3Status Q3Uns8_Write (const TQ3Uns8 data, TQ3FileObject file); TQ3Status Q3Uns16_Read (TQ3Uns16 *data, TQ3FileObject file); TQ3Status Q3Uns16_Write (const TQ3Uns16 data, TQ3FileObject file); TQ3Status Q3Uns32_Read (TQ3Uns32 *data, TQ3FileObject file); TQ3Status Q3Uns32_Write (const TQ3Uns32 data, TQ3FileObject file); TQ3Status Q3Int32_Read (TQ3Int32 *data, TQ3FileObject file); TQ3Status Q3Int32_Write (const TQ3Int32 data, TQ3FileObject file); TQ3Status Q3Uns64_Read (TQ3Uns64 *data, TQ3FileObject file); TQ3Status Q3Uns64_Write (const TQ3Uns64 data, TQ3FileObject file); TQ3Status Q3Float32_Read (TQ3Float32 *data, TQ3FileObject file); TQ3Status Q3Float32_Write (const TQ3Float32 data, TQ3FileObject file); TQ3Status Q3Float64_Read (TQ3Float64 *data, TQ3FileObject file); TQ3Status Q3Float64_Write (const TQ3Float64 data, TQ3FileObject file); TQ3Size Q3Size_Pad (TQ3Size size); TQ3Status Q3String_Read (char *data, unsigned long *length, TQ3FileObject file); TQ3Status Q3String_Write (const char *data, TQ3FileObject file); TQ3Status Q3RawData_Read (unsigned char *data, unsigned long size, TQ3FileObject file); TQ3Status Q3RawData_Write (const unsigned char *data, unsigned long size, TQ3FileObject file); TQ3Status Q3Point2D_Read (TQ3Point2D *point2D, TQ3FileObject file); TQ3Status Q3Point2D_Write (const TQ3Point2D *point2D, TQ3FileObject file); TQ3Status Q3Point3D_Read (TQ3Point3D *point3D, TQ3FileObject file); TQ3Status Q3Point3D_Write (const TQ3Point3D *point3D, TQ3FileObject file); TQ3Status Q3RationalPoint3D_Read ( TQ3RationalPoint3D *point3D, TQ3FileObject file); TQ3Status Q3RationalPoint3D_Write ( const TQ3RationalPoint3D *point3D, TQ3FileObject file); TQ3Status Q3RationalPoint4D_Read ( TQ3RationalPoint4D *point4D, TQ3FileObject file); TQ3Status Q3RationalPoint4D_Write ( const TQ3RationalPoint4D *point4D, TQ3FileObject file); TQ3Status Q3Vector2D_Read (TQ3Vector2D *vector2D, TQ3FileObject file); TQ3Status Q3Vector2D_Write (const TQ3Vector2D *vector2D, TQ3FileObject file); TQ3Status Q3Vector3D_Read (TQ3Vector3D *vector3D, TQ3FileObject file); TQ3Status Q3Vector3D_Write (const TQ3Vector3D *vector3D, TQ3FileObject file); TQ3Status Q3Matrix4x4_Read (TQ3Matrix4x4 *matrix4x4, TQ3FileObject file); TQ3Status Q3Matrix4x4_Write (const TQ3Matrix4x4 *matrix4x4, TQ3FileObject file); TQ3Status Q3Tangent2D_Read (TQ3Tangent2D *tangent2D, TQ3FileObject file); TQ3Status Q3Tangent2D_Write (const TQ3Tangent2D *tangent2D, TQ3FileObject file); TQ3Status Q3Tangent3D_Read (TQ3Tangent3D *tangent3D, TQ3FileObject file); TQ3Status Q3Tangent3D_Write (const TQ3Tangent3D *tangent3D, TQ3FileObject file); TQ3Status Q3Comment_Write (char *comment, TQ3FileObject file);
TQ3ObjectType Q3Unknown_GetType ( TQ3UnknownObject unknownObject); TQ3Status Q3Unknown_GetDirtyState ( TQ3UnknownObject unknownObject, TQ3Boolean *isDirty); TQ3Status Q3Unknown_SetDirtyState ( TQ3UnknownObject unknownObject, TQ3Boolean isDirty); TQ3Status Q3UnknownText_GetData ( TQ3UnknownObject unknownObject, TQ3UnknownTextData *unknownTextData); TQ3Status Q3UnknownText_EmptyData ( TQ3UnknownTextData *unknownTextData); TQ3Status Q3UnknownBinary_GetData ( TQ3UnknownObject unknownObject, TQ3UnknownBinaryData *unknownBinaryData); TQ3Status Q3UnknownBinary_EmptyData ( TQ3UnknownBinaryData *unknownBinaryData);
TQ3ViewHintsObject Q3ViewHints_New ( TQ3ViewObject view); TQ3Status Q3ViewHints_GetRenderer ( TQ3ViewHintsObject viewHints, TQ3RendererObject *renderer); TQ3Status Q3ViewHints_SetRenderer ( TQ3ViewHintsObject viewHints, TQ3RendererObject renderer); TQ3Status Q3ViewHints_GetCamera ( TQ3ViewHintsObject viewHints, TQ3CameraObject *camera); TQ3Status Q3ViewHints_SetCamera ( TQ3ViewHintsObject viewHints, TQ3CameraObject camera); TQ3Status Q3ViewHints_GetLightGroup ( TQ3ViewHintsObject viewHints, TQ3GroupObject *lightGroup);
TQ3Status Q3ViewHints_SetLightGroup ( TQ3ViewHintsObject viewHints, TQ3GroupObject lightGroup); TQ3Status Q3ViewHints_GetAttributeSet ( TQ3ViewHintsObject viewHints, TQ3AttributeSet *attributeSet); TQ3Status Q3ViewHints_SetAttributeSet ( TQ3ViewHintsObject viewHints, TQ3AttributeSet attributeSet); TQ3Status Q3ViewHints_GetDimensionsState ( TQ3ViewHintsObject viewHints, TQ3Boolean *isValid); TQ3Status Q3ViewHints_SetDimensionsState ( TQ3ViewHintsObject viewHints, TQ3Boolean isValid); TQ3Status Q3ViewHints_GetDimensions ( TQ3ViewHintsObject viewHints, unsigned long *width, unsigned long *height); TQ3Status Q3ViewHints_SetDimensions ( TQ3ViewHintsObject viewHints, unsigned long width, unsigned long height); TQ3Status Q3ViewHints_GetMaskState ( TQ3ViewHintsObject viewHints, TQ3Boolean *isValid); TQ3Status Q3ViewHints_SetMaskState ( TQ3ViewHintsObject viewHints, TQ3Boolean isValid); TQ3Status Q3ViewHints_GetMask (TQ3ViewHintsObject viewHints, TQ3Bitmap *mask); TQ3Status Q3ViewHints_SetMask (TQ3ViewHintsObject viewHints, const TQ3Bitmap *mask); TQ3Status Q3ViewHints_GetClearImageMethod ( TQ3ViewHintsObject viewHints, TQ3DrawContextClearImageMethod *clearMethod); TQ3Status Q3ViewHints_SetClearImageMethod ( TQ3ViewHintsObject viewHints, TQ3DrawContextClearImageMethod clearMethod); TQ3Status Q3ViewHints_GetClearImageColor ( TQ3ViewHintsObject viewHints, TQ3ColorARGB *color); TQ3Status Q3ViewHints_SetClearImageColor ( TQ3ViewHintsObject viewHints, const TQ3ColorARGB *color);
#define Q3FileVersion(majorVersion, minorVersion) \ (TQ3FileVersion) ((((TQ3Uns32) majorVersion & 0xFFFF) << 16) | \ ((TQ3Uns32) minorVersion & 0xFFFF))
typedef TQ3Status (*TQ3ObjectReadDataMethod) ( TQ3Object parentObject, TQ3FileObject file); typedef TQ3Status (*TQ3ObjectTraverseMethod) ( TQ3Object object, TQ3FileObject file); typedef TQ3Status (*TQ3ObjectWriteMethod) ( const void *object, TQ3FileObject file); typedef TQ3Status (*TQ3FileIdleMethod) ( TQ3FileObject file, const void *idlerData);
kQ3ErrorNoStorageSetForFile | |
kQ3ErrorEndOfFile | |
kQ3ErrorFileCancelled | |
kQ3ErrorInvalidMetafile | |
kQ3ErrorInvalidMetafilePrimitive | |
kQ3ErrorInvalidMetafileLabel | |
kQ3ErrorInvalidMetafileObject | |
kQ3ErrorInvalidMetafileSubObject | |
kQ3ErrorInvalidSubObjectForObject | |
kQ3ErrorUnresolvableReference | |
kQ3ErrorUnknownObject | |
kQ3ErrorFileAlreadyOpen | |
kQ3ErrorFileNotOpen | |
kQ3ErrorFileIsOpen | |
kQ3ErrorBeginWriteAlreadyCalled | |
kQ3ErrorBeginWriteNotCalled | |
kQ3ErrorEndWriteNotCalled | |
kQ3ErrorReadStateInactive | |
kQ3ErrorStateUnavailable | |
kQ3ErrorWriteStateInactive | |
kQ3ErrorSizeNotLongAligned | |
kQ3ErrorFileModeRestriction | |
kQ3ErrorInvalidHexString | |
kQ3ErrorWroteMoreThanSize | |
kQ3ErrorWroteLessThanSize | |
kQ3ErrorReadLessThanSize | |
kQ3ErrorReadMoreThanSize | |
kQ3ErrorSizeMismatch | |
kQ3ErrorStringExceedsMaximumLength | |
kQ3ErrorNonUniqueLabel | |
kQ3ErrorUnmatchedEndGroup | |
kQ3WarningFilePointerResolutionFailed | |
kQ3WarningStringExceedsMaximumLength | |
kQ3NoticeFileAliasWasChanged |
Let us know what you think of these prototype pages.
Generated with Harlequin WebMaker