mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2024-12-12 09:37:37 +01:00
ff983a6e72
- Add CefRunMessageLoop() for efficient message loop usage and modify cefclient to use it. - Add CefHandler::HandleNavStateChange() for back/forward state notifications and modify cefclient to use it. git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@208 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
101 lines
3.0 KiB
C++
101 lines
3.0 KiB
C++
// Copyright (c) 2008 The Chromium Embedded Framework Authors.
|
|
// Portions copyright (c) 2006-2008 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.
|
|
|
|
// Portions of this implementation are borrowed from webkit\default_plugin\
|
|
// plugin_impl.h
|
|
|
|
#ifndef _CEFCLIENT_CLIENTPLUGIN_H
|
|
#define _CEFCLIENT_CLIENTPLUGIN_H
|
|
|
|
#ifdef _WIN32
|
|
|
|
#include <atlbase.h>
|
|
#include <atlwin.h>
|
|
#include "include/cef_nplugin.h"
|
|
|
|
extern NPNetscapeFuncs* g_browser;
|
|
|
|
NPError API_CALL NP_GetEntryPoints(NPPluginFuncs* pFuncs);
|
|
NPError API_CALL NP_Initialize(NPNetscapeFuncs* pFuncs);
|
|
NPError API_CALL NP_Shutdown(void);
|
|
|
|
|
|
// Provides the client plugin functionality.
|
|
class ClientPlugin : public CWindowImpl<ClientPlugin> {
|
|
public:
|
|
// mode is the plugin instantiation mode, i.e. whether it is a full
|
|
// page plugin (NP_FULL) or an embedded plugin (NP_EMBED)
|
|
explicit ClientPlugin(int16 mode);
|
|
virtual ~ClientPlugin();
|
|
|
|
BEGIN_MSG_MAP(ClientPlugin)
|
|
MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBackGround)
|
|
MESSAGE_HANDLER(WM_PAINT, OnPaint)
|
|
MESSAGE_HANDLER(WM_PRINTCLIENT, OnPrintClient)
|
|
MESSAGE_HANDLER(WM_LBUTTONDOWN, OnLButtonDown)
|
|
END_MSG_MAP()
|
|
|
|
// Initializes the plugin with the instance information, mime type
|
|
// and the list of parameters passed down to the plugin from the webpage.
|
|
//
|
|
// Parameters:
|
|
// module_handle
|
|
// The handle to the dll in which this object is instantiated.
|
|
// instance
|
|
// The plugins opaque instance handle.
|
|
// mime_type
|
|
// Identifies the third party plugin which would be eventually installed.
|
|
// argc
|
|
// Indicates the count of arguments passed in from the webpage.
|
|
// argv
|
|
// Pointer to the arguments.
|
|
// Returns true on success.
|
|
bool Initialize(HINSTANCE module_handle, NPP instance, NPMIMEType mime_type,
|
|
int16 argc, char* argn[], char* argv[]);
|
|
|
|
// Displays the default plugin UI.
|
|
//
|
|
// Parameters:
|
|
// parent_window
|
|
// Handle to the parent window.
|
|
bool SetWindow(HWND parent_window);
|
|
|
|
// Destroys the install dialog and the plugin window.
|
|
void Shutdown();
|
|
|
|
HWND window() const { return m_hWnd; }
|
|
|
|
// Getter for the NPP instance member.
|
|
const NPP instance() const {
|
|
return instance_;
|
|
}
|
|
|
|
protected:
|
|
// Window message handlers.
|
|
LRESULT OnPaint(UINT message, WPARAM wparam, LPARAM lparam, BOOL& handled);
|
|
LRESULT OnPrintClient(UINT message, WPARAM wparam, LPARAM lparam,
|
|
BOOL& handled);
|
|
LRESULT OnEraseBackGround(UINT message, WPARAM wparam, LPARAM lparam,
|
|
BOOL& handled);
|
|
LRESULT OnLButtonDown(UINT message, WPARAM wparam, LPARAM lparam,
|
|
BOOL& handled);
|
|
|
|
// Enables the plugin window if required and initiates an update of the
|
|
// the plugin window.
|
|
void RefreshDisplay();
|
|
|
|
void Paint(HDC hdc);
|
|
|
|
private:
|
|
// The plugins opaque instance handle
|
|
NPP instance_;
|
|
// The plugin instantiation mode (NP_FULL or NP_EMBED)
|
|
int16 mode_;
|
|
};
|
|
|
|
#endif // _WIN32
|
|
|
|
#endif // _CEFCLIENT_CLIENTPLUGIN_H
|