// Copyright 2014 PDFium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com #ifndef FWL_TARGET_H_ #define FWL_TARGET_H_ #include "core/include/fxcrt/fx_basic.h" // FWL contains three parallel inheritance hierarchies, which reference each // other via pointers as follows: // // m_pImpl // (nonesuch) IFWL_Target ----------> CFWL_TargetImp // | | // A A // m_pIface | | // CFWL_Widget ----------> IFWL_Widget CFWL_WidgetImp // | | | // A A A // | | | // CFWL_... IFWL_... CFWL_...Imp // class CFWL_TargetImp; class IFWL_Target { public: FX_DWORD Release(); IFWL_Target* Retain(); FX_DWORD GetRefCount() const; FWL_ERR GetClassName(CFX_WideString& wsClass) const; FX_DWORD GetClassID() const; FX_BOOL IsInstance(const CFX_WideStringC& wsClass) const; FWL_ERR Initialize(); FWL_ERR Finalize(); protected: virtual ~IFWL_Target(); CFWL_TargetImp* m_pImpl; }; #endif // FWL_TARGET_H_