1// Copyright (c) 2010 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include <windows.h>
6
7#ifndef CHROME_FRAME_EVENT_HOOKER_H_
8#define CHROME_FRAME_EVENT_HOOKER_H_
9
10class EventHooker {
11 public:
12  EventHooker();
13  ~EventHooker();
14
15  // Call this to install event hooks that will trigger on window creation
16  // and reparenting. Returns true if the hooks are successfully installed,
17  // false otherwise.
18  bool StartHook();
19
20  // Call this to remove the event hooks that are installed by StartHook().
21  void StopHook();
22
23  // The callback invoked in response to an event registered for in StartHook().
24  static VOID CALLBACK WindowCreationHookProc(HWINEVENTHOOK hook,
25                                              DWORD event,
26                                              HWND window,
27                                              LONG object_id,
28                                              LONG child_id,
29                                              DWORD event_tid,
30                                              DWORD event_time);
31
32 private:
33  HWINEVENTHOOK window_creation_hook_;
34};
35
36#endif  // CHROME_FRAME_EVENT_HOOKER_H_
37