InternetConfig.h

Go to the documentation of this file.
00001 /*
00002      File:       InternetConfig.h
00003  
00004      Contains:   Internet Config interfaces
00005  
00006      Version:    Technology: based on IC 2.5 alpha
00007                  Release:    Universal Interfaces 3.4
00008  
00009      Copyright:  © 1999-2001 by Apple Computer, Inc., all rights reserved.
00010  
00011      Bugs?:      For bug reports, consult the following page on
00012                  the World Wide Web:
00013  
00014                      http://developer.apple.com/bugreporter/
00015  
00016 */
00017 /*
00018     IMPORTANT NOTES ABOUT THE C HEADERS
00019     -----------------------------------
00020 
00021     o   When you see the parameter 'y *x', you should be aware that
00022         you *cannot pass in nil*.  In future this restriction may be eased,
00023         especially for the attr parameter to ICGetPref.  Parameters where nil
00024         is legal are declared using the explicit pointer type, ie 'yPtr x'.
00025 
00026     o   Strings are *Pascal* strings.  This means that they must be word aligned.
00027         MPW and Think C do this automatically.  The last time I checked, Metrowerks
00028         C does not.  If it still doesn't, then IMHO it's a bug in their compiler
00029         and you should report it to them.  [IC 1.4 and later no longer require
00030         word aligned strings.  You can ignore this warning if you require IC 1.4
00031         or greater.]
00032 */
00033 /***********************************************************************************************/
00034 
00035 #ifndef __INTERNETCONFIG__
00036 #define __INTERNETCONFIG__
00037 
00038 #ifndef __ALIASES__
00039 #include <Aliases.h>
00040 #endif
00041 
00042 #ifndef __COMPONENTS__
00043 #include <Components.h>
00044 #endif
00045 
00046 #ifndef __AEDATAMODEL__
00047 #include <AEDataModel.h>
00048 #endif
00049 
00050 
00051 
00052 
00053 #if PRAGMA_ONCE
00054 #pragma once
00055 #endif
00056 
00057 #ifdef __cplusplus
00058 extern "C" {
00059 #endif
00060 
00061 #if PRAGMA_IMPORT
00062 #pragma import on
00063 #endif
00064 
00065 #if PRAGMA_STRUCT_ALIGN
00066     #pragma options align=mac68k
00067 #elif PRAGMA_STRUCT_PACKPUSH
00068     #pragma pack(push, 2)
00069 #elif PRAGMA_STRUCT_PACK
00070     #pragma pack(2)
00071 #endif
00072 
00073 /************************************************************************************************
00074   IC error codes
00075  ************************************************************************************************/
00076 
00077 enum {
00078   icPrefNotFoundErr             = -666, /* preference not found (duh!)  */
00079   icPermErr                     = -667, /* cannot set preference  */
00080   icPrefDataErr                 = -668, /* problem with preference data  */
00081   icInternalErr                 = -669, /* hmm, this is not good  */
00082   icTruncatedErr                = -670, /* more data was present than was returned  */
00083   icNoMoreWritersErr            = -671, /* you cannot begin a write session because someone else is already doing it  */
00084   icNothingToOverrideErr        = -672, /* no component for the override component to capture  */
00085   icNoURLErr                    = -673, /* no URL found  */
00086   icConfigNotFoundErr           = -674, /* no configuration was found  */
00087   icConfigInappropriateErr      = -675, /* incorrect manufacturer code  */
00088   icProfileNotFoundErr          = -676, /* profile not found  */
00089   icTooManyProfilesErr          = -677  /* too many profiles in database  */
00090 };
00091 
00092 /************************************************************************************************
00093   IC versions (not necessarily, but historically, from a component)
00094  ************************************************************************************************/
00095 
00096 enum {
00097   kICComponentInterfaceVersion0 = 0x00000000, /* IC >= 1.0  */
00098   kICComponentInterfaceVersion1 = 0x00010000, /* IC >= 1.1  */
00099   kICComponentInterfaceVersion2 = 0x00020000, /* IC >= 1.2  */
00100   kICComponentInterfaceVersion3 = 0x00030000, /* IC >= 2.0  */
00101   kICComponentInterfaceVersion4 = 0x00040000, /* IC >= 2.5  */
00102   kICComponentInterfaceVersion  = kICComponentInterfaceVersion4 /* current version number is 4  */
00103 };
00104 
00105 /************************************************************************************************
00106   opaque type for preference reference
00107  ************************************************************************************************/
00108 
00109 typedef struct OpaqueICInstance*        ICInstance;
00110 
00111 /************************************************************************************************
00112   a record that specifies a folder, an array of such records, and a pointer to such an array
00113  ************************************************************************************************/
00114 struct ICDirSpec {
00115   short               vRefNum;
00116   long                dirID;
00117 };
00118 typedef struct ICDirSpec                ICDirSpec;
00119 typedef ICDirSpec                       ICDirSpecArray[4];
00120 typedef ICDirSpecArray *                ICDirSpecArrayPtr;
00121 
00122 /************************************************************************************************
00123   preference attributes type, bit number constants, and mask constants
00124  ************************************************************************************************/
00125 typedef UInt32                          ICAttr;
00126 
00127 enum {
00128   kICAttrLockedBit              = 0,
00129   kICAttrVolatileBit            = 1
00130 };
00131 
00132 enum {
00133   kICAttrNoChange               = (unsigned long)0xFFFFFFFF, /* pass this to ICSetPref to tell it not to change the attributes  */
00134   kICAttrLockedMask             = 0x00000001,
00135   kICAttrVolatileMask           = 0x00000002
00136 };
00137 
00138 /************************************************************************************************
00139   permissions for use with ICBegin
00140  ************************************************************************************************/
00141 
00142 typedef UInt8                           ICPerm;
00143 
00144 enum {
00145   icNoPerm                      = 0,
00146   icReadOnlyPerm                = 1,
00147   icReadWritePerm               = 2
00148 };
00149 
00150 /************************************************************************************************
00151   a reference to an instance's current configuration
00152  ************************************************************************************************/
00153 
00154 #if CALL_NOT_IN_CARBON
00155 struct ICConfigRef {
00156   OSType              manufacturer;
00157                                               /* other private data follows  */
00158 };
00159 typedef struct ICConfigRef              ICConfigRef;
00160 typedef ICConfigRef *                   ICConfigRefPtr;
00161 typedef ICConfigRefPtr *                ICConfigRefHandle;
00162 
00163 #endif  /* CALL_NOT_IN_CARBON */
00164 
00165 /************************************************************************************************
00166   profile IDs
00167  ************************************************************************************************/
00168 typedef long                            ICProfileID;
00169 typedef ICProfileID *                   ICProfileIDPtr;
00170 
00171 enum {
00172   kICNilProfileID               = 0
00173 };
00174 
00175 /************************************************************************************************
00176   other constants
00177  ************************************************************************************************/
00178 
00179 enum {
00180   kICNoUserInteractionBit       = 0
00181 };
00182 
00183 enum {
00184   kICNoUserInteractionMask      = 0x00000001
00185 };
00186 
00187 enum {
00188   kICFileType                   = FOUR_CHAR_CODE('ICAp'),
00189   kICCreator                    = FOUR_CHAR_CODE('ICAp')
00190 };
00191 
00192 /************************************************************************************************
00193   Apple event constants
00194  ************************************************************************************************/
00195 
00196 enum {
00197   kInternetEventClass           = FOUR_CHAR_CODE('GURL'),
00198   kAEGetURL                     = FOUR_CHAR_CODE('GURL'),
00199   kAEFetchURL                   = FOUR_CHAR_CODE('FURL'),
00200   keyAEAttaching                = FOUR_CHAR_CODE('Atch')
00201 };
00202 
00203 /* AERegistry.i defines a compatible keyAEDestination */
00204 
00205 enum {
00206   kICEditPreferenceEventClass   = FOUR_CHAR_CODE('ICAp'),
00207   kICEditPreferenceEvent        = FOUR_CHAR_CODE('ICAp'),
00208   keyICEditPreferenceDestination = FOUR_CHAR_CODE('dest')
00209 };
00210 
00211 /************************************************************************************************
00212   constants for use with ICGetVersion
00213  ************************************************************************************************/
00214 
00215 enum {
00216   kICComponentVersion           = 0,    /* Return a component version, comparable to kICComponentInterfaceVersion  */
00217   kICNumVersion                 = 1     /* Return a NumVersion structure  */
00218 };
00219 
00220 /************************************************************************************************
00221   types and constants for use with kICDocumentFont, et. al.
00222  ************************************************************************************************/
00223 struct ICFontRecord {
00224   short               size;
00225   Style               face;
00226   char                pad;
00227   Str255              font;
00228 };
00229 typedef struct ICFontRecord             ICFontRecord;
00230 typedef ICFontRecord *                  ICFontRecordPtr;
00231 typedef ICFontRecordPtr *               ICFontRecordHandle;
00232 
00233 /************************************************************************************************
00234   types and constants for use with kICCharacterSet, et. al.
00235  ************************************************************************************************/
00236 struct ICCharTable {
00237   unsigned char       netToMac[256];
00238   unsigned char       macToNet[256];
00239 };
00240 typedef struct ICCharTable              ICCharTable;
00241 typedef ICCharTable *                   ICCharTablePtr;
00242 typedef ICCharTablePtr *                ICCharTableHandle;
00243 
00244 /************************************************************************************************
00245   types and constants for use with kICHelper, et. al.
00246  ************************************************************************************************/
00247 struct ICAppSpec {
00248   OSType              fCreator;
00249   Str63               name;
00250 };
00251 typedef struct ICAppSpec                ICAppSpec;
00252 typedef ICAppSpec *                     ICAppSpecPtr;
00253 typedef ICAppSpecPtr *                  ICAppSpecHandle;
00254 struct ICAppSpecList {
00255   short               numberOfItems;
00256   ICAppSpec           appSpecs[1];
00257 };
00258 typedef struct ICAppSpecList            ICAppSpecList;
00259 typedef ICAppSpecList *                 ICAppSpecListPtr;
00260 typedef ICAppSpecListPtr *              ICAppSpecListHandle;
00261 
00262 /************************************************************************************************
00263   types and constants for use with kICDownloadFolder, et. al.
00264  ************************************************************************************************/
00265 
00266 #if !OLDROUTINENAMES
00267 struct ICFileSpec {
00268   Str31               volName;
00269   long                volCreationDate;
00270   FSSpec              fss;
00271   AliasRecord         alias;
00272                                               /* plus extra data, aliasSize 0 means no alias manager present when*/
00273                                               /* ICFileSpecification was created*/
00274 };
00275 typedef struct ICFileSpec               ICFileSpec;
00276 typedef ICFileSpec *                    ICFileSpecPtr;
00277 typedef ICFileSpecPtr *                 ICFileSpecHandle;
00278 #else
00279 struct ICFileSpec {
00280   Str31               vol_name;
00281   long                vol_creation_date;
00282   FSSpec              fss;
00283   AliasRecord         alias;
00284 };
00285 typedef struct ICFileSpec               ICFileSpec;
00286 typedef ICFileSpec *                    ICFileSpecPtr;
00287 typedef ICFileSpecPtr *                 ICFileSpecHandle;
00288 #endif  /* !OLDROUTINENAMES */
00289 
00290 enum {
00291   kICFileSpecHeaderSize         = sizeof(ICFileSpec) - sizeof(AliasRecord)
00292 };
00293 
00294 /************************************************************************************************
00295   types and constants for use with ICMapFilename, et. al.
00296  ************************************************************************************************/
00297 typedef long                            ICMapEntryFlags;
00298 typedef short                           ICFixedLength;
00299 
00300 #if !OLDROUTINENAMES
00301 struct ICMapEntry {
00302   short               totalLength;
00303   ICFixedLength       fixedLength;
00304   short               version;
00305   OSType              fileType;
00306   OSType              fileCreator;
00307   OSType              postCreator;
00308   ICMapEntryFlags     flags;
00309                                               /* variable part starts here*/
00310   Str255              extension;
00311   Str255              creatorAppName;
00312   Str255              postAppName;
00313   Str255              MIMEType;
00314   Str255              entryName;
00315 };
00316 typedef struct ICMapEntry               ICMapEntry;
00317 typedef ICMapEntry *                    ICMapEntryPtr;
00318 typedef ICMapEntryPtr *                 ICMapEntryHandle;
00319 
00320 #else
00321 struct ICMapEntry {
00322   short               total_length;
00323   ICFixedLength       fixed_length;
00324   short               version;
00325   OSType              file_type;
00326   OSType              file_creator;
00327   OSType              post_creator;
00328   ICMapEntryFlags     flags;
00329   Str255              extension;
00330   Str255              creator_app_name;
00331   Str255              post_app_name;
00332   Str255              MIME_type;
00333   Str255              entry_name;
00334 };
00335 typedef struct ICMapEntry               ICMapEntry;
00336 typedef ICMapEntry *                    ICMapEntryPtr;
00337 typedef ICMapEntryPtr *                 ICMapEntryHandle;
00338 #endif  /* !OLDROUTINENAMES */
00339 
00340 enum {
00341   kICMapFixedLength             = 22    /* number in fixedLength field*/
00342 };
00343 
00344 enum {
00345   kICMapBinaryBit               = 0,    /* file should be transfered in binary as opposed to text mode*/
00346   kICMapResourceForkBit         = 1,    /* the resource fork of the file is significant*/
00347   kICMapDataForkBit             = 2,    /* the data fork of the file is significant*/
00348   kICMapPostBit                 = 3,    /* post process using post fields*/
00349   kICMapNotIncomingBit          = 4,    /* ignore this mapping for incoming files*/
00350   kICMapNotOutgoingBit          = 5     /* ignore this mapping for outgoing files*/
00351 };
00352 
00353 enum {
00354   kICMapBinaryMask              = 0x00000001, /* file should be transfered in binary as opposed to text mode*/
00355   kICMapResourceForkMask        = 0x00000002, /* the resource fork of the file is significant*/
00356   kICMapDataForkMask            = 0x00000004, /* the data fork of the file is significant*/
00357   kICMapPostMask                = 0x00000008, /* post process using post fields*/
00358   kICMapNotIncomingMask         = 0x00000010, /* ignore this mapping for incoming files*/
00359   kICMapNotOutgoingMask         = 0x00000020 /* ignore this mapping for outgoing files*/
00360 };
00361 
00362 /************************************************************************************************
00363   types and constants for use with kICServices, et. al.
00364  ************************************************************************************************/
00365 typedef short                           ICServiceEntryFlags;
00366 struct ICServiceEntry {
00367   Str255              name;
00368   short               port;
00369   ICServiceEntryFlags  flags;
00370 };
00371 typedef struct ICServiceEntry           ICServiceEntry;
00372 typedef ICServiceEntry *                ICServiceEntryPtr;
00373 typedef ICServiceEntryPtr *             ICServiceEntryHandle;
00374 
00375 enum {
00376   kICServicesTCPBit             = 0,
00377   kICServicesUDPBit             = 1     /* both bits can be set, which means the service is both TCP and UDP, eg daytime*/
00378 };
00379 
00380 enum {
00381   kICServicesTCPMask            = 0x00000001,
00382   kICServicesUDPMask            = 0x00000002 /* both bits can be set, which means the service is both TCP and UDP, eg daytime*/
00383 };
00384 
00385 struct ICServices {
00386   short               count;
00387   ICServiceEntry      services[1];
00388 };
00389 typedef struct ICServices               ICServices;
00390 typedef ICServices *                    ICServicesPtr;
00391 typedef ICServicesPtr *                 ICServicesHandle;
00392 
00393 /************************************************************************************************
00394   default file name, for internal use, overridden by a component resource
00395  ************************************************************************************************/
00396 
00397 #if CALL_NOT_IN_CARBON
00398 #define kICDefaultFileName              "\pInternet Preferences"
00399 #endif  /* CALL_NOT_IN_CARBON */
00400 
00401 /************************************************************************************************
00402   keys
00403  ************************************************************************************************/
00404 /* 
00405     key reserved for use by Internet Config 
00406 */
00407 #define kICReservedKey                  "\pkICReservedKey"
00408 /*
00409     STR# -- formatted, list of Archie servers  
00410 */
00411 #define kICArchieAll                    "\pArchieAll"
00412 /*
00413     PString -- formatted, preferred Archie server   
00414 */
00415 #define kICArchiePreferred              "\pArchiePreferred"
00416 /*
00417     ICCharTable -- Mac-to-Net and Net-to-Mac character translation   
00418 */
00419 #define kICCharacterSet                 "\pCharacterSet"
00420 /*
00421     ICFontRecord -- font used for proportional text   
00422 */
00423 #define kICDocumentFont                 "\pDocumentFont"
00424 /*
00425     ICFileSpec -- where to put newly downloaded files   
00426 */
00427 #define kICDownloadFolder               "\pDownloadFolder"
00428 /*
00429     PString -- user@host.domain, email address of user, ie return address   
00430 */
00431 #define kICEmail                        "\pEmail"
00432 /*
00433     PString -- host.domain, default FTP server   
00434 */
00435 #define kICFTPHost                      "\pFTPHost"
00436 /*
00437     PString -- second level FTP proxy authorisation   
00438 */
00439 #define kICFTPProxyAccount              "\pFTPProxyAccount"
00440 /*
00441     PString -- host.domain   
00442 */
00443 #define kICFTPProxyHost                 "\pFTPProxyHost"
00444 /*
00445     PString -- scrambled, password for FTPProxyUser   
00446 */
00447 #define kICFTPProxyPassword             "\pFTPProxyPassword"
00448 /*
00449     PString -- first level FTP proxy authorisation   
00450 */
00451 #define kICFTPProxyUser                 "\pFTPProxyUser"
00452 /*
00453     PString -- host.domain, default finger server   
00454 */
00455 #define kICFingerHost                   "\pFingerHost"
00456 /*
00457     PString -- host.domain, default Gopher server   
00458 */
00459 #define kICGopherHost                   "\pGopherHost"
00460 /*
00461     PString -- host.domain, see note in Prog Docs   
00462 */
00463 #define kICGopherProxy                  "\pGopherProxy"
00464 /*
00465     PString -- host.domain   
00466 */
00467 #define kICHTTPProxyHost                "\pHTTPProxyHost"
00468 /*
00469     ICAppSpec -- helpers for URL schemes   
00470 */
00471 #define kICHelper                       "\pHelper„"
00472 /*
00473     PString -- description for URL scheme   
00474 */
00475 #define kICHelperDesc                   "\pHelperDesc„"
00476 /*
00477     ICAppSpecList -- list of common helpers for URL schemes   
00478 */
00479 #define kICHelperList                   "\pHelperList„"
00480 /*
00481     PString -- host.domain, Internet Relay Chat server   
00482 */
00483 #define kICIRCHost                      "\pIRCHost"
00484 /*
00485     STR# -- formatted, list of Info-Mac servers   
00486 */
00487 #define kICInfoMacAll                   "\pInfoMacAll"
00488 /*
00489     PString -- formatted, preferred Info-Mac server   
00490 */
00491 #define kICInfoMacPreferred             "\pInfoMacPreferred"
00492 /*
00493     PString -- string LDAP thing   
00494 */
00495 #define kICLDAPSearchbase               "\pLDAPSearchbase"
00496 /*
00497     PString -- host.domain   
00498 */
00499 #define kICLDAPServer                   "\pLDAPServer"
00500 /*
00501     ICFontRecord -- font used for lists of items (eg news article lists)   
00502 */
00503 #define kICListFont                     "\pListFont"
00504 /*
00505     PString -- host for MacSearch queries   
00506 */
00507 #define kICMacSearchHost                "\pMacSearchHost"
00508 /*
00509     PString -- user@host.domain, account from which to fetch mail   
00510 */
00511 #define kICMailAccount                  "\pMailAccount"
00512 /*
00513     TEXT -- extra headers for mail messages   
00514 */
00515 #define kICMailHeaders                  "\pMailHeaders"
00516 /*
00517     PString -- scrambled, password for MailAccount   
00518 */
00519 #define kICMailPassword                 "\pMailPassword"
00520 /*
00521     ICMapEntries -- file type mapping, see documentation   
00522 */
00523 #define kICMapping                      "\pMapping"
00524 /*
00525     PString -- host.domain, NNTP server   
00526 */
00527 #define kICNNTPHost                     "\pNNTPHost"
00528 /*
00529     PString -- host.domain, Network Time Protocol (NTP)   
00530 */
00531 #define kICNTPHost                      "\pNTPHost"
00532 /*
00533     Boolean   
00534 */
00535 #define kICNewMailDialog                "\pNewMailDialog"
00536 /*
00537     Boolean -- how to announce new mail   
00538 */
00539 #define kICNewMailFlashIcon             "\pNewMailFlashIcon"
00540 /*
00541     Boolean   
00542 */
00543 #define kICNewMailPlaySound             "\pNewMailPlaySound"
00544 /*
00545     PString   
00546 */
00547 #define kICNewMailSoundName             "\pNewMailSoundName"
00548 /*
00549     PString -- scrambled, password for NewsAuthUsername   
00550 */
00551 #define kICNewsAuthPassword             "\pNewsAuthPassword"
00552 /*
00553     PString -- user name for authorised news servers   
00554 */
00555 #define kICNewsAuthUsername             "\pNewsAuthUsername"
00556 /*
00557     TEXT -- extra headers for news messages   
00558 */
00559 #define kICNewsHeaders                  "\pNewsHeaders"
00560 /*
00561     STR# -- list of domains not to be proxied   
00562 */
00563 #define kICNoProxyDomains               "\pNoProxyDomains"
00564 /*
00565     PString -- for X-Organization string   
00566 */
00567 #define kICOrganization                 "\pOrganization"
00568 /*
00569     PString -- host.domain, default Ph server   
00570 */
00571 #define kICPhHost                       "\pPhHost"
00572 /*
00573     TEXT -- default response for finger servers   
00574 */
00575 #define kICPlan                         "\pPlan"
00576 /*
00577     ICFontRecord -- font used to print ScreenFont   
00578 */
00579 #define kICPrinterFont                  "\pPrinterFont"
00580 /*
00581     PString -- used to quote responses in news and mail   
00582 */
00583 #define kICQuotingString                "\pQuotingString"
00584 /*
00585     PString -- real name of user   
00586 */
00587 #define kICRealName                     "\pRealName"
00588 /*
00589     PString -- RTSP Proxy Host
00590 */
00591 #define kICRTSPProxyHost                "\pRTSPProxyHost"
00592 /*
00593     PString -- host.domain, SMTP server   
00594 */
00595 #define kICSMTPHost                     "\pSMTPHost"
00596 /*
00597     ICFontRecord -- font used for monospaced text (eg news articles)   
00598 */
00599 #define kICScreenFont                   "\pScreenFont"
00600 /*
00601     ICServices -- TCP and IP port-to-name mapping   
00602 */
00603 #define kICServices                     "\pServices"
00604 /*
00605     TEXT -- append to news and mail messages   
00606 */
00607 #define kICSignature                    "\pSignature"
00608 /*
00609     TEXT -- preferred mailing address   
00610 */
00611 #define kICSnailMailAddress             "\pSnailMailAddress"
00612 /*
00613     PString -- host.domain, remember that host.domain format allows ":port" and " port"  
00614 */
00615 #define kICSocksHost                    "\pSocksHost"
00616 /*
00617     PString -- host.domain, default Telnet address   
00618 */
00619 #define kICTelnetHost                   "\pTelnetHost"
00620 /*
00621     STR# -- formatted, list of UMich servers   
00622 */
00623 #define kICUMichAll                     "\pUMichAll"
00624 /*
00625     PString -- formatted, preferred UMich server   
00626 */
00627 #define kICUMichPreferred               "\pUMichPreferred"
00628 /*
00629     Boolean   
00630 */
00631 #define kICUseFTPProxy                  "\pUseFTPProxy"
00632 /*
00633     Boolean   
00634 */
00635 #define kICUseGopherProxy               "\pUseGopherProxy"
00636 /*
00637     Boolean   
00638 */
00639 #define kICUseHTTPProxy                 "\pUseHTTPProxy"
00640 /*
00641     Boolean -- use PASV command for FTP transfers   
00642 */
00643 #define kICUsePassiveFTP                "\pUsePassiveFTP"
00644 /*
00645     Boolean
00646 */
00647 #define kICUseRTSPProxy                 "\pUseRTSPProxy"
00648 /*
00649     Boolean   
00650 */
00651 #define kICUseSocks                     "\pUseSocks"
00652 /*
00653     PString -- no idea   
00654 */
00655 #define kICWAISGateway                  "\pWAISGateway"
00656 /*
00657     PString -- URL, users default WWW page   
00658 */
00659 #define kICWWWHomePage                  "\pWWWHomePage"
00660 /*
00661     RGBColor -- background colour for web pages   
00662 */
00663 #define kICWebBackgroundColour          "\pWebBackgroundColour"
00664 /*
00665     RGBColor -- colour for read links   
00666 */
00667 #define kICWebReadColor                 "\p646F6777„WebReadColor"
00668 /*
00669     PString -- URL, users default search page   
00670 */
00671 #define kICWebSearchPagePrefs           "\pWebSearchPagePrefs"
00672 /*
00673     RGBColor -- colour for normal text   
00674 */
00675 #define kICWebTextColor                 "\pWebTextColor"
00676 /*
00677     Boolean -- whether to underline links   
00678 */
00679 #define kICWebUnderlineLinks            "\p646F6777„WebUnderlineLinks"
00680 /*
00681     RGBColor -- colour for unread links   
00682 */
00683 #define kICWebUnreadColor               "\p646F6777„WebUnreadColor"
00684 /*
00685     PString -- host.domain, default whois server   
00686 */
00687 #define kICWhoisHost                    "\pWhoisHost"
00688 
00689 /************************************************************************************************
00690 
00691       FUNCTIONS
00692 
00693       What do the annotations after each API mean?
00694       --------------------------------------------
00695 
00696       [r1] Requires IC 1.1 or higher.
00697       [r2] Requires IC 1.2 or higher.
00698       [r3] Requires IC 2.0 or higher.
00699       [r4] Requires IC 2.5 or higher.
00700       
00701       IMPORTANT:
00702 
00703       In IC 2.5, instances automatically use the default configuration.
00704       You no longer need to configure an instance explicitly, except
00705       if your code might run with an older version of IC.  So the following
00706       notes only apply to IC 2.0 and earlier.
00707 
00708       [c1]  You must have specified a configuration before calling this routine.
00709       
00710       [c2]  You must have specified the default configuration before calling this
00711             routine.
00712       
00713       [c3]  You do not need to specify a configuration before calling this routine.
00714       
00715       [b1]  You must be inside a Begin/End pair when calling this routine.
00716       
00717       [b2]  You must be inside a Begin/End read/write pair when calling this routine.
00718       
00719       [b3]  You do not need to be inside a Begin/End pair when calling this routine.
00720       
00721       [b4]  If you are getting or setting multiple preferences, you should make this
00722             call inside a Begin/End pair. If you do not make this call inside a Begin/End
00723             pair, the call will automatically do it for you.
00724       
00725       [b5]  It is illegal to call this routine inside a Begin/End pair.
00726 
00727  ************************************************************************************************/
00728 
00729 /* ***** Starting Up and Shutting Down *****  */
00730 /*
00731  *  ICStart()
00732  *  
00733  *  Availability:
00734  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
00735  *    CarbonLib:        in CarbonLib 1.0.2 and later
00736  *    Mac OS X:         in version 10.0 or later
00737  */
00738 EXTERN_API( OSStatus )
00739 ICStart(
00740   ICInstance *  inst,
00741   OSType        signature);
00742 
00743 
00744 /* Call this at application initialisation. Set signature to a value
00745    * which has been regsitered with DTS to allow for future expansion
00746    * of the IC system. Returns inst as a connection to the IC system.
00747    */
00748 /*
00749  *  ICStop()
00750  *  
00751  *  Availability:
00752  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
00753  *    CarbonLib:        in CarbonLib 1.0.2 and later
00754  *    Mac OS X:         in version 10.0 or later
00755  */
00756 EXTERN_API( OSStatus )
00757 ICStop(ICInstance inst);
00758 
00759 
00760 /* [b5] 
00761    * Call this at application initialisation, after which inst
00762    * is no longer valid connection to IC.
00763    */
00764 /*
00765  *  ICGetVersion()
00766  *  
00767  *  Availability:
00768  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
00769  *    CarbonLib:        in CarbonLib 1.0.2 and later
00770  *    Mac OS X:         in version 10.0 or later
00771  */
00772 EXTERN_API( OSStatus )
00773 ICGetVersion(
00774   ICInstance   inst,
00775   long         whichVersion,
00776   UInt32 *     version)                                       FIVEWORDINLINE(0x2F3C, 0x0008, 0x0032, 0x7000, 0xA82A);
00777 
00778 
00779 /* [r4] [c3] [b3] 
00780    * Returns the version of Internet Config.  Pass kICComponentVersion
00781    * to get the version as previously returned by GetComponenVerson.
00782    * Pass kICNumVersion to get a NumVersion structure.
00783    */
00784 /* ***** Specifying a Configuration *****  */
00785 #if CALL_NOT_IN_CARBON
00786 /*
00787  *  ICFindConfigFile()
00788  *  
00789  *  Availability:
00790  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
00791  *    CarbonLib:        not available
00792  *    Mac OS X:         not available
00793  */
00794 EXTERN_API( OSStatus )
00795 ICFindConfigFile(
00796   ICInstance          inst,
00797   short               count,
00798   ICDirSpecArrayPtr   folders)                                FIVEWORDINLINE(0x2F3C, 0x0006, 0x0002, 0x7000, 0xA82A);
00799 
00800 
00801 /* [b5] 
00802    * Call to configure this connection to IC.
00803    * Set count as the number of valid elements in folders.
00804    * Set folders to a pointer to the folders to search.
00805    * Setting count to 0 and folders to nil is OK.
00806    * Searches the specified folders and then the Preferences folder
00807    * in a unspecified manner.
00808    */
00809 /*
00810  *  ICFindUserConfigFile()
00811  *  
00812  *  Availability:
00813  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
00814  *    CarbonLib:        not available
00815  *    Mac OS X:         not available
00816  */
00817 EXTERN_API( OSStatus )
00818 ICFindUserConfigFile(
00819   ICInstance   inst,
00820   ICDirSpec *  where)                                         FIVEWORDINLINE(0x2F3C, 0x0004, 0x000E, 0x7000, 0xA82A);
00821 
00822 
00823 /* [r1] [b5] 
00824    * Similar to ICFindConfigFile except that it only searches the folder
00825    * specified in where.  If the input parameters are valid the routine
00826    * will always successful configure the instance, creating an
00827    * empty configuration if necessary
00828    * For use with double-clickable preference files.
00829    */
00830 /*
00831  *  ICGeneralFindConfigFile()
00832  *  
00833  *  Availability:
00834  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
00835  *    CarbonLib:        not available
00836  *    Mac OS X:         not available
00837  */
00838 EXTERN_API( OSStatus )
00839 ICGeneralFindConfigFile(
00840   ICInstance          inst,
00841   Boolean             searchPrefs,
00842   Boolean             canCreate,
00843   short               count,
00844   ICDirSpecArrayPtr   folders)                                FIVEWORDINLINE(0x2F3C, 0x000A, 0x001E, 0x7000, 0xA82A);
00845 
00846 
00847 /* [r2] [b5] 
00848    * Call to configure this connection to IC.
00849    * This routine acts as a more general replacement for
00850    * ICFindConfigFile and ICFindUserConfigFile.
00851    * Set search_prefs to true if you want it to search the preferences folder.
00852    * Set can_create to true if you want it to be able to create a new config.
00853    * Set count as the number of valid elements in folders.
00854    * Set folders to a pointer to the folders to search.
00855    * Setting count to 0 and folders to nil is OK.
00856    * Searches the specified folders and then optionally the Preferences folder
00857    * in a unspecified manner.
00858    */
00859 /*
00860  *  ICChooseConfig()
00861  *  
00862  *  Availability:
00863  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
00864  *    CarbonLib:        not available
00865  *    Mac OS X:         not available
00866  */
00867 EXTERN_API( OSStatus )
00868 ICChooseConfig(ICInstance inst)                               FIVEWORDINLINE(0x2F3C, 0x0000, 0x0021, 0x7000, 0xA82A);
00869 
00870 
00871 /* [r2] [b5] 
00872    * Requests the user to choose a configuration, typically using some
00873    * sort of modal dialog. If the user cancels the dialog the configuration
00874    * state will be unaffected.
00875    */
00876 /*
00877  *  ICChooseNewConfig()
00878  *  
00879  *  Availability:
00880  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
00881  *    CarbonLib:        not available
00882  *    Mac OS X:         not available
00883  */
00884 EXTERN_API( OSStatus )
00885 ICChooseNewConfig(ICInstance inst)                            FIVEWORDINLINE(0x2F3C, 0x0000, 0x0022, 0x7000, 0xA82A);
00886 
00887 
00888 /* [r2] [b5] 
00889    * Requests the user to create a new configuration, typically using some
00890    * sort of modal dialog. If the user cancels the dialog the configuration
00891    * state will be unaffected.
00892    */
00893 #endif  /* CALL_NOT_IN_CARBON */
00894 
00895 /*
00896  *  ICGetConfigName()
00897  *  
00898  *  Availability:
00899  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
00900  *    CarbonLib:        in CarbonLib 1.0.2 and later
00901  *    Mac OS X:         in version 10.0 or later
00902  */
00903 EXTERN_API( OSStatus )
00904 ICGetConfigName(
00905   ICInstance   inst,
00906   Boolean      longname,
00907   Str255       name)                                          FIVEWORDINLINE(0x2F3C, 0x0006, 0x0023, 0x7000, 0xA82A);
00908 
00909 
00910 /* [r2] [c1] [b3] 
00911    * Returns a string that describes the current configuration at a user
00912    * level. Set longname to true if you want a long name, up to 255
00913    * characters, or false if you want a short name, typically about 32
00914    * characters.
00915    * The returned string is for user display only. If you rely on the
00916    * exact format of it, you will conflict with any future IC
00917    * implementation that doesn't use explicit preference files.
00918    */
00919 #if CALL_NOT_IN_CARBON
00920 /*
00921  *  ICGetConfigReference()
00922  *  
00923  *  Availability:
00924  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
00925  *    CarbonLib:        not available
00926  *    Mac OS X:         not available
00927  */
00928 EXTERN_API( OSStatus )
00929 ICGetConfigReference(
00930   ICInstance          inst,
00931   ICConfigRefHandle   ref)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x001F, 0x7000, 0xA82A);
00932 
00933 
00934 /* [r2] [c1] [b3] 
00935    * Returns a self-contained reference to the instance's current
00936    * configuration.
00937    * ref must be a valid non-nil handle and it will be resized to fit the
00938    * resulting data.
00939    */
00940 /*
00941  *  ICSetConfigReference()
00942  *  
00943  *  Availability:
00944  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
00945  *    CarbonLib:        not available
00946  *    Mac OS X:         not available
00947  */
00948 EXTERN_API( OSStatus )
00949 ICSetConfigReference(
00950   ICInstance          inst,
00951   ICConfigRefHandle   ref,
00952   long                flags)                                  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0020, 0x7000, 0xA82A);
00953 
00954 
00955 /* [r2] [b5] 
00956    * Reconfigures the instance using a configuration reference that was
00957    * got using ICGetConfigReference reference. Set the
00958    * icNoUserInteraction_bit in flags if you require that this routine
00959    * not present a modal dialog. Other flag bits are reserved and should
00960    * be set to zero.
00961    * ref must not be nil.
00962    */
00963 /* ***** Private Routines *****
00964  * 
00965  * If you are calling these routines, you are most probably doing something
00966  * wrong.  Please read the documentation for more details.
00967   */
00968 /*
00969  *  ICSpecifyConfigFile()
00970  *  
00971  *  Availability:
00972  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
00973  *    CarbonLib:        not available
00974  *    Mac OS X:         not available
00975  */
00976 EXTERN_API( OSStatus )
00977 ICSpecifyConfigFile(
00978   ICInstance   inst,
00979   FSSpec *     config)                                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0003, 0x7000, 0xA82A);
00980 
00981 
00982 /* [b5] 
00983    * For use only by the IC application.
00984    * If you call this routine yourself, you will conflict with any
00985    * future IC implementation that doesn't use explicit preference files.
00986    */
00987 /*
00988  *  ICRefreshCaches()
00989  *  
00990  *  Availability:
00991  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
00992  *    CarbonLib:        not available
00993  *    Mac OS X:         not available
00994  */
00995 EXTERN_API( OSStatus )
00996 ICRefreshCaches(ICInstance inst)                              FIVEWORDINLINE(0x2F3C, 0x0000, 0x002F, 0x7000, 0xA82A);
00997 
00998 
00999 /* [r3] [c1] [b3] 
01000    * For use only by the IC application.
01001    * If you call this routine yourself, you will conflict with any
01002    * future IC implementation that doesn't use explicit preference files.
01003    */
01004 /* ***** Getting Information *****  */
01005 #endif  /* CALL_NOT_IN_CARBON */
01006 
01007 /*
01008  *  ICGetSeed()
01009  *  
01010  *  Availability:
01011  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01012  *    CarbonLib:        in CarbonLib 1.0.2 and later
01013  *    Mac OS X:         in version 10.0 or later
01014  */
01015 EXTERN_API( OSStatus )
01016 ICGetSeed(
01017   ICInstance   inst,
01018   long *       seed)                                          FIVEWORDINLINE(0x2F3C, 0x0004, 0x0004, 0x7000, 0xA82A);
01019 
01020 
01021 /* [c3] [b3] 
01022    * Returns the current seed for the IC prefs database.
01023    * This seed changes each time a non-volatile preference is changed.
01024    * You can poll this to determine if any cached preferences change.
01025    */
01026 /*
01027  *  ICGetPerm()
01028  *  
01029  *  Availability:
01030  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01031  *    CarbonLib:        in CarbonLib 1.0.2 and later
01032  *    Mac OS X:         in version 10.0 or later
01033  */
01034 EXTERN_API( OSStatus )
01035 ICGetPerm(
01036   ICInstance   inst,
01037   ICPerm *     perm)                                          FIVEWORDINLINE(0x2F3C, 0x0004, 0x000D, 0x7000, 0xA82A);
01038 
01039 
01040 /* [c3] [b3] 
01041    * Returns the access permissions currently associated with this instance.
01042    * While applications normally know what permissions they have,
01043    * this routine is designed for use by override components.
01044    */
01045 #if CALL_NOT_IN_CARBON
01046 /*
01047  *  ICDefaultFileName()
01048  *  
01049  *  Availability:
01050  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01051  *    CarbonLib:        not available
01052  *    Mac OS X:         not available
01053  */
01054 EXTERN_API( OSStatus )
01055 ICDefaultFileName(
01056   ICInstance   inst,
01057   Str63        name)                                          FIVEWORDINLINE(0x2F3C, 0x0004, 0x000B, 0x7000, 0xA82A);
01058 
01059 
01060 /* [c3] [b3] 
01061    * Returns the default file name for IC preference files.
01062    * Applications should never need to call this routine.
01063    * If you rely on information returned by this routine yourself,
01064    * you may conflict with any future IC implementation that doesn't use
01065    * explicit preference files.
01066    * The component calls this routine to set up the default IC file name.
01067    * This allows this operation to be intercepted by a component that has
01068    * captured us. It currently gets it from the component resource file.
01069    * The glue version is hardwired to "Internet Preferences".
01070    */
01071 /*
01072  *  ICGetComponentInstance()
01073  *  
01074  *  Availability:
01075  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01076  *    CarbonLib:        not available
01077  *    Mac OS X:         not available
01078  */
01079 EXTERN_API( OSStatus )
01080 ICGetComponentInstance(
01081   ICInstance           inst,
01082   ComponentInstance *  componentInst);
01083 
01084 
01085 /* [c3] [b3] 
01086    * Returns noErr and the connection to the IC component,
01087    * if we're using the component.
01088    * Returns badComponenInstance and nil if we're operating with glue.
01089    */
01090 /* ***** Reading and Writing Preferences *****  */
01091 #endif  /* CALL_NOT_IN_CARBON */
01092 
01093 /*
01094  *  ICBegin()
01095  *  
01096  *  Availability:
01097  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01098  *    CarbonLib:        in CarbonLib 1.0.2 and later
01099  *    Mac OS X:         in version 10.0 or later
01100  */
01101 EXTERN_API( OSStatus )
01102 ICBegin(
01103   ICInstance   inst,
01104   ICPerm       perm)                                          FIVEWORDINLINE(0x2F3C, 0x0002, 0x0005, 0x7000, 0xA82A);
01105 
01106 
01107 /* [c1] [b5] 
01108    * Starting reading or writing multiple preferences.
01109    * A call to this must be balanced by a call to ICEnd.
01110    * Do not call WaitNextEvent between these calls.
01111    * The perm specifies whether you intend to read or read/write.
01112    * Only one writer is allowed per instance.
01113    * Note that this may open resource files that are not closed
01114    * until you call ICEnd.
01115    */
01116 /*
01117  *  ICGetPref()
01118  *  
01119  *  Availability:
01120  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01121  *    CarbonLib:        in CarbonLib 1.0.2 and later
01122  *    Mac OS X:         in version 10.0 or later
01123  */
01124 EXTERN_API( OSStatus )
01125 ICGetPref(
01126   ICInstance         inst,
01127   ConstStr255Param   key,
01128   ICAttr *           attr,
01129   void *             buf,
01130   long *             size)                                    FIVEWORDINLINE(0x2F3C, 0x0010, 0x0006, 0x7000, 0xA82A);
01131 
01132 
01133 /* [c1] [b4] 
01134    * Reads the preference specified by key from the IC database to the
01135    * buffer pointed to by buf and size.
01136    * key must not be the empty string.
01137    * If buf is nil then no data is returned.
01138    * size must be non-negative.
01139    * attr and size are always set on return. On errors (except icTruncatedErr)
01140    * attr is set to ICattr_no_change and size is set to 0.
01141    * size is the actual size of the data.
01142    * attr is set to the attributes associated with the preference.
01143    * If this routine returns icTruncatedErr then the other returned
01144    * values are valid except that only the first size bytes have been
01145    * return. size is adjusted to reflect the true size of the preference.
01146    * Returns icPrefNotFound if there is no preference for the key.
01147    */
01148 /*
01149  *  ICSetPref()
01150  *  
01151  *  Availability:
01152  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01153  *    CarbonLib:        in CarbonLib 1.0.2 and later
01154  *    Mac OS X:         in version 10.0 or later
01155  */
01156 EXTERN_API( OSStatus )
01157 ICSetPref(
01158   ICInstance         inst,
01159   ConstStr255Param   key,
01160   ICAttr             attr,
01161   const void *       buf,
01162   long               size)                                    FIVEWORDINLINE(0x2F3C, 0x0010, 0x0007, 0x7000, 0xA82A);
01163 
01164 
01165 /* [c1] [b4] 
01166    * Sets the preference specified by key from the IC database to the
01167    * value pointed to by buf and size.
01168    * key must not be the empty string.
01169    * size must be non-negative. 
01170    * If buf is nil then the preference value is not set and size is ignored.
01171    * If buf is not nil then the preference value is set to the size
01172    * bytes pointed to by buf.
01173    * If attr is ICattr_no_change then the preference attributes are not set.
01174    * Otherwise the preference attributes are set to attr.
01175    * Returns icPermErr if the previous ICBegin was passed icReadOnlyPerm.
01176    * Returns icPermErr if current attr is locked, new attr is locked and buf <> nil.
01177    */
01178 /*
01179  *  ICFindPrefHandle()
01180  *  
01181  *  Availability:
01182  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01183  *    CarbonLib:        in CarbonLib 1.0.2 and later
01184  *    Mac OS X:         in version 10.0 or later
01185  */
01186 EXTERN_API( OSStatus )
01187 ICFindPrefHandle(
01188   ICInstance         inst,
01189   ConstStr255Param   key,
01190   ICAttr *           attr,
01191   Handle             prefh)                                   FIVEWORDINLINE(0x2F3C, 0x000C, 0x0024, 0x7000, 0xA82A);
01192 
01193 
01194 /* [r2] [c1] [b4] 
01195    * This routine effectively replaces ICGetPrefHandle.
01196    * Reads the preference specified by key from the IC database into
01197    * a handle, prefh.
01198    * key must not be the empty string.
01199    * attr is set to the attributes associated with the preference.
01200    * You must set prefh to a non-nil handle before calling this routine.
01201    * If the preference does not exist, icPrefNotFoundErr is returned.
01202    */
01203 /*
01204  *  ICGetPrefHandle()
01205  *  
01206  *  Availability:
01207  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01208  *    CarbonLib:        in CarbonLib 1.0.2 and later
01209  *    Mac OS X:         in version 10.0 or later
01210  */
01211 EXTERN_API( OSStatus )
01212 ICGetPrefHandle(
01213   ICInstance         inst,
01214   ConstStr255Param   key,
01215   ICAttr *           attr,
01216   Handle *           prefh)                                   FIVEWORDINLINE(0x2F3C, 0x000C, 0x001A, 0x7000, 0xA82A);
01217 
01218 
01219 /* [r1] [c1] [b4] 
01220    * This routine is now obsolete. Use ICFindPrefHandle instead.
01221    * Reads the preference specified by key from the IC database into
01222    * a newly created handle, prefh.
01223    * key must not be the empty string.
01224    * attr is set to the attributes associated with the preference.
01225    * The incoming value of prefh is ignored.
01226    * A new handle is created in the current heap and returned in prefh.
01227    * If the routine returns an error, prefh is set to nil.
01228    * If the preference does not exist, no error is returned and prefh is set
01229    * to an empty handle.
01230    */
01231 /*
01232  *  ICSetPrefHandle()
01233  *  
01234  *  Availability:
01235  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01236  *    CarbonLib:        in CarbonLib 1.0.2 and later
01237  *    Mac OS X:         in version 10.0 or later
01238  */
01239 EXTERN_API( OSStatus )
01240 ICSetPrefHandle(
01241   ICInstance         inst,
01242   ConstStr255Param   key,
01243   ICAttr             attr,
01244   Handle             prefh)                                   FIVEWORDINLINE(0x2F3C, 0x000C, 0x001B, 0x7000, 0xA82A);
01245 
01246 
01247 /* [r1] [c1] [b4] 
01248    * Sets the preference specified by key from the IC database to the
01249    * value contained in prefh.
01250    * key must not be the empty string.
01251    * If prefh is nil then the preference value is not set.
01252    * If buf is not nil then the preference value is set to the data
01253    * contained in it.
01254    * If attr is ICattr_no_change then the preference attributes are not set.
01255    * Otherwise the preference attributes are set to attr.
01256    * Returns icPermErr if the previous ICBegin was passed icReadOnlyPerm.
01257    * Returns icPermErr if current attr is locked, new attr is locked and prefh <> nil.
01258    */
01259 /*
01260  *  ICCountPref()
01261  *  
01262  *  Availability:
01263  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01264  *    CarbonLib:        in CarbonLib 1.0.2 and later
01265  *    Mac OS X:         in version 10.0 or later
01266  */
01267 EXTERN_API( OSStatus )
01268 ICCountPref(
01269   ICInstance   inst,
01270   long *       count)                                         FIVEWORDINLINE(0x2F3C, 0x0004, 0x0008, 0x7000, 0xA82A);
01271 
01272 
01273 /* [c1] [b1] 
01274    * Counts the total number of preferences.
01275    * If the routine returns an error, count is set to 0.
01276    */
01277 /*
01278  *  ICGetIndPref()
01279  *  
01280  *  Availability:
01281  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01282  *    CarbonLib:        in CarbonLib 1.0.2 and later
01283  *    Mac OS X:         in version 10.0 or later
01284  */
01285 EXTERN_API( OSStatus )
01286 ICGetIndPref(
01287   ICInstance   inst,
01288   long         index,
01289   Str255       key)                                           FIVEWORDINLINE(0x2F3C, 0x0008, 0x0009, 0x7000, 0xA82A);
01290 
01291 
01292 /* [c1] [b1] 
01293    * Returns the key of the index'th preference.
01294    * index must be positive.
01295    * Returns icPrefNotFoundErr if index is greater than the total number of preferences.
01296    * If the routine returns an error, key is undefined.
01297    */
01298 /*
01299  *  ICDeletePref()
01300  *  
01301  *  Availability:
01302  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01303  *    CarbonLib:        in CarbonLib 1.0.2 and later
01304  *    Mac OS X:         in version 10.0 or later
01305  */
01306 EXTERN_API( OSStatus )
01307 ICDeletePref(
01308   ICInstance         inst,
01309   ConstStr255Param   key)                                     FIVEWORDINLINE(0x2F3C, 0x0004, 0x000C, 0x7000, 0xA82A);
01310 
01311 
01312 /* [c1] [b2] 
01313    * Deletes the preference specified by key.
01314    * key must not be the empty string.
01315    * Returns icPrefNotFound if the preference specified by key is not present.
01316    */
01317 /*
01318  *  ICEnd()
01319  *  
01320  *  Availability:
01321  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01322  *    CarbonLib:        in CarbonLib 1.0.2 and later
01323  *    Mac OS X:         in version 10.0 or later
01324  */
01325 EXTERN_API( OSStatus )
01326 ICEnd(ICInstance inst)                                        FIVEWORDINLINE(0x2F3C, 0x0000, 0x000A, 0x7000, 0xA82A);
01327 
01328 
01329 /* [c1] [b1] 
01330    * Terminates a preference session, as started by ICBegin.
01331    * You must have called ICBegin before calling this routine.
01332    */
01333 /*
01334  *  ICGetDefaultPref()
01335  *  
01336  *  Availability:
01337  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01338  *    CarbonLib:        in CarbonLib 1.0.2 and later
01339  *    Mac OS X:         in version 10.0 or later
01340  */
01341 EXTERN_API( OSStatus )
01342 ICGetDefaultPref(
01343   ICInstance         inst,
01344   ConstStr255Param   key,
01345   Handle             prefH)                                   FIVEWORDINLINE(0x2F3C, 0x0008, 0x0031, 0x7000, 0xA82A);
01346 
01347 
01348 /* [r4] [c3] [b5] 
01349    * Returns a default preference value for the specified key.  You
01350    * must pass in a valid prefH, which is resized to fit the data.
01351    */
01352 /* ***** User Interface Stuff *****  */
01353 /*
01354  *  ICEditPreferences()
01355  *  
01356  *  Availability:
01357  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01358  *    CarbonLib:        in CarbonLib 1.0.2 and later
01359  *    Mac OS X:         in version 10.0 or later
01360  */
01361 EXTERN_API( OSStatus )
01362 ICEditPreferences(
01363   ICInstance         inst,
01364   ConstStr255Param   key)                                     FIVEWORDINLINE(0x2F3C, 0x0004, 0x000F, 0x7000, 0xA82A);
01365 
01366 
01367 /* [r1] [c1] [b3] 
01368    * Instructs IC to display the user interface associated with editing
01369    * preferences and focusing on the preference specified by key.
01370    * If key is the empty string then no preference should be focused upon.
01371    * You must have specified a configuration before calling this routine.
01372    * You do not need to call ICBegin before calling this routine.
01373    * In the current implementation this launches the IC application
01374    * (or brings it to the front) and displays the window containing
01375    * the preference specified by key.
01376    * It may have a radically different implementation in future
01377    * IC systems.
01378    */
01379 /* ***** URL Handling *****  */
01380 /*
01381  *  ICLaunchURL()
01382  *  
01383  *  Availability:
01384  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01385  *    CarbonLib:        in CarbonLib 1.0.2 and later
01386  *    Mac OS X:         in version 10.0 or later
01387  */
01388 EXTERN_API( OSStatus )
01389 ICLaunchURL(
01390   ICInstance         inst,
01391   ConstStr255Param   hint,
01392   const void *       data,
01393   long               len,
01394   long *             selStart,
01395   long *             selEnd)                                  FIVEWORDINLINE(0x2F3C, 0x0014, 0x0011, 0x7000, 0xA82A);
01396 
01397 
01398 /* [r1] [c1] [b3] 
01399    * Parses a URL out of the specified text and feeds it off to the
01400    * appropriate helper.
01401    * hint indicates the default scheme for URLs of the form "name@address".
01402    * If hint is the empty string then URLs of that form are not allowed.
01403    * data points to the start of the text. It must not be nil.
01404    * len indicates the length of the text. It must be non-negative.
01405    * selStart and selEnd should be passed in as the current selection of
01406    * the text. This selection is given in the same manner as TextEdit,
01407    * ie if selStart = selEnd then there is no selection only an insertion
01408    * point. Also selStart ² selEnd and 0 ² selStart ² len and 0 ² selEnd ² len.
01409    * selStart and selEnd are returned as the bounds of the URL. If the
01410    * routine returns an error then these new boundaries may be
01411    * invalid but they will be close.
01412    * The URL is parsed out of the text and passed off to the appropriate
01413    * helper using the GURL AppleEvent.
01414    */
01415 /*
01416  *  ICParseURL()
01417  *  
01418  *  Availability:
01419  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01420  *    CarbonLib:        in CarbonLib 1.0.2 and later
01421  *    Mac OS X:         in version 10.0 or later
01422  */
01423 EXTERN_API( OSStatus )
01424 ICParseURL(
01425   ICInstance         inst,
01426   ConstStr255Param   hint,
01427   const void *       data,
01428   long               len,
01429   long *             selStart,
01430   long *             selEnd,
01431   Handle             url)                                     FIVEWORDINLINE(0x2F3C, 0x0018, 0x0010, 0x7000, 0xA82A);
01432 
01433 
01434 /* [r1] [c1] [b3] 
01435    * Parses a URL out of the specified text and returns it in a canonical form
01436    * in a handle.
01437    * hint indicates the default scheme for URLs of the form "name@address".
01438    * If hint is the empty string then URLs of that form are not allowed.
01439    * data points to the start of the text. It must not be nil.
01440    * len indicates the length of the text. It must be non-negative.
01441    * selStart and selEnd should be passed in as the current selection of
01442    * the text. This selection is given in the same manner as TextEdit,
01443    * ie if selStart = selEnd then there is no selection only an insertion
01444    * point. Also selStart ² selEnd and 0 ² selStart ² len and 0 ² selEnd ² len.
01445    * selStart and selEnd are returned as the bounds of the URL. If the
01446    * routine returns an error then these new boundaries may be
01447    * invalid but they will be close.
01448    * The incoming url handle must not be nil.  The resulting URL is normalised
01449    * and copied into the url handle, which is resized to fit.
01450    */
01451 /*
01452  *  ICCreateGURLEvent()
01453  *  
01454  *  Availability:
01455  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01456  *    CarbonLib:        in CarbonLib 1.0.2 and later
01457  *    Mac OS X:         in version 10.0 or later
01458  */
01459 EXTERN_API( OSStatus )
01460 ICCreateGURLEvent(
01461   ICInstance    inst,
01462   OSType        helperCreator,
01463   Handle        urlH,
01464   AppleEvent *  theEvent)                                     FIVEWORDINLINE(0x2F3C, 0x000C, 0x0033, 0x7000, 0xA82A);
01465 
01466 
01467 /* [r4] [c1] [b3] 
01468    * Creates a GURL Apple event, targetted at the application whose creator
01469    * code is helperCreator, with a direct object containing the URL text from urlH.
01470    */
01471 /*
01472  *  ICSendGURLEvent()
01473  *  
01474  *  Availability:
01475  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01476  *    CarbonLib:        in CarbonLib 1.0.2 and later
01477  *    Mac OS X:         in version 10.0 or later
01478  */
01479 EXTERN_API( OSStatus )
01480 ICSendGURLEvent(
01481   ICInstance    inst,
01482   AppleEvent *  theEvent)                                     FIVEWORDINLINE(0x2F3C, 0x0004, 0x0034, 0x7000, 0xA82A);
01483 
01484 
01485 /* [r4] [c1] [b3] 
01486    * Sends theEvent to the target application.
01487    */
01488 /* ***** Mappings Routines *****
01489  * 
01490  * Routines for interrogating mappings database.
01491  * 
01492  * ----- High Level Routines -----
01493   */
01494 /*
01495  *  ICMapFilename()
01496  *  
01497  *  Availability:
01498  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01499  *    CarbonLib:        in CarbonLib 1.0.2 and later
01500  *    Mac OS X:         in version 10.0 or later
01501  */
01502 EXTERN_API( OSStatus )
01503 ICMapFilename(
01504   ICInstance         inst,
01505   ConstStr255Param   filename,
01506   ICMapEntry *       entry)                                   FIVEWORDINLINE(0x2F3C, 0x0008, 0x0018, 0x7000, 0xA82A);
01507 
01508 
01509 /* [r1] [c1] [b4] 
01510    * Takes the name of an incoming file and returns the most appropriate
01511    * mappings database entry, based on its extension.
01512    * filename must not be the empty string.
01513    * Returns icPrefNotFoundErr if no suitable entry is found.
01514    */
01515 /*
01516  *  ICMapTypeCreator()
01517  *  
01518  *  Availability:
01519  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01520  *    CarbonLib:        in CarbonLib 1.0.2 and later
01521  *    Mac OS X:         in version 10.0 or later
01522  */
01523 EXTERN_API( OSStatus )
01524 ICMapTypeCreator(
01525   ICInstance         inst,
01526   OSType             fType,
01527   OSType             fCreator,
01528   ConstStr255Param   filename,
01529   ICMapEntry *       entry)                                   FIVEWORDINLINE(0x2F3C, 0x0010, 0x0019, 0x7000, 0xA82A);
01530 
01531 
01532 /* [r1] [c1] [b4] 
01533    * Takes the type and creator (and optionally the name) of an outgoing
01534    * file and returns the most appropriate mappings database entry.
01535    * The filename may be either the name of the outgoing file or
01536    * the empty string.
01537    * Returns icPrefNotFoundErr if no suitable entry found.
01538    */
01539 /* ----- Mid Level Routines -----  */
01540 /*
01541  *  ICMapEntriesFilename()
01542  *  
01543  *  Availability:
01544  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01545  *    CarbonLib:        in CarbonLib 1.0.2 and later
01546  *    Mac OS X:         in version 10.0 or later
01547  */
01548 EXTERN_API( OSStatus )
01549 ICMapEntriesFilename(
01550   ICInstance         inst,
01551   Handle             entries,
01552   ConstStr255Param   filename,
01553   ICMapEntry *       entry)                                   FIVEWORDINLINE(0x2F3C, 0x000C, 0x001C, 0x7000, 0xA82A);
01554 
01555 
01556 /* [r1] [c1] [b3] 
01557    * Takes the name of an incoming file and returns the most appropriate
01558    * mappings database entry, based on its extension.
01559    * entries must be a handle to a valid IC mappings database preference.
01560    * filename must not be the empty string.
01561    * Returns icPrefNotFoundErr if no suitable entry is found.
01562    */
01563 /*
01564  *  ICMapEntriesTypeCreator()
01565  *  
01566  *  Availability:
01567  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01568  *    CarbonLib:        in CarbonLib 1.0.2 and later
01569  *    Mac OS X:         in version 10.0 or later
01570  */
01571 EXTERN_API( OSStatus )
01572 ICMapEntriesTypeCreator(
01573   ICInstance         inst,
01574   Handle             entries,
01575   OSType             fType,
01576   OSType             fCreator,
01577   ConstStr255Param   filename,
01578   ICMapEntry *       entry)                                   FIVEWORDINLINE(0x2F3C, 0x0014, 0x001D, 0x7000, 0xA82A);
01579 
01580 
01581 /* [r1] [c1] [b3] 
01582    * Takes the type and creator (and optionally the name) of an outgoing
01583    * file and returns the most appropriate mappings database entry.
01584    * entries must be a handle to a valid IC mappings database preference.
01585    * The filename may be either the name of the outgoing file or
01586    * the empty string.
01587    * Returns icPrefNotFoundErr if no suitable entry found.
01588    */
01589 /* ----- Low Level Routines -----  */
01590 /*
01591  *  ICCountMapEntries()
01592  *  
01593  *  Availability:
01594  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01595  *    CarbonLib:        in CarbonLib 1.0.2 and later
01596  *    Mac OS X:         in version 10.0 or later
01597  */
01598 EXTERN_API( OSStatus )
01599 ICCountMapEntries(
01600   ICInstance   inst,
01601   Handle       entries,
01602   long *       count)                                         FIVEWORDINLINE(0x2F3C, 0x0008, 0x0012, 0x7000, 0xA82A);
01603 
01604 
01605 /* [r1] [c1] [b3] 
01606    * Counts the number of entries in the mappings database.
01607    * entries must be a handle to a valid IC mappings database preference.
01608    * count is set to the number of entries.
01609    */
01610 /*
01611  *  ICGetIndMapEntry()
01612  *  
01613  *  Availability:
01614  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01615  *    CarbonLib:        in CarbonLib 1.0.2 and later
01616  *    Mac OS X:         in version 10.0 or later
01617  */
01618 EXTERN_API( OSStatus )
01619 ICGetIndMapEntry(
01620   ICInstance    inst,
01621   Handle        entries,
01622   long          index,
01623   long *        pos,
01624   ICMapEntry *  entry)                                        FIVEWORDINLINE(0x2F3C, 0x0010, 0x0013, 0x7000, 0xA82A);
01625 
01626 
01627 /* [r1] [c1] [b3] 
01628    * Gets the index'th entry in the mappings database.
01629    * entries must be a handle to a valid IC mappings database preference.
01630    * index must be in the range from 1 to the number of entries in the database.
01631    * The value of pos is ignored on input. pos is set to the position of
01632    * the index'th entry in the database and is suitable for passing back
01633    * into ICSetMapEntry.
01634    * Does not return any user data associated with the entry.
01635    */
01636 /*
01637  *  ICGetMapEntry()
01638  *  
01639  *  Availability:
01640  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01641  *    CarbonLib:        in CarbonLib 1.0.2 and later
01642  *    Mac OS X:         in version 10.0 or later
01643  */
01644 EXTERN_API( OSStatus )
01645 ICGetMapEntry(
01646   ICInstance    inst,
01647   Handle        entries,
01648   long          pos,
01649   ICMapEntry *  entry)                                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x0014, 0x7000, 0xA82A);
01650 
01651 
01652 /* [r1] [c1] [b3] 
01653    * Returns the entry located at position pos in the mappings database.
01654    * entries must be a handle to a valid IC mappings database preference.
01655    * pos should be 0 to get the first entry. To get the subsequent entries, add
01656    * entry.total_size to pos and iterate.
01657    * Does not return any user data associated with the entry.
01658    */
01659 /*
01660  *  ICSetMapEntry()
01661  *  
01662  *  Availability:
01663  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01664  *    CarbonLib:        in CarbonLib 1.0.2 and later
01665  *    Mac OS X:         in version 10.0 or later
01666  */
01667 EXTERN_API( OSStatus )
01668 ICSetMapEntry(
01669   ICInstance          inst,
01670   Handle              entries,
01671   long                pos,
01672   const ICMapEntry *  entry)                                  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0015, 0x7000, 0xA82A);
01673 
01674 
01675 /* [r1] [c1] [b3] 
01676    * Sets the entry located at position pos in the mappings database.
01677    * entries must be a handle to a valid IC mappings database preference.
01678    * pos should be either a value returned from ICGetIndMapEntry or a value
01679    * calculated using ICGetMapEntry.
01680    * entry is a var parameter purely for stack space reasons. It is not
01681    * modified in any way.
01682    * Any user data associated with the entry is unmodified.
01683    */
01684 /*
01685  *  ICDeleteMapEntry()
01686  *  
01687  *  Availability:
01688  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01689  *    CarbonLib:        in CarbonLib 1.0.2 and later
01690  *    Mac OS X:         in version 10.0 or later
01691  */
01692 EXTERN_API( OSStatus )
01693 ICDeleteMapEntry(
01694   ICInstance   inst,
01695   Handle       entries,
01696   long         pos)                                           FIVEWORDINLINE(0x2F3C, 0x0008, 0x0016, 0x7000, 0xA82A);
01697 
01698 
01699 /* [r1] [c1] [b3] 
01700    * Deletes the mappings database entry at pos.
01701    * entries must be a handle to a valid IC mappings database preference.
01702    * pos should be either a value returned from ICGetIndMapEntry or a value
01703    * calculated using ICGetMapEntry.
01704    * Also deletes any user data associated with the entry.
01705    */
01706 /*
01707  *  ICAddMapEntry()
01708  *  
01709  *  Availability:
01710  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01711  *    CarbonLib:        in CarbonLib 1.0.2 and later
01712  *    Mac OS X:         in version 10.0 or later
01713  */
01714 EXTERN_API( OSStatus )
01715 ICAddMapEntry(
01716   ICInstance          inst,
01717   Handle              entries,
01718   const ICMapEntry *  entry)                                  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0017, 0x7000, 0xA82A);
01719 
01720 
01721 /* [r1] [c1] [b3] 
01722    * Adds an entry to the mappings database.
01723    * entries must be a handle to a valid IC mappings database preference.
01724    * The entry is added to the end of the entries database.
01725    * No user data is added.
01726    */
01727 /* ***** Profile Management Routines *****  */
01728 /*
01729  *  ICGetCurrentProfile()
01730  *  
01731  *  Availability:
01732  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01733  *    CarbonLib:        in CarbonLib 1.0.2 and later
01734  *    Mac OS X:         in version 10.0 or later
01735  */
01736 EXTERN_API( OSStatus )
01737 ICGetCurrentProfile(
01738   ICInstance     inst,
01739   ICProfileID *  currentID)                                   FIVEWORDINLINE(0x2F3C, 0x0004, 0x0025, 0x7000, 0xA82A);
01740 
01741 
01742 /* [r3] [c1] [b3] 
01743    * Returns the profile ID of the current profile.
01744    */
01745 /*
01746  *  ICSetCurrentProfile()
01747  *  
01748  *  Availability:
01749  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01750  *    CarbonLib:        in CarbonLib 1.0.2 and later
01751  *    Mac OS X:         in version 10.0 or later
01752  */
01753 EXTERN_API( OSStatus )
01754 ICSetCurrentProfile(
01755   ICInstance    inst,
01756   ICProfileID   newID)                                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0026, 0x7000, 0xA82A);
01757 
01758 
01759 /* [r3] [c1] [b3] 
01760    * Sets the current profile to the profile specified in newProfile.
01761    */
01762 /*
01763  *  ICCountProfiles()
01764  *  
01765  *  Availability:
01766  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01767  *    CarbonLib:        in CarbonLib 1.0.2 and later
01768  *    Mac OS X:         in version 10.0 or later
01769  */
01770 EXTERN_API( OSStatus )
01771 ICCountProfiles(
01772   ICInstance   inst,
01773   long *       count)                                         FIVEWORDINLINE(0x2F3C, 0x0004, 0x0027, 0x7000, 0xA82A);
01774 
01775 
01776 /* [r3] [c1] [b1] 
01777    * Returns the total number of profiles.
01778    */
01779 /*
01780  *  ICGetIndProfile()
01781  *  
01782  *  Availability:
01783  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01784  *    CarbonLib:        in CarbonLib 1.0.2 and later
01785  *    Mac OS X:         in version 10.0 or later
01786  */
01787 EXTERN_API( OSStatus )
01788 ICGetIndProfile(
01789   ICInstance     inst,
01790   long           index,
01791   ICProfileID *  thisID)                                      FIVEWORDINLINE(0x2F3C, 0x0008, 0x0028, 0x7000, 0xA82A);
01792 
01793 
01794 /* [r3] [c1] [b1] 
01795    * Returns the profile ID of the index'th profile.  index must be positive.
01796    * Returns icProfileNotFoundErr if index is greater than the total number
01797    * of profiles.
01798    */
01799 /*
01800  *  ICGetProfileName()
01801  *  
01802  *  Availability:
01803  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01804  *    CarbonLib:        in CarbonLib 1.0.2 and later
01805  *    Mac OS X:         in version 10.0 or later
01806  */
01807 EXTERN_API( OSStatus )
01808 ICGetProfileName(
01809   ICInstance    inst,
01810   ICProfileID   thisID,
01811   Str255        name)                                         FIVEWORDINLINE(0x2F3C, 0x0008, 0x0029, 0x7000, 0xA82A);
01812 
01813 
01814 /* [r3] [c1] [b3] 
01815    * Returns the name of a profile given its ID.  The name may not uniquely
01816    * identify the profile.  [That's what the profile ID is for!]  The name
01817    * is assumed to be in the system script.
01818    */
01819 /*
01820  *  ICSetProfileName()
01821  *  
01822  *  Availability:
01823  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01824  *    CarbonLib:        in CarbonLib 1.0.2 and later
01825  *    Mac OS X:         in version 10.0 or later
01826  */
01827 EXTERN_API( OSStatus )
01828 ICSetProfileName(
01829   ICInstance         inst,
01830   ICProfileID        thisID,
01831   ConstStr255Param   name)                                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x002A, 0x7000, 0xA82A);
01832 
01833 
01834 /* [r3] [c1] [b3] 
01835    * This routine sets the name of the specified profile.  Profile names
01836    * need not be unique.  The name should be in the system script.
01837    */
01838 /*
01839  *  ICAddProfile()
01840  *  
01841  *  Availability:
01842  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01843  *    CarbonLib:        in CarbonLib 1.0.2 and later
01844  *    Mac OS X:         in version 10.0 or later
01845  */
01846 EXTERN_API( OSStatus )
01847 ICAddProfile(
01848   ICInstance     inst,
01849   ICProfileID    prototypeID,
01850   ICProfileID *  newID)                                       FIVEWORDINLINE(0x2F3C, 0x0008, 0x002B, 0x7000, 0xA82A);
01851 
01852 
01853 /* [r3] [c1] [b2] 
01854    * If prototypeID = kICNilProfileID, this routine
01855    * creates a default profile, otherwise it creates a
01856    * profile by cloning the prototype profile.  The ID
01857    * of the new profile is returned in newID.
01858    * The new profile will be give a new, unique, name.
01859    * This does not switch to the new profile.
01860    */
01861 /*
01862  *  ICDeleteProfile()
01863  *  
01864  *  Availability:
01865  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01866  *    CarbonLib:        in CarbonLib 1.0.2 and later
01867  *    Mac OS X:         in version 10.0 or later
01868  */
01869 EXTERN_API( OSStatus )
01870 ICDeleteProfile(
01871   ICInstance    inst,
01872   ICProfileID   thisID)                                       FIVEWORDINLINE(0x2F3C, 0x0004, 0x002C, 0x7000, 0xA82A);
01873 
01874 
01875 /* [r3] [c1] [b2] 
01876    * This routine deletes the profile specified by
01877    * thisID.  Attempting to delete the current profile
01878    * or the last profile will return error.
01879    */
01880 /************************************************************************************************
01881   NOTHING BELOW THIS DIVIDER IS IN CARBON
01882  ************************************************************************************************/
01883 /* ***** Interrupt Safe Routines *****  */
01884 #if CALL_NOT_IN_CARBON
01885 /*
01886  *  ICRequiresInterruptSafe()
01887  *  
01888  *  Availability:
01889  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01890  *    CarbonLib:        not available
01891  *    Mac OS X:         not available
01892  */
01893 EXTERN_API( OSStatus )
01894 ICRequiresInterruptSafe(ICInstance inst)                      FIVEWORDINLINE(0x2F3C, 0x0000, 0x002D, 0x7000, 0xA82A);
01895 
01896 
01897 /* [r3] [c2] [b3] 
01898    * You must call this routine before calling GetMapEntryInterruptSafe
01899    * to give IC chance to cache the mappings data in memory.  The only
01900    * way to clear this state is to close the instance.  You can not reconfigure
01901    * the instance after calling this routine.
01902    */
01903 /*
01904  *  ICGetMappingInterruptSafe()
01905  *  
01906  *  Availability:
01907  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01908  *    CarbonLib:        not available
01909  *    Mac OS X:         not available
01910  */
01911 EXTERN_API( OSStatus )
01912 ICGetMappingInterruptSafe(
01913   ICInstance   inst,
01914   Ptr *        mappingPref,
01915   long *       mappingPrefSize)                               FIVEWORDINLINE(0x2F3C, 0x0008, 0x002E, 0x7000, 0xA82A);
01916 
01917 
01918 /* [r3] [c2] [b3] 
01919    * Returns the "Mapping" preference in an interrupt safe fashion.
01920    * The preference returned pointer is valid until the next
01921    * non-interrupt safe call to IC.  Typically this API is used
01922    * by software that needs to map extensions to type and creator
01923    * at interrupt time, eg foreign file systems.
01924    */
01925 /*
01926  *  ICGetSeedInterruptSafe()
01927  *  
01928  *  Availability:
01929  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01930  *    CarbonLib:        not available
01931  *    Mac OS X:         not available
01932  */
01933 EXTERN_API( OSStatus )
01934 ICGetSeedInterruptSafe(
01935   ICInstance   inst,
01936   long *       seed)                                          FIVEWORDINLINE(0x2F3C, 0x0004, 0x0030, 0x7000, 0xA82A);
01937 
01938 
01939 /* [r3] [c2] [b3] 
01940    * An interrupt safe version of ICGetSeed.
01941    */
01942 /* ***** Starting Up and Shutting Down *****  */
01943 /*
01944  *  ICCStart()
01945  *  
01946  *  Availability:
01947  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01948  *    CarbonLib:        not available
01949  *    Mac OS X:         not available
01950  */
01951 EXTERN_API( OSStatus )
01952 ICCStart(
01953   ComponentInstance *  inst,
01954   OSType               creator);
01955 
01956 
01957 /* See comment for ICCStart.  */
01958 /*
01959  *  ICCStop()
01960  *  
01961  *  Availability:
01962  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01963  *    CarbonLib:        not available
01964  *    Mac OS X:         not available
01965  */
01966 EXTERN_API( OSStatus )
01967 ICCStop(ComponentInstance inst);
01968 
01969 
01970 /* See comment for ICCStop.  */
01971 /*
01972  *  ICCGetVersion()
01973  *  
01974  *  Availability:
01975  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01976  *    CarbonLib:        not available
01977  *    Mac OS X:         not available
01978  */
01979 EXTERN_API( OSStatus )
01980 ICCGetVersion(
01981   ComponentInstance   inst,
01982   long                whichVersion,
01983   UInt32 *            version)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0032, 0x7000, 0xA82A);
01984 
01985 
01986 /* See comment for ICCGetVersion.  */
01987 /* ***** Specifying a Configuration *****  */
01988 /*
01989  *  ICCFindConfigFile()
01990  *  
01991  *  Availability:
01992  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
01993  *    CarbonLib:        not available
01994  *    Mac OS X:         not available
01995  */
01996 EXTERN_API( OSStatus )
01997 ICCFindConfigFile(
01998   ComponentInstance   inst,
01999   short               count,
02000   ICDirSpecArrayPtr   folders)                                FIVEWORDINLINE(0x2F3C, 0x0006, 0x0002, 0x7000, 0xA82A);
02001 
02002 
02003 /* See comment for ICCFindConfigFile.  */
02004 /*
02005  *  ICCFindUserConfigFile()
02006  *  
02007  *  Availability:
02008  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02009  *    CarbonLib:        not available
02010  *    Mac OS X:         not available
02011  */
02012 EXTERN_API( OSStatus )
02013 ICCFindUserConfigFile(
02014   ComponentInstance   inst,
02015   ICDirSpec *         where)                                  FIVEWORDINLINE(0x2F3C, 0x0004, 0x000E, 0x7000, 0xA82A);
02016 
02017 
02018 /* See comment for ICCFindUserConfigFile.  */
02019 /*
02020  *  ICCGeneralFindConfigFile()
02021  *  
02022  *  Availability:
02023  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02024  *    CarbonLib:        not available
02025  *    Mac OS X:         not available
02026  */
02027 EXTERN_API( OSStatus )
02028 ICCGeneralFindConfigFile(
02029   ComponentInstance   inst,
02030   Boolean             searchPrefs,
02031   Boolean             canCreate,
02032   short               count,
02033   ICDirSpecArrayPtr   folders)                                FIVEWORDINLINE(0x2F3C, 0x000A, 0x001E, 0x7000, 0xA82A);
02034 
02035 
02036 /* See comment for ICCGeneralFindConfigFile.  */
02037 /*
02038  *  ICCChooseConfig()
02039  *  
02040  *  Availability:
02041  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02042  *    CarbonLib:        not available
02043  *    Mac OS X:         not available
02044  */
02045 EXTERN_API( OSStatus )
02046 ICCChooseConfig(ComponentInstance inst)                       FIVEWORDINLINE(0x2F3C, 0x0000, 0x0021, 0x7000, 0xA82A);
02047 
02048 
02049 /* See comment for ICCChooseConfig.  */
02050 /*
02051  *  ICCChooseNewConfig()
02052  *  
02053  *  Availability:
02054  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02055  *    CarbonLib:        not available
02056  *    Mac OS X:         not available
02057  */
02058 EXTERN_API( OSStatus )
02059 ICCChooseNewConfig(ComponentInstance inst)                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0022, 0x7000, 0xA82A);
02060 
02061 
02062 /* See comment for ICCChooseNewConfig.  */
02063 /*
02064  *  ICCGetConfigName()
02065  *  
02066  *  Availability:
02067  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02068  *    CarbonLib:        not available
02069  *    Mac OS X:         not available
02070  */
02071 EXTERN_API( OSStatus )
02072 ICCGetConfigName(
02073   ComponentInstance   inst,
02074   Boolean             longname,
02075   Str255              name)                                   FIVEWORDINLINE(0x2F3C, 0x0006, 0x0023, 0x7000, 0xA82A);
02076 
02077 
02078 /* See comment for ICCGetConfigName.  */
02079 /*
02080  *  ICCGetConfigReference()
02081  *  
02082  *  Availability:
02083  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02084  *    CarbonLib:        not available
02085  *    Mac OS X:         not available
02086  */
02087 EXTERN_API( OSStatus )
02088 ICCGetConfigReference(
02089   ComponentInstance   inst,
02090   ICConfigRefHandle   ref)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x001F, 0x7000, 0xA82A);
02091 
02092 
02093 /* See comment for ICCGetConfigReference.  */
02094 /*
02095  *  ICCSetConfigReference()
02096  *  
02097  *  Availability:
02098  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02099  *    CarbonLib:        not available
02100  *    Mac OS X:         not available
02101  */
02102 EXTERN_API( OSStatus )
02103 ICCSetConfigReference(
02104   ComponentInstance   inst,
02105   ICConfigRefHandle   ref,
02106   long                flags)                                  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0020, 0x7000, 0xA82A);
02107 
02108 
02109 /* See comment for ICCSetConfigReference.  */
02110 /* ***** Private Routines *****
02111  * 
02112  * If you are calling these routines, you are most probably doing something
02113  * wrong.  Please read the documentation for more details.
02114   */
02115 /*
02116  *  ICCSpecifyConfigFile()
02117  *  
02118  *  Availability:
02119  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02120  *    CarbonLib:        not available
02121  *    Mac OS X:         not available
02122  */
02123 EXTERN_API( OSStatus )
02124 ICCSpecifyConfigFile(
02125   ComponentInstance   inst,
02126   FSSpec *            config)                                 FIVEWORDINLINE(0x2F3C, 0x0004, 0x0003, 0x7000, 0xA82A);
02127 
02128 
02129 /* See comment for ICCSpecifyConfigFile.  */
02130 /*
02131  *  ICCRefreshCaches()
02132  *  
02133  *  Availability:
02134  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02135  *    CarbonLib:        not available
02136  *    Mac OS X:         not available
02137  */
02138 EXTERN_API( OSStatus )
02139 ICCRefreshCaches(ComponentInstance inst)                      FIVEWORDINLINE(0x2F3C, 0x0000, 0x002F, 0x7000, 0xA82A);
02140 
02141 
02142 /* See comment for ICCRefreshCaches.  */
02143 /* ***** Getting Information *****  */
02144 /*
02145  *  ICCGetSeed()
02146  *  
02147  *  Availability:
02148  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02149  *    CarbonLib:        not available
02150  *    Mac OS X:         not available
02151  */
02152 EXTERN_API( OSStatus )
02153 ICCGetSeed(
02154   ComponentInstance   inst,
02155   long *              seed)                                   FIVEWORDINLINE(0x2F3C, 0x0004, 0x0004, 0x7000, 0xA82A);
02156 
02157 
02158 /* See comment for ICCGetSeed.  */
02159 /*
02160  *  ICCGetPerm()
02161  *  
02162  *  Availability:
02163  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02164  *    CarbonLib:        not available
02165  *    Mac OS X:         not available
02166  */
02167 EXTERN_API( OSStatus )
02168 ICCGetPerm(
02169   ComponentInstance   inst,
02170   ICPerm *            perm)                                   FIVEWORDINLINE(0x2F3C, 0x0004, 0x000D, 0x7000, 0xA82A);
02171 
02172 
02173 /* See comment for ICCGetPerm.  */
02174 /*
02175  *  ICCDefaultFileName()
02176  *  
02177  *  Availability:
02178  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02179  *    CarbonLib:        not available
02180  *    Mac OS X:         not available
02181  */
02182 EXTERN_API( OSStatus )
02183 ICCDefaultFileName(
02184   ComponentInstance   inst,
02185   Str63               name)                                   FIVEWORDINLINE(0x2F3C, 0x0004, 0x000B, 0x7000, 0xA82A);
02186 
02187 
02188 /* See comment for ICCDefaultFileName.  */
02189 /*
02190  *  ICCGetComponentInstance()
02191  *  
02192  *  Availability:
02193  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02194  *    CarbonLib:        not available
02195  *    Mac OS X:         not available
02196  */
02197 EXTERN_API( OSStatus )
02198 ICCGetComponentInstance(
02199   ComponentInstance    inst,
02200   ComponentInstance *  componentInst);
02201 
02202 
02203 /* See comment for ICCGetComponentInstance.  */
02204 /* ***** Reading and Writing Preferences *****  */
02205 /*
02206  *  ICCBegin()
02207  *  
02208  *  Availability:
02209  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02210  *    CarbonLib:        not available
02211  *    Mac OS X:         not available
02212  */
02213 EXTERN_API( OSStatus )
02214 ICCBegin(
02215   ComponentInstance   inst,
02216   ICPerm              perm)                                   FIVEWORDINLINE(0x2F3C, 0x0002, 0x0005, 0x7000, 0xA82A);
02217 
02218 
02219 /* See comment for ICCBegin.  */
02220 /*
02221  *  ICCGetPref()
02222  *  
02223  *  Availability:
02224  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02225  *    CarbonLib:        not available
02226  *    Mac OS X:         not available
02227  */
02228 EXTERN_API( OSStatus )
02229 ICCGetPref(
02230   ComponentInstance   inst,
02231   ConstStr255Param    key,
02232   ICAttr *            attr,
02233   Ptr                 buf,
02234   long *              size)                                   FIVEWORDINLINE(0x2F3C, 0x0010, 0x0006, 0x7000, 0xA82A);
02235 
02236 
02237 /* See comment for ICCGetPref.  */
02238 /*
02239  *  ICCSetPref()
02240  *  
02241  *  Availability:
02242  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02243  *    CarbonLib:        not available
02244  *    Mac OS X:         not available
02245  */
02246 EXTERN_API( OSStatus )
02247 ICCSetPref(
02248   ComponentInstance   inst,
02249   ConstStr255Param    key,
02250   ICAttr              attr,
02251   Ptr                 buf,
02252   long                size)                                   FIVEWORDINLINE(0x2F3C, 0x0010, 0x0007, 0x7000, 0xA82A);
02253 
02254 
02255 /* See comment for ICCSetPref.  */
02256 /*
02257  *  ICCFindPrefHandle()
02258  *  
02259  *  Availability:
02260  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02261  *    CarbonLib:        not available
02262  *    Mac OS X:         not available
02263  */
02264 EXTERN_API( OSStatus )
02265 ICCFindPrefHandle(
02266   ComponentInstance   inst,
02267   ConstStr255Param    key,
02268   ICAttr *            attr,
02269   Handle              prefh)                                  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0024, 0x7000, 0xA82A);
02270 
02271 
02272 /* See comment for ICCFindPrefHandle.  */
02273 /*
02274  *  ICCGetPrefHandle()
02275  *  
02276  *  Availability:
02277  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02278  *    CarbonLib:        not available
02279  *    Mac OS X:         not available
02280  */
02281 EXTERN_API( OSStatus )
02282 ICCGetPrefHandle(
02283   ComponentInstance   inst,
02284   ConstStr255Param    key,
02285   ICAttr *            attr,
02286   Handle *            prefh)                                  FIVEWORDINLINE(0x2F3C, 0x000C, 0x001A, 0x7000, 0xA82A);
02287 
02288 
02289 /* See comment for ICCGetPrefHandle.  */
02290 /*
02291  *  ICCSetPrefHandle()
02292  *  
02293  *  Availability:
02294  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02295  *    CarbonLib:        not available
02296  *    Mac OS X:         not available
02297  */
02298 EXTERN_API( OSStatus )
02299 ICCSetPrefHandle(
02300   ComponentInstance   inst,
02301   ConstStr255Param    key,
02302   ICAttr              attr,
02303   Handle              prefh)                                  FIVEWORDINLINE(0x2F3C, 0x000C, 0x001B, 0x7000, 0xA82A);
02304 
02305 
02306 /* See comment for ICCSetPrefHandle.  */
02307 /*
02308  *  ICCCountPref()
02309  *  
02310  *  Availability:
02311  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02312  *    CarbonLib:        not available
02313  *    Mac OS X:         not available
02314  */
02315 EXTERN_API( OSStatus )
02316 ICCCountPref(
02317   ComponentInstance   inst,
02318   long *              count)                                  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0008, 0x7000, 0xA82A);
02319 
02320 
02321 /* See comment for ICCCountPref.  */
02322 /*
02323  *  ICCGetIndPref()
02324  *  
02325  *  Availability:
02326  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02327  *    CarbonLib:        not available
02328  *    Mac OS X:         not available
02329  */
02330 EXTERN_API( OSStatus )
02331 ICCGetIndPref(
02332   ComponentInstance   inst,
02333   long                index,
02334   Str255              key)                                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x0009, 0x7000, 0xA82A);
02335 
02336 
02337 /* See comment for ICCGetIndPref.  */
02338 /*
02339  *  ICCDeletePref()
02340  *  
02341  *  Availability:
02342  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02343  *    CarbonLib:        not available
02344  *    Mac OS X:         not available
02345  */
02346 EXTERN_API( OSStatus )
02347 ICCDeletePref(
02348   ComponentInstance   inst,
02349   ConstStr255Param    key)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x000C, 0x7000, 0xA82A);
02350 
02351 
02352 /* See comment for ICCDeletePref.  */
02353 /*
02354  *  ICCEnd()
02355  *  
02356  *  Availability:
02357  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02358  *    CarbonLib:        not available
02359  *    Mac OS X:         not available
02360  */
02361 EXTERN_API( OSStatus )
02362 ICCEnd(ComponentInstance inst)                                FIVEWORDINLINE(0x2F3C, 0x0000, 0x000A, 0x7000, 0xA82A);
02363 
02364 
02365 /* See comment for ICCEnd.  */
02366 /*
02367  *  ICCGetDefaultPref()
02368  *  
02369  *  Availability:
02370  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02371  *    CarbonLib:        not available
02372  *    Mac OS X:         not available
02373  */
02374 EXTERN_API( OSStatus )
02375 ICCGetDefaultPref(
02376   ComponentInstance   inst,
02377   ConstStr255Param    key,
02378   Handle              prefH)                                  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0031, 0x7000, 0xA82A);
02379 
02380 
02381 /* See comment for ICCGetDefaultPref.  */
02382 /* ***** User Interface Stuff *****  */
02383 /*
02384  *  ICCEditPreferences()
02385  *  
02386  *  Availability:
02387  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02388  *    CarbonLib:        not available
02389  *    Mac OS X:         not available
02390  */
02391 EXTERN_API( OSStatus )
02392 ICCEditPreferences(
02393   ComponentInstance   inst,
02394   ConstStr255Param    key)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x000F, 0x7000, 0xA82A);
02395 
02396 
02397 /* See comment for ICCEditPreferences.  */
02398 /* ***** URL Handling *****  */
02399 /*
02400  *  ICCLaunchURL()
02401  *  
02402  *  Availability:
02403  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02404  *    CarbonLib:        not available
02405  *    Mac OS X:         not available
02406  */
02407 EXTERN_API( OSStatus )
02408 ICCLaunchURL(
02409   ComponentInstance   inst,
02410   ConstStr255Param    hint,
02411   Ptr                 data,
02412   long                len,
02413   long *              selStart,
02414   long *              selEnd)                                 FIVEWORDINLINE(0x2F3C, 0x0014, 0x0011, 0x7000, 0xA82A);
02415 
02416 
02417 /* See comment for ICCLaunchURL.  */
02418 /*
02419  *  ICCParseURL()
02420  *  
02421  *  Availability:
02422  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02423  *    CarbonLib:        not available
02424  *    Mac OS X:         not available
02425  */
02426 EXTERN_API( OSStatus )
02427 ICCParseURL(
02428   ComponentInstance   inst,
02429   ConstStr255Param    hint,
02430   Ptr                 data,
02431   long                len,
02432   long *              selStart,
02433   long *              selEnd,
02434   Handle              url)                                    FIVEWORDINLINE(0x2F3C, 0x0018, 0x0010, 0x7000, 0xA82A);
02435 
02436 
02437 /* See comment for ICCParseURL.  */
02438 /*
02439  *  ICCCreateGURLEvent()
02440  *  
02441  *  Availability:
02442  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02443  *    CarbonLib:        not available
02444  *    Mac OS X:         not available
02445  */
02446 EXTERN_API( OSStatus )
02447 ICCCreateGURLEvent(
02448   ComponentInstance   inst,
02449   OSType              helperCreator,
02450   Handle              urlH,
02451   AppleEvent *        theEvent)                               FIVEWORDINLINE(0x2F3C, 0x000C, 0x0033, 0x7000, 0xA82A);
02452 
02453 
02454 /* See comment for ICCCreateGURLEvent.  */
02455 /*
02456  *  ICCSendGURLEvent()
02457  *  
02458  *  Availability:
02459  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02460  *    CarbonLib:        not available
02461  *    Mac OS X:         not available
02462  */
02463 EXTERN_API( OSStatus )
02464 ICCSendGURLEvent(
02465   ComponentInstance   inst,
02466   AppleEvent *        theEvent)                               FIVEWORDINLINE(0x2F3C, 0x0004, 0x0034, 0x7000, 0xA82A);
02467 
02468 
02469 /* See comment for ICCSendGURLEvent.  */
02470 /* ***** Mappings Routines *****
02471  * 
02472  * Routines for interrogating mappings database.
02473  * 
02474  * ----- High Level Routines -----
02475   */
02476 /*
02477  *  ICCMapFilename()
02478  *  
02479  *  Availability:
02480  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02481  *    CarbonLib:        not available
02482  *    Mac OS X:         not available
02483  */
02484 EXTERN_API( OSStatus )
02485 ICCMapFilename(
02486   ComponentInstance   inst,
02487   ConstStr255Param    filename,
02488   ICMapEntry *        entry)                                  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0018, 0x7000, 0xA82A);
02489 
02490 
02491 /* See comment for ICCMapFilename.  */
02492 /*
02493  *  ICCMapTypeCreator()
02494  *  
02495  *  Availability:
02496  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02497  *    CarbonLib:        not available
02498  *    Mac OS X:         not available
02499  */
02500 EXTERN_API( OSStatus )
02501 ICCMapTypeCreator(
02502   ComponentInstance   inst,
02503   OSType              fType,
02504   OSType              fCreator,
02505   ConstStr255Param    filename,
02506   ICMapEntry *        entry)                                  FIVEWORDINLINE(0x2F3C, 0x0010, 0x0019, 0x7000, 0xA82A);
02507 
02508 
02509 /* See comment for ICCMapTypeCreator.  */
02510 /* ----- Mid Level Routines -----  */
02511 /*
02512  *  ICCMapEntriesFilename()
02513  *  
02514  *  Availability:
02515  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02516  *    CarbonLib:        not available
02517  *    Mac OS X:         not available
02518  */
02519 EXTERN_API( OSStatus )
02520 ICCMapEntriesFilename(
02521   ComponentInstance   inst,
02522   Handle              entries,
02523   ConstStr255Param    filename,
02524   ICMapEntry *        entry)                                  FIVEWORDINLINE(0x2F3C, 0x000C, 0x001C, 0x7000, 0xA82A);
02525 
02526 
02527 /* See comment for ICCMapEntriesFilename.  */
02528 /*
02529  *  ICCMapEntriesTypeCreator()
02530  *  
02531  *  Availability:
02532  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02533  *    CarbonLib:        not available
02534  *    Mac OS X:         not available
02535  */
02536 EXTERN_API( OSStatus )
02537 ICCMapEntriesTypeCreator(
02538   ComponentInstance   inst,
02539   Handle              entries,
02540   OSType              fType,
02541   OSType              fCreator,
02542   ConstStr255Param    filename,
02543   ICMapEntry *        entry)                                  FIVEWORDINLINE(0x2F3C, 0x0014, 0x001D, 0x7000, 0xA82A);
02544 
02545 
02546 /* See comment for ICCMapEntriesTypeCreator.  */
02547 /* ----- Low Level Routines -----  */
02548 /*
02549  *  ICCCountMapEntries()
02550  *  
02551  *  Availability:
02552  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02553  *    CarbonLib:        not available
02554  *    Mac OS X:         not available
02555  */
02556 EXTERN_API( OSStatus )
02557 ICCCountMapEntries(
02558   ComponentInstance   inst,
02559   Handle              entries,
02560   long *              count)                                  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0012, 0x7000, 0xA82A);
02561 
02562 
02563 /* See comment for ICCCountMapEntries.  */
02564 /*
02565  *  ICCGetIndMapEntry()
02566  *  
02567  *  Availability:
02568  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02569  *    CarbonLib:        not available
02570  *    Mac OS X:         not available
02571  */
02572 EXTERN_API( OSStatus )
02573 ICCGetIndMapEntry(
02574   ComponentInstance   inst,
02575   Handle              entries,
02576   long                index,
02577   long *              pos,
02578   ICMapEntry *        entry)                                  FIVEWORDINLINE(0x2F3C, 0x0010, 0x0013, 0x7000, 0xA82A);
02579 
02580 
02581 /* See comment for ICCGetIndMapEntry.  */
02582 /*
02583  *  ICCGetMapEntry()
02584  *  
02585  *  Availability:
02586  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02587  *    CarbonLib:        not available
02588  *    Mac OS X:         not available
02589  */
02590 EXTERN_API( OSStatus )
02591 ICCGetMapEntry(
02592   ComponentInstance   inst,
02593   Handle              entries,
02594   long                pos,
02595   ICMapEntry *        entry)                                  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0014, 0x7000, 0xA82A);
02596 
02597 
02598 /* See comment for ICCGetMapEntry.  */
02599 /*
02600  *  ICCSetMapEntry()
02601  *  
02602  *  Availability:
02603  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02604  *    CarbonLib:        not available
02605  *    Mac OS X:         not available
02606  */
02607 EXTERN_API( OSStatus )
02608 ICCSetMapEntry(
02609   ComponentInstance   inst,
02610   Handle              entries,
02611   long                pos,
02612   ICMapEntry *        entry)                                  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0015, 0x7000, 0xA82A);
02613 
02614 
02615 /* See comment for ICCSetMapEntry.  */
02616 /*
02617  *  ICCDeleteMapEntry()
02618  *  
02619  *  Availability:
02620  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02621  *    CarbonLib:        not available
02622  *    Mac OS X:         not available
02623  */
02624 EXTERN_API( OSStatus )
02625 ICCDeleteMapEntry(
02626   ComponentInstance   inst,
02627   Handle              entries,
02628   long                pos)                                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x0016, 0x7000, 0xA82A);
02629 
02630 
02631 /* See comment for ICCDeleteMapEntry.  */
02632 /*
02633  *  ICCAddMapEntry()
02634  *  
02635  *  Availability:
02636  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02637  *    CarbonLib:        not available
02638  *    Mac OS X:         not available
02639  */
02640 EXTERN_API( OSStatus )
02641 ICCAddMapEntry(
02642   ComponentInstance   inst,
02643   Handle              entries,
02644   ICMapEntry *        entry)                                  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0017, 0x7000, 0xA82A);
02645 
02646 
02647 /* See comment for ICCAddMapEntry.  */
02648 /* ***** Profile Management Routines *****  */
02649 /*
02650  *  ICCGetCurrentProfile()
02651  *  
02652  *  Availability:
02653  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02654  *    CarbonLib:        not available
02655  *    Mac OS X:         not available
02656  */
02657 EXTERN_API( OSStatus )
02658 ICCGetCurrentProfile(
02659   ComponentInstance   inst,
02660   ICProfileID *       currentID)                              FIVEWORDINLINE(0x2F3C, 0x0004, 0x0025, 0x7000, 0xA82A);
02661 
02662 
02663 /* See comment for ICCGetCurrentProfile.  */
02664 /*
02665  *  ICCSetCurrentProfile()
02666  *  
02667  *  Availability:
02668  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02669  *    CarbonLib:        not available
02670  *    Mac OS X:         not available
02671  */
02672 EXTERN_API( OSStatus )
02673 ICCSetCurrentProfile(
02674   ComponentInstance   inst,
02675   ICProfileID         newID)                                  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0026, 0x7000, 0xA82A);
02676 
02677 
02678 /* See comment for ICCSetCurrentProfile.  */
02679 /*
02680  *  ICCCountProfiles()
02681  *  
02682  *  Availability:
02683  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02684  *    CarbonLib:        not available
02685  *    Mac OS X:         not available
02686  */
02687 EXTERN_API( OSStatus )
02688 ICCCountProfiles(
02689   ComponentInstance   inst,
02690   long *              count)                                  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0027, 0x7000, 0xA82A);
02691 
02692 
02693 /* See comment for ICCCountProfiles.  */
02694 /*
02695  *  ICCGetIndProfile()
02696  *  
02697  *  Availability:
02698  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02699  *    CarbonLib:        not available
02700  *    Mac OS X:         not available
02701  */
02702 EXTERN_API( OSStatus )
02703 ICCGetIndProfile(
02704   ComponentInstance   inst,
02705   long                index,
02706   ICProfileID *       thisID)                                 FIVEWORDINLINE(0x2F3C, 0x0008, 0x0028, 0x7000, 0xA82A);
02707 
02708 
02709 /* See comment for ICCGetIndProfile.  */
02710 /*
02711  *  ICCGetProfileName()
02712  *  
02713  *  Availability:
02714  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02715  *    CarbonLib:        not available
02716  *    Mac OS X:         not available
02717  */
02718 EXTERN_API( OSStatus )
02719 ICCGetProfileName(
02720   ComponentInstance   inst,
02721   ICProfileID         thisID,
02722   Str255              name)                                   FIVEWORDINLINE(0x2F3C, 0x0008, 0x0029, 0x7000, 0xA82A);
02723 
02724 
02725 /* See comment for ICCGetProfileName.  */
02726 /*
02727  *  ICCSetProfileName()
02728  *  
02729  *  Availability:
02730  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02731  *    CarbonLib:        not available
02732  *    Mac OS X:         not available
02733  */
02734 EXTERN_API( OSStatus )
02735 ICCSetProfileName(
02736   ComponentInstance   inst,
02737   ICProfileID         thisID,
02738   ConstStr255Param    name)                                   FIVEWORDINLINE(0x2F3C, 0x0008, 0x002A, 0x7000, 0xA82A);
02739 
02740 
02741 /* See comment for ICCSetProfileName.  */
02742 /*
02743  *  ICCAddProfile()
02744  *  
02745  *  Availability:
02746  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02747  *    CarbonLib:        not available
02748  *    Mac OS X:         not available
02749  */
02750 EXTERN_API( OSStatus )
02751 ICCAddProfile(
02752   ComponentInstance   inst,
02753   ICProfileID         prototypeID,
02754   ICProfileID *       newID)                                  FIVEWORDINLINE(0x2F3C, 0x0008, 0x002B, 0x7000, 0xA82A);
02755 
02756 
02757 /* See comment for ICCAddProfile.  */
02758 /*
02759  *  ICCDeleteProfile()
02760  *  
02761  *  Availability:
02762  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02763  *    CarbonLib:        not available
02764  *    Mac OS X:         not available
02765  */
02766 EXTERN_API( OSStatus )
02767 ICCDeleteProfile(
02768   ComponentInstance   inst,
02769   ICProfileID         thisID)                                 FIVEWORDINLINE(0x2F3C, 0x0004, 0x002C, 0x7000, 0xA82A);
02770 
02771 
02772 /* See comment for ICCDeleteProfile.  */
02773 /* ***** Interrupt Safe Routines *****  */
02774 /*
02775  *  ICCRequiresInterruptSafe()
02776  *  
02777  *  Availability:
02778  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02779  *    CarbonLib:        not available
02780  *    Mac OS X:         not available
02781  */
02782 EXTERN_API( OSStatus )
02783 ICCRequiresInterruptSafe(ComponentInstance inst)              FIVEWORDINLINE(0x2F3C, 0x0000, 0x002D, 0x7000, 0xA82A);
02784 
02785 
02786 /* See comment for ICCRequiresInterruptSafe.  */
02787 /*
02788  *  ICCGetMappingInterruptSafe()
02789  *  
02790  *  Availability:
02791  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02792  *    CarbonLib:        not available
02793  *    Mac OS X:         not available
02794  */
02795 EXTERN_API( OSStatus )
02796 ICCGetMappingInterruptSafe(
02797   ComponentInstance   inst,
02798   Ptr *               mappingPref,
02799   long *              mappingPrefSize)                        FIVEWORDINLINE(0x2F3C, 0x0008, 0x002E, 0x7000, 0xA82A);
02800 
02801 
02802 /* See comment for ICCGetMappingInterruptSafe.  */
02803 /*
02804  *  ICCGetSeedInterruptSafe()
02805  *  
02806  *  Availability:
02807  *    Non-Carbon CFM:   in InternetConfig 2.5 and later
02808  *    CarbonLib:        not available
02809  *    Mac OS X:         not available
02810  */
02811 EXTERN_API( OSStatus )
02812 ICCGetSeedInterruptSafe(
02813   ComponentInstance   inst,
02814   long *              seed)                                   FIVEWORDINLINE(0x2F3C, 0x0004, 0x0030, 0x7000, 0xA82A);
02815 
02816 
02817 /* See comment for ICCGetSeedInterruptSafe.  */
02818 #endif  /* CALL_NOT_IN_CARBON */
02819 
02820 #if CALL_NOT_IN_CARBON
02821 
02822 /************************************************************************************************
02823   component selectors
02824  ************************************************************************************************/
02825 
02826 enum {
02827   kICCStart                     = 0,
02828   kICCStop                      = 1,
02829   kICCGetVersion                = 50,
02830   kICCFindConfigFile            = 2,
02831   kICCFindUserConfigFile        = 14,
02832   kICCGeneralFindConfigFile     = 30,
02833   kICCChooseConfig              = 33,
02834   kICCChooseNewConfig           = 34,
02835   kICCGetConfigName             = 35,
02836   kICCGetConfigReference        = 31,
02837   kICCSetConfigReference        = 32,
02838   kICCSpecifyConfigFile         = 3,
02839   kICCRefreshCaches             = 47,
02840   kICCGetSeed                   = 4,
02841   kICCGetPerm                   = 13,
02842   kICCDefaultFileName           = 11,
02843   kICCBegin                     = 5,
02844   kICCGetPref                   = 6,
02845   kICCSetPref                   = 7,
02846   kICCFindPrefHandle            = 36,
02847   kICCGetPrefHandle             = 26,
02848   kICCSetPrefHandle             = 27,
02849   kICCCountPref                 = 8,
02850   kICCGetIndPref                = 9,
02851   kICCDeletePref                = 12,
02852   kICCEnd                       = 10,
02853   kICCGetDefaultPref            = 49,
02854   kICCEditPreferences           = 15,
02855   kICCLaunchURL                 = 17,
02856   kICCParseURL                  = 16,
02857   kICCCreateGURLEvent           = 51,
02858   kICCSendGURLEvent             = 52,
02859   kICCMapFilename               = 24,
02860   kICCMapTypeCreator            = 25,
02861   kICCMapEntriesFilename        = 28,
02862   kICCMapEntriesTypeCreator     = 29,
02863   kICCCountMapEntries           = 18,
02864   kICCGetIndMapEntry            = 19,
02865   kICCGetMapEntry               = 20,
02866   kICCSetMapEntry               = 21,
02867   kICCDeleteMapEntry            = 22,
02868   kICCAddMapEntry               = 23,
02869   kICCGetCurrentProfile         = 37,
02870   kICCSetCurrentProfile         = 38,
02871   kICCCountProfiles             = 39,
02872   kICCGetIndProfile             = 40,
02873   kICCGetProfileName            = 41,
02874   kICCSetProfileName            = 42,
02875   kICCAddProfile                = 43,
02876   kICCDeleteProfile             = 44,
02877   kICCRequiresInterruptSafe     = 45,
02878   kICCGetMappingInterruptSafe   = 46,
02879   kICCGetSeedInterruptSafe      = 48,
02880   kICCFirstSelector             = kICCStart,
02881   kICCLastSelector              = 52
02882 };
02883 
02884 /************************************************************************************************
02885   component selector proc infos
02886  ************************************************************************************************/
02887 
02888 enum {
02889   kICCStartProcInfo             = 1008,
02890   kICCStopProcInfo              = 240,
02891   kICCGetVersionProcInfo        = 4080,
02892   kICCFindConfigFileProcInfo    = 3824,
02893   kICCFindUserConfigFileProcInfo = 1008,
02894   kICCGeneralFindConfigFileProcInfo = 58864L,
02895   kICCChooseConfigProcInfo      = 240,
02896   kICCChooseNewConfigProcInfo   = 240,
02897   kICCGetConfigNameProcInfo     = 3568,
02898   kICCGetConfigReferenceProcInfo = 1008,
02899   kICCSetConfigReferenceProcInfo = 4080,
02900   kICCSpecifyConfigFileProcInfo = 1008,
02901   kICCRefreshCachesProcInfo     = 240,
02902   kICCGetSeedProcInfo           = 1008,
02903   kICCGetPermProcInfo           = 1008,
02904   kICCDefaultFileNameProcInfo   = 1008,
02905   kICCGetComponentInstanceProcInfo = 1008,
02906   kICCBeginProcInfo             = 496,
02907   kICCGetPrefProcInfo           = 65520L,
02908   kICCSetPrefProcInfo           = 65520L,
02909   kICCFindPrefHandleProcInfo    = 16368,
02910   kICCGetPrefHandleProcInfo     = 16368,
02911   kICCSetPrefHandleProcInfo     = 16368,
02912   kICCCountPrefProcInfo         = 1008,
02913   kICCGetIndPrefProcInfo        = 4080,
02914   kICCDeletePrefProcInfo        = 1008,
02915   kICCEndProcInfo               = 240,
02916   kICCGetDefaultPrefProcInfo    = 4080,
02917   kICCEditPreferencesProcInfo   = 1008,
02918   kICCLaunchURLProcInfo         = 262128L,
02919   kICCParseURLProcInfo          = 1048560L,
02920   kICCCreateGURLEventProcInfo   = 16368,
02921   kICCSendGURLEventProcInfo     = 1008,
02922   kICCMapFilenameProcInfo       = 4080,
02923   kICCMapTypeCreatorProcInfo    = 65520L,
02924   kICCMapEntriesFilenameProcInfo = 16368,
02925   kICCMapEntriesTypeCreatorProcInfo = 262128L,
02926   kICCCountMapEntriesProcInfo   = 4080,
02927   kICCGetIndMapEntryProcInfo    = 65520L,
02928   kICCGetMapEntryProcInfo       = 16368,
02929   kICCSetMapEntryProcInfo       = 16368,
02930   kICCDeleteMapEntryProcInfo    = 4080,
02931   kICCAddMapEntryProcInfo       = 4080,
02932   kICCGetCurrentProfileProcInfo = 1008,
02933   kICCSetCurrentProfileProcInfo = 1008,
02934   kICCCountProfilesProcInfo     = 1008,
02935   kICCGetIndProfileProcInfo     = 4080,
02936   kICCGetProfileNameProcInfo    = 4080,
02937   kICCSetProfileNameProcInfo    = 4080,
02938   kICCAddProfileProcInfo        = 4080,
02939   kICCDeleteProfileProcInfo     = 1008,
02940   kICCRequiresInterruptSafeProcInfo = 240,
02941   kICCGetMappingInterruptSafeProcInfo = 4080,
02942   kICCGetSeedInterruptSafeProcInfo = 1008
02943 };
02944 
02945 /************************************************************************************************
02946   component identifiers
02947  ************************************************************************************************/
02948 
02949 enum {
02950   kICComponentType              = FOUR_CHAR_CODE('PREF'),
02951   kICComponentSubType           = FOUR_CHAR_CODE('ICAp'),
02952   kICComponentManufacturer      = FOUR_CHAR_CODE('JPQE')
02953 };
02954 
02955 /************************************************************************************************
02956   The following type is now obsolete.
02957   If you're using it, please switch to ComponentInstance or ICInstance.
02958  ************************************************************************************************/
02959 
02960 #if OLDROUTINENAMES
02961 typedef ComponentInstance               internetConfigurationComponent;
02962 
02963 #endif  /* OLDROUTINENAMES */
02964 
02965 #endif  /* CALL_NOT_IN_CARBON */
02966 
02967 /************************************************************************************************
02968   old names for stuff declared above
02969  ************************************************************************************************/
02970 
02971 #if OLDROUTINENAMES
02972 
02973 typedef long                            ICError;
02974 
02975 enum {
02976   ICattr_no_change              = (unsigned long)(kICAttrNoChange),
02977   ICattr_locked_bit             = kICAttrLockedBit,
02978   ICattr_locked_mask            = kICAttrLockedMask,
02979   ICattr_volatile_bit           = kICAttrVolatileBit,
02980   ICattr_volatile_mask          = kICAttrVolatileMask,
02981   icNoUserInteraction_bit       = kICNoUserInteractionBit,
02982   icNoUserInteraction_mask      = kICNoUserInteractionMask,
02983   ICfiletype                    = kICFileType,
02984   ICcreator                     = kICCreator
02985 };
02986 
02987 /*
02988     ICFileInfo was originally used to define the format of a key.
02989     That key was removed, but we forgot to remove ICFileInfo.
02990     I hope to remove it entirely, but for the moment it's available
02991     if you define OLDROUTINENAMES.
02992 */
02993 struct ICFileInfo {
02994   OSType              fType;
02995   OSType              fCreator;
02996   Str63               name;
02997 };
02998 typedef struct ICFileInfo               ICFileInfo;
02999 typedef ICFileInfo *                    ICFileInfoPtr;
03000 typedef ICFileInfoPtr *                 ICFileInfoHandle;
03001 
03002 enum {
03003   ICfile_spec_header_size       = kICFileSpecHeaderSize
03004 };
03005 
03006 enum {
03007   ICmap_binary_bit              = kICMapBinaryBit,
03008   ICmap_binary_mask             = kICMapBinaryMask,
03009   ICmap_resource_fork_bit       = kICMapResourceForkBit,
03010   ICmap_resource_fork_mask      = kICMapResourceForkMask,
03011   ICmap_data_fork_bit           = kICMapDataForkBit,
03012   ICmap_data_fork_mask          = kICMapDataForkMask,
03013   ICmap_post_bit                = kICMapPostBit,
03014   ICmap_post_mask               = kICMapPostMask,
03015   ICmap_not_incoming_bit        = kICMapNotIncomingBit,
03016   ICmap_not_incoming_mask       = kICMapNotIncomingMask,
03017   ICmap_not_outgoing_bit        = kICMapNotOutgoingBit,
03018   ICmap_not_outgoing_mask       = kICMapNotOutgoingMask,
03019   ICmap_fixed_length            = kICMapFixedLength
03020 };
03021 
03022 enum {
03023   ICservices_tcp_bit            = kICServicesTCPBit,
03024   ICservices_tcp_mask           = kICServicesTCPMask,
03025   ICservices_udp_bit            = kICServicesUDPBit,
03026   ICservices_udp_mask           = kICServicesUDPMask
03027 };
03028 
03029 /*    This definitions are a) very long, and b) don't conform
03030     to Mac OS standards for naming constants, so I've put
03031     them in only if you're using OLDROUTINENAMES.  Please switch
03032     to the new names given above.
03033 */
03034 enum {
03035   internetConfigurationComponentType = FOUR_CHAR_CODE('PREF'), /* the component type */
03036   internetConfigurationComponentSubType = FOUR_CHAR_CODE('ICAp'), /* the component subtype */
03037   internetConfigurationComponentInterfaceVersion0 = 0x00000000, /* IC >= 1.0 */
03038   internetConfigurationComponentInterfaceVersion1 = 0x00010000, /* IC >= 1.1 */
03039   internetConfigurationComponentInterfaceVersion2 = 0x00020000, /* IC >= 1.2 */
03040   internetConfigurationComponentInterfaceVersion3 = 0x00030000, /* IC >= 2.0 */
03041                                         /* current version number is version 3 */
03042   internetConfigurationComponentInterfaceVersion = internetConfigurationComponentInterfaceVersion3
03043 };
03044 
03045 #endif  /* OLDROUTINENAMES */
03046 
03047 
03048 #if PRAGMA_STRUCT_ALIGN
03049     #pragma options align=reset
03050 #elif PRAGMA_STRUCT_PACKPUSH
03051     #pragma pack(pop)
03052 #elif PRAGMA_STRUCT_PACK
03053     #pragma pack()
03054 #endif
03055 
03056 #ifdef PRAGMA_IMPORT_OFF
03057 #pragma import off
03058 #elif PRAGMA_IMPORT
03059 #pragma import reset
03060 #endif
03061 
03062 #ifdef __cplusplus
03063 }
03064 #endif
03065 
03066 #endif /* __INTERNETCONFIG__ */
03067 

This A:M SDK v12.0 documentation is maintained by Hash Inc. Please address any comments concerning this documentation to AMReports. If you have any information, knowledge, or documentation to share with the A:M developer community, please post them on the Hash SDK forum.

Generated on Thu Oct 27 11:46:44 2005 with doxygen 1.4.5 written by Dimitri van Heesch, © 1997-2001