// ==========================================================================
// 					Class Specification : COXWatchedDir
// ==========================================================================

// Header file : OXWatchedDir.h

// Version: 9.3

// //////////////////////////////////////////////////////////////////////////

// Properties:
//	NO	Abstract class (does not have any objects)
//	YES	Derived from CObject

//	NO	Is a CWnd.                     
//	NO	Two stage creation (constructor & Create())
//	NO	Has a message map
//	NO	Needs a resource

//	NO	Persistent objects (saveable on disk)      
//	NO	Uses exceptions

// //////////////////////////////////////////////////////////////////////////

// Desciption :         
//	A helper class used to store information about the watched directories

// Prerequisites (necessary conditions):


/////////////////////////////////////////////////////////////////////////////

#ifndef __OXWATCHEDDIR_H__
#define __OXWATCHEDDIR_H__

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

#include "OXDllExt.h"


class OX_CLASS_DECL COXWatchedDir : public CObject
{
friend class COXFileWatcher;

// Data members -------------------------------------------------------------
public:
protected:
	CString	m_sPath;				
	BOOL	m_bWatchSubTree;		
	DWORD	m_dwWatchFilter;		
	HWND	m_hwndWindowToNotify;	
	BOOL	m_bPost;				
	HANDLE	m_hEvent;				

#if defined(_UNICODE) && (_WIN32_WINNT >= 0x400)
// Extended info is supported
	BOOL	m_bExtended;			
	HANDLE	m_hDirectory;			
	LPVOID	m_lpBuffer;				
	DWORD	m_nBufferLength;		
	OVERLAPPED* m_pOverlapped;		
	static DWORD dwBytesReturned;	
#endif // defined(_UNICODE) && (_WIN32_WINNT >= 0x400)

protected:
private:

// Member functions ---------------------------------------------------------
public:
protected:
	COXWatchedDir(CString sPath, BOOL bWatchSubTree, DWORD dwWatchFilter, BOOL bExtended);
	virtual ~COXWatchedDir();

	BOOL FindFirstHandle(HRESULT& rhrResult);
	BOOL FindNextHandle(HANDLE& hHandle);

private:
};

#endif // __OXWATCHEDDIR_H__
// ==========================================================================

