home *** CD-ROM | disk | FTP | other *** search
- /***************************************************************************************
-
- File: AGFile.h
-
- Contains: Public interface to Apple Guide Database Files.
- Does not use or require the Apple Guide extension.
-
- Written by: John R. Powers, III
-
- Copyright: ©1994 by Apple Computer, Inc. All rights reserved.
-
- Change History (most recent first):
-
- <3> 27-Aug-94 JRP Make file conforming by removing tag from #endif statement.
- Add #ifdef __cplusplus.
- Change AGFileDBMenuNamePtr from ConstStr63Param to Str63.
- <2> 23-Mar-94 JRP Add:
- AGFileGetHelpMenuAppCreator
- AGFileGetMixinMatchSelector
- AGFileGetHelpMenuBalloonText
- <1> 24-Jan-94 JRP Initial check-in
-
- ***************************************************************************************/
-
- #ifndef __AGFILE__
- #define __AGFILE__
-
- #ifndef __FILES__
- #include <Files.h>
- #endif
-
- #ifndef __TYPES__
- #include <Types.h>
- #endif
-
- // typedef's
-
- typedef FSSpec AGFileFSSpecType;
- typedef short AGFileSelectorCountType;
- typedef short AGFileSelectorIndexType;
- typedef OSType AGFileSelectorType;
- typedef long AGFileSelectorValueType;
- typedef short AGFileDBType;
- typedef Str63 AGFileDBMenuNamePtr;
- typedef short AGFileDBScriptType;
- typedef short AGFileDBRegionType;
- typedef short AGFileMajorRevType;
- typedef short AGFileMinorRevType;
- typedef short AGFileCountType;
-
- // Database types (for AGFileDBType parameter).
-
- enum
- {
- kAGFileDBTypeAny = 0,
- kAGFileDBTypeHelp = 1,
- kAGFileDBTypeTutorial = 2,
- kAGFileDBTypeShortcuts = 3,
- kAGFileDBTypeAbout = 4,
- kAGFileDBTypeOther = 8
- };
-
- // Functions.
-
- #ifdef __cplusplus
- extern "C" {
- #endif
- // Get the database menu item name.
- pascal OSErr
- AGFileGetDBMenuName(AGFileFSSpecType *fileSpec,
- AGFileDBMenuNamePtr menuItemNameString);
-
- // Get the database type.
- pascal OSErr
- AGFileGetDBType(AGFileFSSpecType *fileSpec,
- AGFileDBType *databaseType);
-
- // Get the version of the software
- // that created this database.
- pascal OSErr
- AGFileGetDBVersion(AGFileFSSpecType *fileSpec,
- AGFileMajorRevType *majorRev,
- AGFileMinorRevType *minorRev);
-
- // Get the database script and region information.
- pascal OSErr
- AGFileGetDBCountry(AGFileFSSpecType *fileSpec,
- AGFileDBScriptType *script,
- AGFileDBRegionType *region);
-
- // Return the number of selectors in database.
- pascal AGFileSelectorCountType
- AGFileGetSelectorCount(AGFileFSSpecType *fileSpec);
-
- // Get the i-th database selector (1 to AGFileSelectorCountType)
- // and its value.
- pascal OSErr
- AGFileGetSelector(AGFileFSSpecType *fileSpec,
- AGFileSelectorIndexType selectorNumber,
- AGFileSelectorType *selector,
- AGFileSelectorValueType *value);
-
- // Return true if database is mixin.
- pascal Boolean
- AGFileIsMixin(AGFileFSSpecType *fileSpec);
-
- // Return the number of database files
- // of the specified databaseType and main/mixin.
- // Any file creator is acceptible,
- // but type must be kAGFileMain or kAGFileMixin.
- pascal AGFileCountType
- AGFileGetDBCount(short vRefNum,
- long dirID,
- AGFileDBType databaseType,
- Boolean wantMixin);
-
- // Get the FSSpec for the dbIndex-th database
- // of the specified databaseType and main/mixin.
- // Any file creator is acceptible,
- // but type must be kAGFileMain or kAGFileMixin.
- pascal OSErr
- AGFileGetIndDB(short vRefNum,
- long dirID,
- AGFileDBType databaseType,
- Boolean wantMixin,
- short dbIndex,
- FSSpec *fileSpec);
-
- // This selector must match with the application
- // creator in order for this file to appear in the
- // application's Help menu. Ignored for mixin files
- // because they never appear in the Help menu anyway.
- // If empty (zeros), will appear in the Help menu
- // of any host application.
- pascal OSErr
- AGFileGetHelpMenuAppCreator(AGFileFSSpecType *fileSpec,
- OSType *helpMenuAppCreator);
-
- // This selector must match in the main and mixin
- // files in order for the mixin to mix-in with the main.
- // Empty (zeros) selectors are valid matches.
- // A '****' selector will mix-in with any main.
- pascal OSErr
- AGFileGetMixinMatchSelector(AGFileFSSpecType *fileSpec,
- OSType *mixinMatchSelector);
-
- // This is the text of the balloon for the
- // Help menu item for this database.
- pascal OSErr
- AGFileGetHelpMenuBalloonText(AGFileFSSpecType *fileSpec,
- Str255 helpMenuBalloonString);
-
-
- OSErr
- AGGetSystemDB(AGFileDBType databaseType, Boolean wantMixin,
- FSSpec *pFileSpec);
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif // __AGFILE__
-
-