summaryrefslogtreecommitdiff
path: root/xfa/include/fwl/core/fwl_target.h
blob: 25c8a33c90ff702aa4532aafffb36185dad06f5e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// 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_