WindowsXP-SP1/admin/snapin/filemgmt/filesvc.h
2020-09-30 16:53:49 +02:00

127 lines
4.1 KiB
C++

// FileSvc.h : Base class for File Service Provider
#ifndef __FILESVC_H_INCLUDED__
#define __FILESVC_H_INCLUDED__
// forward declarations
class CFileMgmtCookie;
class CFileMgmtResultCookie;
class CFileMgmtComponentData;
class CSecurityInformation;
class FileServiceProvider
{
public:
FileServiceProvider(CFileMgmtComponentData* pFileMgmtData);
virtual ~FileServiceProvider();
virtual HRESULT PopulateShares(
IResultData* pResultData,
CFileMgmtCookie* pcookie) = 0;
// for EnumerateSessions and EnumerateResources:
// if pResultData is not NULL, add sessions/resources to the listbox
// if pResultData is NULL, delete all sessions/resources
// if pResultData is NULL, return SUCCEEDED(hr) to continue or
// FAILED(hr) to abort
virtual HRESULT EnumerateSessions(
IResultData* pResultData,
CFileMgmtCookie* pcookie,
bool bAddToResultPane) = 0;
virtual HRESULT EnumerateResources(
IResultData* pResultData,
CFileMgmtCookie* pcookie) = 0;
virtual DWORD DeleteShare(LPCTSTR ptchServerName, LPCTSTR ptchShareName) = 0;
virtual DWORD CloseSession(CFileMgmtResultCookie* pcookie) = 0;
virtual DWORD CloseResource(CFileMgmtResultCookie* pcookie) = 0;
virtual VOID DisplayShareProperties( // CODEWORK can this be removed?
LPPROPERTYSHEETCALLBACK pCallBack,
LPDATAOBJECT pDataObject,
LONG_PTR handle) = 0;
virtual DWORD ReadShareProperties(
LPCTSTR ptchServerName,
LPCTSTR ptchShareName,
OUT PVOID* ppvPropertyBlock,
OUT CString& strDescription,
OUT CString& strPath,
OUT BOOL* pfEditDescription,
OUT BOOL* pfEditPath, // CODEWORK always disable for now
OUT DWORD* pdwShareType) = 0;
virtual DWORD WriteShareProperties(
LPCTSTR ptchServerName,
LPCTSTR ptchShareName,
PVOID pvPropertyBlock,
LPCTSTR ptchDescription,
LPCTSTR ptchPath) = 0;
virtual HRESULT ReadSharePublishInfo(
LPCTSTR ptchServerName,
LPCTSTR ptchShareName,
OUT BOOL* pbPublish,
OUT CString& strUNCPath,
OUT CString& strDescription,
OUT CString& strKeywords,
OUT CString& strManagedBy)
{
UNREFERENCED_PARAMETER (ptchServerName);
UNREFERENCED_PARAMETER (ptchShareName);
UNREFERENCED_PARAMETER (pbPublish);
UNREFERENCED_PARAMETER (strUNCPath);
UNREFERENCED_PARAMETER (strDescription);
UNREFERENCED_PARAMETER (strKeywords);
UNREFERENCED_PARAMETER (strManagedBy);
return S_OK;
}
virtual HRESULT WriteSharePublishInfo(
LPCTSTR ptchServerName,
LPCTSTR ptchShareName,
IN BOOL bPublish,
LPCTSTR ptchDescription,
LPCTSTR ptchKeywords,
LPCTSTR ptchManagedBy)
{
UNREFERENCED_PARAMETER (ptchServerName);
UNREFERENCED_PARAMETER (ptchShareName);
UNREFERENCED_PARAMETER (bPublish);
UNREFERENCED_PARAMETER (ptchDescription);
UNREFERENCED_PARAMETER (ptchKeywords);
UNREFERENCED_PARAMETER (ptchManagedBy);
return S_OK;
}
virtual DWORD ReadShareType(
LPCTSTR ptchServerName,
LPCTSTR ptchShareName,
DWORD* pdwShareType );
virtual DWORD ReadShareFlags(
LPCTSTR ptchServerName,
LPCTSTR ptchShareName,
DWORD* pdwFlags );
virtual DWORD WriteShareFlags(
LPCTSTR ptchServerName,
LPCTSTR ptchShareName,
DWORD dwFlags );
virtual BOOL GetCachedFlag( DWORD dwFlags, DWORD dwFlagToCheck );
virtual VOID SetCachedFlag( DWORD* pdwFlags, DWORD dwNewFlag );
virtual VOID FreeShareProperties(PVOID pvPropertyBlock) = 0;
virtual VOID FreeData(PVOID pv) = 0;
virtual DWORD QueryMaxUsers(PVOID pvPropertyBlock) = 0;
virtual VOID SetMaxUsers( PVOID pvPropertyBlock, DWORD dwMaxUsers) = 0;
virtual LPCTSTR QueryTransportString() = 0;
protected:
CFileMgmtComponentData* m_pFileMgmtData;
INT DoPopup( INT nResourceID,
DWORD dwErrorNumber = 0,
LPCTSTR pszInsertionString = NULL,
UINT fuStyle = MB_OK | MB_ICONSTOP );
HRESULT CreateFolderSecurityPropPage(
LPPROPERTYSHEETCALLBACK pCallBack,
LPDATAOBJECT pDataObject
);
};
#endif // ~__FILESVC_H_INCLUDED__