// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_FRAME_BHO_LOADER_H_ #define CHROME_FRAME_BHO_LOADER_H_ #include // Forward. class EventHooker; // This class simulates BHO loading in an IE process. It watches for the // creation of a specific window and then retrieves the web browser object // for that window and simulates loading of the BHO. class BHOLoader { public: BHOLoader(); ~BHOLoader(); // Callback invoked on receipt of an accessibility event. void OnHookEvent(DWORD event, HWND window); // Call this to install event hooks that will trigger on window creation // and reparenting. Returns true if the hooks are successfully installed, // false otherwise. bool StartHook(); // Call this to remove the event hooks that are installed by StartHook(). void StopHook(); // Retrieve the BHOLoader instance. Note that this is NOT thread-safe. static BHOLoader* GetInstance(); private: EventHooker* hooker_; }; #endif // CHROME_FRAME_BHO_LOADER_H_