windows-nt/Source/XPSP1/NT/shell/inc/fldset.h
2020-09-26 16:20:57 +08:00

45 lines
2 KiB
C

#ifndef FLDSET_H_
#define FLDSET_H_
//
// view priority values
//
// NOTE: left gaps so that we can add more later
//
#define VIEW_PRIORITY_RESTRICTED 0x00000070 // a shell restriction is in place that forces this view to be the one we use
#define VIEW_PRIORITY_CACHEHIT 0x00000050 // we have registry info for the view, so the user has been there before
#define VIEW_PRIORITY_STALECACHEHIT 0x00000045 // we have stale registry info for the view, so we fall back to the "all folders like this" default
#define VIEW_PRIORITY_USEASDEFAULT 0x00000043 // "Use As Default" is more important than shellext, but less than a stale cache
#define VIEW_PRIORITY_SHELLEXT 0x00000040 // next we let the shell extension have its say
#define VIEW_PRIORITY_CACHEMISS 0x00000030 // if we have a cache miss, then we fall back to the "all folders like this" default
#define VIEW_PRIORITY_INHERIT 0x00000020 // then try to inherit the view from the previous window
#define VIEW_PRIORITY_SHELLEXT_ASBACKUP 0x0015 // If classic view state is enabled we want the shell to default to an inheritted view
#define VIEW_PRIORITY_DESPERATE 0x00000010 // just pick the last view that the window supports
#define VIEW_PRIORITY_NONE 0x00000000 // dont have a view yet
typedef struct CShellViews
{
HDPA _dpaViews;
} CShellViews;
void CShellViews_Delete(CShellViews*);
typedef struct tagFolderSetData {
FOLDERSETTINGS _fs;
SHELLVIEWID _vidRestore;
DWORD _dwViewPriority; // one of the VIEW_PRIORITY_* from above
} FOLDERSETDATA, *LPFOLDERSETDATA;
typedef struct tagFolderSetDataBase {
FOLDERSETDATA _fld;
CShellViews _cViews;
UINT _iViewSet;
} FOLDERSETDATABASE, *LPFOLDERSETDATABASE;
HRESULT FileCabinet_CreateViewWindow2(IShellBrowser* psb, FOLDERSETDATABASE* that, IShellView *psvNew,
IShellView *psvOld, RECT *prcView, HWND *phWnd);
BOOL FileCabinet_GetDefaultViewID2(FOLDERSETDATABASE* that, SHELLVIEWID* pvid);
#endif