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

112 lines
4.3 KiB
C

//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1997 - 2000
//
// File: update.h
//
//--------------------------------------------------------------------------
#ifndef __INCLUDE_CSCUIEXT_H
#define __INCLUDE_CSCUIEXT_H
//
// Semi-public header for CSCUI.DLL.
// CSCUI.DLL provides the user interface for client-side caching.
// The code interacts with the CSC agent, Sync Manager (mobsync),
// winlogon, the shell, and the system tray (systray.exe).
//
//
STDAPI_(HWND) CSCUIInitialize(HANDLE hToken, DWORD dwFlags);
STDAPI_(LRESULT) CSCUISetState(UINT uMsg, WPARAM wParam, LPARAM lParam);
typedef HWND (*PFNCSCUIINITIALIZE)(HANDLE hToken, DWORD dwFlags);
//
// Flags for CSCUIInitialize
//
#define CI_INITIALIZE 0x0001
#define CI_TERMINATE 0x0002
#define CI_CREATEWINDOW 0x0004
#define CI_DESTROYWINDOW 0x0008
//
// These values are returned by CSCUISetState().
//
#define LRESULT_CSCWORKOFFLINE 1011
#define LRESULT_CSCFAIL 1012
#define LRESULT_CSCRETRY 1016
//
// These values are passed to CSCUISetState() as the uMsg arg.
//
#define STWM_CSCNETUP (WM_USER + 209)
#define STWM_CSCQUERYNETDOWN (WM_USER + 210)
#define STWM_CSCCLOSEDIALOGS (WM_USER + 212)
#define STWM_CSCNETDOWN (WM_USER + 213)
#define STWM_CACHE_CORRUPTED (WM_USER + 214)
//
// These values are passed to CSCUISetState() as the wParam arg.
//
#define CSCUI_NO_AUTODIAL 0
#define CSCUI_AUTODIAL_FOR_UNCACHED_SHARE 1
#define CSCUI_AUTODIAL_FOR_CACHED_SHARE 2
//
// These messages are private for the CSCUI hidden notification
// window in systray.exe.
//
#define CSCWM_DONESYNCING (WM_USER + 300)
#define CSCWM_UPDATESTATUS (WM_USER + 301)
#define CSCWM_RECONNECT (WM_USER + 302)
#define CSCWM_SYNCHRONIZE (WM_USER + 303)
#define CSCWM_ISSERVERBACK (WM_USER + 304)
#define CSCWM_VIEWFILES (WM_USER + 305)
#define CSCWM_SETTINGS (WM_USER + 306)
#define CSCWM_GETSHARESTATUS (WM_USER + 307)
//
// These constants are obtained by sending a CSCWM_GETSHARESTATUS
// message to the CSCUI hidden window. They correspond to the
// OfflineFolderStatus enumeration constants defined in shldisp.h.
// These must remain in sync for the shell folder webview to work properly.
//
#define CSC_SHARESTATUS_INACTIVE -1 // Same as OFS_INACTIVE
#define CSC_SHARESTATUS_ONLINE 0 // Same as OFS_ONLINE
#define CSC_SHARESTATUS_OFFLINE 1 // Same as OFS_OFFLINE
#define CSC_SHARESTATUS_SERVERBACK 2 // Same as OFS_SERVERBACK
#define CSC_SHARESTATUS_DIRTYCACHE 3 // Same as OFS_DIRTYCACHE
//
// Class name and title for the CSCUI hidden notification window.
//
#define STR_CSCHIDDENWND_CLASSNAME TEXT("CSCHiddenWindow")
#define STR_CSCHIDDENWND_TITLE TEXT("CSC Notifications Window")
//
// Function for deleting folders & contents from the cache.
//
// pszFolder -- UNC path of folder to remove
// pfnCB -- optional, may be NULL. Return FALSE to abort, TRUE to continue.
// lParam -- passed to pfnCB
//
typedef BOOL (CALLBACK *PFN_CSCUIRemoveFolderCallback)(LPCWSTR, LPARAM);
STDAPI CSCUIRemoveFolderFromCache(LPCWSTR pszFolder, DWORD dwReserved, PFN_CSCUIRemoveFolderCallback pfnCB, LPARAM lParam);
//
// One of these is returned in the *pdwTsMode
// argument to CSCUI_IsTerminalServerCompatibleWithCSC API.
//
// CSCTSF_ = "CSC Terminal Server Flag"
//
#define CSCTSF_UNKNOWN 0 // Can't obtain TS status.
#define CSCTSF_CSC_OK 1 // OK to use CSC.
#define CSCTSF_APP_SERVER 2 // TS is configured as an app server.
#define CSCTSF_MULTI_CNX 3 // Multiple connections are allowed.
#define CSCTSF_REMOTE_CNX 4 // There are currently remote connections active.
#define CSCTSF_FUS_ENABLED 5 // Fast User Switching is enabled.
#define CSCTSF_COUNT 6
//
// Returns:
// S_OK - Terminal Server is in a mode that is compatible with CSC.
// S_FALSE - Not OK to use CSC. Inspect *pdwTsMode for reason.
// other - Failure. *pdwTsMode contains CSCTSF_UNKNOWN.
//
HRESULT CSCUIIsTerminalServerCompatibleWithCSC(DWORD *pdwTsMode);
#endif // __INCLUDE_CSCUIEXT_H