home *** CD-ROM | disk | FTP | other *** search
/ Tools / WinSN5.0Ver.iso / NETSCAP.50 / WIN1998.ZIP / ns / cmd / macfe / central / uprefd.h < prev   
Encoding:
C/C++ Source or Header  |  1998-04-08  |  20.0 KB  |  554 lines

  1. /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
  2.  *
  3.  * The contents of this file are subject to the Netscape Public License
  4.  * Version 1.0 (the "NPL"); you may not use this file except in
  5.  * compliance with the NPL.  You may obtain a copy of the NPL at
  6.  * http://www.mozilla.org/NPL/
  7.  *
  8.  * Software distributed under the NPL is distributed on an "AS IS" basis,
  9.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
  10.  * for the specific language governing rights and limitations under the
  11.  * NPL.
  12.  *
  13.  * The Initial Developer of this code under the NPL is Netscape
  14.  * Communications Corporation.  Portions created by Netscape are
  15.  * Copyright (C) 1998 Netscape Communications Corporation.  All Rights
  16.  * Reserved.
  17.  */
  18.  
  19. #pragma once
  20.  
  21. #include <Printing.h>
  22. #include <LFile.h>
  23. #include <LListener.h>
  24.  
  25. #include "umimemap.h"
  26. #include "prtypes.h"
  27. // Constraints
  28. #define SECONDS_PER_DAY        86400L
  29. #define    CONNECTIONS_MIN        1L
  30. #define CONNECTIONS_MAX        4L
  31. #define BUFFER_SCALE        1024
  32. #define BUFFER_MIN            1L * BUFFER_SCALE
  33. #define BUFFER_MAX            32L * BUFFER_SCALE
  34. #define DISK_CACHE_MIN        0L
  35. #define DISK_CACHE_SCALE    1024L
  36. #define FONT_SIZE_MIN        6L
  37. #define FONT_SIZE_MAX        128L
  38. #define EXPIRE_MIN            1L
  39. #define EXPIRE_MAX            365L
  40. #define NEWS_ARTICLES_MIN    10L
  41. #define NEWS_ARTICLES_MAX    3500L
  42.  
  43. #define NO_SIGNATURE_FILE        0L
  44.  
  45. /*****************************************************************************
  46.  * class CFolderSpec
  47.  * Contains specs for the folder and a prototype spec for the file to be 
  48.  * created inside this folder
  49.  * All the setting of the specs should be done through access routines.\
  50.  * Has the smarts to default to the proper folder if setting fails.
  51.  *****************************************************************************/
  52. struct CFolderSpec
  53. {
  54. public:
  55.                     CFolderSpec();
  56.     // Ñ sets the specs for this folder
  57.     OSErr            SetFolderSpec(FSSpec newSpec, int folderID);
  58.  
  59.     // Ñ gets the specs of the folder
  60.     FSSpec            GetFolderSpec() {return fFolder;}
  61.  
  62.     // Ñ gets a prototype for the file inside this folder
  63.     FSSpec            GetFilePrototype() {return fFilePrototype;}
  64.  
  65.     Boolean            Exists();
  66. private:
  67.     FSSpec            fFolder;        // Specs of the folder    (vol, parent, + folder name)
  68.     FSSpec            fFilePrototype;    // Prototype specs for the file to be created inside this folder
  69. };
  70.  
  71. // Ñ CCharSet is a struct for saving the font and size information associated
  72. //        with a character set encoding
  73.  
  74. struct CCharSet
  75. {
  76. public:
  77.     CStr31            fEncodingName;
  78.     CStr31            fPropFont;
  79.     CStr31            fFixedFont; 
  80.     unsigned short    fPropFontSize;
  81.     unsigned short    fFixedFontSize;
  82.     unsigned short    fCSID;
  83.     unsigned short  fFallbackFontScriptID;
  84.     unsigned short    fTxtrButtonResID;
  85.     unsigned short    fTxtrTextFieldResID;    
  86.     unsigned short    fPropFontNum;
  87.     unsigned short    fFixedFontNum;
  88. };
  89. typedef struct CChrarSet  CChrarSet;
  90. struct CCharSetInRsrc
  91. {
  92. public:
  93.     CStr31            fEncodingName;
  94.     CStr31            fPropFont;
  95.     CStr31            fFixedFont; 
  96.     unsigned short    fPropFontSize;
  97.     unsigned short    fFixedFontSize;
  98.     unsigned short    fCSID;
  99.     unsigned short  fFallbackFontScriptID;
  100.     unsigned short    fTxtrButtonResID;
  101.     unsigned short    fTxtrTextFieldResID;    
  102. };
  103. typedef struct CChrarSetInRsrc  CChrarSetInRsrc;
  104.  
  105. /*********************************************************************************
  106.  * DOGBERT XP PREFERENCES / MULTI-USER PROFILES
  107.  *
  108.  * New preference file format: XP text file parsed by JavaScript via libpref
  109.  *    (includes all user strings, bools, ints, and colors).
  110.  * Some prefs (see below) are still written in old resource format.
  111.  * Both old and new prefs are read & written to the existing Netscape Prefs file.
  112.  *
  113.  * Primary changes to this file:
  114.  *    - added GetUserProfile() and InitPrefsFolder() to prompt user for desired
  115.  *      profile (if necessary) and use that to point to base Preferences folder.
  116.  *    - changed order of PrefEnum entries and added XP prefName strings.
  117.  *    - ReadPreference, if it detects new format, only needs to call 
  118.  *      PostProcessPrefChange for each pref to propagate the new value.
  119.  *      Calls to back-end will GO AWAY as modules fetch their own pref values.
  120.  *    - ReadPreference otherwise reads old-format file.
  121.  *    - WritePreference always writes new format.
  122.  *    - CPrefs Get/Setters use libpref calls.
  123.  *    - removed CPrefs storage of strings, bools, ints, and colors.
  124.  *    - file/folder aliases accessed as libpref binary types but still stored
  125.  *      in CPrefs via sFileIDs.
  126.  *
  127.  * Some prefs are not yet supported in XP format.  
  128.  *    - mime types
  129.  *    - font encodings
  130.  *    - window/pane positions
  131.  *    - protocol handlers, etc.
  132.  * I have the first 3 partly prototyped.  We at least need to support the first 
  133.  * two in XP format for use by Admin Kit.
  134.  *********************************************************************************/
  135.  
  136. /*********************************************************************************
  137.  * class CPrefs
  138.  * Static class that does all preferences related tasks
  139.  * - reading/writing from a file
  140.  * - initialization
  141.  * - prefs variable access
  142.  *********************************************************************************/
  143. #define PREF_REVISION_NUMBER 11
  144. class CPrefs    {
  145. public:
  146.  
  147.  enum { msg_PrefsChanged = 'PrCh' };
  148.  
  149.  enum PrefEnum {
  150. /*****************************************************************************
  151.  * The law of enumeration
  152.  * - Each preference kind must be contiguous
  153.  *            This is so that we can use offsets to return the right value in GetBoolean/GetString...
  154.  * - Every preference whose enum is defined must have its resource locations defined
  155.  * - NEW: The entries below MUST be in the same order as the PrefLoc struct -
  156.  *****************************************************************************/
  157. // Folders/Files
  158.     DownloadFolder,            // Where do we store downloads
  159.     NetscapeFolder,            // Where the application is
  160.     MainFolder,                // Current user's preferences folder (Netscape ─ or Users:)
  161.     UsersFolder,            // Netscape Users folder (contains User Profiles)
  162.     DiskCacheFolder,        // Disk cache files (inside Mozilla ─)        
  163.     SignatureFile,            // users signature file        
  164.     GIFBackdropFile,        // file to use as the backdrop
  165.     MailFolder,                // Mail folder
  166.     NewsFolder,                // News folder
  167.     SecurityFolder,            // Security folder
  168.     MailCCFile,                // FCC for mail
  169.     NewsCCFile,                // Fcc for news
  170.     HTMLEditor,             // application to use to edit raw HTML (used in EDITOR)
  171.     ImageEditor,            // application to use to edit images (used in EDITOR)
  172.     RequiredGutsFolder,        // folder containing the required items for 
  173.     SARCacheFolder,                     // Constellation Location-Independent Cache Directory TJ & ROB
  174.     NetHelpFolder,          // Folder for NetHelp documents  EA
  175. // Strings
  176.     HomePage,            // Home page. strlen of 0 means do not load anything
  177.     NewsHost,                // News host
  178.     FTPProxy,                // Proxies
  179.     GopherProxy,
  180.     HTTPProxy,
  181.     NewsProxy,
  182.     WAISProxy,
  183.     FTPProxyPort,
  184.     GopherProxyPort,
  185.     HTTPProxyPort,
  186.     NewsProxyPort,
  187.     WAISProxyPort,
  188.     NoProxies,
  189.     UserName,
  190.     UserEmail,
  191.     SMTPHost,
  192.     SOCKSHost,
  193.     SOCKSPort,
  194.     Organization,
  195.     SSLProxy,
  196.     SSLProxyPort,
  197.     PopHost,
  198.     AcceptLanguage,            // string for HTTP AcceptLange header
  199.     DefaultMailCC,
  200.     DefaultNewsCC,
  201.     ReplyTo,
  202.     PopID,
  203.     AutoProxyURL,            // URL for autoconfiguring proxy
  204.     MailPassword,            // Mail password, encrypted
  205.     Ciphers,                // ciphers that we know about
  206.     EditorAuthor,            // Who should the author be for new editor documents (used in EDITOR)
  207.     EditorNewDocTemplateLocation,    // When you create a new document from a template, where is the template (used in EDITOR)
  208.     EditorBackgroundImage,    // what is the url for the background image for new editor documents (used in EDITOR)
  209.     PublishLocation,        // location for one button publish (used in EDITOR)
  210.     PublishBrowseLocation,    // location to test browse documents published with one button publish (used in EDITOR)
  211.     PublishHistory0,
  212.     PublishHistory1,
  213.     PublishHistory2,
  214.     PublishHistory3,
  215.     PublishHistory4,
  216.     PublishHistory5,
  217.     PublishHistory6,
  218.     PublishHistory7,
  219.     PublishHistory8,
  220.     PublishHistory9,
  221.     DefaultPersonalCertificate,
  222. // Booleans
  223.     DelayImages,        // Auto load of images
  224.     AnchorUnderline,        // Underline of anchors
  225.     ShowAllNews,            // Show all news articles. NETLIB
  226.     UseFancyFTP,            // Fancy FTP. NETLIB
  227.     UseFancyNews,            // Fancy NNTP. NETLIB        
  228.     ShowToolbar,            // Toolbar visible in main window?
  229.     ShowStatus,                // Status visible in main window
  230.     ShowURL,                // URL visible in main window
  231.     LoadHomePage,            // Should we load home page for new
  232.     ExpireNever,            // Do Links expire?
  233.     DisplayWhileLoading,
  234.     CustomLinkColors,        // do we want custom colors for links
  235.     ShowDirectory,
  236.     AgreedToLicense,        // has the user agreed to the license
  237.     EnteringSecure,    
  238.     LeavingSecure,
  239.     ViewingMixed,
  240.     SubmittingInsecure,
  241.     ShowSecurity,
  242.     CustomVisitedColors,    // custom unfollowed link colors?
  243.     CustomTextColors,        // custom text colors?
  244.     UseDocumentColors,        // use the document or user colors
  245.     AutoDetectEncoding,        // auto detect the document encodings
  246.     UseSigFile,                // should we use the signature file
  247.     StrictlyMIME,            // should we always be MIME/quoted printable
  248.     UseUtilityBackground,    // should we use utility background instead of stupid gray
  249.     MailUseFixedWidthFont,    // Should mail messages be displayed with fixed width fonts?
  250.     UseMailFCC,                // Should we Fcc for mail?
  251.     UseNewsFCC,                // Should we Fcc for news?
  252.     LimitMessageSize,        // Should we limit message size?
  253.     LeaveMailOnServer,        // Leave mail on server?
  254.     MailCCSelf,                // CC self on mail
  255.     NewsCCSelf,                // CC self on news
  256.     BiffOn,                    // Check for mail
  257.     UseMozPassword,            // Should we be using the password for Netscape
  258.     ThreadMail,                // Thread mail?
  259.     ThreadNews,                // Thread news?
  260.     UseInlineViewSource,    // Should we use Lou's view source window?
  261.     AutoQuoteOnReply,
  262.     RememberMailPassword,    // Remember mail password?
  263.     DefaultMailDelivery,
  264.     EnableJavascript,        // Whether or not we allow JavaScript to execute
  265.     ShowToolTips,
  266.     UseInternetConfig,
  267.     EnableJava,                // Whether or not we allow Java to execute
  268.     AcceptCookies,
  269.     UseEmailAsPassword,
  270.     SubmitFormsByEmail,
  271.     AllowSSLDiskCaching,
  272.     EnableSSLv2,
  273.     EnableSSLv3,
  274.     EnableActiveScrolling,    // Dynamically update during thumb tracking
  275. #ifdef FORTEZZA
  276.     FortezzaTimeoutOn,    // Should fortezza time out
  277. #endif
  278. #ifdef EDITOR
  279.     EditorUseCustomColors,    // Should new editor documents be set up to use custom colors (used in EDITOR)
  280.     EditorUseBackgroundImage,    // Should new editor documents be set up to use a background image (used in EDITOR)
  281.     PublishMaintainLinks,    // Maintain links when publishing a document (used in EDITOR)
  282.     PublishKeepImages,        // Keep images with document when publishing it (used in EDITOR)
  283.     ShowCopyright,            // Should we should the Copyright notice next time we "steal" something off the web (used in EDITOR)
  284.     ShowFileEditToolbar,    // editor window toolbar
  285.     ShowCharacterToolbar,    // editor window toolbar
  286.     ShowParagraphToolbar,    // editor window toolbar
  287. #endif // EDITOR
  288. // Longs
  289.     DiskCacheSize,            // Size of disk cache
  290.     FileSortMethod,            // Method of sorting files. NETLIB
  291.     ToolbarStyle,            // Toolbar display style
  292.     DaysTilExpire,            // # days before links expire
  293.     Connections,            // number of simultaneous connections to server
  294.     BufferSize,                // size in K of network socket buffers
  295.     PrintFlags,                // printing prefs
  296.     NewsArticlesMax,        // maximum number of news articles to show
  297.     CheckDocuments,            // when to check the network for document
  298.     DefaultCharSetID,        // default character set ID
  299.     DefaultFontEncoding,
  300.     BackgroundColors,        // background color mode
  301.     LicenseVersion,            // License version #
  302.     MessageFontStyle,        // Equivalent to enum MSG_FONT in msgcom.h
  303.     MessageFontSize,        // Equivalent to enum MSG_CITATION_SIZE in msgcom.h
  304.     MaxMessageSize,            // Maximum message size for fetching
  305.     TopLeftHeader,            // Top Left header for printing
  306.     TopMidHeader,            // Top Mid header for printing
  307.     TopRightHeader,            // Top Right header for printing
  308.     BottomLeftFooter,        // Bottom Left footer for printing
  309.     BottomMidFooter,        // Bottom Mid footer for printing
  310.     BottomRightFooter,        // Bottom Right footer for printing
  311.     PrintBackground,
  312.     ProxyConfig,            // Status of proxy configuration enum NET_ProxyStyle
  313.     StartupAsWhat,            // Mail/News/Browser/Visible
  314.     StartupBitfield,        // What do we want to start up as if visible is set. Contains a bit set for every window we want. See BROWSER_WIN_ID in resgui.h
  315.     BiffTimeout,            // Check mail how often
  316.     AskMozPassword,            // Should we ask for the password (tri-value) 
  317.     AskMozPassFrequency,    // The frequency
  318.     SortMailBy,                // How do we sort mail. See SORT_BY defines in resgui.h
  319.     SortNewsBy,                // How do we sort news
  320.     NewsPaneConfig,            // News window pane configuration
  321.     MailPaneConfig,            // Mail window pane configuration
  322.     MailHeaderDisplay,
  323.     NewsHeaderDisplay,
  324.     AutoSaveTimeDelay,
  325. #ifdef FORTEZZA
  326.     FortezzaTimeout,    // When fortezza should time out
  327. #endif
  328. // Colors
  329.     Black,
  330.     White,
  331.     Blue,
  332.     Magenta,
  333.     WindowBkgnd,
  334.     Anchor,
  335.     Visited, 
  336.     TextFore,
  337.     TextBkgnd,
  338.     EditorText,                     // used to create new documents(used in EDITOR)
  339.     EditorLink,                     // used to create new documents(used in EDITOR)
  340.     EditorActiveLink,               // used to create new documents (used in EDITOR)
  341.     EditorFollowedLink,             // used to create new documents (used in EDITOR)
  342.     EditorBackground,               // used to create new documents (used in EDITOR)
  343.     Citation,
  344. // Print record
  345.     PrintRecord,
  346.  
  347. // Termination
  348.     LastPref
  349. };
  350.  
  351.  
  352. #define FIRSTPREF        DownloadFolder
  353.  
  354. #define FIRSTCOLOR        Black
  355. #define FIRSTFOLDER        DownloadFolder
  356. #define FIRSTLONG        DiskCacheSize
  357. #define FIRSTBOOLEAN    DelayImages
  358. #define FIRSTSTRING        HomePage
  359. #define FIRSTFILESPEC    DownloadFolder
  360.  
  361. // ÑÑ Initialization, Reading Writing
  362.     static void            Initialize();
  363.     enum PrefErr    {    eAbort = -1,
  364.                         eNeedUpgrade,
  365.                         eOK,
  366.                         eRunAccountSetup    // Ñ╩this is totally scwewy
  367.                     };
  368.  
  369.  
  370.     static PrefErr        DoRead(LFile * file, short fileType);
  371.     static void            DoWrite();
  372.     
  373.     static void            SubscribeToPrefChanges( LListener *listener );
  374.     static void            UnsubscribeToPrefChanges( LListener *listener);
  375.  
  376. private:
  377. friend class CUserProfile;        // For ReadAllPreferences hack right now
  378.     static void            ReadAllPreferences();
  379.     static void            ReadPreference(short index);
  380.     static void            InitializeUnsavedPref(short index);
  381.  
  382.     static void            WriteAllPreferences();
  383.     static void            WritePreference(short index);
  384.     
  385.     static PrefErr        InitPrefsFolder(short fileType);
  386.     static Boolean        FindRequiredGutsFolder(Boolean inLaunchWithPrefs);
  387.     static void            OpenAnimationFile(FSSpec&, FSSpec&);
  388.     static void            RegisterPrefCallbacks();
  389.     static int            FSSpecPrefCallback(const char *prefString, void *enumValue);
  390.     static int            ColorPrefCallback(const char *prefString, void *);
  391.  
  392. // ÑÑ╩Utility routines
  393.  
  394. public:
  395.     // Put pref res file on top of resource chain. Does not open it
  396.     static Boolean UsePreferencesResFile();
  397.     // Put application res file on top
  398.     static Boolean UseApplicationResFile();
  399.  
  400. // ÑÑ Access
  401.  
  402. public:
  403.     static Boolean    GetBoolean(PrefEnum id);
  404.     static Int32    GetLong(PrefEnum id);
  405.     static CStr255    GetString(PrefEnum id);
  406.     static char*    GetCharPtr( PrefEnum id );
  407.     static const RGBColor& GetColor( PrefEnum id );    // --ML de-inlined
  408.  
  409.     static THPrint    GetPrintRecord();
  410.     static FSSpec    GetFolderSpec( PrefEnum id );
  411.     static FSSpec    GetFilePrototype(PrefEnum id);
  412.     static char *    GetCachePath();
  413.     
  414. // Reading/writing of data associated with a window
  415.     static Handle        ReadWindowData( short resID );
  416.     static void            WriteWindowData( Handle data, short resID );
  417.  
  418.  
  419. // ÑÑ Setting of preferences
  420.     static void        SetModified();
  421.     static Boolean    SetBoolean( Boolean value, PrefEnum id);
  422.     static Boolean    SetLong( Int32 value, PrefEnum id);
  423.     static Boolean    SetString( const char* newString, PrefEnum id);
  424.     static Boolean    SetColor( const RGBColor& newColor, PrefEnum id);
  425.     static Boolean    SetFolderSpec( const FSSpec& folderSpec, PrefEnum id);
  426.     
  427.     static Boolean    HasCoBrand();
  428.     static Boolean    IsLocked( PrefEnum id );
  429.     
  430.     static FSSpec    GetTempFilePrototype(); // vRefNum and parID for a file in 'Temporary Items
  431.     
  432.     static Boolean    IsNewPrefFormat(short id);
  433.     static char*    Concat(const char* base, const char* suffix);                    
  434.  
  435. private:
  436.     enum    {        kStaticStrCount = 8,
  437.                     kStaticStrLen = 256
  438.             };
  439.     static char*    GetStaticString();
  440.     static void        PostInitializePref(PrefEnum id, Boolean changed);
  441. private:
  442.     static RGBColor *     sColors;
  443.     static CFolderSpec ** sFileIDs;
  444.     static THPrint        sPrintRec;
  445.     static char *        sCachePath;
  446.     
  447.     static    FSSpec        sTemporaryFolder;
  448.     static     Boolean        sRealTemporaryFolder;    // did FindFolder work ?
  449.  
  450. // ÑÑ MIME mappers
  451.     // Ñ create a default MIME mapper for a given MIME type. doInsert inserts it into master
  452.     //        MIME type list
  453. private:
  454.     static void            ReadMimeTypes();
  455.     static void            Read1MimeTypes();
  456.  
  457. public:
  458.     static CMimeMapper* CreateDefaultUnknownMapper( const CStr255& mimeType, Boolean doInsert );
  459.  
  460.     // Ñ like CreateDefaultUnknownMapper, except that it uses the application SIG
  461.     static CMimeMapper* CreateDefaultAppMapper( FSSpec& fileSpec,    // application file
  462.                                         const char* mimeType,        // mime type
  463.                                         Boolean doInsert );
  464.     // MIME types - created dynamically
  465.     static CMimeList    sMimeTypes;        // List of CMimeMappers. CMimeList holds routines to manipulate them
  466.     static    short        sPrefFileVersion;
  467.     static Boolean        sViewSourceInline;
  468.  
  469. // ÑÑ Font encoding stuff    
  470.     
  471.     static void            ReadCharacterEncodings();
  472.     static void            ReadXPFont(int16 csid, CCharSet* csFont);
  473.     static Boolean        GetFont( UInt16 csid, CCharSet* font );
  474.     static Boolean        GetFontAtIndex( unsigned long index, CCharSet* font );
  475.     static int16         CmdNumToWinCsid( int32 cmdNum);
  476.     static int16         CmdNumToDocCsid( int32 cmdNum);
  477.     static int32         WinCsidToCmdNum( int16 csid);
  478.  
  479.     static Boolean         SetFont(const CStr255& EncodingName,const CStr255& PropFont,const CStr255& FixedFont,
  480.                         unsigned short PropFontSize, unsigned short FixedFontSize, unsigned short CSID, unsigned short FallbackFontScriptID, 
  481.                         unsigned short TxtrButtonResID, unsigned short TxtrTextFieldResID);
  482.     static Int16         GetButtonFontTextResIDs(unsigned short csid);
  483.     static Int16         GetTextFieldTextResIDs(unsigned short csid);
  484.     static LArray*        GetCharSets() { return fCharSetFonts; }
  485.     static short        GetProportionalFont(unsigned short csid);
  486.     static short         GetFixFont(unsigned short csid);
  487.     static ScriptCode     CsidToScript(int16 csid);
  488.  
  489.     static LArray*        fCustomLangList;
  490.     static LArray*        fPreferLangList;
  491.  
  492.     static LArray*        fCharSetFonts;
  493.     static CCharSet        fDefaultFont;
  494. };
  495.  
  496. Boolean GetCharacterSet( LArray* fontSets, const CStr255& encodingName, CCharSet* font );
  497. /*****************************************************************************
  498.  * GLOBALS
  499.  *****************************************************************************/
  500.  
  501. // ÑÑ File name constants. See custom.r for these strings, STR# 300
  502. enum pref_Strings {    prefFolderName = 1
  503.                 ,    prefFileName = 2
  504.                 ,    globHistoryName = 3
  505.                 ,    cacheFolderName = 4
  506.                 ,    cacheLog = 5
  507.                 ,    newsrc = 6
  508.                 ,    bookmarkFile = 7
  509.                 ,    mimeTypes = 8
  510.                 ,    magicCookie = 9
  511.                 ,    socksConfig = 10
  512.                 ,    allNewsgroups = 11
  513.                 ,    newsFileMap = 12 
  514.                 ,    certDB = 13
  515.                 ,    certDBNameIDX = 14
  516.                 ,    mailFolderName = 15
  517.                 ,    newsFolderName = 16
  518.                 ,    securityFolderName = 17
  519.                 ,    mailBoxExt = 18
  520.                 ,    mailFilterFile = 19
  521.                 ,    mailPopState = 20
  522.                 ,    proxyConfig = 21
  523.                 ,    keyDb = 22
  524.                 ,    xoverCache = 23
  525.                 ,    addressBookFile = 24
  526.                 ,    mailCCfile = 25
  527.                 ,    newsCCfile = 26
  528.                 ,    extCacheFile = 27
  529.                 ,    subdirExt = 28
  530.                 ,    newsHostDatabase = 29
  531.                 ,    configFile = 30
  532.                 ,    userProfiles = 31
  533.                 ,    mailFilterLog = 32
  534.                 ,    theRegistry = 33
  535.                 ,    prefRequiredGutsName = 34
  536.                 ,   sarCacheFolderName = 35
  537.                 ,   sarCacheIndex = 36
  538.                 ,    ibm3270Folder = 37
  539.                 ,    ibm3270File = 38
  540.                 ,    htmlAddressBook = 39
  541.                 ,    vCardExt = 40
  542.                 ,    ldifExt1 = 41
  543.                 ,    ldifExt2 = 42
  544.                 ,    secModuleDb = 43
  545.                 ,    usersFolderName = 44
  546.                 ,    unknownAppName = 45
  547.                 ,    aswName = 46
  548.                 ,    nethelpFolderName = 47
  549.                 ,    mailFolderCache = 48
  550.                 ,    profileTemplateDir = 49
  551.                 ,    cryptoPolicy = 50
  552.                 ,    signedAppletDb = 51
  553.                 };
  554.