Добавил:
Kaz
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лаба 1-6 Системное программирование для ОС Windows [Вариант отсутствует, общий] / Лаба 6 / Code / ConsCtl / CallbackHandler
.h//---------------------------------------------------------------------------
//
// CallbackHandler.h
//
// SUBSYSTEM:
// Monitoring process creation and termination
//
// MODULE:
// An abstract interface for receiving notification when a
// process has been created or terminated
//
// DESCRIPTION:
//
// AUTHOR: Ivo Ivanov
//
//---------------------------------------------------------------------------
#if !defined(_CALLBACKHANDLER_H_)
#define _CALLBACKHANDLER_H_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
//---------------------------------------------------------------------------
//
// typedefs for PSAPI.DLL functions
//
//---------------------------------------------------------------------------
typedef BOOL (WINAPI * PFNENUMPROCESSMODULES)(
HANDLE hProcess,
HMODULE *lphModule,
DWORD cb,
LPDWORD lpcbNeeded
);
typedef DWORD (WINAPI * PFNGETMODULEFILENAMEEX)(
HANDLE hProcess,
HMODULE hModule,
LPTSTR lpFilename,
DWORD nSize
);
//---------------------------------------------------------------------------
//
// class CCallbackHandler
//
//---------------------------------------------------------------------------
class CCallbackHandler
{
public:
CCallbackHandler();
virtual ~CCallbackHandler();
//
// Define an abstract interface for receiving notifications
//
virtual void OnProcessEvent(
PQUEUED_ITEM pQueuedItem,
PVOID pvParam
) = 0;
protected:
//
// Return the name of the process by its ID using PSAPI
//
BOOL GetProcessName(
DWORD dwProcessId,
LPTSTR lpFileName,
DWORD dwLen
);
private:
HMODULE m_hModPsapi;
PFNENUMPROCESSMODULES m_pfnEnumProcessModules;
PFNGETMODULEFILENAMEEX m_pfnGetModuleFileNameEx;
};
#endif // !defined(_CALLBACKHANDLER_H_)
//----------------------------End of the file -------------------------------
Соседние файлы в папке ConsCtl