#ifndef _HOOKPROC_OFNHOOK_HPP_ #define _HOOKPROC_OFNHOOK_HPP_ #ifndef _HOOKPROC_APIENTRY_HPP_ #include #endif #ifndef _HOOKPROC_PROCADDRESS_HPP_ #include #endif class OFNHook; typedef ProcAddress 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::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