Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

167 lines
4.4 KiB

#pragma once
//********************************************************************************
// MAKE NOTE:
// =========
// This file is included by parser\comptree
// If you modify this file, please make sure that parser\comptree still builds.
//
// You have been warned.
//********************************************************************************
#define XML_FILE_FORMAT_CURRENT_VERSION 0x3
const CHAR g_szMMFCookie[] = "PCH_MMF";
#define MMF_FILE_COOKIELEN ARRAYSIZE(g_szMMFCookie)
typedef enum
{
PANEL_LEFT,
PANEL_RIGHT,
PANEL_TOP,
PANEL_BOTTOM,
PANEL_WINDOW,
PANEL_POPUP,
PANEL_INVALID = -1
}
PANEL_POSITION;
const int PANEL_FLAG_VISIBLE = 0x00000001; // Do we start out visible?
const int PANEL_FLAG_WEBBROWSER = 0x00000002; // Do we host shdocvw?
const int PANEL_FLAG_ONDEMAND = 0x00000004; // We wait for first vis to show?
const int PANEL_FLAG_TRUSTED = 0x00000008; // Is this a trusted panel?
const int PANEL_FLAG_AUTOPERSIST = 0x00000010; // Does this panel persist in the travel log?
const int PANEL_FLAG_AUTOSIZE = 0x00000020; // Should this panel autosize?
const int PANEL_FLAG_CUSTOMCONTROL = 0x00001000; // Are we a "marsdoc" panel?
const int PANEL_FLAG_ALL = 0x0000103f; // All the above flags. Used for validation.
const int DEFAULT_PANEL_FLAGS = PANEL_FLAG_ONDEMAND; // default flags
const int PANEL_NAME_MAXLEN = 63;
const int PANEL_NAME_MAXSIZE = PANEL_NAME_MAXLEN + 1;
typedef enum
{
PANEL_PERSIST_VISIBLE_NEVER , // When transitioning to a place, always show the place panel.
PANEL_PERSIST_VISIBLE_DONTTOUCH, // If the place was in the previous place, don't touch its state.
PANEL_PERSIST_VISIBLE_ALWAYS , // Restore the persisted state every time the place is reached.
} PANEL_PERSIST_VISIBLE;
////////////////////////////////////////////////////////////////////////////////
struct MarsAppDef_PlacePanel
{
WCHAR szName[PANEL_NAME_MAXSIZE];
BOOL fDefaultFocusPanel;
BOOL fStartVisible; // only used when persistence is not "NEVER"
PANEL_PERSIST_VISIBLE persistVisible;
MarsAppDef_PlacePanel()
{
::ZeroMemory( szName, sizeof( szName ) );
fDefaultFocusPanel = FALSE;
fStartVisible = TRUE;
persistVisible = PANEL_PERSIST_VISIBLE_NEVER;
}
};
struct MarsAppDef_Place
{
WCHAR szName[PANEL_NAME_MAXSIZE];
DWORD dwPlacePanelCount;
MarsAppDef_Place()
{
::ZeroMemory( szName, sizeof( szName ) );
dwPlacePanelCount = 0;
}
};
struct MarsAppDef_Places
{
DWORD dwPlacesCount;
MarsAppDef_Places()
{
dwPlacesCount = 0;
}
};
struct MarsAppDef_Panel
{
WCHAR szName[PANEL_NAME_MAXSIZE];
WCHAR szUrl [MAX_PATH ];
PANEL_POSITION Position;
long lWidth; // Used for "left", "right", or "popup"
long lWidthMax;
long lWidthMin;
long lHeight; // Used for "top", "bottom", or "popup"
long lHeightMax;
long lHeightMin;
long lX; // Used for "popup"
long lY; // Used for "popup"
DWORD dwFlags; // PANEL_FLAG_*
MarsAppDef_Panel()
{
::ZeroMemory( szName, sizeof( szName ) );
::ZeroMemory( szUrl , sizeof( szUrl ) );
Position = PANEL_TOP;
lWidth = 0;
lWidthMax = -1;
lWidthMin = -1;
lHeight = 0;
lHeightMax = -1;
lHeightMin = -1;
lX = 0;
lY = 0;
dwFlags = DEFAULT_PANEL_FLAGS;
}
};
struct MarsAppDef_Panels
{
DWORD dwPanelsCount;
MarsAppDef_Panels()
{
dwPanelsCount = 0;
}
};
struct MarsAppDef
{
DWORD dwVersion;
BOOL fTitleBar;
MarsAppDef()
{
dwVersion = XML_FILE_FORMAT_CURRENT_VERSION;
fTitleBar = TRUE;
}
};
////////////////////////////////////////////////////////////////////////////////
struct tagPositionMap
{
LPCWSTR pwszName;
PANEL_POSITION Position;
};
extern const struct tagPositionMap s_PositionMap[];
extern const int c_iPositionMapSize;
HRESULT StringToPanelPosition(LPCWSTR pwszPosition, PANEL_POSITION *pPosition);
void StringToPanelFlags(LPCWSTR pwsz, DWORD &dwFlags, long lLen =-1);
void StringToPersistVisibility(LPCWSTR pwsz, PANEL_PERSIST_VISIBLE &persistVis);