diff --git a/mozilla/modules/plugin/samples/npthread/windows/action.h b/mozilla/modules/plugin/samples/npthread/windows/action.h index 3983aaef5db..95c42277899 100644 --- a/mozilla/modules/plugin/samples/npthread/windows/action.h +++ b/mozilla/modules/plugin/samples/npthread/windows/action.h @@ -34,3 +34,54 @@ * the terms of any one of the NPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ + +#ifndef __ACTION_H__ +#define __ACTION_H__ + +#include "npapi.h" + +typedef enum +{ + action_invalid = 0, + action_npn_version, + action_npn_get_url_notify, + action_npn_get_url, + action_npn_post_url_notify, + action_npn_post_url, + action_npn_request_read, + action_npn_new_stream, + action_npn_write, + action_npn_destroy_stream, + action_npn_status, + action_npn_user_agent, + action_npn_mem_alloc, + action_npn_mem_free, + action_npn_mem_flush, + action_npn_reload_plugins, + action_npn_get_java_env, + action_npn_get_java_peer, + action_npn_get_value, + action_npn_set_value, + action_npn_invalidate_rect, + action_npn_invalidate_region, + action_npn_force_redraw, + + action_npp_new, // 23 + action_npp_destroy, + action_npp_set_window, + action_npp_new_stream, + action_npp_destroy_stream, + action_npp_stream_as_file, + action_npp_write_ready, + action_npp_write, + action_npp_print, + action_npp_handle_event, + action_npp_url_notify, + action_npp_get_java_class, + action_npp_get_value, + action_npp_set_value +} npapiAction; + +char * FormatAction(int aAction); + +#endif // __ACTION_H__ diff --git a/mozilla/modules/plugin/samples/npthread/windows/dbg.h b/mozilla/modules/plugin/samples/npthread/windows/dbg.h index 3983aaef5db..62f79c40063 100644 --- a/mozilla/modules/plugin/samples/npthread/windows/dbg.h +++ b/mozilla/modules/plugin/samples/npthread/windows/dbg.h @@ -34,3 +34,32 @@ * the terms of any one of the NPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ + +#ifndef __DBG_HPP_ +#define __DBG_HPP_ + +#ifdef NTRACE + +#define dbgOut1(x) ((void)0) +#define dbgOut2(x,y) ((void)0) +#define dbgOut3(x,y,z) ((void)0) +#define dbgOut4(x,y,z,t) ((void)0) +#define dbgOut5(x,y,z,t,u) ((void)0) +#define dbgOut6(x,y,z,t,u,v) ((void)0) +#define dbgOut7(x,y,z,t,u,v,a) ((void)0) +#define dbgOut8(x,y,z,t,u,v,a,b) ((void)0) + +#else + +void __cdecl dbgOut(LPSTR format, ...); +#define dbgOut1(x) dbgOut(x) +#define dbgOut2(x,y) dbgOut(x, y) +#define dbgOut3(x,y,z) dbgOut(x, y, z) +#define dbgOut4(x,y,z,t) dbgOut(x, y, z, t) +#define dbgOut5(x,y,z,t,u) dbgOut(x, y, z, t, u) +#define dbgOut6(x,y,z,t,u,v) dbgOut(x, y, z, t, u, v) +#define dbgOut7(x,y,z,t,u,v, a) dbgOut(x, y, z, t, u, v, a) +#define dbgOut8(x,y,z,t,u,v, a, b) dbgOut(x, y, z, t, u, v, a, b) + +#endif +#endif diff --git a/mozilla/modules/plugin/samples/npthread/windows/plugin.h b/mozilla/modules/plugin/samples/npthread/windows/plugin.h index 3983aaef5db..647346f99bb 100644 --- a/mozilla/modules/plugin/samples/npthread/windows/plugin.h +++ b/mozilla/modules/plugin/samples/npthread/windows/plugin.h @@ -34,3 +34,37 @@ * the terms of any one of the NPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ + +#ifndef _PLUGIN_H_ +#define _PLUGIN_H_ + +#include "thread.h" +#include "action.h" + +class nsPluginThread : CThread +{ +public: + nsPluginThread(DWORD aP1); + ~nsPluginThread(); + +private: + BOOL init(); + void shut(); + void dispatch(); + +public: + DWORD callNPP(npapiAction aAction, DWORD aP1=NULL, + DWORD aP2=NULL, DWORD aP3=NULL, DWORD aP4=NULL, + DWORD aP5=NULL, DWORD aP6=NULL, DWORD aP7=NULL); + +private: + DWORD mP1; + DWORD mP2; + DWORD mP3; + DWORD mP4; + DWORD mP5; + DWORD mP6; + DWORD mP7; +}; + +#endif // _PLUGIN_H_ diff --git a/mozilla/modules/plugin/samples/npthread/windows/plugload.h b/mozilla/modules/plugin/samples/npthread/windows/plugload.h index 3983aaef5db..3eb732aaa9c 100644 --- a/mozilla/modules/plugin/samples/npthread/windows/plugload.h +++ b/mozilla/modules/plugin/samples/npthread/windows/plugload.h @@ -34,3 +34,12 @@ * the terms of any one of the NPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ + +#ifndef __PLUGLOAD_H__ +#define __PLUGLOAD_H__ + +DWORD GetPluginsDir(char * path, DWORD maxsize); +HINSTANCE LoadRealPlugin(char * mimetype); +void UnloadRealPlugin(HINSTANCE hLib); + +#endif diff --git a/mozilla/modules/plugin/samples/npthread/windows/thread.h b/mozilla/modules/plugin/samples/npthread/windows/thread.h index 3983aaef5db..f7a8a8d1b39 100644 --- a/mozilla/modules/plugin/samples/npthread/windows/thread.h +++ b/mozilla/modules/plugin/samples/npthread/windows/thread.h @@ -34,3 +34,57 @@ * the terms of any one of the NPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ + +#ifndef __THREAD_H__ +#define __THREAD_H__ + +typedef enum { + ts_dead = 0, + ts_ready, + ts_busy + +} ThreadState; + +class CThread { +private: + HANDLE mThread; + DWORD mID; + HANDLE mEventThreadInitializationFinished; + HANDLE mEventThreadShutdownFinished; + DWORD mInitTimeOut; + DWORD mShutTimeOut; + HANDLE mEventDo; + ThreadState mState; + +protected: + int mAction; + +public: + BOOL setInitEvent(); + BOOL setShutEvent(); + BOOL isAlive(); + BOOL isBusy(); + HANDLE getHandle(); + + void run(); + + // outside thread interface + CThread(DWORD aInitTimeOut = INFINITE, DWORD aShutTimeOut = INFINITE); + virtual ~CThread(); + + BOOL open(CThread * aThread); + void close(CThread * aThread); + + BOOL tryAction(int aAction); + BOOL doAction(int aAction); + + // virtuals + virtual BOOL init() = 0; + virtual void shut() = 0; + virtual void dispatch() = 0; +}; + +BOOL InitThreadLib(HINSTANCE aInstance); +void ShutThreadLib(HINSTANCE aInstance); + +#endif // THREAD_HPP__