162 lines
3.7 KiB
C++
162 lines
3.7 KiB
C++
/*++
|
|
|
|
Copyright (c) 1992 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
WrkSpace.h
|
|
|
|
Abstract:
|
|
|
|
Header file for WinDbg WorkSpaces.
|
|
|
|
Author:
|
|
|
|
Ramon J. San Andres (ramonsa) 07-July-1992
|
|
Carlos Klapp (a-caklap) 15-July-1998
|
|
|
|
Environment:
|
|
|
|
Win32, User Mode
|
|
|
|
*/
|
|
|
|
|
|
|
|
// these reserved image names are used to magically identify
|
|
// kernel debugger workspaces
|
|
|
|
#define KD_PGM_NAME1 NT_KERNEL_NAME
|
|
#define KD_PGM_NAME2 "osloader.exe"
|
|
|
|
|
|
|
|
BOOL LoadAllWindows(VOID);
|
|
BOOL SaveAllWindows(VOID);
|
|
|
|
|
|
/*
|
|
LONG
|
|
WKSPGetSetProfileProc(
|
|
LPTSTR KeyName, // SubKey name (must be relative)
|
|
LPTSTR ValueName, // value name
|
|
LPDWORD lpType, // type of data (valid only in the case of Set)
|
|
LPBYTE Data, // pointer to data
|
|
LPDWORD lpcbData, // size of data (in bytes)
|
|
BOOL fSet, // TRUE = setting, FALSE = getting
|
|
LPARAM lParam // instance data from shell
|
|
);
|
|
|
|
HKEY
|
|
GetCurrentWorkSpaceOptionSubkey(
|
|
LPCTSTR SubKeyName,
|
|
BOOL Create
|
|
);
|
|
*/
|
|
|
|
void WKSPSetupTL(HTL htl);
|
|
void WKSPSetupEM(HEM hem);
|
|
|
|
|
|
BOOL SetTransportLayer(PSTR pszTL_Name, CAll_TLs_WKSP * pCAll_TLs_WrkSpc);
|
|
BOOL ValidateAllTransportLayers(HWND hwndParent, CAll_TLs_WKSP * pCAll_TLs_WrkSpc);
|
|
|
|
|
|
|
|
BOOL
|
|
WKSP_Initialize();
|
|
|
|
|
|
|
|
// Following class contains variables that are not written out to the
|
|
// registry but belong to the workspace class.
|
|
class CFinal_Windbg_WKSP
|
|
: public CBase_Windbg_WKSP
|
|
{
|
|
public:
|
|
CFinal_Windbg_WKSP();
|
|
virtual ~CFinal_Windbg_WKSP();
|
|
|
|
|
|
// Overriden methods
|
|
public:
|
|
virtual void Restore(BOOL bOnlyItems);
|
|
virtual void Save(BOOL bOnlySaveMirror, BOOL bOnlyItems);
|
|
|
|
|
|
// Flag indicating whether a save is required.
|
|
public:
|
|
// Flag indicating that the debugger state has changed since the last save.
|
|
// True - state has changed since the last save.
|
|
BOOL HasStateChanged() const { return TRUE; }
|
|
|
|
public:
|
|
void SetCurrentProgramName(PCSTR pszProgName);
|
|
const char * GetCurrentProgramName(BOOL fReturnUntitled);
|
|
|
|
void SetCurrentWorkSpaceName(PCSTR pszProgName);
|
|
|
|
public:
|
|
BOOL IsProgramLoaded() { return TRUE; };
|
|
|
|
|
|
|
|
|
|
|
|
// New helper functions
|
|
public:
|
|
virtual int Save_WkSp_Prompt();
|
|
virtual void SaveAs_WkSp_Prompt();
|
|
virtual void New_WkSp_Prompt(BOOL bPrompt);
|
|
virtual void Manage_WkSp_Prompt();
|
|
|
|
virtual void SaveAs_WinLayout_Prompt();
|
|
virtual void Manage_WinLayout_Prompt();
|
|
|
|
CDebuggee_WKSP * DoesDebuggeeExist(LPSTR pszProgramName);
|
|
CWorkSpace_WKSP * DoesWorkSpaceExist(CDebuggee_WKSP * pCDebuggee, PSTR pszWorkSpace);
|
|
|
|
void Save_File_MRU_List();
|
|
void Load_File_MRU_List();
|
|
|
|
|
|
PCSTR GetSelected_TL_Dll_Name();
|
|
PCSTR GetSelected_TL_Params();
|
|
|
|
|
|
PSTR GetDefaultWorkSpaceForDebuggee(PSTR pszDebuggeeName);
|
|
PSTR GetNameOfCurrentWorkSpace();
|
|
|
|
|
|
|
|
BOOL ShuttingDown();
|
|
|
|
|
|
|
|
// Data
|
|
|
|
PSTR m_CurrentExePath;
|
|
};
|
|
|
|
|
|
extern CFinal_Windbg_WKSP g_Windbg_WkSp;
|
|
extern CGlobalPreferences_WKSP &g_contGlobalPreferences_WkSp;
|
|
extern CAll_Exceptions_WKSP &g_contExceptionsMasterList_WkSp;
|
|
extern CUser_WM_Messages_WKSP &g_contUser_WM_Messages_WkSp;
|
|
extern CAll_TLs_WKSP &g_dynacontAll_TLs_WkSp;
|
|
|
|
extern CAll_Debuggees_WKSP &g_contAllDebuggees_WkSp;
|
|
extern CDebuggee_WKSP &g_contDebuggee_WkSp;
|
|
extern CWorkSpace_WKSP &g_contWorkspace_WkSp;
|
|
|
|
extern CAll_Exceptions_WKSP &g_dynacontAllExceptions_WkSp;
|
|
extern CPaths_WKSP &g_contPaths_WkSp;
|
|
extern CKernel_Debugging_WKSP &g_contKernelDbgPreferences_WkSp;
|
|
|
|
extern CIndivWinLayout_WKSP &g_contFrameWindow;
|
|
extern CAllChildWindows_WKSP &g_dynacontAllChildWindows;
|
|
extern CWinLayout_WKSP &g_contWinLayout_WkSp;
|
|
extern CAllWindowLayouts_WKSP &g_contAllWinLayouts_WkSp;
|
|
|
|
|