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.
|
|
/*****************************************************************************
* ftpprop.h *****************************************************************************/
#ifndef _FTPPROP_H
#define _FTPPROP_H
#include "ftpdhlp.h"
#include "ftppl.h"
HRESULT CFtpProp_DoProp(CFtpPidlList * pflHfpl, CFtpFolder * pff, HWND hwnd);
/*****************************************************************************\
CLASS: CFtpProp
DESCRIPTION: NOTE! that we use the IShellFolder on the wrong thread!
Take careful note that all the CFtpFolder methods we call are thread-safe. The Change UNIX Permissions feature works by sending the command "SITE CHMOD <permissions> <filename>" to the server. \*****************************************************************************/
class CFtpProp : public IUnknown { public: //////////////////////////////////////////////////////
// Public Interfaces
//////////////////////////////////////////////////////
// *** IUnknown ***
virtual STDMETHODIMP_(ULONG) AddRef(void); virtual STDMETHODIMP_(ULONG) Release(void); virtual STDMETHODIMP QueryInterface(REFIID riid, LPVOID * ppvObj); public: CFtpProp(); ~CFtpProp(void);
// Friend Functions
friend HRESULT CFtpProp_Create(CFtpPidlList * pflHfpl, CFtpFolder * pff, HWND hwnd, CFtpProp ** ppfp); static HRESULT _CommitCHMOD_CB(HINTERNET hint, HINTPROCINFO * phpi, LPVOID pv, BOOL * pfReleaseHint); static DWORD _PropertySheetThreadProc(LPVOID pvCFtpProp) {return ((CFtpProp *) pvCFtpProp)->_PropertySheetThread(); };
protected: // Public Member Variables
int m_cRef;
CFtpFolder * m_pff; // Folder that owns the pidls
CFtpPidlList * m_pflHfpl; //
HWND m_hwnd; // browser window for UI and Legacy ChangeNotify
CFtpDialogTemplate m_ftpDialogTemplate; BOOL m_fChangeModeSupported; DWORD m_dwNewPermissions;
// Public Member Functions
BOOL OnInitDialog(HWND hdlg); BOOL OnClose(HWND hDlg); BOOL OnDestroy(HWND hDlg); DWORD _PropertySheetThread(void); void _HideCHMOD_UI(HWND hDlg); HRESULT _SetCHMOD_UI(HWND hDlg); DWORD _GetCHMOD_UI(HWND hDlg); DWORD _GetUnixPermissions(void); HRESULT _CommitCHMOD(HINTERNET hint, HINTPROCINFO * phpi, BOOL * pfReleaseHint); INT_PTR _SetWhiteBGCtlColor(HWND hDlg, HDC hdc, HWND hwndCtl);
static INT_PTR DlgProc(HWND hdlg, UINT wm, WPARAM wp, LPARAM lp); };
DWORD DoProp_OnThread(LPVOID pv);
#endif // _FTPPROP_H
|