diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /common/quicktime_win32/InternetConfig.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'common/quicktime_win32/InternetConfig.h')
| -rw-r--r-- | common/quicktime_win32/InternetConfig.h | 3066 |
1 files changed, 3066 insertions, 0 deletions
diff --git a/common/quicktime_win32/InternetConfig.h b/common/quicktime_win32/InternetConfig.h new file mode 100644 index 0000000..7b9e3cf --- /dev/null +++ b/common/quicktime_win32/InternetConfig.h @@ -0,0 +1,3066 @@ +/* + File: InternetConfig.h + + Contains: Internet Config interfaces + + Version: QuickTime 7.3 + + Copyright: (c) 2007 (c) 1999-2001 by Apple Computer, Inc., all rights reserved. + + Bugs?: For bug reports, consult the following page on + the World Wide Web: + + http://developer.apple.com/bugreporter/ + +*/ + +/* + IMPORTANT NOTES ABOUT THE C HEADERS + ----------------------------------- + + o When you see the parameter 'y *x', you should be aware that + you *cannot pass in nil*. In future this restriction may be eased, + especially for the attr parameter to ICGetPref. Parameters where nil + is legal are declared using the explicit pointer type, ie 'yPtr x'. + + o Strings are *Pascal* strings. This means that they must be word aligned. + MPW and Think C do this automatically. The last time I checked, Metrowerks + C does not. If it still doesn't, then IMHO it's a bug in their compiler + and you should report it to them. [IC 1.4 and later no longer require + word aligned strings. You can ignore this warning if you require IC 1.4 + or greater.] +*/ +/***********************************************************************************************/ + +#ifndef __INTERNETCONFIG__ +#define __INTERNETCONFIG__ + +#ifndef __ALIASES__ +#include <Aliases.h> +#endif + +#ifndef __COMPONENTS__ +#include <Components.h> +#endif + +#ifndef __AEDATAMODEL__ +#include <AEDataModel.h> +#endif + + + +#if PRAGMA_ONCE +#pragma once +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#if PRAGMA_IMPORT +#pragma import on +#endif + +#if PRAGMA_STRUCT_ALIGN + #pragma options align=mac68k +#elif PRAGMA_STRUCT_PACKPUSH + #pragma pack(push, 2) +#elif PRAGMA_STRUCT_PACK + #pragma pack(2) +#endif + +/************************************************************************************************ + IC error codes + ************************************************************************************************/ + +enum { + icPrefNotFoundErr = -666, /* preference not found (duh!) */ + icPermErr = -667, /* cannot set preference */ + icPrefDataErr = -668, /* problem with preference data */ + icInternalErr = -669, /* hmm, this is not good */ + icTruncatedErr = -670, /* more data was present than was returned */ + icNoMoreWritersErr = -671, /* you cannot begin a write session because someone else is already doing it */ + icNothingToOverrideErr = -672, /* no component for the override component to capture */ + icNoURLErr = -673, /* no URL found */ + icConfigNotFoundErr = -674, /* no configuration was found */ + icConfigInappropriateErr = -675, /* incorrect manufacturer code */ + icProfileNotFoundErr = -676, /* profile not found */ + icTooManyProfilesErr = -677 /* too many profiles in database */ +}; + +/************************************************************************************************ + IC versions (not necessarily, but historically, from a component) + ************************************************************************************************/ + +enum { + kICComponentInterfaceVersion0 = 0x00000000, /* IC >= 1.0 */ + kICComponentInterfaceVersion1 = 0x00010000, /* IC >= 1.1 */ + kICComponentInterfaceVersion2 = 0x00020000, /* IC >= 1.2 */ + kICComponentInterfaceVersion3 = 0x00030000, /* IC >= 2.0 */ + kICComponentInterfaceVersion4 = 0x00040000, /* IC >= 2.5 */ + kICComponentInterfaceVersion = kICComponentInterfaceVersion4 /* current version number is 4 */ +}; + +/************************************************************************************************ + opaque type for preference reference + ************************************************************************************************/ + +typedef struct OpaqueICInstance* ICInstance; + +/************************************************************************************************ + a record that specifies a folder, an array of such records, and a pointer to such an array + ************************************************************************************************/ +struct ICDirSpec { + short vRefNum; + long dirID; +}; +typedef struct ICDirSpec ICDirSpec; +typedef ICDirSpec ICDirSpecArray[4]; +typedef ICDirSpecArray * ICDirSpecArrayPtr; + +/************************************************************************************************ + preference attributes type, bit number constants, and mask constants + ************************************************************************************************/ +typedef UInt32 ICAttr; + +enum { + kICAttrLockedBit = 0, + kICAttrVolatileBit = 1 +}; + +enum { + kICAttrNoChange = (unsigned long)0xFFFFFFFF, /* pass this to ICSetPref to tell it not to change the attributes */ + kICAttrLockedMask = 0x00000001, + kICAttrVolatileMask = 0x00000002 +}; + +/************************************************************************************************ + permissions for use with ICBegin + ************************************************************************************************/ + +typedef UInt8 ICPerm; + +enum { + icNoPerm = 0, + icReadOnlyPerm = 1, + icReadWritePerm = 2 +}; + +/************************************************************************************************ + a reference to an instance's current configuration + ************************************************************************************************/ + +#if CALL_NOT_IN_CARBON +struct ICConfigRef { + OSType manufacturer; + /* other private data follows */ +}; +typedef struct ICConfigRef ICConfigRef; +typedef ICConfigRef * ICConfigRefPtr; +typedef ICConfigRefPtr * ICConfigRefHandle; + +#endif /* CALL_NOT_IN_CARBON */ + +/************************************************************************************************ + profile IDs + ************************************************************************************************/ +typedef long ICProfileID; +typedef ICProfileID * ICProfileIDPtr; + +enum { + kICNilProfileID = 0 +}; + +/************************************************************************************************ + other constants + ************************************************************************************************/ + +enum { + kICNoUserInteractionBit = 0 +}; + +enum { + kICNoUserInteractionMask = 0x00000001 +}; + +enum { + kICFileType = FOUR_CHAR_CODE('ICAp'), + kICCreator = FOUR_CHAR_CODE('ICAp') +}; + +/************************************************************************************************ + Apple event constants + ************************************************************************************************/ + +enum { + kInternetEventClass = FOUR_CHAR_CODE('GURL'), + kAEGetURL = FOUR_CHAR_CODE('GURL'), + kAEFetchURL = FOUR_CHAR_CODE('FURL'), + keyAEAttaching = FOUR_CHAR_CODE('Atch') +}; + +/* AERegistry.i defines a compatible keyAEDestination */ + +enum { + kICEditPreferenceEventClass = FOUR_CHAR_CODE('ICAp'), + kICEditPreferenceEvent = FOUR_CHAR_CODE('ICAp'), + keyICEditPreferenceDestination = FOUR_CHAR_CODE('dest') +}; + +/************************************************************************************************ + constants for use with ICGetVersion + ************************************************************************************************/ + +enum { + kICComponentVersion = 0, /* Return a component version, comparable to kICComponentInterfaceVersion */ + kICNumVersion = 1 /* Return a NumVersion structure */ +}; + +/************************************************************************************************ + types and constants for use with kICDocumentFont, et. al. + ************************************************************************************************/ +struct ICFontRecord { + short size; + Style face; + char pad; + Str255 font; +}; +typedef struct ICFontRecord ICFontRecord; +typedef ICFontRecord * ICFontRecordPtr; +typedef ICFontRecordPtr * ICFontRecordHandle; + +/************************************************************************************************ + types and constants for use with kICCharacterSet, et. al. + ************************************************************************************************/ +struct ICCharTable { + unsigned char netToMac[256]; + unsigned char macToNet[256]; +}; +typedef struct ICCharTable ICCharTable; +typedef ICCharTable * ICCharTablePtr; +typedef ICCharTablePtr * ICCharTableHandle; + +/************************************************************************************************ + types and constants for use with kICHelper, et. al. + ************************************************************************************************/ +struct ICAppSpec { + OSType fCreator; + Str63 name; +}; +typedef struct ICAppSpec ICAppSpec; +typedef ICAppSpec * ICAppSpecPtr; +typedef ICAppSpecPtr * ICAppSpecHandle; +struct ICAppSpecList { + short numberOfItems; + ICAppSpec appSpecs[1]; +}; +typedef struct ICAppSpecList ICAppSpecList; +typedef ICAppSpecList * ICAppSpecListPtr; +typedef ICAppSpecListPtr * ICAppSpecListHandle; + +/************************************************************************************************ + types and constants for use with kICDownloadFolder, et. al. + ************************************************************************************************/ + +#if !OLDROUTINENAMES +struct ICFileSpec { + Str31 volName; + long volCreationDate; + FSSpec fss; + AliasRecord alias; + /* plus extra data, aliasSize 0 means no alias manager present when*/ + /* ICFileSpecification was created*/ +}; +typedef struct ICFileSpec ICFileSpec; +typedef ICFileSpec * ICFileSpecPtr; +typedef ICFileSpecPtr * ICFileSpecHandle; +#else +struct ICFileSpec { + Str31 vol_name; + long vol_creation_date; + FSSpec fss; + AliasRecord alias; +}; +typedef struct ICFileSpec ICFileSpec; +typedef ICFileSpec * ICFileSpecPtr; +typedef ICFileSpecPtr * ICFileSpecHandle; +#endif /* !OLDROUTINENAMES */ + +enum { + kICFileSpecHeaderSize = sizeof(ICFileSpec) - sizeof(AliasRecord) +}; + +/************************************************************************************************ + types and constants for use with ICMapFilename, et. al. + ************************************************************************************************/ +typedef long ICMapEntryFlags; +typedef short ICFixedLength; + +#if !OLDROUTINENAMES +struct ICMapEntry { + short totalLength; + ICFixedLength fixedLength; + short version; + OSType fileType; + OSType fileCreator; + OSType postCreator; + ICMapEntryFlags flags; + /* variable part starts here*/ + Str255 extension; + Str255 creatorAppName; + Str255 postAppName; + Str255 MIMEType; + Str255 entryName; +}; +typedef struct ICMapEntry ICMapEntry; +typedef ICMapEntry * ICMapEntryPtr; +typedef ICMapEntryPtr * ICMapEntryHandle; + +#else +struct ICMapEntry { + short total_length; + ICFixedLength fixed_length; + short version; + OSType file_type; + OSType file_creator; + OSType post_creator; + ICMapEntryFlags flags; + Str255 extension; + Str255 creator_app_name; + Str255 post_app_name; + Str255 MIME_type; + Str255 entry_name; +}; +typedef struct ICMapEntry ICMapEntry; +typedef ICMapEntry * ICMapEntryPtr; +typedef ICMapEntryPtr * ICMapEntryHandle; +#endif /* !OLDROUTINENAMES */ + +enum { + kICMapFixedLength = 22 /* number in fixedLength field*/ +}; + +enum { + kICMapBinaryBit = 0, /* file should be transfered in binary as opposed to text mode*/ + kICMapResourceForkBit = 1, /* the resource fork of the file is significant*/ + kICMapDataForkBit = 2, /* the data fork of the file is significant*/ + kICMapPostBit = 3, /* post process using post fields*/ + kICMapNotIncomingBit = 4, /* ignore this mapping for incoming files*/ + kICMapNotOutgoingBit = 5 /* ignore this mapping for outgoing files*/ +}; + +enum { + kICMapBinaryMask = 0x00000001, /* file should be transfered in binary as opposed to text mode*/ + kICMapResourceForkMask = 0x00000002, /* the resource fork of the file is significant*/ + kICMapDataForkMask = 0x00000004, /* the data fork of the file is significant*/ + kICMapPostMask = 0x00000008, /* post process using post fields*/ + kICMapNotIncomingMask = 0x00000010, /* ignore this mapping for incoming files*/ + kICMapNotOutgoingMask = 0x00000020 /* ignore this mapping for outgoing files*/ +}; + +/************************************************************************************************ + types and constants for use with kICServices, et. al. + ************************************************************************************************/ +typedef short ICServiceEntryFlags; +struct ICServiceEntry { + Str255 name; + short port; + ICServiceEntryFlags flags; +}; +typedef struct ICServiceEntry ICServiceEntry; +typedef ICServiceEntry * ICServiceEntryPtr; +typedef ICServiceEntryPtr * ICServiceEntryHandle; + +enum { + kICServicesTCPBit = 0, + kICServicesUDPBit = 1 /* both bits can be set, which means the service is both TCP and UDP, eg daytime*/ +}; + +enum { + kICServicesTCPMask = 0x00000001, + kICServicesUDPMask = 0x00000002 /* both bits can be set, which means the service is both TCP and UDP, eg daytime*/ +}; + +struct ICServices { + short count; + ICServiceEntry services[1]; +}; +typedef struct ICServices ICServices; +typedef ICServices * ICServicesPtr; +typedef ICServicesPtr * ICServicesHandle; + +/************************************************************************************************ + default file name, for internal use, overridden by a component resource + ************************************************************************************************/ + +#if CALL_NOT_IN_CARBON +#define kICDefaultFileName "\pInternet Preferences" +#endif /* CALL_NOT_IN_CARBON */ + +/************************************************************************************************ + keys + ************************************************************************************************/ +/* + key reserved for use by Internet Config +*/ +#define kICReservedKey "\pkICReservedKey" +/* + STR# -- formatted, list of Archie servers +*/ +#define kICArchieAll "\pArchieAll" +/* + PString -- formatted, preferred Archie server +*/ +#define kICArchiePreferred "\pArchiePreferred" +/* + ICCharTable -- Mac-to-Net and Net-to-Mac character translation +*/ +#define kICCharacterSet "\pCharacterSet" +/* + ICFontRecord -- font used for proportional text +*/ +#define kICDocumentFont "\pDocumentFont" +/* + ICFileSpec -- where to put newly downloaded files +*/ +#define kICDownloadFolder "\pDownloadFolder" +/* + PString -- [email protected], email address of user, ie return address +*/ +#define kICEmail "\pEmail" +/* + PString -- host.domain, default FTP server +*/ +#define kICFTPHost "\pFTPHost" +/* + PString -- second level FTP proxy authorisation +*/ +#define kICFTPProxyAccount "\pFTPProxyAccount" +/* + PString -- host.domain +*/ +#define kICFTPProxyHost "\pFTPProxyHost" +/* + PString -- scrambled, password for FTPProxyUser +*/ +#define kICFTPProxyPassword "\pFTPProxyPassword" +/* + PString -- first level FTP proxy authorisation +*/ +#define kICFTPProxyUser "\pFTPProxyUser" +/* + PString -- host.domain, default finger server +*/ +#define kICFingerHost "\pFingerHost" +/* + PString -- host.domain, default Gopher server +*/ +#define kICGopherHost "\pGopherHost" +/* + PString -- host.domain, see note in Prog Docs +*/ +#define kICGopherProxy "\pGopherProxy" +/* + PString -- host.domain +*/ +#define kICHTTPProxyHost "\pHTTPProxyHost" +/* + ICAppSpec -- helpers for URL schemes +*/ +#define kICHelper "\pHelper�" +/* + PString -- description for URL scheme +*/ +#define kICHelperDesc "\pHelperDesc�" +/* + ICAppSpecList -- list of common helpers for URL schemes +*/ +#define kICHelperList "\pHelperList�" +/* + PString -- host.domain, Internet Relay Chat server +*/ +#define kICIRCHost "\pIRCHost" +/* + STR# -- formatted, list of Info-Mac servers +*/ +#define kICInfoMacAll "\pInfoMacAll" +/* + PString -- formatted, preferred Info-Mac server +*/ +#define kICInfoMacPreferred "\pInfoMacPreferred" +/* + PString -- string LDAP thing +*/ +#define kICLDAPSearchbase "\pLDAPSearchbase" +/* + PString -- host.domain +*/ +#define kICLDAPServer "\pLDAPServer" +/* + ICFontRecord -- font used for lists of items (eg news article lists) +*/ +#define kICListFont "\pListFont" +/* + PString -- host for MacSearch queries +*/ +#define kICMacSearchHost "\pMacSearchHost" +/* + PString -- [email protected], account from which to fetch mail +*/ +#define kICMailAccount "\pMailAccount" +/* + TEXT -- extra headers for mail messages +*/ +#define kICMailHeaders "\pMailHeaders" +/* + PString -- scrambled, password for MailAccount +*/ +#define kICMailPassword "\pMailPassword" +/* + ICMapEntries -- file type mapping, see documentation +*/ +#define kICMapping "\pMapping" +/* + PString -- host.domain, NNTP server +*/ +#define kICNNTPHost "\pNNTPHost" +/* + PString -- host.domain, Network Time Protocol (NTP) +*/ +#define kICNTPHost "\pNTPHost" +/* + Boolean +*/ +#define kICNewMailDialog "\pNewMailDialog" +/* + Boolean -- how to announce new mail +*/ +#define kICNewMailFlashIcon "\pNewMailFlashIcon" +/* + Boolean +*/ +#define kICNewMailPlaySound "\pNewMailPlaySound" +/* + PString +*/ +#define kICNewMailSoundName "\pNewMailSoundName" +/* + PString -- scrambled, password for NewsAuthUsername +*/ +#define kICNewsAuthPassword "\pNewsAuthPassword" +/* + PString -- user name for authorised news servers +*/ +#define kICNewsAuthUsername "\pNewsAuthUsername" +/* + TEXT -- extra headers for news messages +*/ +#define kICNewsHeaders "\pNewsHeaders" +/* + STR# -- list of domains not to be proxied +*/ +#define kICNoProxyDomains "\pNoProxyDomains" +/* + PString -- for X-Organization string +*/ +#define kICOrganization "\pOrganization" +/* + PString -- host.domain, default Ph server +*/ +#define kICPhHost "\pPhHost" +/* + TEXT -- default response for finger servers +*/ +#define kICPlan "\pPlan" +/* + ICFontRecord -- font used to print ScreenFont +*/ +#define kICPrinterFont "\pPrinterFont" +/* + PString -- used to quote responses in news and mail +*/ +#define kICQuotingString "\pQuotingString" +/* + PString -- real name of user +*/ +#define kICRealName "\pRealName" +/* + PString -- RTSP Proxy Host +*/ +#define kICRTSPProxyHost "\pRTSPProxyHost" +/* + PString -- host.domain, SMTP server +*/ +#define kICSMTPHost "\pSMTPHost" +/* + ICFontRecord -- font used for monospaced text (eg news articles) +*/ +#define kICScreenFont "\pScreenFont" +/* + ICServices -- TCP and IP port-to-name mapping +*/ +#define kICServices "\pServices" +/* + TEXT -- append to news and mail messages +*/ +#define kICSignature "\pSignature" +/* + TEXT -- preferred mailing address +*/ +#define kICSnailMailAddress "\pSnailMailAddress" +/* + PString -- host.domain, remember that host.domain format allows ":port" and " port" +*/ +#define kICSocksHost "\pSocksHost" +/* + PString -- host.domain, default Telnet address +*/ +#define kICTelnetHost "\pTelnetHost" +/* + STR# -- formatted, list of UMich servers +*/ +#define kICUMichAll "\pUMichAll" +/* + PString -- formatted, preferred UMich server +*/ +#define kICUMichPreferred "\pUMichPreferred" +/* + Boolean +*/ +#define kICUseFTPProxy "\pUseFTPProxy" +/* + Boolean +*/ +#define kICUseGopherProxy "\pUseGopherProxy" +/* + Boolean +*/ +#define kICUseHTTPProxy "\pUseHTTPProxy" +/* + Boolean -- use PASV command for FTP transfers +*/ +#define kICUsePassiveFTP "\pUsePassiveFTP" +/* + Boolean +*/ +#define kICUseRTSPProxy "\pUseRTSPProxy" +/* + Boolean +*/ +#define kICUseSocks "\pUseSocks" +/* + PString -- no idea +*/ +#define kICWAISGateway "\pWAISGateway" +/* + PString -- URL, users default WWW page +*/ +#define kICWWWHomePage "\pWWWHomePage" +/* + RGBColor -- background colour for web pages +*/ +#define kICWebBackgroundColour "\pWebBackgroundColour" +/* + RGBColor -- colour for read links +*/ +#define kICWebReadColor "\p646F6777�WebReadColor" +/* + PString -- URL, users default search page +*/ +#define kICWebSearchPagePrefs "\pWebSearchPagePrefs" +/* + RGBColor -- colour for normal text +*/ +#define kICWebTextColor "\pWebTextColor" +/* + Boolean -- whether to underline links +*/ +#define kICWebUnderlineLinks "\p646F6777�WebUnderlineLinks" +/* + RGBColor -- colour for unread links +*/ +#define kICWebUnreadColor "\p646F6777�WebUnreadColor" +/* + PString -- host.domain, default whois server +*/ +#define kICWhoisHost "\pWhoisHost" + +/************************************************************************************************ + + FUNCTIONS + + What do the annotations after each API mean? + -------------------------------------------- + + [r1] Requires IC 1.1 or higher. + [r2] Requires IC 1.2 or higher. + [r3] Requires IC 2.0 or higher. + [r4] Requires IC 2.5 or higher. + + IMPORTANT: + + In IC 2.5, instances automatically use the default configuration. + You no longer need to configure an instance explicitly, except + if your code might run with an older version of IC. So the following + notes only apply to IC 2.0 and earlier. + + [c1] You must have specified a configuration before calling this routine. + + [c2] You must have specified the default configuration before calling this + routine. + + [c3] You do not need to specify a configuration before calling this routine. + + [b1] You must be inside a Begin/End pair when calling this routine. + + [b2] You must be inside a Begin/End read/write pair when calling this routine. + + [b3] You do not need to be inside a Begin/End pair when calling this routine. + + [b4] If you are getting or setting multiple preferences, you should make this + call inside a Begin/End pair. If you do not make this call inside a Begin/End + pair, the call will automatically do it for you. + + [b5] It is illegal to call this routine inside a Begin/End pair. + + ************************************************************************************************/ + +/* ***** Starting Up and Shutting Down ***** */ +/* + * ICStart() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICStart( + ICInstance * inst, + OSType signature); + + +/* Call this at application initialisation. Set signature to a value + * which has been regsitered with DTS to allow for future expansion + * of the IC system. Returns inst as a connection to the IC system. + */ +/* + * ICStop() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICStop(ICInstance inst); + + +/* [b5] + * Call this at application initialisation, after which inst + * is no longer valid connection to IC. + */ +/* + * ICGetVersion() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICGetVersion( + ICInstance inst, + long whichVersion, + UInt32 * version) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0032, 0x7000, 0xA82A); + + +/* [r4] [c3] [b3] + * Returns the version of Internet Config. Pass kICComponentVersion + * to get the version as previously returned by GetComponenVerson. + * Pass kICNumVersion to get a NumVersion structure. + */ +/* ***** Specifying a Configuration ***** */ +#if CALL_NOT_IN_CARBON +/* + * ICFindConfigFile() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICFindConfigFile( + ICInstance inst, + short count, + ICDirSpecArrayPtr folders) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0002, 0x7000, 0xA82A); + + +/* [b5] + * Call to configure this connection to IC. + * Set count as the number of valid elements in folders. + * Set folders to a pointer to the folders to search. + * Setting count to 0 and folders to nil is OK. + * Searches the specified folders and then the Preferences folder + * in a unspecified manner. + */ +/* + * ICFindUserConfigFile() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICFindUserConfigFile( + ICInstance inst, + ICDirSpec * where) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000E, 0x7000, 0xA82A); + + +/* [r1] [b5] + * Similar to ICFindConfigFile except that it only searches the folder + * specified in where. If the input parameters are valid the routine + * will always successful configure the instance, creating an + * empty configuration if necessary + * For use with double-clickable preference files. + */ +/* + * ICGeneralFindConfigFile() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICGeneralFindConfigFile( + ICInstance inst, + Boolean searchPrefs, + Boolean canCreate, + short count, + ICDirSpecArrayPtr folders) FIVEWORDINLINE(0x2F3C, 0x000A, 0x001E, 0x7000, 0xA82A); + + +/* [r2] [b5] + * Call to configure this connection to IC. + * This routine acts as a more general replacement for + * ICFindConfigFile and ICFindUserConfigFile. + * Set search_prefs to true if you want it to search the preferences folder. + * Set can_create to true if you want it to be able to create a new config. + * Set count as the number of valid elements in folders. + * Set folders to a pointer to the folders to search. + * Setting count to 0 and folders to nil is OK. + * Searches the specified folders and then optionally the Preferences folder + * in a unspecified manner. + */ +/* + * ICChooseConfig() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICChooseConfig(ICInstance inst) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0021, 0x7000, 0xA82A); + + +/* [r2] [b5] + * Requests the user to choose a configuration, typically using some + * sort of modal dialog. If the user cancels the dialog the configuration + * state will be unaffected. + */ +/* + * ICChooseNewConfig() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICChooseNewConfig(ICInstance inst) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0022, 0x7000, 0xA82A); + + +/* [r2] [b5] + * Requests the user to create a new configuration, typically using some + * sort of modal dialog. If the user cancels the dialog the configuration + * state will be unaffected. + */ +#endif /* CALL_NOT_IN_CARBON */ + +/* + * ICGetConfigName() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICGetConfigName( + ICInstance inst, + Boolean longname, + Str255 name) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0023, 0x7000, 0xA82A); + + +/* [r2] [c1] [b3] + * Returns a string that describes the current configuration at a user + * level. Set longname to true if you want a long name, up to 255 + * characters, or false if you want a short name, typically about 32 + * characters. + * The returned string is for user display only. If you rely on the + * exact format of it, you will conflict with any future IC + * implementation that doesn't use explicit preference files. + */ +#if CALL_NOT_IN_CARBON +/* + * ICGetConfigReference() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICGetConfigReference( + ICInstance inst, + ICConfigRefHandle ref) FIVEWORDINLINE(0x2F3C, 0x0004, 0x001F, 0x7000, 0xA82A); + + +/* [r2] [c1] [b3] + * Returns a self-contained reference to the instance's current + * configuration. + * ref must be a valid non-nil handle and it will be resized to fit the + * resulting data. + */ +/* + * ICSetConfigReference() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICSetConfigReference( + ICInstance inst, + ICConfigRefHandle ref, + long flags) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0020, 0x7000, 0xA82A); + + +/* [r2] [b5] + * Reconfigures the instance using a configuration reference that was + * got using ICGetConfigReference reference. Set the + * icNoUserInteraction_bit in flags if you require that this routine + * not present a modal dialog. Other flag bits are reserved and should + * be set to zero. + * ref must not be nil. + */ +/* ***** Private Routines ***** + * + * If you are calling these routines, you are most probably doing something + * wrong. Please read the documentation for more details. + */ +/* + * ICSpecifyConfigFile() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICSpecifyConfigFile( + ICInstance inst, + FSSpec * config) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0003, 0x7000, 0xA82A); + + +/* [b5] + * For use only by the IC application. + * If you call this routine yourself, you will conflict with any + * future IC implementation that doesn't use explicit preference files. + */ +/* + * ICRefreshCaches() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICRefreshCaches(ICInstance inst) FIVEWORDINLINE(0x2F3C, 0x0000, 0x002F, 0x7000, 0xA82A); + + +/* [r3] [c1] [b3] + * For use only by the IC application. + * If you call this routine yourself, you will conflict with any + * future IC implementation that doesn't use explicit preference files. + */ +/* ***** Getting Information ***** */ +#endif /* CALL_NOT_IN_CARBON */ + +/* + * ICGetSeed() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICGetSeed( + ICInstance inst, + long * seed) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0004, 0x7000, 0xA82A); + + +/* [c3] [b3] + * Returns the current seed for the IC prefs database. + * This seed changes each time a non-volatile preference is changed. + * You can poll this to determine if any cached preferences change. + */ +/* + * ICGetPerm() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICGetPerm( + ICInstance inst, + ICPerm * perm) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000D, 0x7000, 0xA82A); + + +/* [c3] [b3] + * Returns the access permissions currently associated with this instance. + * While applications normally know what permissions they have, + * this routine is designed for use by override components. + */ +#if CALL_NOT_IN_CARBON +/* + * ICDefaultFileName() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICDefaultFileName( + ICInstance inst, + Str63 name) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000B, 0x7000, 0xA82A); + + +/* [c3] [b3] + * Returns the default file name for IC preference files. + * Applications should never need to call this routine. + * If you rely on information returned by this routine yourself, + * you may conflict with any future IC implementation that doesn't use + * explicit preference files. + * The component calls this routine to set up the default IC file name. + * This allows this operation to be intercepted by a component that has + * captured us. It currently gets it from the component resource file. + * The glue version is hardwired to "Internet Preferences". + */ +/* + * ICGetComponentInstance() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICGetComponentInstance( + ICInstance inst, + ComponentInstance * componentInst); + + +/* [c3] [b3] + * Returns noErr and the connection to the IC component, + * if we're using the component. + * Returns badComponenInstance and nil if we're operating with glue. + */ +/* ***** Reading and Writing Preferences ***** */ +#endif /* CALL_NOT_IN_CARBON */ + +/* + * ICBegin() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICBegin( + ICInstance inst, + ICPerm perm) FIVEWORDINLINE(0x2F3C, 0x0002, 0x0005, 0x7000, 0xA82A); + + +/* [c1] [b5] + * Starting reading or writing multiple preferences. + * A call to this must be balanced by a call to ICEnd. + * Do not call WaitNextEvent between these calls. + * The perm specifies whether you intend to read or read/write. + * Only one writer is allowed per instance. + * Note that this may open resource files that are not closed + * until you call ICEnd. + */ +/* + * ICGetPref() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICGetPref( + ICInstance inst, + ConstStr255Param key, + ICAttr * attr, + void * buf, + long * size) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0006, 0x7000, 0xA82A); + + +/* [c1] [b4] + * Reads the preference specified by key from the IC database to the + * buffer pointed to by buf and size. + * key must not be the empty string. + * If buf is nil then no data is returned. + * size must be non-negative. + * attr and size are always set on return. On errors (except icTruncatedErr) + * attr is set to ICattr_no_change and size is set to 0. + * size is the actual size of the data. + * attr is set to the attributes associated with the preference. + * If this routine returns icTruncatedErr then the other returned + * values are valid except that only the first size bytes have been + * return. size is adjusted to reflect the true size of the preference. + * Returns icPrefNotFound if there is no preference for the key. + */ +/* + * ICSetPref() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICSetPref( + ICInstance inst, + ConstStr255Param key, + ICAttr attr, + const void * buf, + long size) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0007, 0x7000, 0xA82A); + + +/* [c1] [b4] + * Sets the preference specified by key from the IC database to the + * value pointed to by buf and size. + * key must not be the empty string. + * size must be non-negative. + * If buf is nil then the preference value is not set and size is ignored. + * If buf is not nil then the preference value is set to the size + * bytes pointed to by buf. + * If attr is ICattr_no_change then the preference attributes are not set. + * Otherwise the preference attributes are set to attr. + * Returns icPermErr if the previous ICBegin was passed icReadOnlyPerm. + * Returns icPermErr if current attr is locked, new attr is locked and buf <> nil. + */ +/* + * ICFindPrefHandle() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICFindPrefHandle( + ICInstance inst, + ConstStr255Param key, + ICAttr * attr, + Handle prefh) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0024, 0x7000, 0xA82A); + + +/* [r2] [c1] [b4] + * This routine effectively replaces ICGetPrefHandle. + * Reads the preference specified by key from the IC database into + * a handle, prefh. + * key must not be the empty string. + * attr is set to the attributes associated with the preference. + * You must set prefh to a non-nil handle before calling this routine. + * If the preference does not exist, icPrefNotFoundErr is returned. + */ +/* + * ICGetPrefHandle() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICGetPrefHandle( + ICInstance inst, + ConstStr255Param key, + ICAttr * attr, + Handle * prefh) FIVEWORDINLINE(0x2F3C, 0x000C, 0x001A, 0x7000, 0xA82A); + + +/* [r1] [c1] [b4] + * This routine is now obsolete. Use ICFindPrefHandle instead. + * Reads the preference specified by key from the IC database into + * a newly created handle, prefh. + * key must not be the empty string. + * attr is set to the attributes associated with the preference. + * The incoming value of prefh is ignored. + * A new handle is created in the current heap and returned in prefh. + * If the routine returns an error, prefh is set to nil. + * If the preference does not exist, no error is returned and prefh is set + * to an empty handle. + */ +/* + * ICSetPrefHandle() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICSetPrefHandle( + ICInstance inst, + ConstStr255Param key, + ICAttr attr, + Handle prefh) FIVEWORDINLINE(0x2F3C, 0x000C, 0x001B, 0x7000, 0xA82A); + + +/* [r1] [c1] [b4] + * Sets the preference specified by key from the IC database to the + * value contained in prefh. + * key must not be the empty string. + * If prefh is nil then the preference value is not set. + * If buf is not nil then the preference value is set to the data + * contained in it. + * If attr is ICattr_no_change then the preference attributes are not set. + * Otherwise the preference attributes are set to attr. + * Returns icPermErr if the previous ICBegin was passed icReadOnlyPerm. + * Returns icPermErr if current attr is locked, new attr is locked and prefh <> nil. + */ +/* + * ICCountPref() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICCountPref( + ICInstance inst, + long * count) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0008, 0x7000, 0xA82A); + + +/* [c1] [b1] + * Counts the total number of preferences. + * If the routine returns an error, count is set to 0. + */ +/* + * ICGetIndPref() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICGetIndPref( + ICInstance inst, + long index, + Str255 key) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0009, 0x7000, 0xA82A); + + +/* [c1] [b1] + * Returns the key of the index'th preference. + * index must be positive. + * Returns icPrefNotFoundErr if index is greater than the total number of preferences. + * If the routine returns an error, key is undefined. + */ +/* + * ICDeletePref() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICDeletePref( + ICInstance inst, + ConstStr255Param key) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000C, 0x7000, 0xA82A); + + +/* [c1] [b2] + * Deletes the preference specified by key. + * key must not be the empty string. + * Returns icPrefNotFound if the preference specified by key is not present. + */ +/* + * ICEnd() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICEnd(ICInstance inst) FIVEWORDINLINE(0x2F3C, 0x0000, 0x000A, 0x7000, 0xA82A); + + +/* [c1] [b1] + * Terminates a preference session, as started by ICBegin. + * You must have called ICBegin before calling this routine. + */ +/* + * ICGetDefaultPref() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICGetDefaultPref( + ICInstance inst, + ConstStr255Param key, + Handle prefH) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0031, 0x7000, 0xA82A); + + +/* [r4] [c3] [b5] + * Returns a default preference value for the specified key. You + * must pass in a valid prefH, which is resized to fit the data. + */ +/* ***** User Interface Stuff ***** */ +/* + * ICEditPreferences() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICEditPreferences( + ICInstance inst, + ConstStr255Param key) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000F, 0x7000, 0xA82A); + + +/* [r1] [c1] [b3] + * Instructs IC to display the user interface associated with editing + * preferences and focusing on the preference specified by key. + * If key is the empty string then no preference should be focused upon. + * You must have specified a configuration before calling this routine. + * You do not need to call ICBegin before calling this routine. + * In the current implementation this launches the IC application + * (or brings it to the front) and displays the window containing + * the preference specified by key. + * It may have a radically different implementation in future + * IC systems. + */ +/* ***** URL Handling ***** */ +/* + * ICLaunchURL() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICLaunchURL( + ICInstance inst, + ConstStr255Param hint, + const void * data, + long len, + long * selStart, + long * selEnd) FIVEWORDINLINE(0x2F3C, 0x0014, 0x0011, 0x7000, 0xA82A); + + +/* [r1] [c1] [b3] + * Parses a URL out of the specified text and feeds it off to the + * appropriate helper. + * hint indicates the default scheme for URLs of the form "name@address". + * If hint is the empty string then URLs of that form are not allowed. + * data points to the start of the text. It must not be nil. + * len indicates the length of the text. It must be non-negative. + * selStart and selEnd should be passed in as the current selection of + * the text. This selection is given in the same manner as TextEdit, + * ie if selStart = selEnd then there is no selection only an insertion + * point. Also selStart . selEnd and 0 . selStart . len and 0 . selEnd . len. + * selStart and selEnd are returned as the bounds of the URL. If the + * routine returns an error then these new boundaries may be + * invalid but they will be close. + * The URL is parsed out of the text and passed off to the appropriate + * helper using the GURL AppleEvent. + */ +/* + * ICParseURL() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICParseURL( + ICInstance inst, + ConstStr255Param hint, + const void * data, + long len, + long * selStart, + long * selEnd, + Handle url) FIVEWORDINLINE(0x2F3C, 0x0018, 0x0010, 0x7000, 0xA82A); + + +/* [r1] [c1] [b3] + * Parses a URL out of the specified text and returns it in a canonical form + * in a handle. + * hint indicates the default scheme for URLs of the form "name@address". + * If hint is the empty string then URLs of that form are not allowed. + * data points to the start of the text. It must not be nil. + * len indicates the length of the text. It must be non-negative. + * selStart and selEnd should be passed in as the current selection of + * the text. This selection is given in the same manner as TextEdit, + * ie if selStart = selEnd then there is no selection only an insertion + * point. Also selStart . selEnd and 0 . selStart . len and 0 . selEnd . len. + * selStart and selEnd are returned as the bounds of the URL. If the + * routine returns an error then these new boundaries may be + * invalid but they will be close. + * The incoming url handle must not be nil. The resulting URL is normalised + * and copied into the url handle, which is resized to fit. + */ +/* + * ICCreateGURLEvent() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICCreateGURLEvent( + ICInstance inst, + OSType helperCreator, + Handle urlH, + AppleEvent * theEvent) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0033, 0x7000, 0xA82A); + + +/* [r4] [c1] [b3] + * Creates a GURL Apple event, targetted at the application whose creator + * code is helperCreator, with a direct object containing the URL text from urlH. + */ +/* + * ICSendGURLEvent() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICSendGURLEvent( + ICInstance inst, + AppleEvent * theEvent) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0034, 0x7000, 0xA82A); + + +/* [r4] [c1] [b3] + * Sends theEvent to the target application. + */ +/* ***** Mappings Routines ***** + * + * Routines for interrogating mappings database. + * + * ----- High Level Routines ----- + */ +/* + * ICMapFilename() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICMapFilename( + ICInstance inst, + ConstStr255Param filename, + ICMapEntry * entry) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0018, 0x7000, 0xA82A); + + +/* [r1] [c1] [b4] + * Takes the name of an incoming file and returns the most appropriate + * mappings database entry, based on its extension. + * filename must not be the empty string. + * Returns icPrefNotFoundErr if no suitable entry is found. + */ +/* + * ICMapTypeCreator() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICMapTypeCreator( + ICInstance inst, + OSType fType, + OSType fCreator, + ConstStr255Param filename, + ICMapEntry * entry) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0019, 0x7000, 0xA82A); + + +/* [r1] [c1] [b4] + * Takes the type and creator (and optionally the name) of an outgoing + * file and returns the most appropriate mappings database entry. + * The filename may be either the name of the outgoing file or + * the empty string. + * Returns icPrefNotFoundErr if no suitable entry found. + */ +/* ----- Mid Level Routines ----- */ +/* + * ICMapEntriesFilename() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICMapEntriesFilename( + ICInstance inst, + Handle entries, + ConstStr255Param filename, + ICMapEntry * entry) FIVEWORDINLINE(0x2F3C, 0x000C, 0x001C, 0x7000, 0xA82A); + + +/* [r1] [c1] [b3] + * Takes the name of an incoming file and returns the most appropriate + * mappings database entry, based on its extension. + * entries must be a handle to a valid IC mappings database preference. + * filename must not be the empty string. + * Returns icPrefNotFoundErr if no suitable entry is found. + */ +/* + * ICMapEntriesTypeCreator() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICMapEntriesTypeCreator( + ICInstance inst, + Handle entries, + OSType fType, + OSType fCreator, + ConstStr255Param filename, + ICMapEntry * entry) FIVEWORDINLINE(0x2F3C, 0x0014, 0x001D, 0x7000, 0xA82A); + + +/* [r1] [c1] [b3] + * Takes the type and creator (and optionally the name) of an outgoing + * file and returns the most appropriate mappings database entry. + * entries must be a handle to a valid IC mappings database preference. + * The filename may be either the name of the outgoing file or + * the empty string. + * Returns icPrefNotFoundErr if no suitable entry found. + */ +/* ----- Low Level Routines ----- */ +/* + * ICCountMapEntries() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICCountMapEntries( + ICInstance inst, + Handle entries, + long * count) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0012, 0x7000, 0xA82A); + + +/* [r1] [c1] [b3] + * Counts the number of entries in the mappings database. + * entries must be a handle to a valid IC mappings database preference. + * count is set to the number of entries. + */ +/* + * ICGetIndMapEntry() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICGetIndMapEntry( + ICInstance inst, + Handle entries, + long index, + long * pos, + ICMapEntry * entry) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0013, 0x7000, 0xA82A); + + +/* [r1] [c1] [b3] + * Gets the index'th entry in the mappings database. + * entries must be a handle to a valid IC mappings database preference. + * index must be in the range from 1 to the number of entries in the database. + * The value of pos is ignored on input. pos is set to the position of + * the index'th entry in the database and is suitable for passing back + * into ICSetMapEntry. + * Does not return any user data associated with the entry. + */ +/* + * ICGetMapEntry() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICGetMapEntry( + ICInstance inst, + Handle entries, + long pos, + ICMapEntry * entry) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0014, 0x7000, 0xA82A); + + +/* [r1] [c1] [b3] + * Returns the entry located at position pos in the mappings database. + * entries must be a handle to a valid IC mappings database preference. + * pos should be 0 to get the first entry. To get the subsequent entries, add + * entry.total_size to pos and iterate. + * Does not return any user data associated with the entry. + */ +/* + * ICSetMapEntry() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICSetMapEntry( + ICInstance inst, + Handle entries, + long pos, + const ICMapEntry * entry) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0015, 0x7000, 0xA82A); + + +/* [r1] [c1] [b3] + * Sets the entry located at position pos in the mappings database. + * entries must be a handle to a valid IC mappings database preference. + * pos should be either a value returned from ICGetIndMapEntry or a value + * calculated using ICGetMapEntry. + * entry is a var parameter purely for stack space reasons. It is not + * modified in any way. + * Any user data associated with the entry is unmodified. + */ +/* + * ICDeleteMapEntry() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICDeleteMapEntry( + ICInstance inst, + Handle entries, + long pos) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0016, 0x7000, 0xA82A); + + +/* [r1] [c1] [b3] + * Deletes the mappings database entry at pos. + * entries must be a handle to a valid IC mappings database preference. + * pos should be either a value returned from ICGetIndMapEntry or a value + * calculated using ICGetMapEntry. + * Also deletes any user data associated with the entry. + */ +/* + * ICAddMapEntry() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICAddMapEntry( + ICInstance inst, + Handle entries, + const ICMapEntry * entry) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0017, 0x7000, 0xA82A); + + +/* [r1] [c1] [b3] + * Adds an entry to the mappings database. + * entries must be a handle to a valid IC mappings database preference. + * The entry is added to the end of the entries database. + * No user data is added. + */ +/* ***** Profile Management Routines ***** */ +/* + * ICGetCurrentProfile() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICGetCurrentProfile( + ICInstance inst, + ICProfileID * currentID) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0025, 0x7000, 0xA82A); + + +/* [r3] [c1] [b3] + * Returns the profile ID of the current profile. + */ +/* + * ICSetCurrentProfile() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICSetCurrentProfile( + ICInstance inst, + ICProfileID newID) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0026, 0x7000, 0xA82A); + + +/* [r3] [c1] [b3] + * Sets the current profile to the profile specified in newProfile. + */ +/* + * ICCountProfiles() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICCountProfiles( + ICInstance inst, + long * count) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0027, 0x7000, 0xA82A); + + +/* [r3] [c1] [b1] + * Returns the total number of profiles. + */ +/* + * ICGetIndProfile() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICGetIndProfile( + ICInstance inst, + long index, + ICProfileID * thisID) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0028, 0x7000, 0xA82A); + + +/* [r3] [c1] [b1] + * Returns the profile ID of the index'th profile. index must be positive. + * Returns icProfileNotFoundErr if index is greater than the total number + * of profiles. + */ +/* + * ICGetProfileName() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICGetProfileName( + ICInstance inst, + ICProfileID thisID, + Str255 name) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0029, 0x7000, 0xA82A); + + +/* [r3] [c1] [b3] + * Returns the name of a profile given its ID. The name may not uniquely + * identify the profile. [That's what the profile ID is for!] The name + * is assumed to be in the system script. + */ +/* + * ICSetProfileName() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICSetProfileName( + ICInstance inst, + ICProfileID thisID, + ConstStr255Param name) FIVEWORDINLINE(0x2F3C, 0x0008, 0x002A, 0x7000, 0xA82A); + + +/* [r3] [c1] [b3] + * This routine sets the name of the specified profile. Profile names + * need not be unique. The name should be in the system script. + */ +/* + * ICAddProfile() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICAddProfile( + ICInstance inst, + ICProfileID prototypeID, + ICProfileID * newID) FIVEWORDINLINE(0x2F3C, 0x0008, 0x002B, 0x7000, 0xA82A); + + +/* [r3] [c1] [b2] + * If prototypeID = kICNilProfileID, this routine + * creates a default profile, otherwise it creates a + * profile by cloning the prototype profile. The ID + * of the new profile is returned in newID. + * The new profile will be give a new, unique, name. + * This does not switch to the new profile. + */ +/* + * ICDeleteProfile() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: in CarbonLib 1.0.2 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +ICDeleteProfile( + ICInstance inst, + ICProfileID thisID) FIVEWORDINLINE(0x2F3C, 0x0004, 0x002C, 0x7000, 0xA82A); + + +/* [r3] [c1] [b2] + * This routine deletes the profile specified by + * thisID. Attempting to delete the current profile + * or the last profile will return error. + */ +/************************************************************************************************ + NOTHING BELOW THIS DIVIDER IS IN CARBON + ************************************************************************************************/ +/* ***** Interrupt Safe Routines ***** */ +#if CALL_NOT_IN_CARBON +/* + * ICRequiresInterruptSafe() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICRequiresInterruptSafe(ICInstance inst) FIVEWORDINLINE(0x2F3C, 0x0000, 0x002D, 0x7000, 0xA82A); + + +/* [r3] [c2] [b3] + * You must call this routine before calling GetMapEntryInterruptSafe + * to give IC chance to cache the mappings data in memory. The only + * way to clear this state is to close the instance. You can not reconfigure + * the instance after calling this routine. + */ +/* + * ICGetMappingInterruptSafe() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICGetMappingInterruptSafe( + ICInstance inst, + Ptr * mappingPref, + long * mappingPrefSize) FIVEWORDINLINE(0x2F3C, 0x0008, 0x002E, 0x7000, 0xA82A); + + +/* [r3] [c2] [b3] + * Returns the "Mapping" preference in an interrupt safe fashion. + * The preference returned pointer is valid until the next + * non-interrupt safe call to IC. Typically this API is used + * by software that needs to map extensions to type and creator + * at interrupt time, eg foreign file systems. + */ +/* + * ICGetSeedInterruptSafe() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICGetSeedInterruptSafe( + ICInstance inst, + long * seed) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0030, 0x7000, 0xA82A); + + +/* [r3] [c2] [b3] + * An interrupt safe version of ICGetSeed. + */ +/* ***** Starting Up and Shutting Down ***** */ +/* + * ICCStart() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCStart( + ComponentInstance * inst, + OSType creator); + + +/* See comment for ICCStart. */ +/* + * ICCStop() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCStop(ComponentInstance inst); + + +/* See comment for ICCStop. */ +/* + * ICCGetVersion() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCGetVersion( + ComponentInstance inst, + long whichVersion, + UInt32 * version) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0032, 0x7000, 0xA82A); + + +/* See comment for ICCGetVersion. */ +/* ***** Specifying a Configuration ***** */ +/* + * ICCFindConfigFile() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCFindConfigFile( + ComponentInstance inst, + short count, + ICDirSpecArrayPtr folders) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0002, 0x7000, 0xA82A); + + +/* See comment for ICCFindConfigFile. */ +/* + * ICCFindUserConfigFile() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCFindUserConfigFile( + ComponentInstance inst, + ICDirSpec * where) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000E, 0x7000, 0xA82A); + + +/* See comment for ICCFindUserConfigFile. */ +/* + * ICCGeneralFindConfigFile() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCGeneralFindConfigFile( + ComponentInstance inst, + Boolean searchPrefs, + Boolean canCreate, + short count, + ICDirSpecArrayPtr folders) FIVEWORDINLINE(0x2F3C, 0x000A, 0x001E, 0x7000, 0xA82A); + + +/* See comment for ICCGeneralFindConfigFile. */ +/* + * ICCChooseConfig() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCChooseConfig(ComponentInstance inst) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0021, 0x7000, 0xA82A); + + +/* See comment for ICCChooseConfig. */ +/* + * ICCChooseNewConfig() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCChooseNewConfig(ComponentInstance inst) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0022, 0x7000, 0xA82A); + + +/* See comment for ICCChooseNewConfig. */ +/* + * ICCGetConfigName() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCGetConfigName( + ComponentInstance inst, + Boolean longname, + Str255 name) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0023, 0x7000, 0xA82A); + + +/* See comment for ICCGetConfigName. */ +/* + * ICCGetConfigReference() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCGetConfigReference( + ComponentInstance inst, + ICConfigRefHandle ref) FIVEWORDINLINE(0x2F3C, 0x0004, 0x001F, 0x7000, 0xA82A); + + +/* See comment for ICCGetConfigReference. */ +/* + * ICCSetConfigReference() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCSetConfigReference( + ComponentInstance inst, + ICConfigRefHandle ref, + long flags) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0020, 0x7000, 0xA82A); + + +/* See comment for ICCSetConfigReference. */ +/* ***** Private Routines ***** + * + * If you are calling these routines, you are most probably doing something + * wrong. Please read the documentation for more details. + */ +/* + * ICCSpecifyConfigFile() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCSpecifyConfigFile( + ComponentInstance inst, + FSSpec * config) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0003, 0x7000, 0xA82A); + + +/* See comment for ICCSpecifyConfigFile. */ +/* + * ICCRefreshCaches() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCRefreshCaches(ComponentInstance inst) FIVEWORDINLINE(0x2F3C, 0x0000, 0x002F, 0x7000, 0xA82A); + + +/* See comment for ICCRefreshCaches. */ +/* ***** Getting Information ***** */ +/* + * ICCGetSeed() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCGetSeed( + ComponentInstance inst, + long * seed) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0004, 0x7000, 0xA82A); + + +/* See comment for ICCGetSeed. */ +/* + * ICCGetPerm() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCGetPerm( + ComponentInstance inst, + ICPerm * perm) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000D, 0x7000, 0xA82A); + + +/* See comment for ICCGetPerm. */ +/* + * ICCDefaultFileName() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCDefaultFileName( + ComponentInstance inst, + Str63 name) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000B, 0x7000, 0xA82A); + + +/* See comment for ICCDefaultFileName. */ +/* + * ICCGetComponentInstance() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCGetComponentInstance( + ComponentInstance inst, + ComponentInstance * componentInst); + + +/* See comment for ICCGetComponentInstance. */ +/* ***** Reading and Writing Preferences ***** */ +/* + * ICCBegin() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCBegin( + ComponentInstance inst, + ICPerm perm) FIVEWORDINLINE(0x2F3C, 0x0002, 0x0005, 0x7000, 0xA82A); + + +/* See comment for ICCBegin. */ +/* + * ICCGetPref() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCGetPref( + ComponentInstance inst, + ConstStr255Param key, + ICAttr * attr, + Ptr buf, + long * size) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0006, 0x7000, 0xA82A); + + +/* See comment for ICCGetPref. */ +/* + * ICCSetPref() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCSetPref( + ComponentInstance inst, + ConstStr255Param key, + ICAttr attr, + Ptr buf, + long size) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0007, 0x7000, 0xA82A); + + +/* See comment for ICCSetPref. */ +/* + * ICCFindPrefHandle() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCFindPrefHandle( + ComponentInstance inst, + ConstStr255Param key, + ICAttr * attr, + Handle prefh) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0024, 0x7000, 0xA82A); + + +/* See comment for ICCFindPrefHandle. */ +/* + * ICCGetPrefHandle() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCGetPrefHandle( + ComponentInstance inst, + ConstStr255Param key, + ICAttr * attr, + Handle * prefh) FIVEWORDINLINE(0x2F3C, 0x000C, 0x001A, 0x7000, 0xA82A); + + +/* See comment for ICCGetPrefHandle. */ +/* + * ICCSetPrefHandle() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCSetPrefHandle( + ComponentInstance inst, + ConstStr255Param key, + ICAttr attr, + Handle prefh) FIVEWORDINLINE(0x2F3C, 0x000C, 0x001B, 0x7000, 0xA82A); + + +/* See comment for ICCSetPrefHandle. */ +/* + * ICCCountPref() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCCountPref( + ComponentInstance inst, + long * count) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0008, 0x7000, 0xA82A); + + +/* See comment for ICCCountPref. */ +/* + * ICCGetIndPref() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCGetIndPref( + ComponentInstance inst, + long index, + Str255 key) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0009, 0x7000, 0xA82A); + + +/* See comment for ICCGetIndPref. */ +/* + * ICCDeletePref() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCDeletePref( + ComponentInstance inst, + ConstStr255Param key) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000C, 0x7000, 0xA82A); + + +/* See comment for ICCDeletePref. */ +/* + * ICCEnd() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCEnd(ComponentInstance inst) FIVEWORDINLINE(0x2F3C, 0x0000, 0x000A, 0x7000, 0xA82A); + + +/* See comment for ICCEnd. */ +/* + * ICCGetDefaultPref() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCGetDefaultPref( + ComponentInstance inst, + ConstStr255Param key, + Handle prefH) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0031, 0x7000, 0xA82A); + + +/* See comment for ICCGetDefaultPref. */ +/* ***** User Interface Stuff ***** */ +/* + * ICCEditPreferences() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCEditPreferences( + ComponentInstance inst, + ConstStr255Param key) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000F, 0x7000, 0xA82A); + + +/* See comment for ICCEditPreferences. */ +/* ***** URL Handling ***** */ +/* + * ICCLaunchURL() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCLaunchURL( + ComponentInstance inst, + ConstStr255Param hint, + Ptr data, + long len, + long * selStart, + long * selEnd) FIVEWORDINLINE(0x2F3C, 0x0014, 0x0011, 0x7000, 0xA82A); + + +/* See comment for ICCLaunchURL. */ +/* + * ICCParseURL() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCParseURL( + ComponentInstance inst, + ConstStr255Param hint, + Ptr data, + long len, + long * selStart, + long * selEnd, + Handle url) FIVEWORDINLINE(0x2F3C, 0x0018, 0x0010, 0x7000, 0xA82A); + + +/* See comment for ICCParseURL. */ +/* + * ICCCreateGURLEvent() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCCreateGURLEvent( + ComponentInstance inst, + OSType helperCreator, + Handle urlH, + AppleEvent * theEvent) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0033, 0x7000, 0xA82A); + + +/* See comment for ICCCreateGURLEvent. */ +/* + * ICCSendGURLEvent() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCSendGURLEvent( + ComponentInstance inst, + AppleEvent * theEvent) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0034, 0x7000, 0xA82A); + + +/* See comment for ICCSendGURLEvent. */ +/* ***** Mappings Routines ***** + * + * Routines for interrogating mappings database. + * + * ----- High Level Routines ----- + */ +/* + * ICCMapFilename() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCMapFilename( + ComponentInstance inst, + ConstStr255Param filename, + ICMapEntry * entry) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0018, 0x7000, 0xA82A); + + +/* See comment for ICCMapFilename. */ +/* + * ICCMapTypeCreator() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCMapTypeCreator( + ComponentInstance inst, + OSType fType, + OSType fCreator, + ConstStr255Param filename, + ICMapEntry * entry) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0019, 0x7000, 0xA82A); + + +/* See comment for ICCMapTypeCreator. */ +/* ----- Mid Level Routines ----- */ +/* + * ICCMapEntriesFilename() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCMapEntriesFilename( + ComponentInstance inst, + Handle entries, + ConstStr255Param filename, + ICMapEntry * entry) FIVEWORDINLINE(0x2F3C, 0x000C, 0x001C, 0x7000, 0xA82A); + + +/* See comment for ICCMapEntriesFilename. */ +/* + * ICCMapEntriesTypeCreator() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCMapEntriesTypeCreator( + ComponentInstance inst, + Handle entries, + OSType fType, + OSType fCreator, + ConstStr255Param filename, + ICMapEntry * entry) FIVEWORDINLINE(0x2F3C, 0x0014, 0x001D, 0x7000, 0xA82A); + + +/* See comment for ICCMapEntriesTypeCreator. */ +/* ----- Low Level Routines ----- */ +/* + * ICCCountMapEntries() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCCountMapEntries( + ComponentInstance inst, + Handle entries, + long * count) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0012, 0x7000, 0xA82A); + + +/* See comment for ICCCountMapEntries. */ +/* + * ICCGetIndMapEntry() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCGetIndMapEntry( + ComponentInstance inst, + Handle entries, + long index, + long * pos, + ICMapEntry * entry) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0013, 0x7000, 0xA82A); + + +/* See comment for ICCGetIndMapEntry. */ +/* + * ICCGetMapEntry() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCGetMapEntry( + ComponentInstance inst, + Handle entries, + long pos, + ICMapEntry * entry) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0014, 0x7000, 0xA82A); + + +/* See comment for ICCGetMapEntry. */ +/* + * ICCSetMapEntry() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCSetMapEntry( + ComponentInstance inst, + Handle entries, + long pos, + ICMapEntry * entry) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0015, 0x7000, 0xA82A); + + +/* See comment for ICCSetMapEntry. */ +/* + * ICCDeleteMapEntry() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCDeleteMapEntry( + ComponentInstance inst, + Handle entries, + long pos) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0016, 0x7000, 0xA82A); + + +/* See comment for ICCDeleteMapEntry. */ +/* + * ICCAddMapEntry() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCAddMapEntry( + ComponentInstance inst, + Handle entries, + ICMapEntry * entry) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0017, 0x7000, 0xA82A); + + +/* See comment for ICCAddMapEntry. */ +/* ***** Profile Management Routines ***** */ +/* + * ICCGetCurrentProfile() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCGetCurrentProfile( + ComponentInstance inst, + ICProfileID * currentID) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0025, 0x7000, 0xA82A); + + +/* See comment for ICCGetCurrentProfile. */ +/* + * ICCSetCurrentProfile() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCSetCurrentProfile( + ComponentInstance inst, + ICProfileID newID) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0026, 0x7000, 0xA82A); + + +/* See comment for ICCSetCurrentProfile. */ +/* + * ICCCountProfiles() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCCountProfiles( + ComponentInstance inst, + long * count) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0027, 0x7000, 0xA82A); + + +/* See comment for ICCCountProfiles. */ +/* + * ICCGetIndProfile() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCGetIndProfile( + ComponentInstance inst, + long index, + ICProfileID * thisID) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0028, 0x7000, 0xA82A); + + +/* See comment for ICCGetIndProfile. */ +/* + * ICCGetProfileName() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCGetProfileName( + ComponentInstance inst, + ICProfileID thisID, + Str255 name) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0029, 0x7000, 0xA82A); + + +/* See comment for ICCGetProfileName. */ +/* + * ICCSetProfileName() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCSetProfileName( + ComponentInstance inst, + ICProfileID thisID, + ConstStr255Param name) FIVEWORDINLINE(0x2F3C, 0x0008, 0x002A, 0x7000, 0xA82A); + + +/* See comment for ICCSetProfileName. */ +/* + * ICCAddProfile() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCAddProfile( + ComponentInstance inst, + ICProfileID prototypeID, + ICProfileID * newID) FIVEWORDINLINE(0x2F3C, 0x0008, 0x002B, 0x7000, 0xA82A); + + +/* See comment for ICCAddProfile. */ +/* + * ICCDeleteProfile() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCDeleteProfile( + ComponentInstance inst, + ICProfileID thisID) FIVEWORDINLINE(0x2F3C, 0x0004, 0x002C, 0x7000, 0xA82A); + + +/* See comment for ICCDeleteProfile. */ +/* ***** Interrupt Safe Routines ***** */ +/* + * ICCRequiresInterruptSafe() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCRequiresInterruptSafe(ComponentInstance inst) FIVEWORDINLINE(0x2F3C, 0x0000, 0x002D, 0x7000, 0xA82A); + + +/* See comment for ICCRequiresInterruptSafe. */ +/* + * ICCGetMappingInterruptSafe() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCGetMappingInterruptSafe( + ComponentInstance inst, + Ptr * mappingPref, + long * mappingPrefSize) FIVEWORDINLINE(0x2F3C, 0x0008, 0x002E, 0x7000, 0xA82A); + + +/* See comment for ICCGetMappingInterruptSafe. */ +/* + * ICCGetSeedInterruptSafe() + * + * Availability: + * Non-Carbon CFM: in InternetConfig 2.5 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSStatus ) +ICCGetSeedInterruptSafe( + ComponentInstance inst, + long * seed) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0030, 0x7000, 0xA82A); + + +/* See comment for ICCGetSeedInterruptSafe. */ +#endif /* CALL_NOT_IN_CARBON */ + +#if CALL_NOT_IN_CARBON + +/************************************************************************************************ + component selectors + ************************************************************************************************/ + +enum { + kICCStart = 0, + kICCStop = 1, + kICCGetVersion = 50, + kICCFindConfigFile = 2, + kICCFindUserConfigFile = 14, + kICCGeneralFindConfigFile = 30, + kICCChooseConfig = 33, + kICCChooseNewConfig = 34, + kICCGetConfigName = 35, + kICCGetConfigReference = 31, + kICCSetConfigReference = 32, + kICCSpecifyConfigFile = 3, + kICCRefreshCaches = 47, + kICCGetSeed = 4, + kICCGetPerm = 13, + kICCDefaultFileName = 11, + kICCBegin = 5, + kICCGetPref = 6, + kICCSetPref = 7, + kICCFindPrefHandle = 36, + kICCGetPrefHandle = 26, + kICCSetPrefHandle = 27, + kICCCountPref = 8, + kICCGetIndPref = 9, + kICCDeletePref = 12, + kICCEnd = 10, + kICCGetDefaultPref = 49, + kICCEditPreferences = 15, + kICCLaunchURL = 17, + kICCParseURL = 16, + kICCCreateGURLEvent = 51, + kICCSendGURLEvent = 52, + kICCMapFilename = 24, + kICCMapTypeCreator = 25, + kICCMapEntriesFilename = 28, + kICCMapEntriesTypeCreator = 29, + kICCCountMapEntries = 18, + kICCGetIndMapEntry = 19, + kICCGetMapEntry = 20, + kICCSetMapEntry = 21, + kICCDeleteMapEntry = 22, + kICCAddMapEntry = 23, + kICCGetCurrentProfile = 37, + kICCSetCurrentProfile = 38, + kICCCountProfiles = 39, + kICCGetIndProfile = 40, + kICCGetProfileName = 41, + kICCSetProfileName = 42, + kICCAddProfile = 43, + kICCDeleteProfile = 44, + kICCRequiresInterruptSafe = 45, + kICCGetMappingInterruptSafe = 46, + kICCGetSeedInterruptSafe = 48, + kICCFirstSelector = kICCStart, + kICCLastSelector = 52 +}; + +/************************************************************************************************ + component selector proc infos + ************************************************************************************************/ + +enum { + kICCStartProcInfo = 1008, + kICCStopProcInfo = 240, + kICCGetVersionProcInfo = 4080, + kICCFindConfigFileProcInfo = 3824, + kICCFindUserConfigFileProcInfo = 1008, + kICCGeneralFindConfigFileProcInfo = 58864L, + kICCChooseConfigProcInfo = 240, + kICCChooseNewConfigProcInfo = 240, + kICCGetConfigNameProcInfo = 3568, + kICCGetConfigReferenceProcInfo = 1008, + kICCSetConfigReferenceProcInfo = 4080, + kICCSpecifyConfigFileProcInfo = 1008, + kICCRefreshCachesProcInfo = 240, + kICCGetSeedProcInfo = 1008, + kICCGetPermProcInfo = 1008, + kICCDefaultFileNameProcInfo = 1008, + kICCGetComponentInstanceProcInfo = 1008, + kICCBeginProcInfo = 496, + kICCGetPrefProcInfo = 65520L, + kICCSetPrefProcInfo = 65520L, + kICCFindPrefHandleProcInfo = 16368, + kICCGetPrefHandleProcInfo = 16368, + kICCSetPrefHandleProcInfo = 16368, + kICCCountPrefProcInfo = 1008, + kICCGetIndPrefProcInfo = 4080, + kICCDeletePrefProcInfo = 1008, + kICCEndProcInfo = 240, + kICCGetDefaultPrefProcInfo = 4080, + kICCEditPreferencesProcInfo = 1008, + kICCLaunchURLProcInfo = 262128L, + kICCParseURLProcInfo = 1048560L, + kICCCreateGURLEventProcInfo = 16368, + kICCSendGURLEventProcInfo = 1008, + kICCMapFilenameProcInfo = 4080, + kICCMapTypeCreatorProcInfo = 65520L, + kICCMapEntriesFilenameProcInfo = 16368, + kICCMapEntriesTypeCreatorProcInfo = 262128L, + kICCCountMapEntriesProcInfo = 4080, + kICCGetIndMapEntryProcInfo = 65520L, + kICCGetMapEntryProcInfo = 16368, + kICCSetMapEntryProcInfo = 16368, + kICCDeleteMapEntryProcInfo = 4080, + kICCAddMapEntryProcInfo = 4080, + kICCGetCurrentProfileProcInfo = 1008, + kICCSetCurrentProfileProcInfo = 1008, + kICCCountProfilesProcInfo = 1008, + kICCGetIndProfileProcInfo = 4080, + kICCGetProfileNameProcInfo = 4080, + kICCSetProfileNameProcInfo = 4080, + kICCAddProfileProcInfo = 4080, + kICCDeleteProfileProcInfo = 1008, + kICCRequiresInterruptSafeProcInfo = 240, + kICCGetMappingInterruptSafeProcInfo = 4080, + kICCGetSeedInterruptSafeProcInfo = 1008 +}; + +/************************************************************************************************ + component identifiers + ************************************************************************************************/ + +enum { + kICComponentType = FOUR_CHAR_CODE('PREF'), + kICComponentSubType = FOUR_CHAR_CODE('ICAp'), + kICComponentManufacturer = FOUR_CHAR_CODE('JPQE') +}; + +/************************************************************************************************ + The following type is now obsolete. + If you're using it, please switch to ComponentInstance or ICInstance. + ************************************************************************************************/ + +#if OLDROUTINENAMES +typedef ComponentInstance internetConfigurationComponent; + +#endif /* OLDROUTINENAMES */ + +#endif /* CALL_NOT_IN_CARBON */ + +/************************************************************************************************ + old names for stuff declared above + ************************************************************************************************/ + +#if OLDROUTINENAMES + +typedef long ICError; + +enum { + ICattr_no_change = (unsigned long)(kICAttrNoChange), + ICattr_locked_bit = kICAttrLockedBit, + ICattr_locked_mask = kICAttrLockedMask, + ICattr_volatile_bit = kICAttrVolatileBit, + ICattr_volatile_mask = kICAttrVolatileMask, + icNoUserInteraction_bit = kICNoUserInteractionBit, + icNoUserInteraction_mask = kICNoUserInteractionMask, + ICfiletype = kICFileType, + ICcreator = kICCreator +}; + +/* + ICFileInfo was originally used to define the format of a key. + That key was removed, but we forgot to remove ICFileInfo. + I hope to remove it entirely, but for the moment it's available + if you define OLDROUTINENAMES. +*/ +struct ICFileInfo { + OSType fType; + OSType fCreator; + Str63 name; +}; +typedef struct ICFileInfo ICFileInfo; +typedef ICFileInfo * ICFileInfoPtr; +typedef ICFileInfoPtr * ICFileInfoHandle; + +enum { + ICfile_spec_header_size = kICFileSpecHeaderSize +}; + +enum { + ICmap_binary_bit = kICMapBinaryBit, + ICmap_binary_mask = kICMapBinaryMask, + ICmap_resource_fork_bit = kICMapResourceForkBit, + ICmap_resource_fork_mask = kICMapResourceForkMask, + ICmap_data_fork_bit = kICMapDataForkBit, + ICmap_data_fork_mask = kICMapDataForkMask, + ICmap_post_bit = kICMapPostBit, + ICmap_post_mask = kICMapPostMask, + ICmap_not_incoming_bit = kICMapNotIncomingBit, + ICmap_not_incoming_mask = kICMapNotIncomingMask, + ICmap_not_outgoing_bit = kICMapNotOutgoingBit, + ICmap_not_outgoing_mask = kICMapNotOutgoingMask, + ICmap_fixed_length = kICMapFixedLength +}; + +enum { + ICservices_tcp_bit = kICServicesTCPBit, + ICservices_tcp_mask = kICServicesTCPMask, + ICservices_udp_bit = kICServicesUDPBit, + ICservices_udp_mask = kICServicesUDPMask +}; + +/* This definitions are a) very long, and b) don't conform + to Mac OS standards for naming constants, so I've put + them in only if you're using OLDROUTINENAMES. Please switch + to the new names given above. +*/ +enum { + internetConfigurationComponentType = FOUR_CHAR_CODE('PREF'), /* the component type */ + internetConfigurationComponentSubType = FOUR_CHAR_CODE('ICAp'), /* the component subtype */ + internetConfigurationComponentInterfaceVersion0 = 0x00000000, /* IC >= 1.0 */ + internetConfigurationComponentInterfaceVersion1 = 0x00010000, /* IC >= 1.1 */ + internetConfigurationComponentInterfaceVersion2 = 0x00020000, /* IC >= 1.2 */ + internetConfigurationComponentInterfaceVersion3 = 0x00030000, /* IC >= 2.0 */ + /* current version number is version 3 */ + internetConfigurationComponentInterfaceVersion = internetConfigurationComponentInterfaceVersion3 +}; + +#endif /* OLDROUTINENAMES */ + + +#if PRAGMA_STRUCT_ALIGN + #pragma options align=reset +#elif PRAGMA_STRUCT_PACKPUSH + #pragma pack(pop) +#elif PRAGMA_STRUCT_PACK + #pragma pack() +#endif + +#ifdef PRAGMA_IMPORT_OFF +#pragma import off +#elif PRAGMA_IMPORT +#pragma import reset +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* __INTERNETCONFIG__ */ + |