#ifndef _HOOKPROC_ENUMWINDOWSTATIONHOOK_HPP_ #define _HOOKPROC_ENUMWINDOWSTATIONHOOK_HPP_ #ifndef _HOOKPROC_APIENTRY_HPP_ #include #endif #ifndef _HOOKPROC_PROCADDRESS_HPP_ #include #endif class EnumWindowStationHook; typedef ProcAddress EnumWindowStationHookProc; class EnumWindowStationHook : protected APIEntry, private EnumWindowStationHookProc { public: typedef int (__stdcall *LPFNENUMWINDOWSTATIONPROC)(LPTSTR lpszWindowStation,LPARAM lParam); EnumWindowStationHook(void); virtual ~EnumWindowStationHook(); DWORD getHookAddress(void); protected: virtual bool enumWindowStationProc(const String &strWindowStation); private: enum {ParamLength=8}; EnumWindowStationHook &operator=(const EnumWindowStationHook &someEnumWindowStationHook); bool entryProc(LPTSTR lpszWIndowStation,LPARAM lParam); }; inline EnumWindowStationHook::EnumWindowStationHook(void) : APIEntry(ParamLength,(DWORD)this,getProcAddress((ProcAddress::LPFNMETHODVOID)&EnumWindowStationHook::entryProc)) { } inline EnumWindowStationHook &EnumWindowStationHook::operator=(const EnumWindowStationHook &someEnumWindowStationHook) { // no implementation return *this; } inline DWORD EnumWindowStationHook::getHookAddress(void) { return codeBase(); } #endif