|
|
/**************************************************************************
THIS CODE AND INFORMATION IS PROVIDED 'AS IS' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
Copyright 1998 Microsoft Corporation. All Rights Reserved. **************************************************************************/
/**************************************************************************
File: PropSheet.h
Description:
**************************************************************************/
#ifndef SHELLEXT_H
#define SHELLEXT_H
//#include "tchar.h"
#include "windows.h"
#include "shlobj.h"
#include "crtdbg.h"
#include "chklst.h"
#include "Comdef.h"
#include "ObjBase.h"
#include "CHString.h"
#include "lmaccess.h"
#include "resource.h"
#include "olectl.h"
#include "ShellApi.h"
#include "ShlWapi.h"
#include "ISAUsInf.h"
// Constants
#define STRING_SECURITY_WORLD_SID_AUTHORITY "S-1-1-0"
#define DOMAIN_NAME "SMELLY" //KIBBLESNBITS
#define DOMAIN_SERVER "Domination" //L"ALPO"
#define DOCUMENTS_FOLDER "D:\\Yuri" // "D:\\\\Documents\\\\"
#define CHAMELEON_SHARE "\\\\Domination\\Yuri" // "\\\\ALPO\\Documents"
/**************************************************************************
global variables and definitions **************************************************************************/ #ifndef ListView_SetCheckState
// #ifndef is important because this macro (well, a
// slightly fixed-up version of this macro) will be going into the
// next version of commctrl.h
#define ListView_SetCheckState(hwndLV, i, fCheck) \
ListView_SetItemState(hwndLV, i, \ INDEXTOSTATEIMAGEMASK((fCheck)?2:1), LVIS_STATEIMAGEMASK) #endif
#define IDM_DISPLAY 0
extern PSID g_pSidEverybody; extern LONG g_pSidEverybodyLenght; extern PSID g_pSidAdmins; extern LONG g_pSidAdminsLenght;
/**************************************************************************
CClassFactory class definition
**************************************************************************/
class CClassFactory : public IClassFactory { protected: DWORD m_ObjRefCount;
public: CClassFactory(); ~CClassFactory();
//IUnknown methods
STDMETHODIMP QueryInterface(REFIID, LPVOID FAR *); STDMETHODIMP_(DWORD) AddRef(); STDMETHODIMP_(DWORD) Release();
//IClassFactory methods
STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, LPVOID FAR *); STDMETHODIMP LockServer(BOOL); };
/**************************************************************************
CShellPropSheetExt class definition
**************************************************************************/
class CShellPropSheetExt : public IShellExtInit, IShellPropSheetExt { protected: DWORD m_ObjRefCount; CCheckList m_CheckList; BOOL m_fEveryone; UINT m_uiUser; ISAUserInfo *m_pSAUserInfo;// IWbemServices *m_pIWbemServices;
TCHAR m_szPath[MAX_PATH]; _bstr_t m_bsPath; BOOL m_fChanged; // PSID m_pSidEverybody;
// LONG m_pSidEverybodyLenght;
BOOL m_fHasAccess;
// System info
TCHAR m_tszDomainServer[MAX_PATH]; TCHAR m_tszShare[MAX_PATH]; TCHAR m_tszDocuments[MAX_PATH]; public: CShellPropSheetExt(); ~CShellPropSheetExt(); //IUnknown methods
STDMETHOD(QueryInterface)(REFIID, LPVOID FAR *); STDMETHOD_(DWORD, AddRef)(); STDMETHOD_(DWORD, Release)();
//IShellExtInit methods
STDMETHOD(Initialize)(LPCITEMIDLIST, LPDATAOBJECT, HKEY);
//IShellPropSheetExt methods
STDMETHOD(AddPages)(LPFNADDPROPSHEETPAGE, LPARAM); STDMETHOD(ReplacePage)(UINT, LPFNADDPROPSHEETPAGE, LPARAM);
private: static BOOL CALLBACK PageDlgProc(HWND, UINT, WPARAM, LPARAM); static UINT CALLBACK PageCallbackProc(HWND, UINT, LPPROPSHEETPAGE); BOOL IsChamelon(LPTSTR); BOOL Connect(); void EnumUsers(HWND hWndList); void Save(HWND hWnd); void CleanUp(); void NoAccessUpdateView(HWND); void AccessUpdateView(HWND); HRESULT GetFilePermissions(HWND hWnd); HRESULT SetFilePermissions(HWND hWnd); } ;
#endif //SHELLEXT_H
|