Mac OS 9
InternetConfig.h
Go to the documentation of this file.
1 
35 /***********************************************************************************************/
36 
37 #ifndef __INTERNETCONFIG__
38 #define __INTERNETCONFIG__
39 
40 #ifndef __ALIASES__
41 #include <Aliases.h>
42 #endif
43 
44 #ifndef __COMPONENTS__
45 #include <Components.h>
46 #endif
47 
48 #ifndef __AEDATAMODEL__
49 #include <AEDataModel.h>
50 #endif
51 
52 #if PRAGMA_ONCE
53 #pragma once
54 #endif
55 
56 #ifdef __cplusplus
57 extern "C"
58 {
59 #endif
60 
61 #if PRAGMA_IMPORT
62 #pragma import on
63 #endif
64 
65 #if PRAGMA_STRUCT_ALIGN
66 #pragma options align = mac68k
67 #elif PRAGMA_STRUCT_PACKPUSH
68 #pragma pack(push, 2)
69 #elif PRAGMA_STRUCT_PACK
70 #pragma pack(2)
71 #endif
72 
73  /************************************************************************************************
74  IC error codes
75  ************************************************************************************************/
76 
77  enum
78  {
79  icPrefNotFoundErr = -666, /* preference not found (duh!) */
80  icPermErr = -667, /* cannot set preference */
81  icPrefDataErr = -668, /* problem with preference data */
82  icInternalErr = -669, /* hmm, this is not good */
83  icTruncatedErr = -670, /* more data was present than was returned */
84  icNoMoreWritersErr = -671, /* you cannot begin a write session because someone
85  else is already doing it */
86  icNothingToOverrideErr =
87  -672, /* no component for the override component to capture */
88  icNoURLErr = -673, /* no URL found */
89  icConfigNotFoundErr = -674, /* no configuration was found */
90  icConfigInappropriateErr = -675, /* incorrect manufacturer code */
91  icProfileNotFoundErr = -676, /* profile not found */
92  icTooManyProfilesErr = -677 /* too many profiles in database */
93  };
94 
95  /************************************************************************************************
96  IC versions (not necessarily, but historically, from a component)
97  ************************************************************************************************/
98 
99  enum
100  {
101  kICComponentInterfaceVersion0 = 0x00000000, /* IC >= 1.0 */
102  kICComponentInterfaceVersion1 = 0x00010000, /* IC >= 1.1 */
103  kICComponentInterfaceVersion2 = 0x00020000, /* IC >= 1.2 */
104  kICComponentInterfaceVersion3 = 0x00030000, /* IC >= 2.0 */
105  kICComponentInterfaceVersion4 = 0x00040000, /* IC >= 2.5 */
106  kICComponentInterfaceVersion =
107  kICComponentInterfaceVersion4 /* current version number is 4 */
108  };
109 
110  /************************************************************************************************
111  opaque type for preference reference
112  ************************************************************************************************/
113 
114  typedef struct OpaqueICInstance *ICInstance;
115 
116  /************************************************************************************************
117  a record that specifies a folder, an array of such records, and a pointer to
118  such an array
119  ************************************************************************************************/
120  struct ICDirSpec
121  {
122  short vRefNum;
123  long dirID;
124  };
125  typedef struct ICDirSpec ICDirSpec;
126  typedef ICDirSpec ICDirSpecArray[4];
127  typedef ICDirSpecArray *ICDirSpecArrayPtr;
128 
129  /************************************************************************************************
130  preference attributes type, bit number constants, and mask constants
131  ************************************************************************************************/
132  typedef UInt32 ICAttr;
133 
134  enum
135  {
136  kICAttrLockedBit = 0,
137  kICAttrVolatileBit = 1
138  };
139 
140  enum
141  {
142  kICAttrNoChange =
143  (unsigned long)0xFFFFFFFF, /* pass this to ICSetPref to tell it not to
144  change the attributes */
145  kICAttrLockedMask = 0x00000001,
146  kICAttrVolatileMask = 0x00000002
147  };
148 
149  /************************************************************************************************
150  permissions for use with ICBegin
151  ************************************************************************************************/
152 
153  typedef UInt8 ICPerm;
154 
155  enum
156  {
157  icNoPerm = 0,
158  icReadOnlyPerm = 1,
159  icReadWritePerm = 2
160  };
161 
162  /************************************************************************************************
163  a reference to an instance's current configuration
164  ************************************************************************************************/
165 
166 #if CALL_NOT_IN_CARBON
167  struct ICConfigRef
168  {
169  OSType manufacturer;
170  /* other private data follows */
171  };
172  typedef struct ICConfigRef ICConfigRef;
173  typedef ICConfigRef *ICConfigRefPtr;
175 
176 #endif /* CALL_NOT_IN_CARBON */
177 
178  /************************************************************************************************
179  profile IDs
180  ************************************************************************************************/
181  typedef long ICProfileID;
182  typedef ICProfileID *ICProfileIDPtr;
183 
184  enum
185  {
186  kICNilProfileID = 0
187  };
188 
189  /************************************************************************************************
190  other constants
191  ************************************************************************************************/
192 
193  enum
194  {
195  kICNoUserInteractionBit = 0
196  };
197 
198  enum
199  {
200  kICNoUserInteractionMask = 0x00000001
201  };
202 
203  enum
204  {
205  kICFileType = FOUR_CHAR_CODE('ICAp'),
206  kICCreator = FOUR_CHAR_CODE('ICAp')
207  };
208 
209  /************************************************************************************************
210  Apple event constants
211  ************************************************************************************************/
212 
213  enum
214  {
215  kInternetEventClass = FOUR_CHAR_CODE('GURL'),
216  kAEGetURL = FOUR_CHAR_CODE('GURL'),
217  kAEFetchURL = FOUR_CHAR_CODE('FURL'),
218  keyAEAttaching = FOUR_CHAR_CODE('Atch')
219  };
220 
221  /* AERegistry.i defines a compatible keyAEDestination */
222 
223  enum
224  {
225  kICEditPreferenceEventClass = FOUR_CHAR_CODE('ICAp'),
226  kICEditPreferenceEvent = FOUR_CHAR_CODE('ICAp'),
227  keyICEditPreferenceDestination = FOUR_CHAR_CODE('dest')
228  };
229 
230  /************************************************************************************************
231  constants for use with ICGetVersion
232  ************************************************************************************************/
233 
234  enum
235  {
236  kICComponentVersion = 0, /* Return a component version, comparable to
237  kICComponentInterfaceVersion */
238  kICNumVersion = 1 /* Return a NumVersion structure */
239  };
240 
241  /************************************************************************************************
242  types and constants for use with kICDocumentFont, et. al.
243  ************************************************************************************************/
245  {
246  short size;
247  Style face;
248  char pad;
249  Str255 font;
250  };
251  typedef struct ICFontRecord ICFontRecord;
252  typedef ICFontRecord *ICFontRecordPtr;
254 
255  /************************************************************************************************
256  types and constants for use with kICCharacterSet, et. al.
257  ************************************************************************************************/
258  struct ICCharTable
259  {
260  unsigned char netToMac[256];
261  unsigned char macToNet[256];
262  };
263  typedef struct ICCharTable ICCharTable;
264  typedef ICCharTable *ICCharTablePtr;
266 
267  /************************************************************************************************
268  types and constants for use with kICHelper, et. al.
269  ************************************************************************************************/
270  struct ICAppSpec
271  {
272  OSType fCreator;
273  Str63 name;
274  };
275  typedef struct ICAppSpec ICAppSpec;
276  typedef ICAppSpec *ICAppSpecPtr;
277  typedef ICAppSpecPtr *ICAppSpecHandle;
279  {
280  short numberOfItems;
281  ICAppSpec appSpecs[1];
282  };
283  typedef struct ICAppSpecList ICAppSpecList;
286 
287  /************************************************************************************************
288  types and constants for use with kICDownloadFolder, et. al.
289  ************************************************************************************************/
290 
291 #if !OLDROUTINENAMES
292  struct ICFileSpec
293  {
294  Str31 volName;
295  long volCreationDate;
296  FSSpec fss;
297  AliasRecord alias;
298  /* plus extra data, aliasSize 0 means no alias manager present when*/
299  /* ICFileSpecification was created*/
300  };
301  typedef struct ICFileSpec ICFileSpec;
302  typedef ICFileSpec *ICFileSpecPtr;
304 #else
305 struct ICFileSpec
306 {
307  Str31 vol_name;
308  long vol_creation_date;
309  FSSpec fss;
310  AliasRecord alias;
311 };
312 typedef struct ICFileSpec ICFileSpec;
313 typedef ICFileSpec *ICFileSpecPtr;
315 #endif /* !OLDROUTINENAMES */
316 
317  enum
318  {
319  kICFileSpecHeaderSize = sizeof(ICFileSpec) - sizeof(AliasRecord)
320  };
321 
322  /************************************************************************************************
323  types and constants for use with ICMapFilename, et. al.
324  ************************************************************************************************/
325  typedef long ICMapEntryFlags;
326  typedef short ICFixedLength;
327 
328 #if !OLDROUTINENAMES
329  struct ICMapEntry
330  {
331  short totalLength;
332  ICFixedLength fixedLength;
333  short version;
334  OSType fileType;
335  OSType fileCreator;
336  OSType postCreator;
337  ICMapEntryFlags flags;
338  /* variable part starts here*/
339  Str255 extension;
340  Str255 creatorAppName;
341  Str255 postAppName;
342  Str255 MIMEType;
343  Str255 entryName;
344  };
345  typedef struct ICMapEntry ICMapEntry;
346  typedef ICMapEntry *ICMapEntryPtr;
348 
349 #else
350 struct ICMapEntry
351 {
352  short total_length;
353  ICFixedLength fixed_length;
354  short version;
355  OSType file_type;
356  OSType file_creator;
357  OSType post_creator;
358  ICMapEntryFlags flags;
359  Str255 extension;
360  Str255 creator_app_name;
361  Str255 post_app_name;
362  Str255 MIME_type;
363  Str255 entry_name;
364 };
365 typedef struct ICMapEntry ICMapEntry;
366 typedef ICMapEntry *ICMapEntryPtr;
368 #endif /* !OLDROUTINENAMES */
369 
370  enum
371  {
372  kICMapFixedLength = 22 /* number in fixedLength field*/
373  };
374 
375  enum
376  {
377  kICMapBinaryBit =
378  0, /* file should be transfered in binary as opposed to text mode*/
379  kICMapResourceForkBit = 1, /* the resource fork of the file is significant*/
380  kICMapDataForkBit = 2, /* the data fork of the file is significant*/
381  kICMapPostBit = 3, /* post process using post fields*/
382  kICMapNotIncomingBit = 4, /* ignore this mapping for incoming files*/
383  kICMapNotOutgoingBit = 5 /* ignore this mapping for outgoing files*/
384  };
385 
386  enum
387  {
388  kICMapBinaryMask = 0x00000001, /* file should be transfered in binary as
389  opposed to text mode*/
390  kICMapResourceForkMask =
391  0x00000002, /* the resource fork of the file is significant*/
392  kICMapDataForkMask = 0x00000004, /* the data fork of the file is significant*/
393  kICMapPostMask = 0x00000008, /* post process using post fields*/
394  kICMapNotIncomingMask =
395  0x00000010, /* ignore this mapping for incoming files*/
396  kICMapNotOutgoingMask = 0x00000020 /* ignore this mapping for outgoing files*/
397  };
398 
399  /************************************************************************************************
400  types and constants for use with kICServices, et. al.
401  ************************************************************************************************/
402  typedef short ICServiceEntryFlags;
404  {
405  Str255 name;
406  short port;
407  ICServiceEntryFlags flags;
408  };
409  typedef struct ICServiceEntry ICServiceEntry;
412 
413  enum
414  {
415  kICServicesTCPBit = 0,
416  kICServicesUDPBit = 1 /* both bits can be set, which means the service is both
417  TCP and UDP, eg daytime*/
418  };
419 
420  enum
421  {
422  kICServicesTCPMask = 0x00000001,
423  kICServicesUDPMask = 0x00000002 /* both bits can be set, which means the
424  service is both TCP and UDP, eg daytime*/
425  };
426 
427  struct ICServices
428  {
429  short count;
430  ICServiceEntry services[1];
431  };
432  typedef struct ICServices ICServices;
433  typedef ICServices *ICServicesPtr;
435 
436  /************************************************************************************************
437  default file name, for internal use, overridden by a component resource
438  ************************************************************************************************/
439 
440 #if CALL_NOT_IN_CARBON
441 #define kICDefaultFileName "\pInternet Preferences"
442 #endif /* CALL_NOT_IN_CARBON */
443 
444 /************************************************************************************************
445  keys
446  ************************************************************************************************/
450 #define kICReservedKey "\pkICReservedKey"
454 #define kICArchieAll "\pArchieAll"
458 #define kICArchiePreferred "\pArchiePreferred"
462 #define kICCharacterSet "\pCharacterSet"
466 #define kICDocumentFont "\pDocumentFont"
470 #define kICDownloadFolder "\pDownloadFolder"
474 #define kICEmail "\pEmail"
478 #define kICFTPHost "\pFTPHost"
482 #define kICFTPProxyAccount "\pFTPProxyAccount"
486 #define kICFTPProxyHost "\pFTPProxyHost"
490 #define kICFTPProxyPassword "\pFTPProxyPassword"
494 #define kICFTPProxyUser "\pFTPProxyUser"
498 #define kICFingerHost "\pFingerHost"
502 #define kICGopherHost "\pGopherHost"
506 #define kICGopherProxy "\pGopherProxy"
510 #define kICHTTPProxyHost "\pHTTPProxyHost"
514 #define kICHelper "\pHelper�"
518 #define kICHelperDesc "\pHelperDesc�"
522 #define kICHelperList "\pHelperList�"
526 #define kICIRCHost "\pIRCHost"
530 #define kICInfoMacAll "\pInfoMacAll"
534 #define kICInfoMacPreferred "\pInfoMacPreferred"
538 #define kICLDAPSearchbase "\pLDAPSearchbase"
542 #define kICLDAPServer "\pLDAPServer"
546 #define kICListFont "\pListFont"
550 #define kICMacSearchHost "\pMacSearchHost"
554 #define kICMailAccount "\pMailAccount"
558 #define kICMailHeaders "\pMailHeaders"
562 #define kICMailPassword "\pMailPassword"
566 #define kICMapping "\pMapping"
570 #define kICNNTPHost "\pNNTPHost"
574 #define kICNTPHost "\pNTPHost"
578 #define kICNewMailDialog "\pNewMailDialog"
582 #define kICNewMailFlashIcon "\pNewMailFlashIcon"
586 #define kICNewMailPlaySound "\pNewMailPlaySound"
590 #define kICNewMailSoundName "\pNewMailSoundName"
594 #define kICNewsAuthPassword "\pNewsAuthPassword"
598 #define kICNewsAuthUsername "\pNewsAuthUsername"
602 #define kICNewsHeaders "\pNewsHeaders"
606 #define kICNoProxyDomains "\pNoProxyDomains"
610 #define kICOrganization "\pOrganization"
614 #define kICPhHost "\pPhHost"
618 #define kICPlan "\pPlan"
622 #define kICPrinterFont "\pPrinterFont"
626 #define kICQuotingString "\pQuotingString"
630 #define kICRealName "\pRealName"
634 #define kICRTSPProxyHost "\pRTSPProxyHost"
638 #define kICSMTPHost "\pSMTPHost"
642 #define kICScreenFont "\pScreenFont"
646 #define kICServices "\pServices"
650 #define kICSignature "\pSignature"
654 #define kICSnailMailAddress "\pSnailMailAddress"
659 #define kICSocksHost "\pSocksHost"
663 #define kICTelnetHost "\pTelnetHost"
667 #define kICUMichAll "\pUMichAll"
671 #define kICUMichPreferred "\pUMichPreferred"
675 #define kICUseFTPProxy "\pUseFTPProxy"
679 #define kICUseGopherProxy "\pUseGopherProxy"
683 #define kICUseHTTPProxy "\pUseHTTPProxy"
687 #define kICUsePassiveFTP "\pUsePassiveFTP"
691 #define kICUseRTSPProxy "\pUseRTSPProxy"
695 #define kICUseSocks "\pUseSocks"
699 #define kICWAISGateway "\pWAISGateway"
703 #define kICWWWHomePage "\pWWWHomePage"
707 #define kICWebBackgroundColour "\pWebBackgroundColour"
711 #define kICWebReadColor "\p646F6777�WebReadColor"
715 #define kICWebSearchPagePrefs "\pWebSearchPagePrefs"
719 #define kICWebTextColor "\pWebTextColor"
723 #define kICWebUnderlineLinks "\p646F6777�WebUnderlineLinks"
727 #define kICWebUnreadColor "\p646F6777�WebUnreadColor"
731 #define kICWhoisHost "\pWhoisHost"
732 
733  /************************************************************************************************
734 
735  FUNCTIONS
736 
737  What do the annotations after each API mean?
738  --------------------------------------------
739 
740  [r1] Requires IC 1.1 or higher.
741  [r2] Requires IC 1.2 or higher.
742  [r3] Requires IC 2.0 or higher.
743  [r4] Requires IC 2.5 or higher.
744 
745  IMPORTANT:
746 
747  In IC 2.5, instances automatically use the default configuration.
748  You no longer need to configure an instance explicitly, except
749  if your code might run with an older version of IC. So the following
750  notes only apply to IC 2.0 and earlier.
751 
752  [c1] You must have specified a configuration before calling this routine.
753 
754  [c2] You must have specified the default configuration before calling
755  this routine.
756 
757  [c3] You do not need to specify a configuration before calling this
758  routine.
759 
760  [b1] You must be inside a Begin/End pair when calling this routine.
761 
762  [b2] You must be inside a Begin/End read/write pair when calling this
763  routine.
764 
765  [b3] You do not need to be inside a Begin/End pair when calling this
766  routine.
767 
768  [b4] If you are getting or setting multiple preferences, you should make
769  this call inside a Begin/End pair. If you do not make this call inside a
770  Begin/End pair, the call will automatically do it for you.
771 
772  [b5] It is illegal to call this routine inside a Begin/End pair.
773 
774  ************************************************************************************************/
775 
776  /* ***** Starting Up and Shutting Down ***** */
785  OSStatus
786  ICStart(ICInstance *inst, OSType signature);
787 
788  /* Call this at application initialisation. Set signature to a value
789  * which has been regsitered with DTS to allow for future expansion
790  * of the IC system. Returns inst as a connection to the IC system.
791  */
800  OSStatus
801  ICStop(ICInstance inst);
802 
803  /* [b5]
804  * Call this at application initialisation, after which inst
805  * is no longer valid connection to IC.
806  */
815  OSStatus
816  ICGetVersion(ICInstance inst, long whichVersion, UInt32 *version);
817 
818 /* [r4] [c3] [b3]
819  * Returns the version of Internet Config. Pass kICComponentVersion
820  * to get the version as previously returned by GetComponenVerson.
821  * Pass kICNumVersion to get a NumVersion structure.
822  */
823 /* ***** Specifying a Configuration ***** */
824 #if CALL_NOT_IN_CARBON
833  OSStatus
834  ICFindConfigFile(ICInstance inst, short count, ICDirSpecArrayPtr folders);
835 
836  /* [b5]
837  * Call to configure this connection to IC.
838  * Set count as the number of valid elements in folders.
839  * Set folders to a pointer to the folders to search.
840  * Setting count to 0 and folders to nil is OK.
841  * Searches the specified folders and then the Preferences folder
842  * in a unspecified manner.
843  */
852  OSStatus
854 
855  /* [r1] [b5]
856  * Similar to ICFindConfigFile except that it only searches the folder
857  * specified in where. If the input parameters are valid the routine
858  * will always successful configure the instance, creating an
859  * empty configuration if necessary
860  * For use with double-clickable preference files.
861  */
870  OSStatus
871  ICGeneralFindConfigFile(ICInstance inst, Boolean searchPrefs, Boolean canCreate,
872  short count, ICDirSpecArrayPtr folders);
873 
874  /* [r2] [b5]
875  * Call to configure this connection to IC.
876  * This routine acts as a more general replacement for
877  * ICFindConfigFile and ICFindUserConfigFile.
878  * Set search_prefs to true if you want it to search the preferences folder.
879  * Set can_create to true if you want it to be able to create a new config.
880  * Set count as the number of valid elements in folders.
881  * Set folders to a pointer to the folders to search.
882  * Setting count to 0 and folders to nil is OK.
883  * Searches the specified folders and then optionally the Preferences folder
884  * in a unspecified manner.
885  */
894  OSStatus
895  ICChooseConfig(ICInstance inst);
896 
897  /* [r2] [b5]
898  * Requests the user to choose a configuration, typically using some
899  * sort of modal dialog. If the user cancels the dialog the configuration
900  * state will be unaffected.
901  */
910  OSStatus
911  ICChooseNewConfig(ICInstance inst);
912 
913 /* [r2] [b5]
914  * Requests the user to create a new configuration, typically using some
915  * sort of modal dialog. If the user cancels the dialog the configuration
916  * state will be unaffected.
917  */
918 #endif /* CALL_NOT_IN_CARBON */
919 
928  OSStatus
929  ICGetConfigName(ICInstance inst, Boolean longname, Str255 name);
930 
931 /* [r2] [c1] [b3]
932  * Returns a string that describes the current configuration at a user
933  * level. Set longname to true if you want a long name, up to 255
934  * characters, or false if you want a short name, typically about 32
935  * characters.
936  * The returned string is for user display only. If you rely on the
937  * exact format of it, you will conflict with any future IC
938  * implementation that doesn't use explicit preference files.
939  */
940 #if CALL_NOT_IN_CARBON
949  OSStatus
951 
952  /* [r2] [c1] [b3]
953  * Returns a self-contained reference to the instance's current
954  * configuration.
955  * ref must be a valid non-nil handle and it will be resized to fit the
956  * resulting data.
957  */
966  OSStatus
967  ICSetConfigReference(ICInstance inst, ICConfigRefHandle ref, long flags);
968 
969  /* [r2] [b5]
970  * Reconfigures the instance using a configuration reference that was
971  * got using ICGetConfigReference reference. Set the
972  * icNoUserInteraction_bit in flags if you require that this routine
973  * not present a modal dialog. Other flag bits are reserved and should
974  * be set to zero.
975  * ref must not be nil.
976  */
977  /* ***** Private Routines *****
978  *
979  * If you are calling these routines, you are most probably doing something
980  * wrong. Please read the documentation for more details.
981  */
990  OSStatus
991  ICSpecifyConfigFile(ICInstance inst, FSSpec *config);
992 
993  /* [b5]
994  * For use only by the IC application.
995  * If you call this routine yourself, you will conflict with any
996  * future IC implementation that doesn't use explicit preference files.
997  */
1006  OSStatus
1007  ICRefreshCaches(ICInstance inst);
1008 
1009 /* [r3] [c1] [b3]
1010  * For use only by the IC application.
1011  * If you call this routine yourself, you will conflict with any
1012  * future IC implementation that doesn't use explicit preference files.
1013  */
1014 /* ***** Getting Information ***** */
1015 #endif /* CALL_NOT_IN_CARBON */
1016 
1025  OSStatus
1026  ICGetSeed(ICInstance inst, long *seed);
1027 
1028  /* [c3] [b3]
1029  * Returns the current seed for the IC prefs database.
1030  * This seed changes each time a non-volatile preference is changed.
1031  * You can poll this to determine if any cached preferences change.
1032  */
1041  OSStatus
1042  ICGetPerm(ICInstance inst, ICPerm *perm);
1043 
1044 /* [c3] [b3]
1045  * Returns the access permissions currently associated with this instance.
1046  * While applications normally know what permissions they have,
1047  * this routine is designed for use by override components.
1048  */
1049 #if CALL_NOT_IN_CARBON
1058  OSStatus
1059  ICDefaultFileName(ICInstance inst, Str63 name);
1060 
1061  /* [c3] [b3]
1062  * Returns the default file name for IC preference files.
1063  * Applications should never need to call this routine.
1064  * If you rely on information returned by this routine yourself,
1065  * you may conflict with any future IC implementation that doesn't use
1066  * explicit preference files.
1067  * The component calls this routine to set up the default IC file name.
1068  * This allows this operation to be intercepted by a component that has
1069  * captured us. It currently gets it from the component resource file.
1070  * The glue version is hardwired to "Internet Preferences".
1071  */
1080  OSStatus
1081  ICGetComponentInstance(ICInstance inst, ComponentInstance *componentInst);
1082 
1083 /* [c3] [b3]
1084  * Returns noErr and the connection to the IC component,
1085  * if we're using the component.
1086  * Returns badComponenInstance and nil if we're operating with glue.
1087  */
1088 /* ***** Reading and Writing Preferences ***** */
1089 #endif /* CALL_NOT_IN_CARBON */
1090 
1099  OSStatus
1100  ICBegin(ICInstance inst, ICPerm perm);
1101 
1102  /* [c1] [b5]
1103  * Starting reading or writing multiple preferences.
1104  * A call to this must be balanced by a call to ICEnd.
1105  * Do not call WaitNextEvent between these calls.
1106  * The perm specifies whether you intend to read or read/write.
1107  * Only one writer is allowed per instance.
1108  * Note that this may open resource files that are not closed
1109  * until you call ICEnd.
1110  */
1119  OSStatus
1120  ICGetPref(ICInstance inst, ConstStr255Param key, ICAttr *attr, void *buf,
1121  long *size);
1122 
1123  /* [c1] [b4]
1124  * Reads the preference specified by key from the IC database to the
1125  * buffer pointed to by buf and size.
1126  * key must not be the empty string.
1127  * If buf is nil then no data is returned.
1128  * size must be non-negative.
1129  * attr and size are always set on return. On errors (except icTruncatedErr)
1130  * attr is set to ICattr_no_change and size is set to 0.
1131  * size is the actual size of the data.
1132  * attr is set to the attributes associated with the preference.
1133  * If this routine returns icTruncatedErr then the other returned
1134  * values are valid except that only the first size bytes have been
1135  * return. size is adjusted to reflect the true size of the preference.
1136  * Returns icPrefNotFound if there is no preference for the key.
1137  */
1146  OSStatus
1147  ICSetPref(ICInstance inst, ConstStr255Param key, ICAttr attr, const void *buf,
1148  long size);
1149 
1150  /* [c1] [b4]
1151  * Sets the preference specified by key from the IC database to the
1152  * value pointed to by buf and size.
1153  * key must not be the empty string.
1154  * size must be non-negative.
1155  * If buf is nil then the preference value is not set and size is ignored.
1156  * If buf is not nil then the preference value is set to the size
1157  * bytes pointed to by buf.
1158  * If attr is ICattr_no_change then the preference attributes are not set.
1159  * Otherwise the preference attributes are set to attr.
1160  * Returns icPermErr if the previous ICBegin was passed icReadOnlyPerm.
1161  * Returns icPermErr if current attr is locked, new attr is locked and buf <>
1162  * nil.
1163  */
1172  OSStatus
1173  ICFindPrefHandle(ICInstance inst, ConstStr255Param key, ICAttr *attr,
1174  Handle prefh);
1175 
1176  /* [r2] [c1] [b4]
1177  * This routine effectively replaces ICGetPrefHandle.
1178  * Reads the preference specified by key from the IC database into
1179  * a handle, prefh.
1180  * key must not be the empty string.
1181  * attr is set to the attributes associated with the preference.
1182  * You must set prefh to a non-nil handle before calling this routine.
1183  * If the preference does not exist, icPrefNotFoundErr is returned.
1184  */
1193  OSStatus
1194  ICGetPrefHandle(ICInstance inst, ConstStr255Param key, ICAttr *attr,
1195  Handle *prefh);
1196 
1197  /* [r1] [c1] [b4]
1198  * This routine is now obsolete. Use ICFindPrefHandle instead.
1199  * Reads the preference specified by key from the IC database into
1200  * a newly created handle, prefh.
1201  * key must not be the empty string.
1202  * attr is set to the attributes associated with the preference.
1203  * The incoming value of prefh is ignored.
1204  * A new handle is created in the current heap and returned in prefh.
1205  * If the routine returns an error, prefh is set to nil.
1206  * If the preference does not exist, no error is returned and prefh is set
1207  * to an empty handle.
1208  */
1217  OSStatus
1218  ICSetPrefHandle(ICInstance inst, ConstStr255Param key, ICAttr attr,
1219  Handle prefh);
1220 
1221  /* [r1] [c1] [b4]
1222  * Sets the preference specified by key from the IC database to the
1223  * value contained in prefh.
1224  * key must not be the empty string.
1225  * If prefh is nil then the preference value is not set.
1226  * If buf is not nil then the preference value is set to the data
1227  * contained in it.
1228  * If attr is ICattr_no_change then the preference attributes are not set.
1229  * Otherwise the preference attributes are set to attr.
1230  * Returns icPermErr if the previous ICBegin was passed icReadOnlyPerm.
1231  * Returns icPermErr if current attr is locked, new attr is locked and prefh <>
1232  * nil.
1233  */
1242  OSStatus
1243  ICCountPref(ICInstance inst, long *count);
1244 
1245  /* [c1] [b1]
1246  * Counts the total number of preferences.
1247  * If the routine returns an error, count is set to 0.
1248  */
1257  OSStatus
1258  ICGetIndPref(ICInstance inst, long index, Str255 key);
1259 
1260  /* [c1] [b1]
1261  * Returns the key of the index'th preference.
1262  * index must be positive.
1263  * Returns icPrefNotFoundErr if index is greater than the total number of
1264  * preferences. If the routine returns an error, key is undefined.
1265  */
1274  OSStatus
1275  ICDeletePref(ICInstance inst, ConstStr255Param key);
1276 
1277  /* [c1] [b2]
1278  * Deletes the preference specified by key.
1279  * key must not be the empty string.
1280  * Returns icPrefNotFound if the preference specified by key is not present.
1281  */
1290  OSStatus
1291  ICEnd(ICInstance inst);
1292 
1293  /* [c1] [b1]
1294  * Terminates a preference session, as started by ICBegin.
1295  * You must have called ICBegin before calling this routine.
1296  */
1305  OSStatus
1306  ICGetDefaultPref(ICInstance inst, ConstStr255Param key, Handle prefH);
1307 
1308  /* [r4] [c3] [b5]
1309  * Returns a default preference value for the specified key. You
1310  * must pass in a valid prefH, which is resized to fit the data.
1311  */
1312  /* ***** User Interface Stuff ***** */
1321  OSStatus
1322  ICEditPreferences(ICInstance inst, ConstStr255Param key);
1323 
1324  /* [r1] [c1] [b3]
1325  * Instructs IC to display the user interface associated with editing
1326  * preferences and focusing on the preference specified by key.
1327  * If key is the empty string then no preference should be focused upon.
1328  * You must have specified a configuration before calling this routine.
1329  * You do not need to call ICBegin before calling this routine.
1330  * In the current implementation this launches the IC application
1331  * (or brings it to the front) and displays the window containing
1332  * the preference specified by key.
1333  * It may have a radically different implementation in future
1334  * IC systems.
1335  */
1336  /* ***** URL Handling ***** */
1345  OSStatus
1346  ICLaunchURL(ICInstance inst, ConstStr255Param hint, const void *data, long len,
1347  long *selStart, long *selEnd);
1348 
1349  /* [r1] [c1] [b3]
1350  * Parses a URL out of the specified text and feeds it off to the
1351  * appropriate helper.
1352  * hint indicates the default scheme for URLs of the form "name@address".
1353  * If hint is the empty string then URLs of that form are not allowed.
1354  * data points to the start of the text. It must not be nil.
1355  * len indicates the length of the text. It must be non-negative.
1356  * selStart and selEnd should be passed in as the current selection of
1357  * the text. This selection is given in the same manner as TextEdit,
1358  * ie if selStart = selEnd then there is no selection only an insertion
1359  * point. Also selStart � selEnd and 0 � selStart � len and 0 � selEnd � len.
1360  * selStart and selEnd are returned as the bounds of the URL. If the
1361  * routine returns an error then these new boundaries may be
1362  * invalid but they will be close.
1363  * The URL is parsed out of the text and passed off to the appropriate
1364  * helper using the GURL AppleEvent.
1365  */
1374  OSStatus
1375  ICParseURL(ICInstance inst, ConstStr255Param hint, const void *data, long len,
1376  long *selStart, long *selEnd, Handle url);
1377 
1378  /* [r1] [c1] [b3]
1379  * Parses a URL out of the specified text and returns it in a canonical form
1380  * in a handle.
1381  * hint indicates the default scheme for URLs of the form "name@address".
1382  * If hint is the empty string then URLs of that form are not allowed.
1383  * data points to the start of the text. It must not be nil.
1384  * len indicates the length of the text. It must be non-negative.
1385  * selStart and selEnd should be passed in as the current selection of
1386  * the text. This selection is given in the same manner as TextEdit,
1387  * ie if selStart = selEnd then there is no selection only an insertion
1388  * point. Also selStart � selEnd and 0 � selStart � len and 0 � selEnd � len.
1389  * selStart and selEnd are returned as the bounds of the URL. If the
1390  * routine returns an error then these new boundaries may be
1391  * invalid but they will be close.
1392  * The incoming url handle must not be nil. The resulting URL is normalised
1393  * and copied into the url handle, which is resized to fit.
1394  */
1403  OSStatus
1404  ICCreateGURLEvent(ICInstance inst, OSType helperCreator, Handle urlH,
1405  AppleEvent *theEvent);
1406 
1407  /* [r4] [c1] [b3]
1408  * Creates a GURL Apple event, targetted at the application whose creator
1409  * code is helperCreator, with a direct object containing the URL text from
1410  * urlH.
1411  */
1420  OSStatus
1422 
1423  /* [r4] [c1] [b3]
1424  * Sends theEvent to the target application.
1425  */
1426  /* ***** Mappings Routines *****
1427  *
1428  * Routines for interrogating mappings database.
1429  *
1430  * ----- High Level Routines -----
1431  */
1440  OSStatus
1441  ICMapFilename(ICInstance inst, ConstStr255Param filename, ICMapEntry *entry);
1442 
1443  /* [r1] [c1] [b4]
1444  * Takes the name of an incoming file and returns the most appropriate
1445  * mappings database entry, based on its extension.
1446  * filename must not be the empty string.
1447  * Returns icPrefNotFoundErr if no suitable entry is found.
1448  */
1457  OSStatus
1458  ICMapTypeCreator(ICInstance inst, OSType fType, OSType fCreator,
1459  ConstStr255Param filename, ICMapEntry *entry);
1460 
1461  /* [r1] [c1] [b4]
1462  * Takes the type and creator (and optionally the name) of an outgoing
1463  * file and returns the most appropriate mappings database entry.
1464  * The filename may be either the name of the outgoing file or
1465  * the empty string.
1466  * Returns icPrefNotFoundErr if no suitable entry found.
1467  */
1468  /* ----- Mid Level Routines ----- */
1477  OSStatus
1478  ICMapEntriesFilename(ICInstance inst, Handle entries, ConstStr255Param filename,
1479  ICMapEntry *entry);
1480 
1481  /* [r1] [c1] [b3]
1482  * Takes the name of an incoming file and returns the most appropriate
1483  * mappings database entry, based on its extension.
1484  * entries must be a handle to a valid IC mappings database preference.
1485  * filename must not be the empty string.
1486  * Returns icPrefNotFoundErr if no suitable entry is found.
1487  */
1496  OSStatus
1497  ICMapEntriesTypeCreator(ICInstance inst, Handle entries, OSType fType,
1498  OSType fCreator, ConstStr255Param filename,
1499  ICMapEntry *entry);
1500 
1501  /* [r1] [c1] [b3]
1502  * Takes the type and creator (and optionally the name) of an outgoing
1503  * file and returns the most appropriate mappings database entry.
1504  * entries must be a handle to a valid IC mappings database preference.
1505  * The filename may be either the name of the outgoing file or
1506  * the empty string.
1507  * Returns icPrefNotFoundErr if no suitable entry found.
1508  */
1509  /* ----- Low Level Routines ----- */
1518  OSStatus
1519  ICCountMapEntries(ICInstance inst, Handle entries, long *count);
1520 
1521  /* [r1] [c1] [b3]
1522  * Counts the number of entries in the mappings database.
1523  * entries must be a handle to a valid IC mappings database preference.
1524  * count is set to the number of entries.
1525  */
1534  OSStatus
1535  ICGetIndMapEntry(ICInstance inst, Handle entries, long index, long *pos,
1536  ICMapEntry *entry);
1537 
1538  /* [r1] [c1] [b3]
1539  * Gets the index'th entry in the mappings database.
1540  * entries must be a handle to a valid IC mappings database preference.
1541  * index must be in the range from 1 to the number of entries in the database.
1542  * The value of pos is ignored on input. pos is set to the position of
1543  * the index'th entry in the database and is suitable for passing back
1544  * into ICSetMapEntry.
1545  * Does not return any user data associated with the entry.
1546  */
1555  OSStatus
1556  ICGetMapEntry(ICInstance inst, Handle entries, long pos, ICMapEntry *entry);
1557 
1558  /* [r1] [c1] [b3]
1559  * Returns the entry located at position pos in the mappings database.
1560  * entries must be a handle to a valid IC mappings database preference.
1561  * pos should be 0 to get the first entry. To get the subsequent entries, add
1562  * entry.total_size to pos and iterate.
1563  * Does not return any user data associated with the entry.
1564  */
1573  OSStatus
1574  ICSetMapEntry(ICInstance inst, Handle entries, long pos,
1575  const ICMapEntry *entry);
1576 
1577  /* [r1] [c1] [b3]
1578  * Sets the entry located at position pos in the mappings database.
1579  * entries must be a handle to a valid IC mappings database preference.
1580  * pos should be either a value returned from ICGetIndMapEntry or a value
1581  * calculated using ICGetMapEntry.
1582  * entry is a var parameter purely for stack space reasons. It is not
1583  * modified in any way.
1584  * Any user data associated with the entry is unmodified.
1585  */
1594  OSStatus
1595  ICDeleteMapEntry(ICInstance inst, Handle entries, long pos);
1596 
1597  /* [r1] [c1] [b3]
1598  * Deletes the mappings database entry at pos.
1599  * entries must be a handle to a valid IC mappings database preference.
1600  * pos should be either a value returned from ICGetIndMapEntry or a value
1601  * calculated using ICGetMapEntry.
1602  * Also deletes any user data associated with the entry.
1603  */
1612  OSStatus
1613  ICAddMapEntry(ICInstance inst, Handle entries, const ICMapEntry *entry);
1614 
1615  /* [r1] [c1] [b3]
1616  * Adds an entry to the mappings database.
1617  * entries must be a handle to a valid IC mappings database preference.
1618  * The entry is added to the end of the entries database.
1619  * No user data is added.
1620  */
1621  /* ***** Profile Management Routines ***** */
1630  OSStatus
1631  ICGetCurrentProfile(ICInstance inst, ICProfileID *currentID);
1632 
1633  /* [r3] [c1] [b3]
1634  * Returns the profile ID of the current profile.
1635  */
1644  OSStatus
1645  ICSetCurrentProfile(ICInstance inst, ICProfileID newID);
1646 
1647  /* [r3] [c1] [b3]
1648  * Sets the current profile to the profile specified in newProfile.
1649  */
1658  OSStatus
1659  ICCountProfiles(ICInstance inst, long *count);
1660 
1661  /* [r3] [c1] [b1]
1662  * Returns the total number of profiles.
1663  */
1672  OSStatus
1673  ICGetIndProfile(ICInstance inst, long index, ICProfileID *thisID);
1674 
1675  /* [r3] [c1] [b1]
1676  * Returns the profile ID of the index'th profile. index must be positive.
1677  * Returns icProfileNotFoundErr if index is greater than the total number
1678  * of profiles.
1679  */
1688  OSStatus
1689  ICGetProfileName(ICInstance inst, ICProfileID thisID, Str255 name);
1690 
1691  /* [r3] [c1] [b3]
1692  * Returns the name of a profile given its ID. The name may not uniquely
1693  * identify the profile. [That's what the profile ID is for!] The name
1694  * is assumed to be in the system script.
1695  */
1704  OSStatus
1705  ICSetProfileName(ICInstance inst, ICProfileID thisID, ConstStr255Param name);
1706 
1707  /* [r3] [c1] [b3]
1708  * This routine sets the name of the specified profile. Profile names
1709  * need not be unique. The name should be in the system script.
1710  */
1719  OSStatus
1720  ICAddProfile(ICInstance inst, ICProfileID prototypeID, ICProfileID *newID);
1721 
1722  /* [r3] [c1] [b2]
1723  * If prototypeID = kICNilProfileID, this routine
1724  * creates a default profile, otherwise it creates a
1725  * profile by cloning the prototype profile. The ID
1726  * of the new profile is returned in newID.
1727  * The new profile will be give a new, unique, name.
1728  * This does not switch to the new profile.
1729  */
1738  OSStatus
1739  ICDeleteProfile(ICInstance inst, ICProfileID thisID);
1740 
1741 /* [r3] [c1] [b2]
1742  * This routine deletes the profile specified by
1743  * thisID. Attempting to delete the current profile
1744  * or the last profile will return error.
1745  */
1746 /************************************************************************************************
1747  NOTHING BELOW THIS DIVIDER IS IN CARBON
1748  ************************************************************************************************/
1749 /* ***** Interrupt Safe Routines ***** */
1750 #if CALL_NOT_IN_CARBON
1759  OSStatus
1760  ICRequiresInterruptSafe(ICInstance inst);
1761 
1762  /* [r3] [c2] [b3]
1763  * You must call this routine before calling GetMapEntryInterruptSafe
1764  * to give IC chance to cache the mappings data in memory. The only
1765  * way to clear this state is to close the instance. You can not reconfigure
1766  * the instance after calling this routine.
1767  */
1776  OSStatus
1777  ICGetMappingInterruptSafe(ICInstance inst, Ptr *mappingPref,
1778  long *mappingPrefSize);
1779 
1780  /* [r3] [c2] [b3]
1781  * Returns the "Mapping" preference in an interrupt safe fashion.
1782  * The preference returned pointer is valid until the next
1783  * non-interrupt safe call to IC. Typically this API is used
1784  * by software that needs to map extensions to type and creator
1785  * at interrupt time, eg foreign file systems.
1786  */
1795  OSStatus
1796  ICGetSeedInterruptSafe(ICInstance inst, long *seed);
1797 
1798  /* [r3] [c2] [b3]
1799  * An interrupt safe version of ICGetSeed.
1800  */
1801  /* ***** Starting Up and Shutting Down ***** */
1810  OSStatus
1811  ICCStart(ComponentInstance *inst, OSType creator);
1812 
1813  /* See comment for ICCStart. */
1822  OSStatus
1824 
1825  /* See comment for ICCStop. */
1834  OSStatus
1835  ICCGetVersion(ComponentInstance inst, long whichVersion, UInt32 *version);
1836 
1837  /* See comment for ICCGetVersion. */
1838  /* ***** Specifying a Configuration ***** */
1847  OSStatus
1849  ICDirSpecArrayPtr folders);
1850 
1851  /* See comment for ICCFindConfigFile. */
1860  OSStatus
1862 
1863  /* See comment for ICCFindUserConfigFile. */
1872  OSStatus
1874  Boolean canCreate, short count,
1875  ICDirSpecArrayPtr folders);
1876 
1877  /* See comment for ICCGeneralFindConfigFile. */
1886  OSStatus
1888 
1889  /* See comment for ICCChooseConfig. */
1898  OSStatus
1900 
1901  /* See comment for ICCChooseNewConfig. */
1910  OSStatus
1911  ICCGetConfigName(ComponentInstance inst, Boolean longname, Str255 name);
1912 
1913  /* See comment for ICCGetConfigName. */
1922  OSStatus
1924 
1925  /* See comment for ICCGetConfigReference. */
1934  OSStatus
1936 
1937  /* See comment for ICCSetConfigReference. */
1938  /* ***** Private Routines *****
1939  *
1940  * If you are calling these routines, you are most probably doing something
1941  * wrong. Please read the documentation for more details.
1942  */
1951  OSStatus
1953 
1954  /* See comment for ICCSpecifyConfigFile. */
1963  OSStatus
1965 
1966  /* See comment for ICCRefreshCaches. */
1967  /* ***** Getting Information ***** */
1976  OSStatus
1977  ICCGetSeed(ComponentInstance inst, long *seed);
1978 
1979  /* See comment for ICCGetSeed. */
1988  OSStatus
1989  ICCGetPerm(ComponentInstance inst, ICPerm *perm);
1990 
1991  /* See comment for ICCGetPerm. */
2000  OSStatus
2002 
2003  /* See comment for ICCDefaultFileName. */
2012  OSStatus
2014  ComponentInstance *componentInst);
2015 
2016  /* See comment for ICCGetComponentInstance. */
2017  /* ***** Reading and Writing Preferences ***** */
2026  OSStatus
2027  ICCBegin(ComponentInstance inst, ICPerm perm);
2028 
2029  /* See comment for ICCBegin. */
2038  OSStatus
2039  ICCGetPref(ComponentInstance inst, ConstStr255Param key, ICAttr *attr, Ptr buf,
2040  long *size);
2041 
2042  /* See comment for ICCGetPref. */
2051  OSStatus
2052  ICCSetPref(ComponentInstance inst, ConstStr255Param key, ICAttr attr, Ptr buf,
2053  long size);
2054 
2055  /* See comment for ICCSetPref. */
2064  OSStatus
2065  ICCFindPrefHandle(ComponentInstance inst, ConstStr255Param key, ICAttr *attr,
2066  Handle prefh);
2067 
2068  /* See comment for ICCFindPrefHandle. */
2077  OSStatus
2078  ICCGetPrefHandle(ComponentInstance inst, ConstStr255Param key, ICAttr *attr,
2079  Handle *prefh);
2080 
2081  /* See comment for ICCGetPrefHandle. */
2090  OSStatus
2091  ICCSetPrefHandle(ComponentInstance inst, ConstStr255Param key, ICAttr attr,
2092  Handle prefh);
2093 
2094  /* See comment for ICCSetPrefHandle. */
2103  OSStatus
2104  ICCCountPref(ComponentInstance inst, long *count);
2105 
2106  /* See comment for ICCCountPref. */
2115  OSStatus
2116  ICCGetIndPref(ComponentInstance inst, long index, Str255 key);
2117 
2118  /* See comment for ICCGetIndPref. */
2127  OSStatus
2128  ICCDeletePref(ComponentInstance inst, ConstStr255Param key);
2129 
2130  /* See comment for ICCDeletePref. */
2139  OSStatus
2141 
2142  /* See comment for ICCEnd. */
2151  OSStatus
2152  ICCGetDefaultPref(ComponentInstance inst, ConstStr255Param key, Handle prefH);
2153 
2154  /* See comment for ICCGetDefaultPref. */
2155  /* ***** User Interface Stuff ***** */
2164  OSStatus
2165  ICCEditPreferences(ComponentInstance inst, ConstStr255Param key);
2166 
2167  /* See comment for ICCEditPreferences. */
2168  /* ***** URL Handling ***** */
2177  OSStatus
2178  ICCLaunchURL(ComponentInstance inst, ConstStr255Param hint, Ptr data, long len,
2179  long *selStart, long *selEnd);
2180 
2181  /* See comment for ICCLaunchURL. */
2190  OSStatus
2191  ICCParseURL(ComponentInstance inst, ConstStr255Param hint, Ptr data, long len,
2192  long *selStart, long *selEnd, Handle url);
2193 
2194  /* See comment for ICCParseURL. */
2203  OSStatus
2204  ICCCreateGURLEvent(ComponentInstance inst, OSType helperCreator, Handle urlH,
2205  AppleEvent *theEvent);
2206 
2207  /* See comment for ICCCreateGURLEvent. */
2216  OSStatus
2218 
2219  /* See comment for ICCSendGURLEvent. */
2220  /* ***** Mappings Routines *****
2221  *
2222  * Routines for interrogating mappings database.
2223  *
2224  * ----- High Level Routines -----
2225  */
2234  OSStatus
2235  ICCMapFilename(ComponentInstance inst, ConstStr255Param filename,
2236  ICMapEntry *entry);
2237 
2238  /* See comment for ICCMapFilename. */
2247  OSStatus
2248  ICCMapTypeCreator(ComponentInstance inst, OSType fType, OSType fCreator,
2249  ConstStr255Param filename, ICMapEntry *entry);
2250 
2251  /* See comment for ICCMapTypeCreator. */
2252  /* ----- Mid Level Routines ----- */
2261  OSStatus
2263  ConstStr255Param filename, ICMapEntry *entry);
2264 
2265  /* See comment for ICCMapEntriesFilename. */
2274  OSStatus
2275  ICCMapEntriesTypeCreator(ComponentInstance inst, Handle entries, OSType fType,
2276  OSType fCreator, ConstStr255Param filename,
2277  ICMapEntry *entry);
2278 
2279  /* See comment for ICCMapEntriesTypeCreator. */
2280  /* ----- Low Level Routines ----- */
2289  OSStatus
2290  ICCCountMapEntries(ComponentInstance inst, Handle entries, long *count);
2291 
2292  /* See comment for ICCCountMapEntries. */
2301  OSStatus
2302  ICCGetIndMapEntry(ComponentInstance inst, Handle entries, long index, long *pos,
2303  ICMapEntry *entry);
2304 
2305  /* See comment for ICCGetIndMapEntry. */
2314  OSStatus
2315  ICCGetMapEntry(ComponentInstance inst, Handle entries, long pos,
2316  ICMapEntry *entry);
2317 
2318  /* See comment for ICCGetMapEntry. */
2327  OSStatus
2328  ICCSetMapEntry(ComponentInstance inst, Handle entries, long pos,
2329  ICMapEntry *entry);
2330 
2331  /* See comment for ICCSetMapEntry. */
2340  OSStatus
2341  ICCDeleteMapEntry(ComponentInstance inst, Handle entries, long pos);
2342 
2343  /* See comment for ICCDeleteMapEntry. */
2352  OSStatus
2353  ICCAddMapEntry(ComponentInstance inst, Handle entries, ICMapEntry *entry);
2354 
2355  /* See comment for ICCAddMapEntry. */
2356  /* ***** Profile Management Routines ***** */
2365  OSStatus
2366  ICCGetCurrentProfile(ComponentInstance inst, ICProfileID *currentID);
2367 
2368  /* See comment for ICCGetCurrentProfile. */
2377  OSStatus
2378  ICCSetCurrentProfile(ComponentInstance inst, ICProfileID newID);
2379 
2380  /* See comment for ICCSetCurrentProfile. */
2389  OSStatus
2391 
2392  /* See comment for ICCCountProfiles. */
2401  OSStatus
2402  ICCGetIndProfile(ComponentInstance inst, long index, ICProfileID *thisID);
2403 
2404  /* See comment for ICCGetIndProfile. */
2413  OSStatus
2414  ICCGetProfileName(ComponentInstance inst, ICProfileID thisID, Str255 name);
2415 
2416  /* See comment for ICCGetProfileName. */
2425  OSStatus
2426  ICCSetProfileName(ComponentInstance inst, ICProfileID thisID,
2427  ConstStr255Param name);
2428 
2429  /* See comment for ICCSetProfileName. */
2438  OSStatus
2439  ICCAddProfile(ComponentInstance inst, ICProfileID prototypeID,
2440  ICProfileID *newID);
2441 
2442  /* See comment for ICCAddProfile. */
2451  OSStatus
2452  ICCDeleteProfile(ComponentInstance inst, ICProfileID thisID);
2453 
2454  /* See comment for ICCDeleteProfile. */
2455  /* ***** Interrupt Safe Routines ***** */
2464  OSStatus
2466 
2467  /* See comment for ICCRequiresInterruptSafe. */
2476  OSStatus
2478  long *mappingPrefSize);
2479 
2480  /* See comment for ICCGetMappingInterruptSafe. */
2489  OSStatus
2491 
2492 /* See comment for ICCGetSeedInterruptSafe. */
2493 #endif /* CALL_NOT_IN_CARBON */
2494 
2495 #if CALL_NOT_IN_CARBON
2496 
2497  /************************************************************************************************
2498  component selectors
2499  ************************************************************************************************/
2500 
2501  enum
2502  {
2503  kICCStart = 0,
2504  kICCStop = 1,
2505  kICCGetVersion = 50,
2506  kICCFindConfigFile = 2,
2507  kICCFindUserConfigFile = 14,
2508  kICCGeneralFindConfigFile = 30,
2509  kICCChooseConfig = 33,
2510  kICCChooseNewConfig = 34,
2511  kICCGetConfigName = 35,
2512  kICCGetConfigReference = 31,
2513  kICCSetConfigReference = 32,
2514  kICCSpecifyConfigFile = 3,
2515  kICCRefreshCaches = 47,
2516  kICCGetSeed = 4,
2517  kICCGetPerm = 13,
2518  kICCDefaultFileName = 11,
2519  kICCBegin = 5,
2520  kICCGetPref = 6,
2521  kICCSetPref = 7,
2522  kICCFindPrefHandle = 36,
2523  kICCGetPrefHandle = 26,
2524  kICCSetPrefHandle = 27,
2525  kICCCountPref = 8,
2526  kICCGetIndPref = 9,
2527  kICCDeletePref = 12,
2528  kICCEnd = 10,
2529  kICCGetDefaultPref = 49,
2530  kICCEditPreferences = 15,
2531  kICCLaunchURL = 17,
2532  kICCParseURL = 16,
2533  kICCCreateGURLEvent = 51,
2534  kICCSendGURLEvent = 52,
2535  kICCMapFilename = 24,
2536  kICCMapTypeCreator = 25,
2537  kICCMapEntriesFilename = 28,
2538  kICCMapEntriesTypeCreator = 29,
2539  kICCCountMapEntries = 18,
2540  kICCGetIndMapEntry = 19,
2541  kICCGetMapEntry = 20,
2542  kICCSetMapEntry = 21,
2543  kICCDeleteMapEntry = 22,
2544  kICCAddMapEntry = 23,
2545  kICCGetCurrentProfile = 37,
2546  kICCSetCurrentProfile = 38,
2547  kICCCountProfiles = 39,
2548  kICCGetIndProfile = 40,
2549  kICCGetProfileName = 41,
2550  kICCSetProfileName = 42,
2551  kICCAddProfile = 43,
2552  kICCDeleteProfile = 44,
2553  kICCRequiresInterruptSafe = 45,
2554  kICCGetMappingInterruptSafe = 46,
2555  kICCGetSeedInterruptSafe = 48,
2556  kICCFirstSelector = kICCStart,
2557  kICCLastSelector = 52
2558  };
2559 
2560  /************************************************************************************************
2561  component selector proc infos
2562  ************************************************************************************************/
2563 
2564  enum
2565  {
2566  kICCStartProcInfo = 1008,
2567  kICCStopProcInfo = 240,
2568  kICCGetVersionProcInfo = 4080,
2569  kICCFindConfigFileProcInfo = 3824,
2570  kICCFindUserConfigFileProcInfo = 1008,
2571  kICCGeneralFindConfigFileProcInfo = 58864L,
2572  kICCChooseConfigProcInfo = 240,
2573  kICCChooseNewConfigProcInfo = 240,
2574  kICCGetConfigNameProcInfo = 3568,
2575  kICCGetConfigReferenceProcInfo = 1008,
2576  kICCSetConfigReferenceProcInfo = 4080,
2577  kICCSpecifyConfigFileProcInfo = 1008,
2578  kICCRefreshCachesProcInfo = 240,
2579  kICCGetSeedProcInfo = 1008,
2580  kICCGetPermProcInfo = 1008,
2581  kICCDefaultFileNameProcInfo = 1008,
2582  kICCGetComponentInstanceProcInfo = 1008,
2583  kICCBeginProcInfo = 496,
2584  kICCGetPrefProcInfo = 65520L,
2585  kICCSetPrefProcInfo = 65520L,
2586  kICCFindPrefHandleProcInfo = 16368,
2587  kICCGetPrefHandleProcInfo = 16368,
2588  kICCSetPrefHandleProcInfo = 16368,
2589  kICCCountPrefProcInfo = 1008,
2590  kICCGetIndPrefProcInfo = 4080,
2591  kICCDeletePrefProcInfo = 1008,
2592  kICCEndProcInfo = 240,
2593  kICCGetDefaultPrefProcInfo = 4080,
2594  kICCEditPreferencesProcInfo = 1008,
2595  kICCLaunchURLProcInfo = 262128L,
2596  kICCParseURLProcInfo = 1048560L,
2597  kICCCreateGURLEventProcInfo = 16368,
2598  kICCSendGURLEventProcInfo = 1008,
2599  kICCMapFilenameProcInfo = 4080,
2600  kICCMapTypeCreatorProcInfo = 65520L,
2601  kICCMapEntriesFilenameProcInfo = 16368,
2602  kICCMapEntriesTypeCreatorProcInfo = 262128L,
2603  kICCCountMapEntriesProcInfo = 4080,
2604  kICCGetIndMapEntryProcInfo = 65520L,
2605  kICCGetMapEntryProcInfo = 16368,
2606  kICCSetMapEntryProcInfo = 16368,
2607  kICCDeleteMapEntryProcInfo = 4080,
2608  kICCAddMapEntryProcInfo = 4080,
2609  kICCGetCurrentProfileProcInfo = 1008,
2610  kICCSetCurrentProfileProcInfo = 1008,
2611  kICCCountProfilesProcInfo = 1008,
2612  kICCGetIndProfileProcInfo = 4080,
2613  kICCGetProfileNameProcInfo = 4080,
2614  kICCSetProfileNameProcInfo = 4080,
2615  kICCAddProfileProcInfo = 4080,
2616  kICCDeleteProfileProcInfo = 1008,
2617  kICCRequiresInterruptSafeProcInfo = 240,
2618  kICCGetMappingInterruptSafeProcInfo = 4080,
2619  kICCGetSeedInterruptSafeProcInfo = 1008
2620  };
2621 
2622  /************************************************************************************************
2623  component identifiers
2624  ************************************************************************************************/
2625 
2626  enum
2627  {
2628  kICComponentType = FOUR_CHAR_CODE('PREF'),
2629  kICComponentSubType = FOUR_CHAR_CODE('ICAp'),
2630  kICComponentManufacturer = FOUR_CHAR_CODE('JPQE')
2631  };
2632 
2633  /************************************************************************************************
2634  The following type is now obsolete.
2635  If you're using it, please switch to ComponentInstance or ICInstance.
2636  ************************************************************************************************/
2637 
2638 #if OLDROUTINENAMES
2639  typedef ComponentInstance internetConfigurationComponent;
2640 
2641 #endif /* OLDROUTINENAMES */
2642 
2643 #endif /* CALL_NOT_IN_CARBON */
2644 
2645  /************************************************************************************************
2646  old names for stuff declared above
2647  ************************************************************************************************/
2648 
2649 #if OLDROUTINENAMES
2650 
2651  typedef long ICError;
2652 
2653  enum
2654  {
2655  ICattr_no_change = (unsigned long)(kICAttrNoChange),
2656  ICattr_locked_bit = kICAttrLockedBit,
2657  ICattr_locked_mask = kICAttrLockedMask,
2658  ICattr_volatile_bit = kICAttrVolatileBit,
2659  ICattr_volatile_mask = kICAttrVolatileMask,
2660  icNoUserInteraction_bit = kICNoUserInteractionBit,
2661  icNoUserInteraction_mask = kICNoUserInteractionMask,
2662  ICfiletype = kICFileType,
2663  ICcreator = kICCreator
2664  };
2665 
2672  struct ICFileInfo
2673  {
2674  OSType fType;
2675  OSType fCreator;
2676  Str63 name;
2677  };
2678  typedef struct ICFileInfo ICFileInfo;
2679  typedef ICFileInfo *ICFileInfoPtr;
2680  typedef ICFileInfoPtr *ICFileInfoHandle;
2681 
2682  enum
2683  {
2684  ICfile_spec_header_size = kICFileSpecHeaderSize
2685  };
2686 
2687  enum
2688  {
2689  ICmap_binary_bit = kICMapBinaryBit,
2690  ICmap_binary_mask = kICMapBinaryMask,
2691  ICmap_resource_fork_bit = kICMapResourceForkBit,
2692  ICmap_resource_fork_mask = kICMapResourceForkMask,
2693  ICmap_data_fork_bit = kICMapDataForkBit,
2694  ICmap_data_fork_mask = kICMapDataForkMask,
2695  ICmap_post_bit = kICMapPostBit,
2696  ICmap_post_mask = kICMapPostMask,
2697  ICmap_not_incoming_bit = kICMapNotIncomingBit,
2698  ICmap_not_incoming_mask = kICMapNotIncomingMask,
2699  ICmap_not_outgoing_bit = kICMapNotOutgoingBit,
2700  ICmap_not_outgoing_mask = kICMapNotOutgoingMask,
2701  ICmap_fixed_length = kICMapFixedLength
2702  };
2703 
2704  enum
2705  {
2706  ICservices_tcp_bit = kICServicesTCPBit,
2707  ICservices_tcp_mask = kICServicesTCPMask,
2708  ICservices_udp_bit = kICServicesUDPBit,
2709  ICservices_udp_mask = kICServicesUDPMask
2710  };
2711 
2712  /* This definitions are a) very long, and b) don't conform
2713  to Mac OS standards for naming constants, so I've put
2714  them in only if you're using OLDROUTINENAMES. Please switch
2715  to the new names given above.
2716  */
2717  enum
2718  {
2719  internetConfigurationComponentType =
2720  FOUR_CHAR_CODE('PREF'), /* the component type */
2721  internetConfigurationComponentSubType =
2722  FOUR_CHAR_CODE('ICAp'), /* the component subtype */
2723  internetConfigurationComponentInterfaceVersion0 = 0x00000000, /* IC >= 1.0 */
2724  internetConfigurationComponentInterfaceVersion1 = 0x00010000, /* IC >= 1.1 */
2725  internetConfigurationComponentInterfaceVersion2 = 0x00020000, /* IC >= 1.2 */
2726  internetConfigurationComponentInterfaceVersion3 = 0x00030000, /* IC >= 2.0 */
2727  /* current version number is version 3 */
2728  internetConfigurationComponentInterfaceVersion =
2729  internetConfigurationComponentInterfaceVersion3
2730  };
2731 
2732 #endif /* OLDROUTINENAMES */
2733 
2734 #if PRAGMA_STRUCT_ALIGN
2735 #pragma options align = reset
2736 #elif PRAGMA_STRUCT_PACKPUSH
2737 #pragma pack(pop)
2738 #elif PRAGMA_STRUCT_PACK
2739 #pragma pack()
2740 #endif
2741 
2742 #ifdef PRAGMA_IMPORT_OFF
2743 #pragma import off
2744 #elif PRAGMA_IMPORT
2745 #pragma import reset
2746 #endif
2747 
2748 #ifdef __cplusplus
2749 }
2750 #endif
2751 
2752 #endif /* __INTERNETCONFIG__ */
AppleEvent Data Model Interfaces.
Alias Manager Interfaces.
Component Manager Interfaces.
OSStatus ICCMapFilename(ComponentInstance inst, ConstStr255Param filename, ICMapEntry *entry)
OSStatus ICGetMapEntry(ICInstance inst, Handle entries, long pos, ICMapEntry *entry)
OSStatus ICCSetProfileName(ComponentInstance inst, ICProfileID thisID, ConstStr255Param name)
OSStatus ICSetConfigReference(ICInstance inst, ICConfigRefHandle ref, long flags)
OSStatus ICCMapTypeCreator(ComponentInstance inst, OSType fType, OSType fCreator, ConstStr255Param filename, ICMapEntry *entry)
OSStatus ICMapFilename(ICInstance inst, ConstStr255Param filename, ICMapEntry *entry)
OSStatus ICCCountMapEntries(ComponentInstance inst, Handle entries, long *count)
OSStatus ICGetPrefHandle(ICInstance inst, ConstStr255Param key, ICAttr *attr, Handle *prefh)
OSStatus ICEditPreferences(ICInstance inst, ConstStr255Param key)
OSStatus ICCDefaultFileName(ComponentInstance inst, Str63 name)
OSStatus ICCreateGURLEvent(ICInstance inst, OSType helperCreator, Handle urlH, AppleEvent *theEvent)
OSStatus ICCGeneralFindConfigFile(ComponentInstance inst, Boolean searchPrefs, Boolean canCreate, short count, ICDirSpecArrayPtr folders)
OSStatus ICEnd(ICInstance inst)
OSStatus ICFindUserConfigFile(ICInstance inst, ICDirSpec *where)
OSStatus ICRefreshCaches(ICInstance inst)
OSStatus ICCGetMapEntry(ComponentInstance inst, Handle entries, long pos, ICMapEntry *entry)
OSStatus ICCGetVersion(ComponentInstance inst, long whichVersion, UInt32 *version)
OSStatus ICCGetComponentInstance(ComponentInstance inst, ComponentInstance *componentInst)
OSStatus ICCountProfiles(ICInstance inst, long *count)
OSStatus ICCDeleteMapEntry(ComponentInstance inst, Handle entries, long pos)
OSStatus ICCDeletePref(ComponentInstance inst, ConstStr255Param key)
OSStatus ICCStop(ComponentInstance inst)
OSStatus ICCGetPrefHandle(ComponentInstance inst, ConstStr255Param key, ICAttr *attr, Handle *prefh)
OSStatus ICGeneralFindConfigFile(ICInstance inst, Boolean searchPrefs, Boolean canCreate, short count, ICDirSpecArrayPtr folders)
OSStatus ICGetIndMapEntry(ICInstance inst, Handle entries, long index, long *pos, ICMapEntry *entry)
OSStatus ICCSetMapEntry(ComponentInstance inst, Handle entries, long pos, ICMapEntry *entry)
OSStatus ICCCountProfiles(ComponentInstance inst, long *count)
OSStatus ICGetVersion(ICInstance inst, long whichVersion, UInt32 *version)
OSStatus ICGetSeedInterruptSafe(ICInstance inst, long *seed)
OSStatus ICBegin(ICInstance inst, ICPerm perm)
OSStatus ICCSpecifyConfigFile(ComponentInstance inst, FSSpec *config)
OSStatus ICCSetCurrentProfile(ComponentInstance inst, ICProfileID newID)
OSStatus ICGetConfigReference(ICInstance inst, ICConfigRefHandle ref)
OSStatus ICSetCurrentProfile(ICInstance inst, ICProfileID newID)
OSStatus ICCGetCurrentProfile(ComponentInstance inst, ICProfileID *currentID)
OSStatus ICChooseNewConfig(ICInstance inst)
OSStatus ICGetIndProfile(ICInstance inst, long index, ICProfileID *thisID)
OSStatus ICCGetPerm(ComponentInstance inst, ICPerm *perm)
OSStatus ICCBegin(ComponentInstance inst, ICPerm perm)
OSStatus ICAddMapEntry(ICInstance inst, Handle entries, const ICMapEntry *entry)
OSStatus ICCParseURL(ComponentInstance inst, ConstStr255Param hint, Ptr data, long len, long *selStart, long *selEnd, Handle url)
OSStatus ICAddProfile(ICInstance inst, ICProfileID prototypeID, ICProfileID *newID)
OSStatus ICCStart(ComponentInstance *inst, OSType creator)
OSStatus ICDeletePref(ICInstance inst, ConstStr255Param key)
OSStatus ICFindPrefHandle(ICInstance inst, ConstStr255Param key, ICAttr *attr, Handle prefh)
OSStatus ICGetProfileName(ICInstance inst, ICProfileID thisID, Str255 name)
OSStatus ICRequiresInterruptSafe(ICInstance inst)
OSStatus ICDeleteProfile(ICInstance inst, ICProfileID thisID)
OSStatus ICCChooseNewConfig(ComponentInstance inst)
OSStatus ICCGetSeed(ComponentInstance inst, long *seed)
OSStatus ICCGetPref(ComponentInstance inst, ConstStr255Param key, ICAttr *attr, Ptr buf, long *size)
OSStatus ICCGetProfileName(ComponentInstance inst, ICProfileID thisID, Str255 name)
OSStatus ICCSetPrefHandle(ComponentInstance inst, ConstStr255Param key, ICAttr attr, Handle prefh)
OSStatus ICMapTypeCreator(ICInstance inst, OSType fType, OSType fCreator, ConstStr255Param filename, ICMapEntry *entry)
OSStatus ICSpecifyConfigFile(ICInstance inst, FSSpec *config)
OSStatus ICGetMappingInterruptSafe(ICInstance inst, Ptr *mappingPref, long *mappingPrefSize)
OSStatus ICCGetSeedInterruptSafe(ComponentInstance inst, long *seed)
OSStatus ICSetPref(ICInstance inst, ConstStr255Param key, ICAttr attr, const void *buf, long size)
OSStatus ICParseURL(ICInstance inst, ConstStr255Param hint, const void *data, long len, long *selStart, long *selEnd, Handle url)
OSStatus ICGetDefaultPref(ICInstance inst, ConstStr255Param key, Handle prefH)
OSStatus ICSetPrefHandle(ICInstance inst, ConstStr255Param key, ICAttr attr, Handle prefh)
OSStatus ICCountPref(ICInstance inst, long *count)
OSStatus ICGetPerm(ICInstance inst, ICPerm *perm)
OSStatus ICCAddProfile(ComponentInstance inst, ICProfileID prototypeID, ICProfileID *newID)
OSStatus ICCGetConfigName(ComponentInstance inst, Boolean longname, Str255 name)
OSStatus ICStart(ICInstance *inst, OSType signature)
OSStatus ICCLaunchURL(ComponentInstance inst, ConstStr255Param hint, Ptr data, long len, long *selStart, long *selEnd)
OSStatus ICStop(ICInstance inst)
OSStatus ICCGetIndMapEntry(ComponentInstance inst, Handle entries, long index, long *pos, ICMapEntry *entry)
OSStatus ICCCreateGURLEvent(ComponentInstance inst, OSType helperCreator, Handle urlH, AppleEvent *theEvent)
OSStatus ICCFindConfigFile(ComponentInstance inst, short count, ICDirSpecArrayPtr folders)
OSStatus ICCSetPref(ComponentInstance inst, ConstStr255Param key, ICAttr attr, Ptr buf, long size)
OSStatus ICCGetConfigReference(ComponentInstance inst, ICConfigRefHandle ref)
OSStatus ICGetConfigName(ICInstance inst, Boolean longname, Str255 name)
OSStatus ICCEnd(ComponentInstance inst)
OSStatus ICCGetIndProfile(ComponentInstance inst, long index, ICProfileID *thisID)
OSStatus ICCSendGURLEvent(ComponentInstance inst, AppleEvent *theEvent)
OSStatus ICCGetIndPref(ComponentInstance inst, long index, Str255 key)
OSStatus ICCSetConfigReference(ComponentInstance inst, ICConfigRefHandle ref, long flags)
OSStatus ICGetIndPref(ICInstance inst, long index, Str255 key)
OSStatus ICGetComponentInstance(ICInstance inst, ComponentInstance *componentInst)
OSStatus ICCAddMapEntry(ComponentInstance inst, Handle entries, ICMapEntry *entry)
OSStatus ICGetSeed(ICInstance inst, long *seed)
OSStatus ICCChooseConfig(ComponentInstance inst)
OSStatus ICCMapEntriesTypeCreator(ComponentInstance inst, Handle entries, OSType fType, OSType fCreator, ConstStr255Param filename, ICMapEntry *entry)
OSStatus ICSetMapEntry(ICInstance inst, Handle entries, long pos, const ICMapEntry *entry)
OSStatus ICGetCurrentProfile(ICInstance inst, ICProfileID *currentID)
OSStatus ICChooseConfig(ICInstance inst)
OSStatus ICDeleteMapEntry(ICInstance inst, Handle entries, long pos)
OSStatus ICCDeleteProfile(ComponentInstance inst, ICProfileID thisID)
OSStatus ICCCountPref(ComponentInstance inst, long *count)
OSStatus ICCEditPreferences(ComponentInstance inst, ConstStr255Param key)
OSStatus ICCGetDefaultPref(ComponentInstance inst, ConstStr255Param key, Handle prefH)
OSStatus ICCountMapEntries(ICInstance inst, Handle entries, long *count)
OSStatus ICLaunchURL(ICInstance inst, ConstStr255Param hint, const void *data, long len, long *selStart, long *selEnd)
OSStatus ICMapEntriesTypeCreator(ICInstance inst, Handle entries, OSType fType, OSType fCreator, ConstStr255Param filename, ICMapEntry *entry)
OSStatus ICCRequiresInterruptSafe(ComponentInstance inst)
OSStatus ICCFindUserConfigFile(ComponentInstance inst, ICDirSpec *where)
OSStatus ICMapEntriesFilename(ICInstance inst, Handle entries, ConstStr255Param filename, ICMapEntry *entry)
OSStatus ICSetProfileName(ICInstance inst, ICProfileID thisID, ConstStr255Param name)
OSStatus ICFindConfigFile(ICInstance inst, short count, ICDirSpecArrayPtr folders)
OSStatus ICDefaultFileName(ICInstance inst, Str63 name)
OSStatus ICGetPref(ICInstance inst, ConstStr255Param key, ICAttr *attr, void *buf, long *size)
OSStatus ICCRefreshCaches(ComponentInstance inst)
OSStatus ICSendGURLEvent(ICInstance inst, AppleEvent *theEvent)
OSStatus ICCFindPrefHandle(ComponentInstance inst, ConstStr255Param key, ICAttr *attr, Handle prefh)
OSStatus ICCGetMappingInterruptSafe(ComponentInstance inst, Ptr *mappingPref, long *mappingPrefSize)
OSStatus ICCMapEntriesFilename(ComponentInstance inst, Handle entries, ConstStr255Param filename, ICMapEntry *entry)
unsigned char Boolean
Definition: MacTypes.h:318
Definition: AEDataModel.h:175
Definition: Aliases.h:87
Definition: Components.h:220
Definition: Events.h:224
Definition: InternetConfig.h:279
Definition: InternetConfig.h:271
Definition: InternetConfig.h:259
Definition: InternetConfig.h:168
Definition: InternetConfig.h:121
Definition: InternetConfig.h:293
Definition: InternetConfig.h:245
Definition: InternetConfig.h:330
Definition: InternetConfig.h:404
Definition: InternetConfig.h:428
Definition: MacTypes.h:520
Definition: PPCToolbox.h:168