FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Traduccion de código
Hola foro haber si alguien saca un pokillo de tiempo y me pasa este codigo a delphi. Lo he intentado pero no lo consigo.
#define NUMHOOKS 7 // Global variables typedef struct _MYHOOKDATA { int nType; HOOKPROC hkprc; HHOOK hhook; } MYHOOKDATA; MYHOOKDATA myhookdata[NUMHOOKS]; LRESULT WINAPI MainWndProc(HWND hwndMain, UINT uMsg, WPARAM wParam, LPARAM lParam) { static BOOL afHooks[NUMHOOKS]; int index; static HMENU hmenu; switch (uMsg) { case WM_CREATE: // Save the menu handle. hmenu = GetMenu(hwndMain); // Initialize structures with hook data. The menu-item // identifiers are defined as 0 through 6 in the // header file. They can be used to identify array // elements both here and during the WM_COMMAND // message. myhookdata[IDM_CALLWNDPROC].nType = WH_CALLWNDPROC; myhookdata[IDM_CALLWNDPROC].hkprc = CallWndProc; myhookdata[IDM_CBT].nType = WH_CBT; myhookdata[IDM_CBT].hkprc = CBTProc; myhookdata[IDM_DEBUG].nType = WH_DEBUG; myhookdata[IDM_DEBUG].hkprc = DebugProc; myhookdata[IDM_GETMESSAGE].nType = WH_GETMESSAGE; myhookdata[IDM_GETMESSAGE].hkprc = GetMsgProc; myhookdata[IDM_KEYBOARD].nType = WH_KEYBOARD; myhookdata[IDM_KEYBOARD].hkprc = KeyboardProc; myhookdata[IDM_MOUSE].nType = WH_MOUSE; myhookdata[IDM_MOUSE].hkprc = MouseProc; myhookdata[IDM_MSGFILTER].nType = WH_MSGFILTER; myhookdata[IDM_MSGFILTER].hkprc = MessageProc; // Initialize all flags in the array to FALSE. memset(afHooks, FALSE, sizeof(afHooks)); return 0; case WM_COMMAND: switch (LOWORD(wParam)) { // The user selected a hook command from the menu. case IDM_CALLWNDPROC: case IDM_CBT: case IDM_DEBUG: case IDM_GETMESSAGE: case IDM_KEYBOARD: case IDM_MOUSE: case IDM_MSGFILTER: // Use the menu-item identifier as an index // into the array of structures with hook data. index = LOWORD(wParam); // If the selected type of hook procedure isn't // installed yet, install it and check the // associated menu item. if (!afHooks[index]) { myhookdata[index].hhook = SetWindowsHookEx( myhookdata[index].nType, myhookdata[index].hkprc, (HINSTANCE) NULL, GetCurrentThreadId()); CheckMenuItem(hmenu, index, MF_BYCOMMAND | MF_CHECKED); afHooks[index] = TRUE; } // If the selected type of hook procedure is // already installed, remove it and remove the // check mark from the associated menu item. else { UnhookWindowsHookEx(myhookdata[index].hhook); CheckMenuItem(hmenu, index, MF_BYCOMMAND | MF_UNCHECKED); afHooks[index] = FALSE; } default: return (DefWindowProc(hwndMain, uMsg, wParam, lParam)); } break; // // Process other messages. // default: return DefWindowProc(hwndMain, uMsg, wParam, lParam); } return NULL; } Un saludo y gracias |
|
|
|