/* * Copyright 1997, 1999 Perforce Software. All rights reserved. * * This file is part of Perforce - the FAST SCM System. */ // P4Registry.h // CP4Registry is an extremely primitive class that caches all registry // information, and potentially could be used to enforce consistency of // registry values. #ifndef __P4REGISTRY__ #define __P4REGISTRY__ #include "resource.h" // Class CP4Registry - handle registry info and updating for P4Win class CP4Registry { public: CP4Registry(); ~CP4Registry(); protected: // Not in p4win registry tree BOOL m_AttemptedRead; BOOL m_Virgin; BOOL m_NoCliHost; CString m_MyID; CString m_Hostname; // Temporary over-rides to permanent connection params // CString m_P4Port_Temp; CString m_P4User_Temp; CString m_P4Client_Temp; CString m_P4Password_Temp; CString m_P4Charset_Temp; BOOL m_bCharsetFromCmdli; // the connection params in the registry. ("permanent") // CString m_P4Port_Perm; CString m_P4User_Perm; CString m_P4Client_Perm; CString m_P4Password_Perm; CString m_P4Charset_Perm; // Previous values for client and user // CString m_P4Client_Prev; CString m_P4Client_PrevDef; CString m_P4User_Prev; CString m_P4User_PrevDef; ////////////// // Options Key CString m_EditApp; CString m_DiffApp; CString m_DiffOptArgs; CString m_MergeApp; CString m_MergeOptArgs; int m_TabWidth; int m_WhtSpFlag; int m_MrgTabWidth; int m_MrgWhtSpFlag; int m_AnnotateWhtSpace; int m_AnnotateIncInteg; int m_TLVWhtSpace; int m_TLVIncInteg; int m_ResolveWhtSp; int m_UseTempForView; CString m_UseTempForExts; BOOL m_EditAppIsConsole; BOOL m_DiffAppIsConsole; BOOL m_DiffAppIsClose; BOOL m_DiffAppIsBinary; int m_DiffInternal; BOOL m_DiffOptArgChk; int m_MergeInternal; BOOL m_MergeOptArgChk; BOOL m_MergeNSF; BOOL m_MergeAppIsConsole; BOOL m_MergeAppIsClose; BOOL m_AlwaysShowFocus; BOOL m_AlwaysWarnOnRevert; BOOL m_AllowPromptAbove; BOOL m_AutoMinEditDlg; int m_DoubleClickOption; int m_OptionStartUpOption; int m_OptionStartUpPage; int m_StatusUpdateInterval; int m_LabelAddRplDefault; int m_Diff2Default1; int m_Diff2Default2; int m_Explorer; BOOL m_2Panes; CString m_AltExpl; CString m_TempDir; CString m_ExpandPath; CString m_WarnLimit; CString m_WarnLimitDiff; CString m_WarnLimitOpen; CString m_ExtSortMax; CString m_MinMultiLineSize; CString m_UserFilter; CString m_ClientFilter; CString m_LabelFilterByOwner; BOOL m_FilteredByUser; BOOL m_FilteredByClient; BOOL m_LabelFilterByOwnerFlag; BOOL m_LabelFilterIncBlank; BOOL m_DescWrapSw; int m_DescWrap; int m_ExpandFlag; int m_BusyWaitTime; int m_UseLongChglistDesc; int m_SyncDlgFlag; CString m_UseOpenForEditExts; BOOL m_UseOpenForEdit; BOOL m_UseShortRevHistDesc; BOOL m_UseShortSubmittedDesc; BOOL m_IsNoCopy; BOOL m_IsForceInteg; BOOL m_IsForceDirect; BOOL m_IsDeleteSource; BOOL m_IsPermitDelReadd; int m_DelReaddType; BOOL m_IsBaselessMerge; BOOL m_IsIndirectMerge; BOOL m_IsPropagateTypes; BOOL m_IsBaseViaDelReadd; BOOL m_UseNewChglist; BOOL m_UseNewChglist2; BOOL m_SyncFirstDefault; BOOL m_WarnAlreadyOpened; BOOL m_ShowDeleted; BOOL m_SortByExtension; BOOL m_SortChgFilesByAction; BOOL m_SortChgFilesByName; BOOL m_SortChgFilesByExt; BOOL m_SortChgFilesByResolve; BOOL m_ShowToolBar; int m_ShowEntireDepot; BOOL m_ShowFileType; BOOL m_ShowOpenAction; BOOL m_ShowChangeDesc; BOOL m_SortChgsByUser; BOOL m_ShowCommandTrace; BOOL m_ShowConnectSettings; BOOL m_ShowConnectPort1st; BOOL m_ShowClientPath4Chgs; BOOL m_ShowClientPath; BOOL m_ShowDepotPathHiLite; BOOL m_ShowStatusTime; BOOL m_ShowHiddenFilesNotInDepot; BOOL m_Use24hourClock; BOOL m_PreserveSpecFormat; BOOL m_AutoExpandOptions; BOOL m_LabelFilesInDialog; BOOL m_LabelShowPreviewDetail; BOOL m_Diff2InDialog; BOOL m_AutoTreeExpand; BOOL m_UseNotepad4WarnAndErr; BOOL m_Cvt2ValComboToChkBx; BOOL m_IconsInMenus; BOOL m_ExpandChgLists; BOOL m_ReExpandChgs; BOOL m_EnableSubChgIntegFilter; BOOL m_EnableRevHistShowIntegs; BOOL m_EnablePendingChgsOtherClients; long m_AddFilterExclude; BOOL m_AutoPoll; long m_AutoPollTime; BOOL m_AutoPollIconic; BOOL m_AutoPollJobs; BOOL m_LogoutOnExit; BOOL m_ClearAndReload; BOOL m_ReloadOnUncover; long m_ReloadUncoverTime; long m_ChglistSyncDef; long m_FetchChangeCount; BOOL m_FetchAll; long m_FetchJobCount; BOOL m_FetchAllJobs; long m_FetchHistCount; BOOL m_FetchAllHist; long m_FetchCompleteHist; long m_HistListHeight; long m_JobFilterWidth; BOOL m_UseDepotInClientView; BOOL m_Use256colorIcons; BOOL m_DontShowYouHaveChgClientView; BOOL m_DontShowYouHaveCr8NewClient; BOOL m_DontShowDiscardFormChgs; BOOL m_AllowExceptionReporting; BOOL m_TryResetingFocus; long m_AutoGetOnEdit; CString m_FontFace; int m_FontSize; BOOL m_IsFontItalic; int m_FontWeight; int m_FindFilesWidth; int m_P4StartWith; BOOL m_P4BusyCursor; BOOL m_CloseAfterFind; BOOL m_SubmitOnlyChged; BOOL m_RevertUnchged; BOOL m_AutoReopen; BOOL m_FilterPendChgsByMyClient; CString m_FilterPendChgsByPath; int m_LabelDragDropOption; int m_ResolveDefault; int m_Resolve2wayDefault; int m_Resolve3wayDefault; BOOL m_ConvertJobNbr; ////////////// // Settings Key CString m_AddFileCurDir; CString m_AddFileExtFilter; CString m_AddFileFilter; int m_AddFileFilterIndex; int m_DefaultDnDfromExp; int m_MultiProcessorSleep; int m_MaxStatusLines; int m_ShowStatusMsgs; int m_ShowTruncTooltip; int m_DontThreadDiffs; CString m_PendChgExpansion; CString m_LastBranch; CString m_LastLabel; CString m_LastTemplate; CString m_LocalCliTemplate; BOOL m_LocalCliTemplateSw; BOOL m_UseClientSpecSubmitOpts; BOOL m_SwapButtonPosition; int m_BranchFilteredFlags; // 1 = by Owner; 0x10 by current User CString m_BranchFilterOwner; int m_ClientFilteredFlags; // 1 = by Owner; 2 = by Host; 4 = Description Contains CString m_ClientFilterOwner; CString m_ClientFilterHost; CString m_ClientFilterDesc; ////////////// // Layout Key CRect m_WindowPosition; BOOL m_Iconic; BOOL m_Maximized; long m_HSplitterPosition; long m_VSplitterPosition; ////////////// // Tools Key CString m_ToolMenuName[MAX_TOOLS]; CString m_ToolCommand[MAX_TOOLS]; CString m_ToolArgs[MAX_TOOLS]; CString m_ToolInitDir[MAX_TOOLS]; CString m_ToolPromptText[MAX_TOOLS]; BOOL m_ToolIsConsole[MAX_TOOLS]; BOOL m_ToolIsPrompt[MAX_TOOLS]; BOOL m_ToolIsOutput2Status[MAX_TOOLS]; BOOL m_ToolIsCloseOnExit[MAX_TOOLS]; BOOL m_ToolIsShowBrowse[MAX_TOOLS]; BOOL m_ToolIsRefresh[MAX_TOOLS]; BOOL m_ToolOnContext[MAX_TOOLS]; BOOL m_ToolIsSubMenu[MAX_TOOLS]; ////////////// // Bookmark Key CString m_BkMkMenuName[MAX_BOOKMARKS]; BOOL m_BkMkIsSubMenu[MAX_BOOKMARKS]; ////////////// // Favorites Key CString m_FavMenuName[MAX_FAVORITES]; BOOL m_FavIsSubMenu[MAX_FAVORITES]; ////////////// // MRU Tool Arguments CString m_MRUToolArg[MAX_MRU_TOOLARGS]; ////////////// // MRU Find Strings CString m_MRUFindStr[MAX_MRU_FINDSTRS]; ////////////// // MRU Viewers CString m_MRUViewer[MAX_MRU_VIEWERS]; ////////////// // MRU Job Filters CString m_MRUFilter[MAX_MRU_FILTERS]; ////////////// // MRU Submitted Changelist Filters CString m_MRUChgFilter[MAX_MRU_FILTERS]; ////////////// // MRU Ports CString m_MRUPort[MAX_MRU_PORTS]; CString m_MRUPortCharset[MAX_MRU_PORTS]; // corresponding charset for each port ////////////// // MRU Charsets CString m_MRUCharset[MAX_MRU_CHARSETS]; ////////////// // Default Charsets CString m_DefCharset[MAX_MRU_CHARSETS]; ////////////// // MRU PCUs CString m_MRUPcu[MAX_MRU_PCUS]; ////////////// // File Associations BOOL m_IgnoreWinAssoc; CStringList m_AssocViewers; // .extn|appname ////////////// // Diff Associations CStringList m_AssocDiffs; // .extn|appname ////////////// // Merge Associations CStringList m_AssocMerges; // .extn|appname public: inline BOOL Is1stRun() { ASSERT(m_AttemptedRead); return m_Virgin; } inline LPCTSTR GetMyID() { ASSERT(m_AttemptedRead); return LPCTSTR(m_MyID); } BOOL ReadRegistry(); // Set and get either the permanent connection params (the ones // in the registry) or the active ones (the ones currently being used). // LPCTSTR GetP4Port( BOOL permanent = FALSE ); LPCTSTR GetP4User( BOOL permanent = FALSE ); LPCTSTR GetP4Client( BOOL permanent = FALSE ); LPCTSTR GetP4UserPassword( BOOL permanent = FALSE ); LPCTSTR GetP4Charset( BOOL permanent = FALSE ); // Set the temporary over-rides of connection parameters and/or the permanent // registry copies BOOL SetP4Port( LPCTSTR port, BOOL temporary, BOOL permanent, BOOL writetoreg ); BOOL SetP4User( LPCTSTR user, BOOL temporary, BOOL permanent, BOOL writetoreg ); BOOL SetP4Client( LPCTSTR client, BOOL temporary, BOOL permanent, BOOL writetoreg ); BOOL SetP4Password( LPCTSTR password, BOOL temporary, BOOL permanent, BOOL writetoreg ); BOOL SetP4Charset( LPCTSTR charset, BOOL temporary, BOOL permanent, BOOL writetoreg ); void SetP4CharsetFromCmdli( BOOL b ) {m_bCharsetFromCmdli = b; } /////////////// // Options Key inline LPCTSTR GetEditApp() { ASSERT(m_AttemptedRead); return LPCTSTR(m_EditApp); } inline LPCTSTR GetDiffApp() { ASSERT(m_AttemptedRead); return LPCTSTR(m_DiffApp); } inline LPCTSTR GetDiffOptArgs() { ASSERT(m_AttemptedRead); return LPCTSTR(m_DiffOptArgs); } inline LPCTSTR GetMergeApp() { ASSERT(m_AttemptedRead); return LPCTSTR(m_MergeApp); } inline LPCTSTR GetMergeOptArgs() { ASSERT(m_AttemptedRead); return LPCTSTR(m_MergeOptArgs); } inline int GetTabWidth() { ASSERT(m_AttemptedRead); return int(m_TabWidth); } inline int GetWhtSpFlag() { ASSERT(m_AttemptedRead); return int(m_WhtSpFlag); } inline int GetMrgTabWidth() { ASSERT(m_AttemptedRead); return int(m_MrgTabWidth); } inline int GetMrgWhtSpFlag() { ASSERT(m_AttemptedRead); return int(m_MrgWhtSpFlag); } inline int GetAnnotateWhtSpace() { ASSERT(m_AttemptedRead); return int(m_AnnotateWhtSpace); } inline int GetAnnotateIncInteg() { ASSERT(m_AttemptedRead); return int(m_AnnotateIncInteg); } inline int GetTLVWhtSpace() { ASSERT(m_AttemptedRead); return int(m_TLVWhtSpace); } inline int GetTLVIncInteg() { ASSERT(m_AttemptedRead); return int(m_TLVIncInteg); } inline int GetResolveWhtSp() { ASSERT(m_AttemptedRead); return int(m_ResolveWhtSp); } inline int GetUseTempForView() { ASSERT(m_AttemptedRead); return m_UseTempForView; } inline LPCTSTR GetUseTempForExts() { ASSERT(m_AttemptedRead); return m_UseTempForExts; } inline BOOL GetEditAppIsConsole() { ASSERT(m_AttemptedRead); return m_EditAppIsConsole; } inline BOOL GetDiffAppIsConsole() { ASSERT(m_AttemptedRead); return m_DiffAppIsConsole; } inline BOOL GetDiffAppIsClose() { ASSERT(m_AttemptedRead); return m_DiffAppIsClose; } inline BOOL GetDiffAppIsBinary() { ASSERT(m_AttemptedRead); return m_DiffAppIsBinary; } inline int GetDiffInternal() { ASSERT(m_AttemptedRead); return m_DiffInternal; } inline BOOL GetDiffAppOptArgChk() { ASSERT(m_AttemptedRead); return m_DiffOptArgChk; } inline int GetMergeInternal() { ASSERT(m_AttemptedRead); return m_MergeInternal; } inline BOOL GetMergeAppOptArgChk() { ASSERT(m_AttemptedRead); return m_MergeOptArgChk; } inline BOOL GetMergeNSF() { ASSERT(m_AttemptedRead); return m_MergeNSF; } inline BOOL GetMergeAppIsConsole() { ASSERT(m_AttemptedRead); return m_MergeAppIsConsole; } inline BOOL GetMergeAppIsClose() { ASSERT(m_AttemptedRead); return m_MergeAppIsClose; } inline BOOL AlwaysShowFocus() { ASSERT(m_AttemptedRead); return m_AlwaysShowFocus; } inline BOOL AlwaysWarnOnRevert() { ASSERT(m_AttemptedRead); return m_AlwaysWarnOnRevert; } inline BOOL AllowPromptAbove() { ASSERT(m_AttemptedRead); return m_AllowPromptAbove; } inline BOOL AutoMinEditDlg() { ASSERT(m_AttemptedRead); return m_AutoMinEditDlg; } inline int GetDoubleClickOption() { ASSERT(m_AttemptedRead); return m_DoubleClickOption; } inline int GetOptionStartUpOption() { ASSERT(m_AttemptedRead); return m_OptionStartUpOption; } inline int GetOptionStartUpPage() { ASSERT(m_AttemptedRead); return m_OptionStartUpPage; } inline int GetStatusUpdateInterval() { ASSERT(m_AttemptedRead); return m_StatusUpdateInterval; } inline int GetLabelAddRplDefault() { ASSERT(m_AttemptedRead); return m_LabelAddRplDefault; } inline int GetDiff2Default1() { ASSERT(m_AttemptedRead); return m_Diff2Default1; } inline int GetDiff2Default2() { ASSERT(m_AttemptedRead); return m_Diff2Default2; } BOOL SetEditApp(LPCTSTR appPath); BOOL SetDiffApp(LPCTSTR appPath); BOOL SetDiffOptArgs(LPCTSTR optArgs); BOOL SetMergeApp(LPCTSTR appPath); BOOL SetMergeOptArgs(LPCTSTR optArgs); BOOL SetTabWidth(int tabWidth); BOOL SetWhtSpFlag(int whtSpFlag); BOOL SetMrgTabWidth(int mrgTabWidth); BOOL SetMrgWhtSpFlag(int whtSpFlag); BOOL SetAnnotateWhtSpace(int whtSpFlag); BOOL SetAnnotateIncInteg(int incIntegFlag); BOOL SetTLVWhtSpace(int whtSpFlag); BOOL SetTLVIncInteg(int incIntegFlag); BOOL SetResolveWhtSp(int whtSpFlag); BOOL SetUseTempForView(BOOL useTempForView); BOOL SetUseTempForExts(LPCTSTR useTempForExts); BOOL SetEditAppIsConsole(BOOL isConsole); BOOL SetDiffAppIsConsole(BOOL isConsole); BOOL SetDiffAppIsClose(BOOL isClose); BOOL SetDiffAppIsBinary(BOOL isBinary); int SetDiffInternal(BOOL isInternal); BOOL SetDiffOptArgChk(BOOL isOptArg); int SetMergeInternal(BOOL isInternal); BOOL SetMergeOptArgChk(BOOL isOptArg); BOOL SetMergeNSF(BOOL bNSF); BOOL SetMergeAppIsConsole(BOOL isConsole); BOOL SetMergeAppIsClose(BOOL isClose); BOOL SetAlwaysShowFocus(BOOL alwaysShowFocus); BOOL SetAlwaysWarnOnRevert(BOOL alwaysWarnOnRevert); BOOL SetAllowPromptAbove(BOOL allowPromptAbove); BOOL SetAutoMinEditDlg(BOOL autoMinEditDlg); BOOL SetDoubleClickOption(int dblClick); BOOL SetOptionStartUpOption(int startupoption); BOOL SetOptionStartUpPage(int startuppage); BOOL SetStatusUpdateInterval(int statinterval); BOOL SetLabelAddRplDefault(int defaultNbr); BOOL SetDiff2Default1(int defaultNbr); BOOL SetDiff2Default2(int defaultNbr); void SetHostname(CString& hostname); inline LPCTSTR GetHostname() { ASSERT(m_AttemptedRead); return LPCTSTR(m_Hostname); } inline LPCTSTR GetTempDir() { ASSERT(m_AttemptedRead); return LPCTSTR(m_TempDir); } inline int GetExplorer() { ASSERT(m_AttemptedRead); return m_Explorer; } inline BOOL Get2Panes() { ASSERT(m_AttemptedRead); return m_2Panes; } inline LPCTSTR GetAltExpl() { ASSERT(m_AttemptedRead); return LPCTSTR(m_AltExpl); } inline LPCTSTR GetExpandPath() { ASSERT(m_AttemptedRead); return LPCTSTR(m_ExpandPath); } inline LPCTSTR GetWarnLimit() { ASSERT(m_AttemptedRead); return LPCTSTR(m_WarnLimit); } inline LPCTSTR GetWarnLimitDiff() { ASSERT(m_AttemptedRead); return LPCTSTR(m_WarnLimitDiff); } inline LPCTSTR GetWarnLimitOpen() { ASSERT(m_AttemptedRead); return LPCTSTR(m_WarnLimitOpen); } inline LPCTSTR GetExtSortMax() { ASSERT(m_AttemptedRead); return LPCTSTR(m_ExtSortMax); } inline LPCTSTR GetMinMultiLineSize() { ASSERT(m_AttemptedRead); return LPCTSTR(m_MinMultiLineSize); } inline LPCTSTR GetUserFilter() { ASSERT(m_AttemptedRead); return LPCTSTR(m_UserFilter); } inline LPCTSTR GetClientFilter() { ASSERT(m_AttemptedRead); return LPCTSTR(m_ClientFilter); } inline BOOL GetLabelFilterByOwnerFlag() { ASSERT(m_AttemptedRead); return m_LabelFilterByOwnerFlag; } inline LPCTSTR GetLabelFilterByOwner() { ASSERT(m_AttemptedRead); return LPCTSTR(m_LabelFilterByOwner); } inline BOOL GetFilteredByUser() { ASSERT(m_AttemptedRead); return m_FilteredByUser; } inline BOOL GetFilteredByClient() { ASSERT(m_AttemptedRead); return m_FilteredByClient; } inline BOOL GetLabelFilterIncBlank() { ASSERT(m_AttemptedRead); return m_LabelFilterIncBlank; } inline LPCTSTR GetUseOpenForEditExts() { ASSERT(m_AttemptedRead); return LPCTSTR(m_UseOpenForEditExts); } inline BOOL GetUseOpenForEdit() { ASSERT(m_AttemptedRead); return m_UseOpenForEdit; } inline BOOL GetUseShortRevHistDesc() { ASSERT(m_AttemptedRead); return m_UseShortRevHistDesc; } inline BOOL GetUseShortSubmittedDesc() { ASSERT(m_AttemptedRead); return m_UseShortSubmittedDesc; } inline int GetUseLongChglistDesc() { ASSERT(m_AttemptedRead); return m_UseLongChglistDesc; } inline int BusyWaitTime() { ASSERT(m_AttemptedRead); return m_BusyWaitTime; } inline int GetSyncDlgFlag() { ASSERT(m_AttemptedRead); return m_SyncDlgFlag; } inline int GetDescWrap() { ASSERT(m_AttemptedRead); return m_DescWrap; } inline BOOL GetDescWrapSw() { ASSERT(m_AttemptedRead); return m_DescWrapSw; } inline BOOL GetExpandFlag() { ASSERT(m_AttemptedRead); return m_ExpandFlag; } inline BOOL GetIsNoCopy() { ASSERT(m_AttemptedRead); return m_IsNoCopy; } inline BOOL GetIsForceInteg() { ASSERT(m_AttemptedRead); return m_IsForceInteg; } inline BOOL GetIsForceDirect() { ASSERT(m_AttemptedRead); return m_IsForceDirect; } inline BOOL GetIsDeleteSource() { ASSERT(m_AttemptedRead); return m_IsDeleteSource; } inline BOOL GetIsPermitDelReadd() { ASSERT(m_AttemptedRead); return m_IsPermitDelReadd; } inline int GetDelReaddType() { ASSERT(m_AttemptedRead); return m_DelReaddType; } inline BOOL GetIsBaselessMerge() { ASSERT(m_AttemptedRead); return m_IsBaselessMerge; } inline BOOL GetIsIndirectMerge() { ASSERT(m_AttemptedRead); return m_IsIndirectMerge; } inline BOOL GetIsPropagateTypes() { ASSERT(m_AttemptedRead); return m_IsPropagateTypes; } inline BOOL GetIsBaseViaDelReadd() { ASSERT(m_AttemptedRead); return m_IsBaseViaDelReadd; } inline BOOL GetUseNewChglist() { ASSERT(m_AttemptedRead); return m_UseNewChglist; } inline BOOL GetUseNewChglist2() { ASSERT(m_AttemptedRead); return m_UseNewChglist2; } inline BOOL GetSyncFirstDefault() { ASSERT(m_AttemptedRead); return m_SyncFirstDefault; } inline BOOL GetWarnAlreadyOpened() { ASSERT(m_AttemptedRead); return m_WarnAlreadyOpened; } inline BOOL ShowDeleted() { ASSERT(m_AttemptedRead); return m_ShowDeleted; } inline BOOL SortByExtension() { ASSERT(m_AttemptedRead); return m_SortByExtension; } inline BOOL SortChgFilesByAction() { ASSERT(m_AttemptedRead); return m_SortChgFilesByAction; } inline BOOL SortChgFilesByName() { ASSERT(m_AttemptedRead); return m_SortChgFilesByName; } inline BOOL SortChgFilesByExt() { ASSERT(m_AttemptedRead); return m_SortChgFilesByExt; } inline BOOL SortChgFilesByResolve() { ASSERT(m_AttemptedRead); return m_SortChgFilesByResolve; } inline BOOL ShowToolBar() { ASSERT(m_AttemptedRead); return m_ShowToolBar; } inline int ShowEntireDepot() { ASSERT(m_AttemptedRead); return m_ShowEntireDepot; } inline BOOL ShowFileType() { ASSERT(m_AttemptedRead); return m_ShowFileType; } inline BOOL ShowOpenAction() { ASSERT(m_AttemptedRead); return m_ShowOpenAction; } inline BOOL ShowChangeDesc() { ASSERT(m_AttemptedRead); return m_ShowChangeDesc; } inline BOOL SortChgsByUser() { ASSERT(m_AttemptedRead); return m_SortChgsByUser; } inline BOOL ShowCommandTrace() { ASSERT(m_AttemptedRead); return m_ShowCommandTrace; } inline BOOL ShowConnectSettings() { ASSERT(m_AttemptedRead); return m_ShowConnectSettings; } inline BOOL ShowConnectPort1st() { ASSERT(m_AttemptedRead); return m_ShowConnectPort1st; } inline BOOL ShowClientPath4Chgs() { ASSERT(m_AttemptedRead); return FALSE; } inline BOOL ShowClientPath() { ASSERT(m_AttemptedRead); return m_ShowClientPath; } inline BOOL ShowDepotPathHiLite() { ASSERT(m_AttemptedRead); return m_ShowDepotPathHiLite; } inline BOOL ShowStatusTime() { ASSERT(m_AttemptedRead); return m_ShowStatusTime; } inline BOOL ShowHiddenFilesNotInDepot() { ASSERT(m_AttemptedRead); return m_ShowHiddenFilesNotInDepot; } inline BOOL Use24hourClock() { ASSERT(m_AttemptedRead); return m_Use24hourClock; } inline BOOL PreserveSpecFormat() { ASSERT(m_AttemptedRead); return m_PreserveSpecFormat; } inline BOOL AutoExpandOptions() { ASSERT(m_AttemptedRead); return m_AutoExpandOptions; } inline BOOL LabelFilesInDialog() { ASSERT(m_AttemptedRead); return m_LabelFilesInDialog; } inline BOOL LabelShowPreviewDetail() { ASSERT(m_AttemptedRead); return m_LabelShowPreviewDetail; } inline BOOL Diff2InDialog() { ASSERT(m_AttemptedRead); return m_Diff2InDialog; } inline BOOL AutoTreeExpand() { ASSERT(m_AttemptedRead); return m_AutoTreeExpand; } inline BOOL UseNotepad4WarnAndErr() { ASSERT(m_AttemptedRead); return m_UseNotepad4WarnAndErr; } inline BOOL Cvt2ValComboToChkBx() { ASSERT(m_AttemptedRead); return m_Cvt2ValComboToChkBx; } inline BOOL IconsInMenus() { ASSERT(m_AttemptedRead); return m_IconsInMenus; } inline BOOL ExpandChgLists() { ASSERT(m_AttemptedRead); return m_ExpandChgLists; } inline BOOL ReExpandChgs() { ASSERT(m_AttemptedRead); return m_ReExpandChgs; } inline BOOL GetEnableSubChgIntegFilter() { ASSERT(m_AttemptedRead); return m_EnableSubChgIntegFilter; } inline BOOL GetEnableRevHistShowIntegs() { ASSERT(m_AttemptedRead); return m_EnableRevHistShowIntegs; } inline BOOL GetEnablePendingChgsOtherClients() { ASSERT(m_AttemptedRead); return m_EnablePendingChgsOtherClients; } inline long GetAddFilterExclude() { ASSERT(m_AttemptedRead); return m_AddFilterExclude; } inline BOOL GetAutoPoll() { ASSERT(m_AttemptedRead); return m_AutoPoll; } inline long GetAutoPollTime() { ASSERT(m_AttemptedRead); return m_AutoPollTime; } inline BOOL GetAutoPollIconic() { ASSERT(m_AttemptedRead); return m_AutoPollIconic; } inline BOOL GetAutoPollJobs() { ASSERT(m_AttemptedRead); return m_AutoPollJobs; } inline BOOL GetLogoutOnExit() { ASSERT(m_AttemptedRead); return m_LogoutOnExit; } inline BOOL GetClearAndReload() { ASSERT(m_AttemptedRead); return m_ClearAndReload; } inline BOOL GetReloadOnUncover() { ASSERT(m_AttemptedRead); return m_ReloadOnUncover; } inline long GetReloadUncoverTime() { ASSERT(m_AttemptedRead); return m_ReloadUncoverTime; } inline long GetChglistSyncDef() { ASSERT(m_AttemptedRead); return m_ChglistSyncDef; } inline int GetFetchChangeCount() { ASSERT(m_AttemptedRead); return m_FetchChangeCount; } inline BOOL GetFetchAllChanges() { ASSERT(m_AttemptedRead); return m_FetchAll; } inline int GetFetchJobCount() { ASSERT(m_AttemptedRead); return m_FetchJobCount; } inline BOOL GetFetchAllJobs() { ASSERT(m_AttemptedRead); return m_FetchAllJobs; } inline int GetFetchHistCount() { ASSERT(m_AttemptedRead); return m_FetchHistCount; } inline BOOL GetFetchAllHist() { ASSERT(m_AttemptedRead); return m_FetchAllHist; } inline long GetFetchCompleteHist() { ASSERT(m_AttemptedRead); return m_FetchCompleteHist; } inline BOOL GetHistListHeight() { ASSERT(m_AttemptedRead); return m_HistListHeight; } inline BOOL GetJobFilterWidth() { ASSERT(m_AttemptedRead); return m_JobFilterWidth; } inline BOOL UseDepotInClientView() { ASSERT(m_AttemptedRead); return m_UseDepotInClientView; } inline BOOL Use256colorIcons() { ASSERT(m_AttemptedRead); return m_Use256colorIcons; } inline BOOL DontShowYouHaveChgClientView() { ASSERT(m_AttemptedRead); return m_DontShowYouHaveChgClientView; } inline BOOL DontShowYouHaveCr8NewClient() { ASSERT(m_AttemptedRead); return m_DontShowYouHaveCr8NewClient; } inline BOOL DontShowDiscardFormChgs() { ASSERT(m_AttemptedRead); return m_DontShowDiscardFormChgs; } inline int GetAutoGetOnEdit() { ASSERT(m_AttemptedRead); return m_AutoGetOnEdit; } inline BOOL AllowExceptionReporting() { ASSERT(m_AttemptedRead); return m_AllowExceptionReporting; } inline BOOL TryResetingFocus() { ASSERT(m_AttemptedRead); return m_TryResetingFocus; } BOOL SetTempDir(LPCTSTR tempdir); BOOL SetExplorer(int explorersw); BOOL Set2Panes(BOOL b2Panes); BOOL SetAltExpl(LPCTSTR explorerstring); BOOL SetPreviewDefault(BOOL previewDefault); BOOL SetIsBaselessMerge(BOOL isBaselessMerge); BOOL SetIsIndirectMerge(BOOL isIndirectMerge); BOOL SetIsPropagateTypes(BOOL isPropagateTypes); BOOL SetIsBaseViaDelReadd(BOOL isBaseViaDelReadd); BOOL SetUseNewChglist(BOOL useNewChglist); BOOL SetUseNewChglist2(BOOL useNewChglist2); BOOL SetIsPermitDelReadd(BOOL isPermitDelReadd); BOOL SetDelReaddType(int delReaddType); BOOL SetIsDeleteSource(BOOL isDeleteSource); BOOL SetIsForceInteg(BOOL isForceInteg); BOOL SetIsForceDirect(BOOL isForceDirect); BOOL SetIsNoCopy(BOOL isNoCopy); BOOL SetSyncFirstDefault(BOOL syncFirstDefault); BOOL SetWarnAlreadyOpened(BOOL warnAlreadyOpened); BOOL SetExpandFlag(BOOL expandFlag); BOOL SetExpandPath(LPCTSTR expandPath); BOOL SetShowDeleted(BOOL showDeleted); BOOL SetSortByExtension(BOOL sortByExtension); BOOL SetSortChgFilesByAction(BOOL sortChgFilesByAction); BOOL SetSortChgFilesByName(BOOL sortChgFilesByName); BOOL SetSortChgFilesByExt(BOOL sortChgFilesByExt); BOOL SetSortChgFilesByResolve(BOOL sortChgFilesByResolve); BOOL SetWarnLimit(LPCTSTR warnLimit); BOOL SetWarnLimitDiff(LPCTSTR warnLimitDiff); BOOL SetWarnLimitOpen(LPCTSTR warnLimitOpen); BOOL SetExtSortMax(LPCTSTR extSortMax); BOOL SetMinMultiLineSize(LPCTSTR minMultiLineSize); BOOL SetUserFilter(LPCTSTR userFilter); BOOL SetFilteredByUser(int filteredByUser); BOOL SetClientFilter(LPCTSTR clientFilter); BOOL SetFilteredByClient(int filteredByClient); BOOL SetLabelFilterByOwnerFlag(int labelFilterByOwnerFlag); BOOL SetLabelFilterByOwner(LPCTSTR labelFilterByOwner); BOOL SetLabelFilterIncBlank(int labelFilterIncBlank); BOOL SetUseOpenForEditExts(LPCTSTR useOpenForEditExts); BOOL SetUseOpenForEdit(int useOpenForEdit); BOOL SetUseShortRevHistDesc(int useShortRevHistDesc); BOOL SetUseShortSubmittedDesc(int useShortSubmittedDesc); BOOL SetUseLongChglistDesc(int useLongChglistDesc); BOOL SetBusyWaitTime(int busyWaitTime); BOOL SetSyncDlgFlag(int syncDlgFlag); BOOL SetDescWrap(int descWrap); BOOL SetDescWrapSw(BOOL descWrapSw); BOOL SetShowToolBar(BOOL showToolBar); BOOL SetShowEntireDepot(int showEntire); BOOL SetShowFileType(BOOL showFileType); BOOL SetShowOpenAction(BOOL showOpenAction); BOOL SetShowCommandTrace ( BOOL ); BOOL SetShowChangeDesc(BOOL showChangeDesc); BOOL SetSortChgsByUser(BOOL sortChgsByUser); BOOL SetShowConnectSettings(BOOL showConnectSettings); BOOL SetShowConnectPort1st(BOOL showConnectPort1st); BOOL SetShowClientPath4Chgs(BOOL showClientPath4Chgs); BOOL SetShowClientPath(BOOL showClientPath); BOOL SetShowDepotPathHiLite(BOOL showDepotPathHiLite); BOOL SetShowStatusTime(BOOL showStatusTime); BOOL SetShowHiddenFilesNotInDepot(BOOL showHiddenFilesNotInDepot); BOOL SetUse24hourClock(BOOL use24hourClock); BOOL SetPreserveSpecFormat(BOOL preserveSpecFormat); BOOL SetAutoExpandOptions(BOOL autoExpandOptions); BOOL SetLabelFilesInDialog(BOOL labelFilesInDialog); BOOL SetLabelShowPreviewDetail(BOOL labelShowPreviewDetail); BOOL SetDiff2InDialog(BOOL diff2InDialog); BOOL SetAutoTreeExpand(BOOL autoTreeExpand); BOOL SetUseNotepad4WarnAndErr(BOOL useNotepad4WarnAndErr); BOOL SetCvt2ValComboToChkBx(BOOL cvt2ValComboToChkBx); BOOL SetIconsInMenus(BOOL iconsInMenus); BOOL SetExpandChgLists(BOOL expandChgLists); BOOL SetReExpandChgs(BOOL reExpandChgs); BOOL SetEnableSubChgIntegFilter(BOOL enableSubChgIntegFilter); BOOL SetEnableRevHistShowIntegs(BOOL enableRevHistShowIntegs); BOOL SetEnablePendingChgsOtherClients(BOOL enablePendingChgsOtherClients); BOOL SetAddFilterExclude(long AddFilterExclude); BOOL SetAutoPoll(BOOL autoPoll); BOOL SetAutoPollTime(long autoPollTime); BOOL SetAutoPollIconic(BOOL autoPoll); BOOL SetAutoPollJobs(BOOL autoPollJobs); BOOL SetLogoutOnExit(BOOL logoutOnExit); BOOL SetClearAndReload(BOOL clearAndReload); BOOL SetReloadOnUncover(BOOL reloadOnUncover); BOOL SetReloadUncoverTime(long reloadUncoverTime); BOOL SetChglistSyncDef(long chglistSyncDef); BOOL SetFetchChangeCount(long fetchChangeCount); BOOL SetFetchAllChanges(BOOL fetchAll); BOOL SetFetchJobCount(long fetchJobCount); BOOL SetFetchAllJobs(BOOL fetchAllJobs); BOOL SetFetchHistCount(long fetchHistCount); BOOL SetFetchAllHist(BOOL fetchAll); BOOL SetFetchCompleteHist(long fetchComplete); BOOL SetHistListHeight(int histListHeight); BOOL SetJobFilterWidth(int jobFilterWidth); BOOL SetUseDepotInClientView(int useDepotInClientView); BOOL SetUse256colorIcons(int useDepotInClientView); BOOL SetDontShowYouHaveChgClientView(int bDontShowYouHaveChgClientView); BOOL SetDontShowYouHaveCr8NewClient(int bDontShowYouHaveCr8NewClient); BOOL SetDontShowDiscardFormChgs(int bDontShowDiscardFormChgs); BOOL SetAllowExceptionReporting(BOOL allowExceptionReporting); BOOL SetTryResetingFocus(BOOL tryResetingFocus); LPCTSTR GetFontFace() { ASSERT(m_AttemptedRead); return LPCTSTR(m_FontFace); } int GetFontSize() { ASSERT(m_AttemptedRead); return m_FontSize; } BOOL GetFontItalic() { ASSERT(m_AttemptedRead); return m_IsFontItalic; } int GetFontWeight() { ASSERT(m_AttemptedRead); return m_FontWeight; } BOOL SetFontFace( LPCTSTR fontFace ); BOOL SetFontSize( int fontSize ); BOOL SetFontItalic( BOOL isItalic ); BOOL SetFontWeight( int fontWeight ); int GetFindFilesWidth() { ASSERT(m_AttemptedRead); return m_FindFilesWidth; } BOOL SetFindFilesWidth( int findFilesWidth ); int GetP4StartWith() { ASSERT(m_AttemptedRead); return m_P4StartWith; } BOOL SetP4StartWith( int p4StartWith ); BOOL GetP4BusyCursor() { ASSERT(m_AttemptedRead); return m_P4BusyCursor; } BOOL SetP4BusyCursor( BOOL p4BusyCursor ); BOOL GetCloseAfterFind() { ASSERT(m_AttemptedRead); return m_CloseAfterFind; } BOOL SetCloseAfterFind( BOOL CloseAfterFind ); BOOL GetSubmitOnlyChged() { ASSERT(m_AttemptedRead); return m_SubmitOnlyChged; } BOOL SetSubmitOnlyChged( BOOL submitOnlyChged ); BOOL GetRevertUnchged() { ASSERT(m_AttemptedRead); return m_RevertUnchged; } BOOL SetRevertUnchged( BOOL revertUnchged ); BOOL GetAutoReopen() { ASSERT(m_AttemptedRead); return m_AutoReopen; } BOOL SetAutoReopen( BOOL autoReopen ); BOOL FilterPendChgsByMyClient() { ASSERT(m_AttemptedRead); return m_FilterPendChgsByMyClient; } BOOL SetFilterPendChgsByMyClient( BOOL filterPendChgsByMyClient ); LPCTSTR FilterPendChgsByPath() { ASSERT(m_AttemptedRead); return m_FilterPendChgsByPath; } BOOL SetFilterPendChgsByPath( LPCTSTR filterPendChgsByPath ); int GetLabelDragDropOption() { ASSERT(m_AttemptedRead); return m_LabelDragDropOption; } BOOL SetLabelDragDropOption( int labelDragDropOption ); int GetResolveDefault() { ASSERT(m_AttemptedRead); return m_ResolveDefault; } BOOL SetResolveDefault( int resolveDefault ); int GetResolve2wayDefault() { ASSERT(m_AttemptedRead); return m_Resolve2wayDefault; } BOOL SetResolve2wayDefault( int resolve2wayDefault ); int GetResolve3wayDefault() { ASSERT(m_AttemptedRead); return m_Resolve3wayDefault; } BOOL SetResolve3wayDefault( int resolve3wayDefault ); int GetConvertJobNbr() { ASSERT(m_AttemptedRead); return m_ConvertJobNbr; } BOOL SetConvertJobNbr( int convertJobNbr ); /////////////// // Settings Key inline LPCTSTR GetAddFileCurDir() { ASSERT(m_AttemptedRead); return LPCTSTR(m_AddFileCurDir); } inline LPCTSTR GetAddFileExtFilter() { ASSERT(m_AttemptedRead); return LPCTSTR(m_AddFileExtFilter); } inline LPCTSTR GetAddFileFilter() { ASSERT(m_AttemptedRead); return LPCTSTR(m_AddFileFilter); } inline int GetAddFileFilterIndex() { ASSERT(m_AttemptedRead); return m_AddFileFilterIndex; } inline int GetDefaultDnDfromExp() { ASSERT(m_AttemptedRead); return m_DefaultDnDfromExp; } inline int GetMultiProcessorSleep() { ASSERT(m_AttemptedRead); return m_MultiProcessorSleep; } inline int GetMaxStatusLines() { ASSERT(m_AttemptedRead); return m_MaxStatusLines; } inline BOOL GetShowStatusMsgs() { ASSERT(m_AttemptedRead); return m_ShowStatusMsgs; } inline BOOL GetShowTruncTooltip() { ASSERT(m_AttemptedRead); return m_ShowTruncTooltip; } inline BOOL GetDontThreadDiffs() { ASSERT(m_AttemptedRead); return m_DontThreadDiffs; } inline LPCTSTR GetPendChgExpansion() { ASSERT(m_AttemptedRead); return LPCTSTR(m_PendChgExpansion); } inline LPCTSTR GetLastBranch() { ASSERT(m_AttemptedRead); return LPCTSTR(m_LastBranch); } inline LPCTSTR GetLastLabel() { ASSERT(m_AttemptedRead); return LPCTSTR(m_LastLabel); } inline LPCTSTR GetLastTemplate() { ASSERT(m_AttemptedRead); return LPCTSTR(m_LastTemplate); } inline LPCTSTR GetLocalCliTemplate() { ASSERT(m_AttemptedRead); return LPCTSTR(m_LocalCliTemplate); } inline BOOL LocalCliTemplateSw() { ASSERT(m_AttemptedRead); return m_LocalCliTemplateSw; } inline BOOL UseClientSpecSubmitOpts() { ASSERT(m_AttemptedRead); return m_UseClientSpecSubmitOpts; } inline BOOL SwapButtonPosition() { ASSERT(m_AttemptedRead); return m_SwapButtonPosition; } inline int GetBranchFilteredFlags() { ASSERT(m_AttemptedRead); return m_BranchFilteredFlags; } inline LPCTSTR GetBranchFilterOwner() { ASSERT(m_AttemptedRead); return LPCTSTR(m_BranchFilterOwner); } inline int GetClientFilteredFlags() { ASSERT(m_AttemptedRead); return m_ClientFilteredFlags; } inline LPCTSTR GetClientFilterOwner() { ASSERT(m_AttemptedRead); return LPCTSTR(m_ClientFilterOwner); } inline LPCTSTR GetClientFilterHost() { ASSERT(m_AttemptedRead); return LPCTSTR(m_ClientFilterHost); } inline LPCTSTR GetClientFilterDesc() { ASSERT(m_AttemptedRead); return LPCTSTR(m_ClientFilterDesc); } BOOL SetAddFileCurDir(LPCTSTR dir); BOOL SetAddFileExtFilter(LPCTSTR exts); BOOL SetAddFileFilter(LPCTSTR filter); BOOL SetAddFileFilterIndex(int index); BOOL SetDefaultDnDfromExp(int index); BOOL SetMultiProcessorSleep(int index); BOOL SetMaxStatusLines(int maxStatusLines); BOOL SetShowStatusMsgs(BOOL showStatusMsgs); BOOL SetShowTruncTooltip(BOOL showTruncTooltip); BOOL SetDontThreadDiffs(BOOL dontThreadDiffs); BOOL SetPendChgExpansion(LPCTSTR pendChgExpansion); BOOL SetLastBranch(LPCTSTR lastBranch); BOOL SetLastLabel(LPCTSTR lastLabel); BOOL SetLastTemplate(LPCTSTR lastTemplate); BOOL SetLocalCliTemplate(LPCTSTR localCliTemplate); BOOL SetLocalCliTemplateSw(BOOL localCliTemplateSw); BOOL SetUseClientSpecSubmitOpts(BOOL useClientSpecSubmitOpts); BOOL SetSwapButtonPosition(BOOL swapButtonPosition); BOOL SetBranchFilteredFlags(int branchFilteredFlags); BOOL SetBranchFilterOwner(LPCTSTR branchFilterOwner); BOOL SetClientFilteredFlags(int clientFilteredFlags); BOOL SetClientFilterOwner(LPCTSTR clientFilterOwner); BOOL SetClientFilterHost(LPCTSTR clientFilterHost); BOOL SetClientFilterDesc(LPCTSTR clientFilterDesc); /////////////// // Layout Key inline CRect GetWindowPosition() { ASSERT(m_AttemptedRead); return m_WindowPosition; } inline BOOL GetWindowIconic() { ASSERT(m_AttemptedRead); return (UINT) m_Iconic; } inline BOOL GetWindowMaximized() { ASSERT(m_AttemptedRead); return (UINT) m_Maximized; } inline int GetHSplitterPosition() { ASSERT(m_AttemptedRead); return m_HSplitterPosition; } inline int GetVSplitterPosition() { ASSERT(m_AttemptedRead); return m_VSplitterPosition; } BOOL SetWindowPosition(CRect position); BOOL SetWindowIconic(BOOL iconic); BOOL SetWindowMaximized(BOOL maximized); BOOL SetHSplitterPosition(int position); BOOL SetVSplitterPosition(int position); /////////////// // Tools Key CString CP4Registry::GetToolMenuName(int index); CString CP4Registry::GetToolCommand(int index); CString CP4Registry::GetToolArgs(int index); CString CP4Registry::GetToolInitDir(int index); CString CP4Registry::GetToolPromptText(int index); BOOL CP4Registry::GetToolIsConsole(int index); BOOL CP4Registry::GetToolIsPrompt(int index); BOOL CP4Registry::GetToolIsOutput2Status(int index); BOOL CP4Registry::GetToolIsCloseOnExit(int index); BOOL CP4Registry::GetToolIsShowBrowse(int index); BOOL CP4Registry::GetToolIsRefresh(int index); BOOL CP4Registry::GetToolOnContext(int index); BOOL CP4Registry::GetToolIsSubMenu(int index); BOOL CP4Registry::SetToolMenuName(int index, CString menuName); BOOL CP4Registry::SetToolCommand(int index, CString command); BOOL CP4Registry::SetToolArgs(int index, CString args); BOOL CP4Registry::SetToolInitDir(int index, CString initDir); BOOL CP4Registry::SetToolPromptText(int index, CString initDir); BOOL CP4Registry::SetToolIsConsole(int index, BOOL isConsole); BOOL CP4Registry::SetToolIsPrompt(int index, BOOL isPrompt); BOOL CP4Registry::SetToolIsOutput2Status(int index, BOOL isOutput2Status); BOOL CP4Registry::SetToolIsCloseOnExit(int index, BOOL isCloseOnExit); BOOL CP4Registry::SetToolIsShowBrowse(int index, BOOL isShowBrowse); BOOL CP4Registry::SetToolIsRefresh(int index, BOOL isRefresh); BOOL CP4Registry::SetToolOnContext(int index, BOOL onContext); BOOL CP4Registry::SetToolIsSubMenu(int index, BOOL isSubMenu); /////////////// // Bookmark Key CString CP4Registry::GetBkMkMenuName(int index); BOOL CP4Registry::GetBkMkIsSubMenu(int index); BOOL CP4Registry::SetBkMkMenuName(int index, CString menuName); BOOL CP4Registry::SetBkMkIsSubMenu(int index, BOOL isSubMenu); /////////////// // Favorites Key CString CP4Registry::GetFavMenuName(int index); BOOL CP4Registry::GetFavIsSubMenu(int index); BOOL CP4Registry::SetFavMenuName(int index, CString menuName); BOOL CP4Registry::SetFavIsSubMenu(int index, BOOL isSubMenu); /////////////// // MRU Tool Arguments CString GetMRUToolArg(int index); void AddMRUToolArg( LPCTSTR toolArg ); /////////////// // MRU Find Strings CString GetMRUFindStr(int index); void AddMRUFindStr( LPCTSTR findStr ); /////////////// // MRU Viewers CString GetMRUViewer(int index); CString GetMRUViewerName(int index); void AddMRUViewer( LPCTSTR viewerPath ); void RmvMRUViewer( LPCTSTR viewerPath ); /////////////// // MRU Job Filters CString GetMRUFilter(int index); void AddMRUFilter( LPCTSTR filterStr ); void RmvMRUFilter( LPCTSTR filterStr ); /////////////// // MRU Submitted Changelist Filters CString GetMRUChgFilter(int index); void AddMRUChgFilter( LPCTSTR filterStr ); void RmvMRUChgFilter( LPCTSTR filterStr ); /////////////// // MRU Ports CString GetMRUPort(int index); void AddMRUPort( LPCTSTR portStr, LPCTSTR charsetStr ); /////////////// // MRU Charsets CString GetMRUCharset(int index); void AddMRUCharset( LPCTSTR charsetStr ); /////////////// // MRU Pcus CString GetMRUPcu(int index); void AddMRUPcu( LPCTSTR pcuStr ); void RmvMRUPcu( LPCTSTR pcuStr ); BOOL AddMRUPcuPath( LPCTSTR path ); /////////////// // File Associations inline BOOL GetIgnoreWinAssoc() { ASSERT(m_AttemptedRead); return m_IgnoreWinAssoc; } BOOL SetIgnoreWinAssoc(BOOL ignore); BOOL SetAssociation(LPCTSTR extension, LPCTSTR application); BOOL ClearAssociation(LPCTSTR extension); CString GetAssociatedApp(LPCTSTR extension); CString GetAssociatedAppName(LPCTSTR extension); CStringList *GetAssociationList() { ASSERT(m_AttemptedRead); return &m_AssocViewers; } BOOL SetDiffAssociation(LPCTSTR extension, LPCTSTR application); BOOL ClearDiffAssociation(LPCTSTR extension); CString GetAssociatedDiff(LPCTSTR extension); CString GetAssociatedDiffName(LPCTSTR extension); CStringList *GetDiffAssocList() { ASSERT(m_AttemptedRead); return &m_AssocDiffs; } BOOL SetMergeAssociation(LPCTSTR extension, LPCTSTR application); BOOL ClearMergeAssociation(LPCTSTR extension); CString GetAssociatedMerge(LPCTSTR extension); CString GetAssociatedMergeName(LPCTSTR extension); CStringList *GetMergeAssocList() { ASSERT(m_AttemptedRead); return &m_AssocMerges; } protected: BOOL GetRegKey(CString& str, LPCTSTR section, LPCTSTR entry, LPCTSTR envVarName, LPCTSTR defaultValue); BOOL GetRegKey(BOOL *num, LPCTSTR section, LPCTSTR entry, BOOL defaultValue); BOOL GetRegKey(long *num, LPCTSTR section, LPCTSTR entry, long defaultValue); BOOL SetRegKey( CString& str, LPCTSTR section, LPCTSTR entry); BOOL DelRegKey( LPCTSTR section, LPCTSTR entry); void WriteVirginRegistry(); public: void ReadAssociationList(); void ReadDiffAssocList(); void ReadMergeAssocList(); CString GetPasswordfromReg( ); BOOL TestRegWrite2HKLM(); protected: POSITION FindAssociation(LPCTSTR extension); POSITION FindDiffAssociation(LPCTSTR extension); POSITION FindMergeAssociation(LPCTSTR extension); void SetMyID(); void RegWriteFailed(LONG rc); }; #endif //__P4REGISTRY__