Files
Oogynize/Hooks/ButtonHook/HookList.h

151 lines
5.1 KiB
C

//#pragma once
//
//#include "malloc.h"
//
//namespace Ooganizer
//{
//
// enum ButtonState{BUTTON_UP,BUTTON_DOWN};
//
// //////////////////////////////////////////////////////////////////////
// // Clss: HookItem
// // Desc: Hook Item is used in the HookList. Each HookItem keeps track
// // of all the addresses needed for each hook, as well as the
// // hookstate.
// //
// // Note: Add State Items for a Window as neccessary
// //////////////////////////////////////////////////////////////////////
// class HookItem
// {
// public:
// HWND m_hWnd;
// WNDPROC m_HookWndProc;
// WNDPROC m_DefWndProc;
// ButtonState m_btnState;
//
// // Constructor
// HookItem(HWND hWnd, WNDPROC hookWndProc, WNDPROC defWndProc):
// m_hWnd(hWnd),
// m_HookWndProc(hookWndProc),
// m_DefWndProc(defWndProc),
// m_btnState(BUTTON_UP)
// {
// }
// };
// //////////////////////////////////////////////////////////////////////
// // Clss: HookList
// // Desc: Generic List / Custom written list for the sake of speed.
// // Hook list is made up of individual HookItems.
// //
// // Note: You can use GetNext() to iterate thru all the items in the list.
// // ~adding or removing an item causes GetNext() to start over.
// //////////////////////////////////////////////////////////////////////
// class HookList
// {
// public:
// //////////////////////////////////////////////////////////////////////
// // Func: AddItem()
// // Desc: Adds a HookItem to the List
// //////////////////////////////////////////////////////////////////////
// void AddItem(HookItem* pItem)
// {
// m_NbrItems++;
//
// if ( m_pHookItem == NULL )
// m_pHookItem = (HookItem*) malloc( m_NbrItems * sizeof( HookItem ) );
// else
// m_pHookItem = (HookItem*) realloc( m_pHookItem, m_NbrItems * sizeof( HookItem ) );
//
// log(pItem->m_hWnd,"hase been added");
//
// memcpy( m_pHookItem+(m_NbrItems-1), pItem, sizeof( HookItem ) );
// }
// //////////////////////////////////////////////////////////////////////
// // Func: GetItem()
// // Desc: Get a HookItem from the List
// //////////////////////////////////////////////////////////////////////
// HookItem* GetItem(HWND hWnd)
// {
// UINT i;
// HookItem * pItem = m_pHookItem;
// for( i=0; i<m_NbrItems && pItem->m_hWnd!=hWnd; i++, pItem++ );
// return ( i < m_NbrItems ) ? pItem : NULL;
// }
// //////////////////////////////////////////////////////////////////////
// // Func: DelItem()
// // Desc: Deletes a HookItem from the List
// //////////////////////////////////////////////////////////////////////
// void DelItem(HWND hWnd)
// {
// UINT i;
// HookItem * pItem = m_pHookItem;
// for( i =0; i<m_NbrItems && pItem->m_hWnd!=hWnd; i++, pItem++ );
// if ( i < m_NbrItems )
// {
// m_NbrItems--;
// memcpy( pItem, pItem+1, ( m_NbrItems - i ) * sizeof( HookItem ) );
// m_pHookItem = (HookItem*) realloc( m_pHookItem, m_NbrItems * sizeof( HookItem ) );
//
// log(pItem->m_hWnd,"hase been deleted");
// }
// }
// //////////////////////////////////////////////////////////////////////
// // Func: DelAllItems()
// // Desc: Deletes all HookItems from the List
// //////////////////////////////////////////////////////////////////////
// void DelAllItems()
// {
// if ( m_pHookItem != NULL )
// free( m_pHookItem );
// m_pHookItem = NULL;
// m_NbrItems = 0;
// }
// //////////////////////////////////////////////////////////////////////
// // Func: UnhookAllItems()
// // Desc: Responsible for iterating through entire list and 'unhooking'
// // the WndProc function of every HookItem
// //
// // Note: has to be put in here since the list has to be iterated here
// //////////////////////////////////////////////////////////////////////
// void UnhookAllItems()
// {
// HookItem * pItem;
//
// while ( m_NbrItems > 0 )
// {
// pItem = m_pHookItem+(m_NbrItems-1);
//
// // Unhook window
// HWND hWnd = pItem->m_hWnd;
//
// log(hWnd,"Unhooking...");
// SetWindowLong( hWnd, GWL_WNDPROC, (LONG) pItem->m_DefWndProc );
// SendMessage( hWnd, WM_NCPAINT, 1, 0 );
// log(hWnd,"Sending WM_NCPAINT message...");
//
// // Delete item
// DelItem( hWnd );
// }
// }
// //////////////////////////////////////////////////////////////////////
// // Func: CleanUp()
// // Desc: Unhooks all HookItems in the list and deletes the list
// //////////////////////////////////////////////////////////////////////
// void CleanUp()
// {
// UnhookAllItems();
// DelAllItems();
// }
// //////////////////////////////////////////////////////////////////////
// //********************************************************************
// // Construction / Destruction
// //********************************************************************
// //////////////////////////////////////////////////////////////////////
// HookList():m_NbrItems(0),m_pHookItem(NULL){}
// ~HookList(){CleanUp();}
//
// protected:
// UINT m_NbrItems;
// HookItem* m_pHookItem;
// };
//}