Files
Work/hookproc/OFNHOOK.HPP
2024-08-07 09:16:27 -04:00

62 lines
1.2 KiB
C++

#ifndef _HOOKPROC_OFNHOOK_HPP_
#define _HOOKPROC_OFNHOOK_HPP_
#ifndef _HOOKPROC_APIENTRY_HPP_
#include <hookproc/apientry.hpp>
#endif
#ifndef _HOOKPROC_PROCADDRESS_HPP_
#include <hookproc/procaddr.hpp>
#endif
class OFNHook;
typedef ProcAddress<OFNHook> OpenFileHook;
class OFNHook : protected APIEntry, private OpenFileHook
{
public:
OFNHook(void);
virtual ~OFNHook();
DWORD getHookAddress(void);
HWND getHandle(void)const;
HWND getParent(void)const;
protected:
virtual UINT hookProc(HWND hDlg,UINT uiMsg,WPARAM wParam,LPARAM lParam);
private:
enum {ParamLength=16};
OFNHook &operator=(const OFNHook &someOFNHook);
UINT entryProc(HWND hDlg,UINT uiMsg,WPARAM wParam,LPARAM lParam);
HWND mhDlg;
HWND mhParent;
};
inline
OFNHook::OFNHook(void)
: APIEntry(ParamLength,(DWORD)this,getProcAddress((ProcAddress<OFNHook>::LPFNMETHODVOID)&OFNHook::entryProc)),
mhDlg(0), mhParent(0)
{
}
inline
OFNHook &OFNHook::operator=(const OFNHook &someOFNHook)
{ // no implementation
return *this;
}
inline
DWORD OFNHook::getHookAddress(void)
{
return codeBase();
}
inline
HWND OFNHook::getHandle(void)const
{
return mhDlg;
}
inline
HWND OFNHook::getParent(void)const
{
return mhParent;
}
#endif