blob: 884651a77b9e6b8c1538489e485085a1c277c2dd [file] [log] [blame]
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -07001// Copyright 2014 PDFium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
Lei Zhanga6d9f0e2015-06-13 00:48:38 -07004
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -07005// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
Dan Sinclaire0345a42017-10-30 20:20:42 +00007#include "fxjs/cjs_eventhandler.h"
Tom Sepez37458412015-10-06 11:33:46 -07008
Dan Sinclair51230322017-10-30 15:36:02 +00009#include "core/fpdfdoc/cpdf_formfield.h"
Dan Sinclaire0345a42017-10-30 20:20:42 +000010#include "fxjs/cjs_document.h"
11#include "fxjs/cjs_event_context.h"
12#include "fxjs/cjs_field.h"
13#include "fxjs/cjs_object.h"
14#include "fxjs/cjs_runtime.h"
Tom Sepez221f0b32018-06-04 22:11:27 +000015#include "fxjs/js_define.h"
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070016
Tom Sepezd6ae2af2017-02-16 11:49:55 -080017CJS_EventHandler::CJS_EventHandler(CJS_EventContext* pContext)
Lei Zhang15406fb2018-05-07 14:37:55 +000018 : m_pJSEventContext(pContext) {}
Nico Weber9d8ec5a2015-08-04 13:00:21 -070019
20CJS_EventHandler::~CJS_EventHandler() {}
21
22void CJS_EventHandler::OnApp_Init() {
Lei Zhang15406fb2018-05-07 14:37:55 +000023 Initialize(JET_APP_INIT);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070024}
25
dsinclair4526faf2016-10-11 10:54:49 -070026void CJS_EventHandler::OnDoc_Open(CPDFSDK_FormFillEnvironment* pFormFillEnv,
Ryan Harrison275e2602017-09-18 14:23:18 -040027 const WideString& strTargetName) {
Lei Zhang15406fb2018-05-07 14:37:55 +000028 Initialize(JET_DOC_OPEN);
Tom Sepez77f6d0f2017-02-23 12:14:10 -080029 m_pTargetFormFillEnv.Reset(pFormFillEnv);
Nico Weber9d8ec5a2015-08-04 13:00:21 -070030 m_strTargetName = strTargetName;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070031}
32
dsinclair4526faf2016-10-11 10:54:49 -070033void CJS_EventHandler::OnDoc_WillPrint(
34 CPDFSDK_FormFillEnvironment* pFormFillEnv) {
Lei Zhang15406fb2018-05-07 14:37:55 +000035 Initialize(JET_DOC_WILLPRINT);
Tom Sepez77f6d0f2017-02-23 12:14:10 -080036 m_pTargetFormFillEnv.Reset(pFormFillEnv);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070037}
38
dsinclair4526faf2016-10-11 10:54:49 -070039void CJS_EventHandler::OnDoc_DidPrint(
40 CPDFSDK_FormFillEnvironment* pFormFillEnv) {
Lei Zhang15406fb2018-05-07 14:37:55 +000041 Initialize(JET_DOC_DIDPRINT);
Tom Sepez77f6d0f2017-02-23 12:14:10 -080042 m_pTargetFormFillEnv.Reset(pFormFillEnv);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070043}
44
dsinclair4526faf2016-10-11 10:54:49 -070045void CJS_EventHandler::OnDoc_WillSave(
46 CPDFSDK_FormFillEnvironment* pFormFillEnv) {
Lei Zhang15406fb2018-05-07 14:37:55 +000047 Initialize(JET_DOC_WILLSAVE);
Tom Sepez77f6d0f2017-02-23 12:14:10 -080048 m_pTargetFormFillEnv.Reset(pFormFillEnv);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070049}
50
dsinclair4526faf2016-10-11 10:54:49 -070051void CJS_EventHandler::OnDoc_DidSave(
52 CPDFSDK_FormFillEnvironment* pFormFillEnv) {
Lei Zhang15406fb2018-05-07 14:37:55 +000053 Initialize(JET_DOC_DIDSAVE);
Tom Sepez77f6d0f2017-02-23 12:14:10 -080054 m_pTargetFormFillEnv.Reset(pFormFillEnv);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070055}
56
dsinclair4526faf2016-10-11 10:54:49 -070057void CJS_EventHandler::OnDoc_WillClose(
58 CPDFSDK_FormFillEnvironment* pFormFillEnv) {
Lei Zhang15406fb2018-05-07 14:37:55 +000059 Initialize(JET_DOC_WILLCLOSE);
Tom Sepez77f6d0f2017-02-23 12:14:10 -080060 m_pTargetFormFillEnv.Reset(pFormFillEnv);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070061}
62
dsinclair4526faf2016-10-11 10:54:49 -070063void CJS_EventHandler::OnPage_Open(CPDFSDK_FormFillEnvironment* pFormFillEnv) {
Lei Zhang15406fb2018-05-07 14:37:55 +000064 Initialize(JET_PAGE_OPEN);
Tom Sepez77f6d0f2017-02-23 12:14:10 -080065 m_pTargetFormFillEnv.Reset(pFormFillEnv);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070066}
67
dsinclair4526faf2016-10-11 10:54:49 -070068void CJS_EventHandler::OnPage_Close(CPDFSDK_FormFillEnvironment* pFormFillEnv) {
Lei Zhang15406fb2018-05-07 14:37:55 +000069 Initialize(JET_PAGE_CLOSE);
Tom Sepez77f6d0f2017-02-23 12:14:10 -080070 m_pTargetFormFillEnv.Reset(pFormFillEnv);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070071}
72
dsinclair4526faf2016-10-11 10:54:49 -070073void CJS_EventHandler::OnPage_InView(
74 CPDFSDK_FormFillEnvironment* pFormFillEnv) {
Lei Zhang15406fb2018-05-07 14:37:55 +000075 Initialize(JET_PAGE_INVIEW);
Tom Sepez77f6d0f2017-02-23 12:14:10 -080076 m_pTargetFormFillEnv.Reset(pFormFillEnv);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070077}
78
dsinclair4526faf2016-10-11 10:54:49 -070079void CJS_EventHandler::OnPage_OutView(
80 CPDFSDK_FormFillEnvironment* pFormFillEnv) {
Lei Zhang15406fb2018-05-07 14:37:55 +000081 Initialize(JET_PAGE_OUTVIEW);
Tom Sepez77f6d0f2017-02-23 12:14:10 -080082 m_pTargetFormFillEnv.Reset(pFormFillEnv);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070083}
84
tsepez4cf55152016-11-02 14:37:54 -070085void CJS_EventHandler::OnField_MouseEnter(bool bModifier,
86 bool bShift,
Nico Weber9d8ec5a2015-08-04 13:00:21 -070087 CPDF_FormField* pTarget) {
Lei Zhang15406fb2018-05-07 14:37:55 +000088 Initialize(JET_FIELD_MOUSEENTER);
Lei Zhanga6d9f0e2015-06-13 00:48:38 -070089
Nico Weber9d8ec5a2015-08-04 13:00:21 -070090 m_bModifier = bModifier;
91 m_bShift = bShift;
92
Nico Weber9d8ec5a2015-08-04 13:00:21 -070093 m_strTargetName = pTarget->GetFullName();
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070094}
95
tsepez4cf55152016-11-02 14:37:54 -070096void CJS_EventHandler::OnField_MouseExit(bool bModifier,
97 bool bShift,
Nico Weber9d8ec5a2015-08-04 13:00:21 -070098 CPDF_FormField* pTarget) {
Lei Zhang15406fb2018-05-07 14:37:55 +000099 Initialize(JET_FIELD_MOUSEEXIT);
Lei Zhanga6d9f0e2015-06-13 00:48:38 -0700100
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700101 m_bModifier = bModifier;
102 m_bShift = bShift;
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700103 m_strTargetName = pTarget->GetFullName();
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700104}
105
tsepez4cf55152016-11-02 14:37:54 -0700106void CJS_EventHandler::OnField_MouseDown(bool bModifier,
107 bool bShift,
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700108 CPDF_FormField* pTarget) {
Lei Zhang15406fb2018-05-07 14:37:55 +0000109 Initialize(JET_FIELD_MOUSEDOWN);
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700110 m_eEventType = JET_FIELD_MOUSEDOWN;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700111
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700112 m_bModifier = bModifier;
113 m_bShift = bShift;
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700114 m_strTargetName = pTarget->GetFullName();
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700115}
116
tsepez4cf55152016-11-02 14:37:54 -0700117void CJS_EventHandler::OnField_MouseUp(bool bModifier,
118 bool bShift,
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700119 CPDF_FormField* pTarget) {
Lei Zhang15406fb2018-05-07 14:37:55 +0000120 Initialize(JET_FIELD_MOUSEUP);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700121
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700122 m_bModifier = bModifier;
123 m_bShift = bShift;
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700124 m_strTargetName = pTarget->GetFullName();
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700125}
126
tsepez4cf55152016-11-02 14:37:54 -0700127void CJS_EventHandler::OnField_Focus(bool bModifier,
128 bool bShift,
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700129 CPDF_FormField* pTarget,
Tom Sepez3d813152018-06-21 17:28:24 +0000130 WideString* pValue) {
131 ASSERT(pValue);
Lei Zhang15406fb2018-05-07 14:37:55 +0000132 Initialize(JET_FIELD_FOCUS);
Lei Zhanga6d9f0e2015-06-13 00:48:38 -0700133
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700134 m_bModifier = bModifier;
135 m_bShift = bShift;
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700136 m_strTargetName = pTarget->GetFullName();
Tom Sepez3d813152018-06-21 17:28:24 +0000137 m_pValue = pValue;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700138}
139
tsepez4cf55152016-11-02 14:37:54 -0700140void CJS_EventHandler::OnField_Blur(bool bModifier,
141 bool bShift,
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700142 CPDF_FormField* pTarget,
Tom Sepez3d813152018-06-21 17:28:24 +0000143 WideString* pValue) {
144 ASSERT(pValue);
Lei Zhang15406fb2018-05-07 14:37:55 +0000145 Initialize(JET_FIELD_BLUR);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700146
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700147 m_bModifier = bModifier;
148 m_bShift = bShift;
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700149 m_strTargetName = pTarget->GetFullName();
Tom Sepez3d813152018-06-21 17:28:24 +0000150 m_pValue = pValue;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700151}
152
Tom Sepez3d813152018-06-21 17:28:24 +0000153void CJS_EventHandler::OnField_Keystroke(WideString* strChange,
Ryan Harrison275e2602017-09-18 14:23:18 -0400154 const WideString& strChangeEx,
tsepez4cf55152016-11-02 14:37:54 -0700155 bool KeyDown,
156 bool bModifier,
Tom Sepez3d813152018-06-21 17:28:24 +0000157 int* pSelEnd,
158 int* pSelStart,
tsepez4cf55152016-11-02 14:37:54 -0700159 bool bShift,
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700160 CPDF_FormField* pTarget,
Tom Sepez3d813152018-06-21 17:28:24 +0000161 WideString* pValue,
tsepez4cf55152016-11-02 14:37:54 -0700162 bool bWillCommit,
163 bool bFieldFull,
Tom Sepez3d813152018-06-21 17:28:24 +0000164 bool* pbRc) {
165 ASSERT(pValue && pbRc && pSelEnd && pSelStart);
Lei Zhang15406fb2018-05-07 14:37:55 +0000166 Initialize(JET_FIELD_KEYSTROKE);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700167
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700168 m_nCommitKey = 0;
Tom Sepez3d813152018-06-21 17:28:24 +0000169 m_pWideStrChange = strChange;
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700170 m_WideStrChangeEx = strChangeEx;
171 m_bKeyDown = KeyDown;
172 m_bModifier = bModifier;
Tom Sepez3d813152018-06-21 17:28:24 +0000173 m_pISelEnd = pSelEnd;
174 m_pISelStart = pSelStart;
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700175 m_bShift = bShift;
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700176 m_strTargetName = pTarget->GetFullName();
Tom Sepez3d813152018-06-21 17:28:24 +0000177 m_pValue = pValue;
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700178 m_bWillCommit = bWillCommit;
Tom Sepez3d813152018-06-21 17:28:24 +0000179 m_pbRc = pbRc;
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700180 m_bFieldFull = bFieldFull;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700181}
182
Tom Sepez3d813152018-06-21 17:28:24 +0000183void CJS_EventHandler::OnField_Validate(WideString* strChange,
Ryan Harrison275e2602017-09-18 14:23:18 -0400184 const WideString& strChangeEx,
tsepez4cf55152016-11-02 14:37:54 -0700185 bool bKeyDown,
186 bool bModifier,
187 bool bShift,
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700188 CPDF_FormField* pTarget,
Tom Sepez3d813152018-06-21 17:28:24 +0000189 WideString* pValue,
190 bool* pbRc) {
191 ASSERT(pValue && pbRc);
Lei Zhang15406fb2018-05-07 14:37:55 +0000192 Initialize(JET_FIELD_VALIDATE);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700193
Tom Sepez3d813152018-06-21 17:28:24 +0000194 m_pWideStrChange = strChange;
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700195 m_WideStrChangeEx = strChangeEx;
196 m_bKeyDown = bKeyDown;
197 m_bModifier = bModifier;
198 m_bShift = bShift;
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700199 m_strTargetName = pTarget->GetFullName();
Tom Sepez3d813152018-06-21 17:28:24 +0000200 m_pValue = pValue;
201 m_pbRc = pbRc;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700202}
203
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700204void CJS_EventHandler::OnField_Calculate(CPDF_FormField* pSource,
205 CPDF_FormField* pTarget,
Tom Sepez3d813152018-06-21 17:28:24 +0000206 WideString* pValue,
207 bool* pRc) {
208 ASSERT(pValue && pRc);
Lei Zhang15406fb2018-05-07 14:37:55 +0000209 Initialize(JET_FIELD_CALCULATE);
Lei Zhanga6d9f0e2015-06-13 00:48:38 -0700210
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700211 if (pSource)
212 m_strSourceName = pSource->GetFullName();
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700213 m_strTargetName = pTarget->GetFullName();
Tom Sepez3d813152018-06-21 17:28:24 +0000214 m_pValue = pValue;
215 m_pbRc = pRc;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700216}
217
Lei Zhang0aa0e732015-06-10 15:23:23 -0700218void CJS_EventHandler::OnField_Format(CPDF_FormField* pTarget,
Tom Sepez3d813152018-06-21 17:28:24 +0000219 WideString* pValue,
tsepez4cf55152016-11-02 14:37:54 -0700220 bool bWillCommit) {
Tom Sepez3d813152018-06-21 17:28:24 +0000221 ASSERT(pValue);
Lei Zhang15406fb2018-05-07 14:37:55 +0000222 Initialize(JET_FIELD_FORMAT);
Lei Zhanga6d9f0e2015-06-13 00:48:38 -0700223
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700224 m_nCommitKey = 0;
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700225 m_strTargetName = pTarget->GetFullName();
Tom Sepez3d813152018-06-21 17:28:24 +0000226 m_pValue = pValue;
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700227 m_bWillCommit = bWillCommit;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700228}
229
tsepez4cf55152016-11-02 14:37:54 -0700230void CJS_EventHandler::OnScreen_Focus(bool bModifier,
231 bool bShift,
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700232 CPDFSDK_Annot* pScreen) {
Lei Zhang15406fb2018-05-07 14:37:55 +0000233 Initialize(JET_SCREEN_FOCUS);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700234
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700235 m_bModifier = bModifier;
236 m_bShift = bShift;
Tom Sepez77f6d0f2017-02-23 12:14:10 -0800237 m_pTargetAnnot.Reset(pScreen);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700238}
239
tsepez4cf55152016-11-02 14:37:54 -0700240void CJS_EventHandler::OnScreen_Blur(bool bModifier,
241 bool bShift,
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700242 CPDFSDK_Annot* pScreen) {
Lei Zhang15406fb2018-05-07 14:37:55 +0000243 Initialize(JET_SCREEN_BLUR);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700244
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700245 m_bModifier = bModifier;
246 m_bShift = bShift;
Tom Sepez77f6d0f2017-02-23 12:14:10 -0800247 m_pTargetAnnot.Reset(pScreen);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700248}
249
tsepez4cf55152016-11-02 14:37:54 -0700250void CJS_EventHandler::OnScreen_Open(bool bModifier,
251 bool bShift,
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700252 CPDFSDK_Annot* pScreen) {
Lei Zhang15406fb2018-05-07 14:37:55 +0000253 Initialize(JET_SCREEN_OPEN);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700254
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700255 m_bModifier = bModifier;
256 m_bShift = bShift;
Tom Sepez77f6d0f2017-02-23 12:14:10 -0800257 m_pTargetAnnot.Reset(pScreen);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700258}
259
tsepez4cf55152016-11-02 14:37:54 -0700260void CJS_EventHandler::OnScreen_Close(bool bModifier,
261 bool bShift,
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700262 CPDFSDK_Annot* pScreen) {
Lei Zhang15406fb2018-05-07 14:37:55 +0000263 Initialize(JET_SCREEN_CLOSE);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700264
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700265 m_bModifier = bModifier;
266 m_bShift = bShift;
Tom Sepez77f6d0f2017-02-23 12:14:10 -0800267 m_pTargetAnnot.Reset(pScreen);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700268}
269
tsepez4cf55152016-11-02 14:37:54 -0700270void CJS_EventHandler::OnScreen_MouseDown(bool bModifier,
271 bool bShift,
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700272 CPDFSDK_Annot* pScreen) {
Lei Zhang15406fb2018-05-07 14:37:55 +0000273 Initialize(JET_SCREEN_MOUSEDOWN);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700274
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700275 m_bModifier = bModifier;
276 m_bShift = bShift;
Tom Sepez77f6d0f2017-02-23 12:14:10 -0800277 m_pTargetAnnot.Reset(pScreen);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700278}
279
tsepez4cf55152016-11-02 14:37:54 -0700280void CJS_EventHandler::OnScreen_MouseUp(bool bModifier,
281 bool bShift,
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700282 CPDFSDK_Annot* pScreen) {
Lei Zhang15406fb2018-05-07 14:37:55 +0000283 Initialize(JET_SCREEN_MOUSEUP);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700284
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700285 m_bModifier = bModifier;
286 m_bShift = bShift;
Tom Sepez77f6d0f2017-02-23 12:14:10 -0800287 m_pTargetAnnot.Reset(pScreen);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700288}
289
tsepez4cf55152016-11-02 14:37:54 -0700290void CJS_EventHandler::OnScreen_MouseEnter(bool bModifier,
291 bool bShift,
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700292 CPDFSDK_Annot* pScreen) {
Lei Zhang15406fb2018-05-07 14:37:55 +0000293 Initialize(JET_SCREEN_MOUSEENTER);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700294
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700295 m_bModifier = bModifier;
296 m_bShift = bShift;
Tom Sepez77f6d0f2017-02-23 12:14:10 -0800297 m_pTargetAnnot.Reset(pScreen);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700298}
299
tsepez4cf55152016-11-02 14:37:54 -0700300void CJS_EventHandler::OnScreen_MouseExit(bool bModifier,
301 bool bShift,
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700302 CPDFSDK_Annot* pScreen) {
Lei Zhang15406fb2018-05-07 14:37:55 +0000303 Initialize(JET_SCREEN_MOUSEEXIT);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700304
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700305 m_bModifier = bModifier;
306 m_bShift = bShift;
Tom Sepez77f6d0f2017-02-23 12:14:10 -0800307 m_pTargetAnnot.Reset(pScreen);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700308}
309
tsepez4cf55152016-11-02 14:37:54 -0700310void CJS_EventHandler::OnScreen_InView(bool bModifier,
311 bool bShift,
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700312 CPDFSDK_Annot* pScreen) {
Lei Zhang15406fb2018-05-07 14:37:55 +0000313 Initialize(JET_SCREEN_INVIEW);
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700314 m_bModifier = bModifier;
315 m_bShift = bShift;
Tom Sepez77f6d0f2017-02-23 12:14:10 -0800316 m_pTargetAnnot.Reset(pScreen);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700317}
318
tsepez4cf55152016-11-02 14:37:54 -0700319void CJS_EventHandler::OnScreen_OutView(bool bModifier,
320 bool bShift,
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700321 CPDFSDK_Annot* pScreen) {
Lei Zhang15406fb2018-05-07 14:37:55 +0000322 Initialize(JET_SCREEN_OUTVIEW);
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700323 m_bModifier = bModifier;
324 m_bShift = bShift;
Tom Sepez77f6d0f2017-02-23 12:14:10 -0800325 m_pTargetAnnot.Reset(pScreen);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700326}
327
dsinclair4526faf2016-10-11 10:54:49 -0700328void CJS_EventHandler::OnLink_MouseUp(
329 CPDFSDK_FormFillEnvironment* pTargetFormFillEnv) {
Lei Zhang15406fb2018-05-07 14:37:55 +0000330 Initialize(JET_LINK_MOUSEUP);
Tom Sepez77f6d0f2017-02-23 12:14:10 -0800331 m_pTargetFormFillEnv.Reset(pTargetFormFillEnv);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700332}
333
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700334void CJS_EventHandler::OnBookmark_MouseUp(CPDF_Bookmark* pBookMark) {
Lei Zhang15406fb2018-05-07 14:37:55 +0000335 Initialize(JET_BOOKMARK_MOUSEUP);
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700336 m_pTargetBookMark = pBookMark;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700337}
338
dsinclair4526faf2016-10-11 10:54:49 -0700339void CJS_EventHandler::OnMenu_Exec(
340 CPDFSDK_FormFillEnvironment* pTargetFormFillEnv,
Ryan Harrison275e2602017-09-18 14:23:18 -0400341 const WideString& strTargetName) {
Lei Zhang15406fb2018-05-07 14:37:55 +0000342 Initialize(JET_MENU_EXEC);
Tom Sepez77f6d0f2017-02-23 12:14:10 -0800343 m_pTargetFormFillEnv.Reset(pTargetFormFillEnv);
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700344 m_strTargetName = strTargetName;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700345}
346
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700347void CJS_EventHandler::OnExternal_Exec() {
Lei Zhang15406fb2018-05-07 14:37:55 +0000348 Initialize(JET_EXTERNAL_EXEC);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700349}
350
dsinclair4526faf2016-10-11 10:54:49 -0700351void CJS_EventHandler::OnBatchExec(
352 CPDFSDK_FormFillEnvironment* pTargetFormFillEnv) {
Lei Zhang15406fb2018-05-07 14:37:55 +0000353 Initialize(JET_BATCH_EXEC);
Tom Sepez77f6d0f2017-02-23 12:14:10 -0800354 m_pTargetFormFillEnv.Reset(pTargetFormFillEnv);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700355}
356
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700357void CJS_EventHandler::OnConsole_Exec() {
Lei Zhang15406fb2018-05-07 14:37:55 +0000358 Initialize(JET_CONSOLE_EXEC);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700359}
360
Lei Zhang15406fb2018-05-07 14:37:55 +0000361void CJS_EventHandler::Initialize(JS_EVENT_T type) {
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700362 m_eEventType = type;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700363
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700364 m_strTargetName = L"";
365 m_strSourceName = L"";
thestig1cd352e2016-06-07 17:53:06 -0700366 m_pWideStrChange = nullptr;
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700367 m_WideStrChangeDu = L"";
368 m_WideStrChangeEx = L"";
369 m_nCommitKey = -1;
tsepez4cf55152016-11-02 14:37:54 -0700370 m_bKeyDown = false;
371 m_bModifier = false;
372 m_bShift = false;
thestig1cd352e2016-06-07 17:53:06 -0700373 m_pISelEnd = nullptr;
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700374 m_nSelEndDu = 0;
thestig1cd352e2016-06-07 17:53:06 -0700375 m_pISelStart = nullptr;
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700376 m_nSelStartDu = 0;
tsepez4cf55152016-11-02 14:37:54 -0700377 m_bWillCommit = false;
thestig1cd352e2016-06-07 17:53:06 -0700378 m_pValue = nullptr;
tsepez4cf55152016-11-02 14:37:54 -0700379 m_bFieldFull = false;
thestig1cd352e2016-06-07 17:53:06 -0700380 m_pbRc = nullptr;
tsepez4cf55152016-11-02 14:37:54 -0700381 m_bRcDu = false;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700382
thestig1cd352e2016-06-07 17:53:06 -0700383 m_pTargetBookMark = nullptr;
Tom Sepez77f6d0f2017-02-23 12:14:10 -0800384 m_pTargetFormFillEnv.Reset();
385 m_pTargetAnnot.Reset();
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700386
tsepez4cf55152016-11-02 14:37:54 -0700387 m_bValid = true;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700388}
389
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700390void CJS_EventHandler::Destroy() {
tsepez4cf55152016-11-02 14:37:54 -0700391 m_bValid = false;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700392}
393
Lei Zhangfae5e262017-11-20 19:58:13 +0000394bool CJS_EventHandler::IsValid() const {
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700395 return m_bValid;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700396}
397
Ryan Harrison275e2602017-09-18 14:23:18 -0400398WideString& CJS_EventHandler::Change() {
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700399 if (m_pWideStrChange) {
400 return *m_pWideStrChange;
401 }
402 return m_WideStrChangeDu;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700403}
404
Tom Sepez9c292fe2018-06-21 15:02:24 +0000405WideString CJS_EventHandler::ChangeEx() const {
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700406 return m_WideStrChangeEx;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700407}
408
Lei Zhangfae5e262017-11-20 19:58:13 +0000409int CJS_EventHandler::CommitKey() const {
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700410 return m_nCommitKey;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700411}
412
Lei Zhangfae5e262017-11-20 19:58:13 +0000413bool CJS_EventHandler::FieldFull() const {
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700414 return m_bFieldFull;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700415}
416
Lei Zhangfae5e262017-11-20 19:58:13 +0000417bool CJS_EventHandler::KeyDown() const {
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700418 return m_bKeyDown;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700419}
420
Lei Zhangfae5e262017-11-20 19:58:13 +0000421bool CJS_EventHandler::Modifier() const {
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700422 return m_bModifier;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700423}
424
Lei Zhangfae5e262017-11-20 19:58:13 +0000425const wchar_t* CJS_EventHandler::Name() const {
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700426 switch (m_eEventType) {
427 case JET_APP_INIT:
428 return L"Init";
429 case JET_BATCH_EXEC:
430 return L"Exec";
431 case JET_BOOKMARK_MOUSEUP:
432 return L"Mouse Up";
433 case JET_CONSOLE_EXEC:
434 return L"Exec";
435 case JET_DOC_DIDPRINT:
436 return L"DidPrint";
437 case JET_DOC_DIDSAVE:
438 return L"DidSave";
439 case JET_DOC_OPEN:
440 return L"Open";
441 case JET_DOC_WILLCLOSE:
442 return L"WillClose";
443 case JET_DOC_WILLPRINT:
444 return L"WillPrint";
445 case JET_DOC_WILLSAVE:
446 return L"WillSave";
447 case JET_EXTERNAL_EXEC:
448 return L"Exec";
Tom Sepez2f2ffec2015-07-23 14:42:09 -0700449 case JET_FIELD_FOCUS:
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700450 case JET_SCREEN_FOCUS:
451 return L"Focus";
Tom Sepez2f2ffec2015-07-23 14:42:09 -0700452 case JET_FIELD_BLUR:
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700453 case JET_SCREEN_BLUR:
454 return L"Blur";
Tom Sepez2f2ffec2015-07-23 14:42:09 -0700455 case JET_FIELD_MOUSEDOWN:
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700456 case JET_SCREEN_MOUSEDOWN:
457 return L"Mouse Down";
Tom Sepez2f2ffec2015-07-23 14:42:09 -0700458 case JET_FIELD_MOUSEUP:
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700459 case JET_SCREEN_MOUSEUP:
460 return L"Mouse Up";
Tom Sepez2f2ffec2015-07-23 14:42:09 -0700461 case JET_FIELD_MOUSEENTER:
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700462 case JET_SCREEN_MOUSEENTER:
463 return L"Mouse Enter";
Tom Sepez2f2ffec2015-07-23 14:42:09 -0700464 case JET_FIELD_MOUSEEXIT:
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700465 case JET_SCREEN_MOUSEEXIT:
466 return L"Mouse Exit";
467 case JET_FIELD_CALCULATE:
468 return L"Calculate";
469 case JET_FIELD_FORMAT:
470 return L"Format";
471 case JET_FIELD_KEYSTROKE:
472 return L"Keystroke";
473 case JET_FIELD_VALIDATE:
474 return L"Validate";
475 case JET_LINK_MOUSEUP:
476 return L"Mouse Up";
477 case JET_MENU_EXEC:
478 return L"Exec";
Tom Sepez2f2ffec2015-07-23 14:42:09 -0700479 case JET_PAGE_OPEN:
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700480 case JET_SCREEN_OPEN:
481 return L"Open";
Tom Sepez2f2ffec2015-07-23 14:42:09 -0700482 case JET_PAGE_CLOSE:
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700483 case JET_SCREEN_CLOSE:
484 return L"Close";
Tom Sepez2f2ffec2015-07-23 14:42:09 -0700485 case JET_SCREEN_INVIEW:
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700486 case JET_PAGE_INVIEW:
487 return L"InView";
Tom Sepez2f2ffec2015-07-23 14:42:09 -0700488 case JET_PAGE_OUTVIEW:
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700489 case JET_SCREEN_OUTVIEW:
490 return L"OutView";
Tom Sepez2f2ffec2015-07-23 14:42:09 -0700491 default:
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700492 return L"";
493 }
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700494}
495
Lei Zhangfae5e262017-11-20 19:58:13 +0000496const wchar_t* CJS_EventHandler::Type() const {
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700497 switch (m_eEventType) {
498 case JET_APP_INIT:
499 return L"App";
500 case JET_BATCH_EXEC:
501 return L"Batch";
502 case JET_BOOKMARK_MOUSEUP:
503 return L"BookMark";
504 case JET_CONSOLE_EXEC:
505 return L"Console";
Tom Sepez2f2ffec2015-07-23 14:42:09 -0700506 case JET_DOC_DIDPRINT:
507 case JET_DOC_DIDSAVE:
508 case JET_DOC_OPEN:
509 case JET_DOC_WILLCLOSE:
510 case JET_DOC_WILLPRINT:
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700511 case JET_DOC_WILLSAVE:
512 return L"Doc";
513 case JET_EXTERNAL_EXEC:
514 return L"External";
Tom Sepez2f2ffec2015-07-23 14:42:09 -0700515 case JET_FIELD_BLUR:
516 case JET_FIELD_FOCUS:
517 case JET_FIELD_MOUSEDOWN:
518 case JET_FIELD_MOUSEENTER:
519 case JET_FIELD_MOUSEEXIT:
520 case JET_FIELD_MOUSEUP:
521 case JET_FIELD_CALCULATE:
522 case JET_FIELD_FORMAT:
523 case JET_FIELD_KEYSTROKE:
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700524 case JET_FIELD_VALIDATE:
525 return L"Field";
Tom Sepez2f2ffec2015-07-23 14:42:09 -0700526 case JET_SCREEN_FOCUS:
527 case JET_SCREEN_BLUR:
528 case JET_SCREEN_OPEN:
529 case JET_SCREEN_CLOSE:
530 case JET_SCREEN_MOUSEDOWN:
531 case JET_SCREEN_MOUSEUP:
532 case JET_SCREEN_MOUSEENTER:
533 case JET_SCREEN_MOUSEEXIT:
534 case JET_SCREEN_INVIEW:
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700535 case JET_SCREEN_OUTVIEW:
536 return L"Screen";
537 case JET_LINK_MOUSEUP:
538 return L"Link";
539 case JET_MENU_EXEC:
540 return L"Menu";
Tom Sepez2f2ffec2015-07-23 14:42:09 -0700541 case JET_PAGE_OPEN:
542 case JET_PAGE_CLOSE:
543 case JET_PAGE_INVIEW:
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700544 case JET_PAGE_OUTVIEW:
545 return L"Page";
Tom Sepez2f2ffec2015-07-23 14:42:09 -0700546 default:
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700547 return L"";
548 }
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700549}
550
tsepez4cf55152016-11-02 14:37:54 -0700551bool& CJS_EventHandler::Rc() {
Lei Zhangfae5e262017-11-20 19:58:13 +0000552 return m_pbRc ? *m_pbRc : m_bRcDu;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700553}
554
Lei Zhangfae5e262017-11-20 19:58:13 +0000555int CJS_EventHandler::SelEnd() const {
556 return m_pISelEnd ? *m_pISelEnd : m_nSelEndDu;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700557}
558
Lei Zhangfae5e262017-11-20 19:58:13 +0000559int CJS_EventHandler::SelStart() const {
560 return m_pISelStart ? *m_pISelStart : m_nSelStartDu;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700561}
562
Lei Zhangfae5e262017-11-20 19:58:13 +0000563void CJS_EventHandler::SetSelEnd(int value) {
564 int& target = m_pISelEnd ? *m_pISelEnd : m_nSelEndDu;
565 target = value;
566}
567
568void CJS_EventHandler::SetSelStart(int value) {
569 int& target = m_pISelStart ? *m_pISelStart : m_nSelStartDu;
570 target = value;
571}
572
573bool CJS_EventHandler::Shift() const {
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700574 return m_bShift;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700575}
576
Dan Sinclairf7435522018-02-05 22:27:22 +0000577CJS_Field* CJS_EventHandler::Source() {
Tom Sepezd6ae2af2017-02-16 11:49:55 -0800578 CJS_Runtime* pRuntime = m_pJSEventContext->GetJSRuntime();
tsepezb4694242016-08-15 16:44:55 -0700579 v8::Local<v8::Object> pDocObj =
Tom Sepez9ad9a5f2018-02-07 21:07:24 +0000580 pRuntime->NewFXJSBoundObject(CJS_Document::GetObjDefnID());
Tom Sepezc5a14722017-02-24 15:31:12 -0800581 if (pDocObj.IsEmpty())
582 return nullptr;
Tom Sepezcd56a7d2015-10-06 11:45:28 -0700583
tsepezb4694242016-08-15 16:44:55 -0700584 v8::Local<v8::Object> pFieldObj =
Tom Sepez9ad9a5f2018-02-07 21:07:24 +0000585 pRuntime->NewFXJSBoundObject(CJS_Field::GetObjDefnID());
Tom Sepezc5a14722017-02-24 15:31:12 -0800586 if (pFieldObj.IsEmpty())
587 return nullptr;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700588
Tom Sepezddaa40f2018-06-06 18:30:15 +0000589 auto* pJSDocument =
590 static_cast<CJS_Document*>(CFXJS_Engine::GetObjectPrivate(pDocObj));
591
592 auto* pJSField =
593 static_cast<CJS_Field*>(CFXJS_Engine::GetObjectPrivate(pFieldObj));
Tom Sepezc5a14722017-02-24 15:31:12 -0800594
Dan Sinclairf7435522018-02-05 22:27:22 +0000595 pJSDocument->SetFormFillEnv(m_pTargetFormFillEnv
596 ? m_pTargetFormFillEnv.Get()
597 : m_pJSEventContext->GetFormFillEnv());
Lei Zhanga6d9f0e2015-06-13 00:48:38 -0700598
Dan Sinclairf7435522018-02-05 22:27:22 +0000599 pJSField->AttachField(pJSDocument, m_strSourceName);
600 return pJSField;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700601}
602
Dan Sinclairf7435522018-02-05 22:27:22 +0000603CJS_Field* CJS_EventHandler::Target_Field() {
Tom Sepezd6ae2af2017-02-16 11:49:55 -0800604 CJS_Runtime* pRuntime = m_pJSEventContext->GetJSRuntime();
tsepezb4694242016-08-15 16:44:55 -0700605 v8::Local<v8::Object> pDocObj =
Tom Sepez9ad9a5f2018-02-07 21:07:24 +0000606 pRuntime->NewFXJSBoundObject(CJS_Document::GetObjDefnID());
Tom Sepezc5a14722017-02-24 15:31:12 -0800607 if (pDocObj.IsEmpty())
608 return nullptr;
Tom Sepezcd56a7d2015-10-06 11:45:28 -0700609
tsepezb4694242016-08-15 16:44:55 -0700610 v8::Local<v8::Object> pFieldObj =
Tom Sepez9ad9a5f2018-02-07 21:07:24 +0000611 pRuntime->NewFXJSBoundObject(CJS_Field::GetObjDefnID());
Tom Sepezc5a14722017-02-24 15:31:12 -0800612 if (pFieldObj.IsEmpty())
613 return nullptr;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700614
Tom Sepezddaa40f2018-06-06 18:30:15 +0000615 auto* pJSDocument =
616 static_cast<CJS_Document*>(CFXJS_Engine::GetObjectPrivate(pDocObj));
617
618 auto* pJSField =
619 static_cast<CJS_Field*>(CFXJS_Engine::GetObjectPrivate(pFieldObj));
Tom Sepezc5a14722017-02-24 15:31:12 -0800620
Dan Sinclairf7435522018-02-05 22:27:22 +0000621 pJSDocument->SetFormFillEnv(m_pTargetFormFillEnv
622 ? m_pTargetFormFillEnv.Get()
623 : m_pJSEventContext->GetFormFillEnv());
Lei Zhanga6d9f0e2015-06-13 00:48:38 -0700624
Dan Sinclairf7435522018-02-05 22:27:22 +0000625 pJSField->AttachField(pJSDocument, m_strTargetName);
626 return pJSField;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700627}
628
Ryan Harrison275e2602017-09-18 14:23:18 -0400629WideString& CJS_EventHandler::Value() {
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700630 return *m_pValue;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700631}
632
Lei Zhangfae5e262017-11-20 19:58:13 +0000633bool CJS_EventHandler::WillCommit() const {
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700634 return m_bWillCommit;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700635}
636
Tom Sepez9c292fe2018-06-21 15:02:24 +0000637WideString CJS_EventHandler::TargetName() const {
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700638 return m_strTargetName;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700639}