81 virtual DWORD Run(
void)
85 DWORD r = ::WaitForSingleObject(m_hNotify, INFINITE);
86 if ( r != WAIT_OBJECT_0 || m_hNotify == NULL )
94 if ( ! ::FindNextChangeNotification(m_hNotify) )
100 if ( m_hNotify != NULL )
102 ::FindCloseChangeNotification(m_hNotify);
137 bool Start(LPCTSTR lpszPath,
bool boWithSubDir, DWORD dwFlags,
IListener* pListener)
140 m_hNotify = ::FindFirstChangeNotification(lpszPath, boWithSubDir, dwFlags);
141 if ( m_hNotify == NULL )
146 m_pListener = pListener;
148 if ( ! m_thread.
Start(_T(
"Directory監視")) )
162 if ( m_hNotify != NULL )
164 HANDLE h = m_hNotify;
166 ::FindCloseChangeNotification(h);
CThreadStatus & ReferThreadStatus(void)
[参照] 監視スレッド状態参照.
bool Start(LPCTSTR lpszPath, bool boWithSubDir, DWORD dwFlags, IListener *pListener)
[開始] 監視開始
CDirectoryWatcher(void)
コンストラクタ
virtual ~CDirectoryWatcher(void)
デストラクタ
bool SetRunner(IRunner *pRunner)
[設定] ランナー、設定
bool Stop(DWORD dwWait=15000)
[設定] スレッド停止 スレッドに対して停止要求します。
bool Start(LPCTSTR lpszName=NULL)
[設定] スレッド開始
virtual bool OnDirectoryChange(DWORD dwFlags)=0
[通知] 変化通知
virtual ~IListener(void)
デストラクタ
bool IsRunnable(void) const
[確認] 実行可能か否か