112 lines
4.3 KiB
C
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
|