michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #ifndef mozilla_plugins_COMMessageFilter_h michael@0: #define mozilla_plugins_COMMessageFilter_h michael@0: michael@0: #include michael@0: #include "nsISupportsImpl.h" michael@0: #include "nsAutoPtr.h" michael@0: michael@0: namespace mozilla { michael@0: namespace plugins { michael@0: michael@0: class PluginModuleChild; michael@0: michael@0: class COMMessageFilter MOZ_FINAL : public IMessageFilter michael@0: { michael@0: public: michael@0: static void Initialize(PluginModuleChild* plugin); michael@0: michael@0: COMMessageFilter(PluginModuleChild* plugin) michael@0: : mPlugin(plugin) michael@0: { } michael@0: michael@0: HRESULT WINAPI QueryInterface(REFIID riid, void** ppv); michael@0: DWORD WINAPI AddRef(); michael@0: DWORD WINAPI Release(); michael@0: michael@0: DWORD WINAPI HandleInComingCall(DWORD dwCallType, michael@0: HTASK htaskCaller, michael@0: DWORD dwTickCount, michael@0: LPINTERFACEINFO lpInterfaceInfo); michael@0: DWORD WINAPI RetryRejectedCall(HTASK htaskCallee, michael@0: DWORD dwTickCount, michael@0: DWORD dwRejectType); michael@0: DWORD WINAPI MessagePending(HTASK htaskCallee, michael@0: DWORD dwTickCount, michael@0: DWORD dwPendingType); michael@0: michael@0: private: michael@0: nsAutoRefCnt mRefCnt; michael@0: PluginModuleChild* mPlugin; michael@0: nsRefPtr mPreviousFilter; michael@0: }; michael@0: michael@0: } // namespace plugins michael@0: } // namespace mozilla michael@0: michael@0: #endif // COMMessageFilter_h