home *** CD-ROM | disk | FTP | other *** search
- /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
- *
- * The contents of this file are subject to the Netscape Public License
- * Version 1.0 (the "NPL"); you may not use this file except in
- * compliance with the NPL. You may obtain a copy of the NPL at
- * http://www.mozilla.org/NPL/
- *
- * Software distributed under the NPL is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
- * for the specific language governing rights and limitations under the
- * NPL.
- *
- * The Initial Developer of this code under the NPL is Netscape
- * Communications Corporation. Portions created by Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All Rights
- * Reserved.
- */
-
- // profile.h : Profile DataBase
- //
-
- #ifndef _PROFILE_H
- #define _PROFILE_H
-
- // NOTE: magic name must be kept in sync with ns/modules/libreg/src/reg.h
- #define ASW_MAGIC_PROFILE_NAME "User1"
- // Obsoleted Directory constants due to runtime directory assignment
-
- #ifdef XP_WIN32
- #define HPROFILE HKEY
- #define HUSER CString
- #else
- #ifdef XP_MAC
- #define HPROFILE FSSpec& // Or would the LFile be the right one?
- #define HUSER short
- #else
- #define HPROFILE CString
- #define HUSER CString
- #endif
- #endif
-
- #define UPGRADE_MOVE 0
- #define UPGRADE_COPY 1
- #define UPGRADE_IGNORE 2
-
- class CUserProfileDB
- {
-
- public:
- CUserProfileDB();
- ~CUserProfileDB();
-
- int AddNewProfile(
- HUSER hUser,
- CString csProfileDirectory,
- int iUpgradeOption );
-
- void GetUserProfile( HUSER hUser );
-
- int DeleteUserProfile( HUSER hUser );
-
- char * GetUserProfileValue(
- HUSER hUser, CString csName );
-
- int SetUserProfileValue(
- HUSER hUser, CString csName,
- CString csValue );
-
- static BOOL AssignProfileDirectoryName(HUSER hUser, CString &csUserDirectory);
-
- void GetUserProfilesList( CStringList *cslProfiles );
-
- // Macintosh interfaces don't make sense on Windows
- // short CountProfiles();
- // short GetNextProfileID();
- // short GetLastProfileID();
- // void SetLastProfileID( HUSER hUser );
- // BOOL GetProfileName( HUSER hUser, CString *name );
- // void SetProfileName( HUSER hUser, const CString *name );
- // BOOL GetProfileAlias( HUSER hUser );
-
- private:
- int BuildDirectoryPath( const char *path );
-
- HPROFILE OpenUserProfileDB();
- int CloseUserProfileDB();
-
- HPROFILE m_hProfileDB; // handle to the profile DB
- CStringList * m_cslProfiles; // list of all user profiles in the DB
-
- HUSER m_hUser; // handle to the current profile
- CString m_csUserAddr; // Current profile email name
- CString m_csProfileDirectory; // Current profile directory
-
- };
-
- #endif
-