1ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// Copyright 2014 PDFium Authors. All rights reserved. 2ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// Use of this source code is governed by a BSD-style license that can be 3ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// found in the LICENSE file. 4ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 5ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 7ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "fpdfsdk/include/fsdk_define.h" 8ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "fpdfsdk/include/fpdfxfa/fpdfxfa_doc.h" 9ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "fpdfsdk/include/fsdk_mgr.h" 10ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "fpdfsdk/include/fpdfxfa/fpdfxfa_app.h" 11ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "fpdfsdk/include/fpdfxfa/fpdfxfa_util.h" 12ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "fpdfsdk/include/fpdfxfa/fpdfxfa_page.h" 13ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "fpdfsdk/include/javascript/IJavaScript.h" 14ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "public/fpdf_formfill.h" 15ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 16ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define IDS_XFA_Validate_Input \ 17ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann "At least one required field was empty. Please fill in the required " \ 18ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann "fields\r\n(highlighted) before continuing." 19ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 20ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// submit 21ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define FXFA_CONFIG 0x00000001 22ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define FXFA_TEMPLATE 0x00000010 23ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define FXFA_LOCALESET 0x00000100 24ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define FXFA_DATASETS 0x00001000 25ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define FXFA_XMPMETA 0x00010000 26ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define FXFA_XFDF 0x00100000 27ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define FXFA_FORM 0x01000000 28ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define FXFA_PDF 0x10000000 29ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 30ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#ifndef _WIN32 31ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannextern void SetLastError(int err); 32ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 33ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannextern int GetLastError(); 34ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#endif 35ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 36ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannCPDFXFA_Document::CPDFXFA_Document(CPDF_Document* pPDFDoc, 37ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDFXFA_App* pProvider) 38ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann : m_iDocType(DOCTYPE_PDF), 39ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pPDFDoc(pPDFDoc), 40ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pSDKDoc(nullptr), 41ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pXFADoc(nullptr), 42ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pXFADocView(nullptr), 43ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pApp(pProvider), 44ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pJSContext(nullptr) { 45ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 46ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 47ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannCPDFXFA_Document::~CPDFXFA_Document() { 48ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_pJSContext && m_pSDKDoc && m_pSDKDoc->GetEnv()) 49ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pSDKDoc->GetEnv()->GetJSRuntime()->ReleaseContext(m_pJSContext); 50ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 51ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann delete m_pSDKDoc; 52ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 53ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_pPDFDoc) { 54ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Parser* pParser = m_pPDFDoc->GetParser(); 55ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pParser) 56ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann delete pParser; 57ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann else 58ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann delete m_pPDFDoc; 59ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 60ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_pXFADoc) { 61ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann IXFA_App* pApp = m_pApp->GetXFAApp(); 62ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pApp) { 63ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann IXFA_DocHandler* pDocHandler = pApp->GetDocHandler(); 64ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pDocHandler) { 65ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CloseXFADoc(pDocHandler); 66ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 67ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 68ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann delete m_pXFADoc; 69ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 70ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 71ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 72ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CPDFXFA_Document::LoadXFADoc() { 73ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!m_pPDFDoc) 74ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 75ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 76ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_XFAPageList.RemoveAll(); 77ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 78ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann IXFA_App* pApp = m_pApp->GetXFAApp(); 79ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!pApp) 80ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 81ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 82ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pXFADoc = pApp->CreateDoc(this, m_pPDFDoc); 83ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!m_pXFADoc) { 84ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann SetLastError(FPDF_ERR_XFALOAD); 85ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 86ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 87ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 88ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann IXFA_DocHandler* pDocHandler = pApp->GetDocHandler(); 89ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!pDocHandler) { 90ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann SetLastError(FPDF_ERR_XFALOAD); 91ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 92ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 93ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 94ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pDocHandler->StartLoad(m_pXFADoc); 95ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int iStatus = pDocHandler->DoLoad(m_pXFADoc, NULL); 96ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (iStatus != XFA_PARSESTATUS_Done) { 97ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CloseXFADoc(pDocHandler); 98ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann SetLastError(FPDF_ERR_XFALOAD); 99ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 100ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 101ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pDocHandler->StopLoad(m_pXFADoc); 102ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pDocHandler->SetJSERuntime(m_pXFADoc, m_pApp->GetJSERuntime()); 103ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 104ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pDocHandler->GetDocType(m_pXFADoc) == XFA_DOCTYPE_Dynamic) 105ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_iDocType = DOCTYPE_DYNAMIC_XFA; 106ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann else 107ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_iDocType = DOCTYPE_STATIC_XFA; 108ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 109ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pXFADocView = pDocHandler->CreateDocView(m_pXFADoc, XFA_DOCVIEW_View); 110ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_pXFADocView->StartLayout() < 0) { 111ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CloseXFADoc(pDocHandler); 112ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann SetLastError(FPDF_ERR_XFALAYOUT); 113ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 114ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 115ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 116ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pXFADocView->DoLayout(NULL); 117ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pXFADocView->StopLayout(); 118ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return TRUE; 119ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 120ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 121ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannint CPDFXFA_Document::GetPageCount() { 122ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!m_pPDFDoc && !m_pXFADoc) 123ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return 0; 124ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 125ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann switch (m_iDocType) { 126ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case DOCTYPE_PDF: 127ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case DOCTYPE_STATIC_XFA: 128ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_pPDFDoc) 129ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pPDFDoc->GetPageCount(); 130ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case DOCTYPE_DYNAMIC_XFA: 131ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_pXFADoc) 132ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pXFADocView->CountPageViews(); 133ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann default: 134ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return 0; 135ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 136ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 137ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return 0; 138ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 139ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 140ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannCPDFXFA_Page* CPDFXFA_Document::GetPage(int page_index) { 141ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!m_pPDFDoc && !m_pXFADoc) 142ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return NULL; 143ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 144ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDFXFA_Page* pPage = NULL; 145ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_XFAPageList.GetSize()) { 146ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pPage = m_XFAPageList.GetAt(page_index); 147ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pPage) 148ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pPage->AddRef(); 149ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } else { 150ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_XFAPageList.SetSize(GetPageCount()); 151ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 152ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 153ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!pPage) { 154ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pPage = new CPDFXFA_Page(this, page_index); 155ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL bRet = pPage->LoadPage(); 156ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!bRet) { 157ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann delete pPage; 158ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return NULL; 159ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 160ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 161ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_XFAPageList.SetAt(page_index, pPage); 162ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 163ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 164ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return pPage; 165ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 166ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 167ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannCPDFXFA_Page* CPDFXFA_Document::GetPage(IXFA_PageView* pPage) { 168ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!pPage) 169ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return NULL; 170ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 171ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!m_pXFADoc) 172ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return NULL; 173ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 174ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_iDocType != DOCTYPE_DYNAMIC_XFA) 175ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return NULL; 176ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 177ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int nSize = m_XFAPageList.GetSize(); 178ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann for (int i = 0; i < nSize; i++) { 179ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDFXFA_Page* pTempPage = m_XFAPageList.GetAt(i); 180ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!pTempPage) 181ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann continue; 182ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pTempPage->GetXFAPageView() && pTempPage->GetXFAPageView() == pPage) 183ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return pTempPage; 184ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 185ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 186ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return NULL; 187ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 188ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 189ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannvoid CPDFXFA_Document::RemovePage(CPDFXFA_Page* page) { 190ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_XFAPageList.SetAt(page->GetPageIndex(), NULL); 191ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 192ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 193ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannCPDFSDK_Document* CPDFXFA_Document::GetSDKDocument( 194ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDFDoc_Environment* pFormFillEnv) { 195ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!m_pSDKDoc && pFormFillEnv) 196ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pSDKDoc = new CPDFSDK_Document(this, pFormFillEnv); 197ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pSDKDoc; 198ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 199ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 200ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannvoid CPDFXFA_Document::FXRect2PDFRect(const CFX_RectF& fxRectF, 201ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Rect& pdfRect) { 202ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pdfRect.left = fxRectF.left; 203ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pdfRect.top = fxRectF.bottom(); 204ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pdfRect.right = fxRectF.right(); 205ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pdfRect.bottom = fxRectF.top; 206ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 207ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 208ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannvoid CPDFXFA_Document::SetChangeMark(IXFA_Doc* hDoc) { 209ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (hDoc == m_pXFADoc && m_pSDKDoc) { 210ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pSDKDoc->SetChangeMark(); 211ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 212ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 213ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 214ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CPDFXFA_Document::GetChangeMark(IXFA_Doc* hDoc) { 215ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (hDoc == m_pXFADoc && m_pSDKDoc) 216ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pSDKDoc->GetChangeMark(); 217ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 218ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 219ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 220ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannvoid CPDFXFA_Document::InvalidateRect(IXFA_PageView* pPageView, 221ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_RectF& rt, 222ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_DWORD dwFlags /* = 0 */) { 223ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!m_pXFADoc || !m_pSDKDoc) 224ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 225ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 226ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_iDocType != DOCTYPE_DYNAMIC_XFA) 227ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 228ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 229ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Rect rcPage; 230ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FXRect2PDFRect(rt, rcPage); 231ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 232ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDFXFA_Page* pPage = GetPage(pPageView); 233ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 234ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pPage == NULL) 235ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 236ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 237ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); 238ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!pEnv) 239ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 240ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 241ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pEnv->FFI_Invalidate((FPDF_PAGE)pPage, rcPage.left, rcPage.bottom, 242ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann rcPage.right, rcPage.top); 243ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 244ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 245ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannvoid CPDFXFA_Document::InvalidateRect(IXFA_Widget* hWidget, 246ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_DWORD dwFlags /* = 0 */) { 247ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!hWidget) 248ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 249ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 250ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!m_pXFADoc || !m_pSDKDoc || !m_pXFADocView) 251ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 252ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 253ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_iDocType != DOCTYPE_DYNAMIC_XFA) 254ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 255ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 256ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann IXFA_WidgetHandler* pWidgetHandler = m_pXFADocView->GetWidgetHandler(); 257ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!pWidgetHandler) 258ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 259ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 260ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann IXFA_PageView* pPageView = pWidgetHandler->GetPageView(hWidget); 261ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!pPageView) 262ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 263ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 264ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_RectF rect; 265ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pWidgetHandler->GetRect(hWidget, rect); 266ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann InvalidateRect(pPageView, rect, dwFlags); 267ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 268ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 269ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannvoid CPDFXFA_Document::DisplayCaret(IXFA_Widget* hWidget, 270ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL bVisible, 271ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_RectF* pRtAnchor) { 272ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!hWidget || pRtAnchor == NULL) 273ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 274ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 275ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!m_pXFADoc || !m_pSDKDoc || !m_pXFADocView) 276ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 277ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 278ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_iDocType != DOCTYPE_DYNAMIC_XFA) 279ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 280ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 281ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann IXFA_WidgetHandler* pWidgetHandler = m_pXFADocView->GetWidgetHandler(); 282ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!pWidgetHandler) 283ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 284ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 285ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann IXFA_PageView* pPageView = pWidgetHandler->GetPageView(hWidget); 286ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!pPageView) 287ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 288ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 289ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDFXFA_Page* pPage = GetPage(pPageView); 290ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 291ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pPage == NULL) 292ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 293ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 294ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Rect rcCaret; 295ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FXRect2PDFRect(*pRtAnchor, rcCaret); 296ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 297ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); 298ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!pEnv) 299ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 300ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 301ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pEnv->FFI_DisplayCaret((FPDF_PAGE)pPage, bVisible, rcCaret.left, rcCaret.top, 302ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann rcCaret.right, rcCaret.bottom); 303ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 304ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 305ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CPDFXFA_Document::GetPopupPos(IXFA_Widget* hWidget, 306ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_FLOAT fMinPopup, 307ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_FLOAT fMaxPopup, 308ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_RectF& rtAnchor, 309ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_RectF& rtPopup) { 310ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (NULL == hWidget) { 311ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 312ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 313ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann IXFA_PageView* pXFAPageView = 314ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pXFADocView->GetWidgetHandler()->GetPageView(hWidget); 315ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (NULL == pXFAPageView) { 316ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 317ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 318ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDFXFA_Page* pPage = GetPage(pXFAPageView); 319ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pPage == NULL) 320ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 321ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 322ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CXFA_WidgetAcc* pWidgetAcc = 323ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pXFADocView->GetWidgetHandler()->GetDataAcc(hWidget); 324ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 325ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int nRotate = 0; 326ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#ifdef PDF_ENABLE_XFA 327ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann nRotate = pWidgetAcc->GetRotate(); 328ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#endif 329ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 330ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); 331ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pEnv == NULL) 332ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 333ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FS_RECTF pageViewRect; 334ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pEnv->FFI_GetPageViewRect(pPage, pageViewRect); 335ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 336ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Rect rcAnchor; 337ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 338ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann rcAnchor.left = rtAnchor.left; 339ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann rcAnchor.top = rtAnchor.bottom(); 340ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann rcAnchor.right = rtAnchor.right(); 341ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann rcAnchor.bottom = rtAnchor.top; 342ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 343ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int t1, t2, t; 344ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_DWORD dwPos; 345ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_FLOAT fPoupHeight; 346ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann switch (nRotate) { 347ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 90: { 348ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann t1 = (int)(pageViewRect.right - rcAnchor.right); 349ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann t2 = (int)(rcAnchor.left - pageViewRect.left); 350ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (rcAnchor.bottom < pageViewRect.bottom) { 351ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann rtPopup.left += rcAnchor.bottom - pageViewRect.bottom; 352ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 353ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 354ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 355ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 356ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 357ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 180: { 358ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann t2 = (int)(pageViewRect.top - rcAnchor.top); 359ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann t1 = (int)(rcAnchor.bottom - pageViewRect.bottom); 360ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (rcAnchor.left < pageViewRect.left) { 361ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann rtPopup.left += rcAnchor.left - pageViewRect.left; 362ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 363ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 364ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 365ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 270: { 366ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann t1 = (int)(rcAnchor.left - pageViewRect.left); 367ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann t2 = (int)(pageViewRect.right - rcAnchor.right); 368ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 369ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (rcAnchor.top > pageViewRect.top) { 370ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann rtPopup.left -= rcAnchor.top - pageViewRect.top; 371ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 372ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 373ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 374ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 0: 375ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann default: { 376ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann t1 = (int)(pageViewRect.top - rcAnchor.top); 377ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann t2 = (int)(rcAnchor.bottom - pageViewRect.bottom); 378ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (rcAnchor.right > pageViewRect.right) { 379ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann rtPopup.left -= rcAnchor.right - pageViewRect.right; 380ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 381ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 382ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 383ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 384ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 385ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (t1 <= 0 && t2 <= 0) { 386ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 387ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 388ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (t1 <= 0) { 389ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann t = t2; 390ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann dwPos = 1; 391ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } else if (t2 <= 0) { 392ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann t = t1; 393ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann dwPos = 0; 394ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } else if (t1 > t2) { 395ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann t = t1; 396ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann dwPos = 0; 397ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } else { 398ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann t = t2; 399ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann dwPos = 1; 400ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 401ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (t < fMinPopup) { 402ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann fPoupHeight = fMinPopup; 403ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } else if (t > fMaxPopup) { 404ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann fPoupHeight = fMaxPopup; 405ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } else { 406ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann fPoupHeight = (FX_FLOAT)t; 407ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 408ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 409ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann switch (nRotate) { 410ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 0: 411ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 180: { 412ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (dwPos == 0) { 413ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann rtPopup.top = rtAnchor.height; 414ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann rtPopup.height = fPoupHeight; 415ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } else { 416ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann rtPopup.top = -fPoupHeight; 417ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann rtPopup.height = fPoupHeight; 418ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 419ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 420ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 421ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 90: 422ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 270: { 423ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (dwPos == 0) { 424ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann rtPopup.top = rtAnchor.width; 425ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann rtPopup.height = fPoupHeight; 426ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } else { 427ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann rtPopup.top = -fPoupHeight; 428ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann rtPopup.height = fPoupHeight; 429ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 430ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 431ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 432ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann default: 433ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 434ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 435ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 436ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return TRUE; 437ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 438ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 439ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CPDFXFA_Document::PopupMenu(IXFA_Widget* hWidget, 440ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_PointF ptPopup, 441ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_RectF* pRectExclude) { 442ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (NULL == hWidget) { 443ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 444ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 445ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann IXFA_PageView* pXFAPageView = 446ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pXFADocView->GetWidgetHandler()->GetPageView(hWidget); 447ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pXFAPageView == NULL) 448ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 449ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDFXFA_Page* pPage = GetPage(pXFAPageView); 450ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 451ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pPage == NULL) 452ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 453ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 454ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int menuFlag = 0; 455ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 456ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann IXFA_MenuHandler* pXFAMenuHander = m_pApp->GetXFAApp()->GetMenuHandler(); 457ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pXFAMenuHander->CanUndo(hWidget)) 458ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann menuFlag |= FXFA_MEMU_UNDO; 459ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pXFAMenuHander->CanRedo(hWidget)) 460ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann menuFlag |= FXFA_MEMU_REDO; 461ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pXFAMenuHander->CanPaste(hWidget)) 462ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann menuFlag |= FXFA_MEMU_PASTE; 463ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pXFAMenuHander->CanCopy(hWidget)) 464ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann menuFlag |= FXFA_MEMU_COPY; 465ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pXFAMenuHander->CanCut(hWidget)) 466ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann menuFlag |= FXFA_MEMU_CUT; 467ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pXFAMenuHander->CanSelectAll(hWidget)) 468ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann menuFlag |= FXFA_MEMU_SELECTALL; 469ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 470ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); 471ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pEnv == NULL) 472ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 473ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 474ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return pEnv->FFI_PopupMenu(pPage, hWidget, menuFlag, ptPopup, NULL); 475ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 476ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 477ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannvoid CPDFXFA_Document::PageViewEvent(IXFA_PageView* pPageView, 478ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_DWORD dwFlags) { 479ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 480ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 481ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannvoid CPDFXFA_Document::WidgetEvent(IXFA_Widget* hWidget, 482ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CXFA_WidgetAcc* pWidgetData, 483ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_DWORD dwEvent, 484ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void* pParam, 485ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void* pAdditional) { 486ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_iDocType != DOCTYPE_DYNAMIC_XFA || !hWidget) 487ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 488ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 489ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); 490ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!pEnv) 491ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 492ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 493ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann IXFA_PageView* pPageView = 494ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pXFADocView->GetWidgetHandler()->GetPageView(hWidget); 495ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pPageView == NULL) 496ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 497ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 498ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDFXFA_Page* pXFAPage = GetPage(pPageView); 499ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pXFAPage == NULL) 500ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 501ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 502ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDFSDK_PageView* pSdkPageView = m_pSDKDoc->GetPageView(pXFAPage); 503ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (dwEvent == XFA_WIDGETEVENT_PostAdded) { 504ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pSdkPageView->AddAnnot(hWidget); 505ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 506ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } else if (dwEvent == XFA_WIDGETEVENT_PreRemoved) { 507ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDFSDK_Annot* pAnnot = pSdkPageView->GetAnnotByXFAWidget(hWidget); 508ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pAnnot) { 509ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pSdkPageView->DeleteAnnot(pAnnot); 510ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 511ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 512ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 513ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 514ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannint32_t CPDFXFA_Document::CountPages(IXFA_Doc* hDoc) { 515ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (hDoc == m_pXFADoc && m_pSDKDoc) { 516ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return GetPageCount(); 517ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 518ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return 0; 519ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 520ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannint32_t CPDFXFA_Document::GetCurrentPage(IXFA_Doc* hDoc) { 521ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (hDoc != m_pXFADoc || !m_pSDKDoc) 522ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return -1; 523ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_iDocType != DOCTYPE_DYNAMIC_XFA) 524ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return -1; 525ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 526ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); 527ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pEnv == NULL) 528ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return -1; 529ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 530ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return pEnv->FFI_GetCurrentPageIndex(this); 531ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 532ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannvoid CPDFXFA_Document::SetCurrentPage(IXFA_Doc* hDoc, int32_t iCurPage) { 533ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (hDoc != m_pXFADoc || !m_pSDKDoc) 534ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 535ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_iDocType != DOCTYPE_DYNAMIC_XFA) 536ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 537ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 538ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); 539ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pEnv == NULL) 540ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 541ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 542ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pEnv->FFI_SetCurrentPage(this, iCurPage); 543ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 544ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CPDFXFA_Document::IsCalculationsEnabled(IXFA_Doc* hDoc) { 545ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (hDoc != m_pXFADoc || !m_pSDKDoc) 546ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 547ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_pSDKDoc->GetInterForm()) 548ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pSDKDoc->GetInterForm()->IsXfaCalculateEnabled(); 549ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 550ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 551ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 552ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannvoid CPDFXFA_Document::SetCalculationsEnabled(IXFA_Doc* hDoc, 553ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL bEnabled) { 554ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (hDoc != m_pXFADoc || !m_pSDKDoc) 555ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 556ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_pSDKDoc->GetInterForm()) 557ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pSDKDoc->GetInterForm()->XfaEnableCalculate(bEnabled); 558ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 559ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 560ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannvoid CPDFXFA_Document::GetTitle(IXFA_Doc* hDoc, CFX_WideString& wsTitle) { 561ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (hDoc != m_pXFADoc) 562ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 563ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_pPDFDoc == NULL) 564ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 565ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dictionary* pInfoDict = m_pPDFDoc->GetInfo(); 566ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 567ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pInfoDict == NULL) 568ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 569ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 570ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString csTitle = pInfoDict->GetString("Title"); 571ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann wsTitle = wsTitle.FromLocal(csTitle.GetBuffer(csTitle.GetLength())); 572ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann csTitle.ReleaseBuffer(csTitle.GetLength()); 573ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 574ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannvoid CPDFXFA_Document::SetTitle(IXFA_Doc* hDoc, 575ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_WideStringC& wsTitle) { 576ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (hDoc != m_pXFADoc) 577ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 578ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_pPDFDoc == NULL) 579ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 580ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dictionary* pInfoDict = m_pPDFDoc->GetInfo(); 581ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 582ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pInfoDict == NULL) 583ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 584ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pInfoDict->SetAt("Title", new CPDF_String(wsTitle)); 585ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 586ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannvoid CPDFXFA_Document::ExportData(IXFA_Doc* hDoc, 587ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_WideStringC& wsFilePath, 588ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL bXDP) { 589ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (hDoc != m_pXFADoc) 590ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 591ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_iDocType != DOCTYPE_DYNAMIC_XFA && m_iDocType != DOCTYPE_STATIC_XFA) 592ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 593ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); 594ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pEnv == NULL) 595ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 596ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int fileType = bXDP ? FXFA_SAVEAS_XDP : FXFA_SAVEAS_XML; 597ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString bs = CFX_WideString(wsFilePath).UTF16LE_Encode(); 598ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 599ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (wsFilePath.IsEmpty()) { 600ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!pEnv->GetFormFillInfo() || 601ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pEnv->GetFormFillInfo()->m_pJsPlatform == NULL) 602ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 603ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString filepath = pEnv->JS_fieldBrowse(); 604ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bs = filepath.UTF16LE_Encode(); 605ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 606ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int len = bs.GetLength() / sizeof(unsigned short); 607ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FPDF_FILEHANDLER* pFileHandler = pEnv->FFI_OpenFile( 608ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bXDP ? FXFA_SAVEAS_XDP : FXFA_SAVEAS_XML, 609ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann (FPDF_WIDESTRING)bs.GetBuffer(len * sizeof(unsigned short)), "wb"); 610ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bs.ReleaseBuffer(len * sizeof(unsigned short)); 611ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 612ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pFileHandler == NULL) 613ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 614ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 615ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFPDF_FileStream fileWrite(pFileHandler); 616ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 617ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann IXFA_DocHandler* pXFADocHander = m_pApp->GetXFAApp()->GetDocHandler(); 618ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString content; 619ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (fileType == FXFA_SAVEAS_XML) { 620ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann content = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"; 621ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann fileWrite.WriteBlock((const FX_CHAR*)content, fileWrite.GetSize(), 622ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann content.GetLength()); 623ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideStringC data(L"data"); 624ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pXFADocHander->SavePackage(m_pXFADocView->GetDoc(), data, &fileWrite)) { 625ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann // TODO: Maybe report error. 626ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 627ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } else if (fileType == FXFA_SAVEAS_XDP) { 628ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_pPDFDoc == NULL) 629ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 630ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dictionary* pRoot = m_pPDFDoc->GetRoot(); 631ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pRoot == NULL) 632ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 633ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dictionary* pAcroForm = pRoot->GetDict("AcroForm"); 634ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (NULL == pAcroForm) 635ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 636ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Object* pXFA = pAcroForm->GetElement("XFA"); 637ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pXFA == NULL) 638ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 639ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pXFA->GetType() != PDFOBJ_ARRAY) 640ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 641ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Array* pArray = pXFA->GetArray(); 642ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (NULL == pArray) 643ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 644ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int size = pArray->GetCount(); 645ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann for (int i = 1; i < size; i += 2) { 646ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Object* pPDFObj = pArray->GetElement(i); 647ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Object* pPrePDFObj = pArray->GetElement(i - 1); 648ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pPrePDFObj->GetType() != PDFOBJ_STRING) 649ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann continue; 650ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pPDFObj->GetType() != PDFOBJ_REFERENCE) 651ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann continue; 652ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Object* pDirectObj = pPDFObj->GetDirect(); 653ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pDirectObj->GetType() != PDFOBJ_STREAM) 654ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann continue; 655ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pPrePDFObj->GetString() == "form") { 656ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideStringC form(L"form"); 657ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pXFADocHander->SavePackage(m_pXFADocView->GetDoc(), form, &fileWrite); 658ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } else if (pPrePDFObj->GetString() == "datasets") { 659ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideStringC datasets(L"datasets"); 660ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pXFADocHander->SavePackage(m_pXFADocView->GetDoc(), datasets, 661ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann &fileWrite); 662ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } else { 663ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (i == size - 1) { 664ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString wPath = CFX_WideString::FromUTF16LE( 665ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann (unsigned short*)(const FX_CHAR*)bs, 666ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bs.GetLength() / sizeof(unsigned short)); 667ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString bPath = wPath.UTF8Encode(); 668ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString szFormat = 669ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann "\n<pdf href=\"%s\" xmlns=\"http://ns.adobe.com/xdp/pdf/\"/>"; 670ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann content.Format(szFormat, (char*)(const FX_CHAR*)bPath); 671ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann fileWrite.WriteBlock((const FX_CHAR*)content, fileWrite.GetSize(), 672ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann content.GetLength()); 673ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 674ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 675ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Stream* pStream = (CPDF_Stream*)pDirectObj; 676ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_StreamAcc* pAcc = new CPDF_StreamAcc; 677ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pAcc->LoadAllData(pStream); 678ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann fileWrite.WriteBlock(pAcc->GetData(), fileWrite.GetSize(), 679ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pAcc->GetSize()); 680ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann delete pAcc; 681ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 682ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 683ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 684ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!fileWrite.Flush()) { 685ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann // TODO: Report error. 686ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 687ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 688ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannvoid CPDFXFA_Document::ImportData(IXFA_Doc* hDoc, 689ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_WideStringC& wsFilePath) { 690ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann // TODO... 691ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 692ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 693ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannvoid CPDFXFA_Document::GotoURL(IXFA_Doc* hDoc, 694ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_WideStringC& bsURL, 695ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL bAppend) { 696ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (hDoc != m_pXFADoc) 697ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 698ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 699ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_iDocType != DOCTYPE_DYNAMIC_XFA) 700ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 701ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 702ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); 703ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pEnv == NULL) 704ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 705ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 706ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideStringC str(bsURL.GetPtr()); 707ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 708ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pEnv->FFI_GotoURL(this, str, bAppend); 709ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 710ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 711ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CPDFXFA_Document::IsValidationsEnabled(IXFA_Doc* hDoc) { 712ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (hDoc != m_pXFADoc || !m_pSDKDoc) 713ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 714ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_pSDKDoc->GetInterForm()) 715ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pSDKDoc->GetInterForm()->IsXfaValidationsEnabled(); 716ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 717ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return TRUE; 718ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 719ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannvoid CPDFXFA_Document::SetValidationsEnabled(IXFA_Doc* hDoc, FX_BOOL bEnabled) { 720ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (hDoc != m_pXFADoc || !m_pSDKDoc) 721ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 722ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_pSDKDoc->GetInterForm()) 723ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pSDKDoc->GetInterForm()->XfaSetValidationsEnabled(bEnabled); 724ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 725ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannvoid CPDFXFA_Document::SetFocusWidget(IXFA_Doc* hDoc, IXFA_Widget* hWidget) { 726ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (hDoc != m_pXFADoc) 727ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 728ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 729ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (NULL == hWidget) { 730ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pSDKDoc->SetFocusAnnot(NULL); 731ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 732ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 733ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 734ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int pageViewCount = m_pSDKDoc->GetPageViewCount(); 735ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann for (int i = 0; i < pageViewCount; i++) { 736ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDFSDK_PageView* pPageView = m_pSDKDoc->GetPageView(i); 737ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pPageView == NULL) 738ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann continue; 739ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDFSDK_Annot* pAnnot = pPageView->GetAnnotByXFAWidget(hWidget); 740ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pAnnot) { 741ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pSDKDoc->SetFocusAnnot(pAnnot); 742ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 743ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 744ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 745ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 746ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannvoid CPDFXFA_Document::Print(IXFA_Doc* hDoc, 747ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t nStartPage, 748ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t nEndPage, 749ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_DWORD dwOptions) { 750ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (hDoc != m_pXFADoc) 751ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 752ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 753ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); 754ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pEnv == NULL) 755ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 756ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 757ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!pEnv->GetFormFillInfo() || 758ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pEnv->GetFormFillInfo()->m_pJsPlatform == NULL) 759ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 760ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pEnv->GetFormFillInfo()->m_pJsPlatform->Doc_print == NULL) 761ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 762ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pEnv->GetFormFillInfo()->m_pJsPlatform->Doc_print( 763ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pEnv->GetFormFillInfo()->m_pJsPlatform, 764ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann dwOptions & XFA_PRINTOPT_ShowDialog, nStartPage, nEndPage, 765ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann dwOptions & XFA_PRINTOPT_CanCancel, dwOptions & XFA_PRINTOPT_ShrinkPage, 766ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann dwOptions & XFA_PRINTOPT_AsImage, dwOptions & XFA_PRINTOPT_ReverseOrder, 767ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann dwOptions & XFA_PRINTOPT_PrintAnnot); 768ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 769ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 770ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannvoid CPDFXFA_Document::GetURL(IXFA_Doc* hDoc, CFX_WideString& wsDocURL) { 771ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (hDoc != m_pXFADoc) 772ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 773ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 774ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); 775ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pEnv == NULL) 776ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 777ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 778ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pEnv->FFI_GetURL(this, wsDocURL); 779ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 780ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 781ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_ARGB CPDFXFA_Document::GetHighlightColor(IXFA_Doc* hDoc) { 782ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (hDoc != m_pXFADoc) 783ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return 0; 784ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_pSDKDoc) { 785ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (CPDFSDK_InterForm* pInterForm = m_pSDKDoc->GetInterForm()) { 786ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_COLORREF color = pInterForm->GetHighlightColor(FPDF_FORMFIELD_XFA); 787ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann uint8_t alpha = pInterForm->GetHighlightAlpha(); 788ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_ARGB argb = ArgbEncode((int)alpha, color); 789ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return argb; 790ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 791ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 792ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return 0; 793ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 794ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 795ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannvoid CPDFXFA_Document::AddDoRecord(IXFA_Widget* hWidget) { 796ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); 797ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pEnv == NULL) 798ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 799ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 800ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann // pEnv->FFI_AddDoRecord(this, hWidget); 801ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 802ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 803ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CPDFXFA_Document::_NotifySubmit(FX_BOOL bPrevOrPost) { 804ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (bPrevOrPost) 805ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return _OnBeforeNotifySumbit(); 806ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann else 807ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann _OnAfterNotifySumbit(); 808ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return TRUE; 809ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 810ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 811ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CPDFXFA_Document::_OnBeforeNotifySumbit() { 812ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#ifdef PDF_ENABLE_XFA 813ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_iDocType != DOCTYPE_DYNAMIC_XFA && m_iDocType != DOCTYPE_STATIC_XFA) 814ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return TRUE; 815ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_pXFADocView == NULL) 816ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return TRUE; 817ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann IXFA_WidgetHandler* pWidgetHandler = m_pXFADocView->GetWidgetHandler(); 818ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pWidgetHandler == NULL) 819ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return TRUE; 820ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann IXFA_WidgetAccIterator* pWidgetAccIterator = 821ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pXFADocView->CreateWidgetAccIterator(); 822ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pWidgetAccIterator) { 823ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CXFA_EventParam Param; 824ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann Param.m_eType = XFA_EVENT_PreSubmit; 825ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CXFA_WidgetAcc* pWidgetAcc = pWidgetAccIterator->MoveToNext(); 826ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann while (pWidgetAcc) { 827ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pWidgetHandler->ProcessEvent(pWidgetAcc, &Param); 828ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pWidgetAcc = pWidgetAccIterator->MoveToNext(); 829ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 830ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pWidgetAccIterator->Release(); 831ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 832ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pWidgetAccIterator = m_pXFADocView->CreateWidgetAccIterator(); 833ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pWidgetAccIterator) { 834ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CXFA_WidgetAcc* pWidgetAcc = pWidgetAccIterator->MoveToNext(); 835ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pWidgetAcc = pWidgetAccIterator->MoveToNext(); 836ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann while (pWidgetAcc) { 837ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int fRet = pWidgetAcc->ProcessValidate(-1); 838ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (fRet == XFA_EVENTERROR_Error) { 839ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); 840ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pEnv == NULL) 841ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 842ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString ws; 843ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ws.FromLocal(IDS_XFA_Validate_Input); 844ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString bs = ws.UTF16LE_Encode(); 845ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int len = bs.GetLength() / sizeof(unsigned short); 846ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pEnv->FFI_Alert( 847ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann (FPDF_WIDESTRING)bs.GetBuffer(len * sizeof(unsigned short)), 848ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann (FPDF_WIDESTRING)L"", 0, 1); 849ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bs.ReleaseBuffer(len * sizeof(unsigned short)); 850ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pWidgetAccIterator->Release(); 851ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 852ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 853ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pWidgetAcc = pWidgetAccIterator->MoveToNext(); 854ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 855ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pWidgetAccIterator->Release(); 856ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pXFADocView->UpdateDocView(); 857ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 858ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#endif 859ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return TRUE; 860ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 861ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannvoid CPDFXFA_Document::_OnAfterNotifySumbit() { 862ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_iDocType != DOCTYPE_DYNAMIC_XFA && m_iDocType != DOCTYPE_STATIC_XFA) 863ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 864ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_pXFADocView == NULL) 865ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 866ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann IXFA_WidgetHandler* pWidgetHandler = m_pXFADocView->GetWidgetHandler(); 867ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pWidgetHandler == NULL) 868ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 869ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann IXFA_WidgetAccIterator* pWidgetAccIterator = 870ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pXFADocView->CreateWidgetAccIterator(); 871ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pWidgetAccIterator == NULL) 872ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return; 873ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CXFA_EventParam Param; 874ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann Param.m_eType = XFA_EVENT_PostSubmit; 875ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 876ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CXFA_WidgetAcc* pWidgetAcc = pWidgetAccIterator->MoveToNext(); 877ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann while (pWidgetAcc) { 878ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pWidgetHandler->ProcessEvent(pWidgetAcc, &Param); 879ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pWidgetAcc = pWidgetAccIterator->MoveToNext(); 880ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 881ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pWidgetAccIterator->Release(); 882ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pXFADocView->UpdateDocView(); 883ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 884ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 885ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CPDFXFA_Document::SubmitData(IXFA_Doc* hDoc, CXFA_Submit submit) { 886ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!_NotifySubmit(TRUE)) 887ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 888ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (NULL == m_pXFADocView) 889ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 890ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pXFADocView->UpdateDocView(); 891ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 892ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL ret = _SubmitData(hDoc, submit); 893ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann _NotifySubmit(FALSE); 894ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return ret; 895ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 896ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 897ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannIFX_FileRead* CPDFXFA_Document::OpenLinkedFile(IXFA_Doc* hDoc, 898ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_WideString& wsLink) { 899ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); 900ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pEnv == NULL) 901ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 902ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString bs = wsLink.UTF16LE_Encode(); 903ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int len = bs.GetLength() / sizeof(unsigned short); 904ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FPDF_FILEHANDLER* pFileHandler = pEnv->FFI_OpenFile( 905ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 0, (FPDF_WIDESTRING)bs.GetBuffer(len * sizeof(unsigned short)), "rb"); 906ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bs.ReleaseBuffer(len * sizeof(unsigned short)); 907ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 908ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pFileHandler == NULL) 909ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return NULL; 910ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return new CFPDF_FileStream(pFileHandler); 911ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 912ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CPDFXFA_Document::_ExportSubmitFile(FPDF_FILEHANDLER* pFileHandler, 913ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int fileType, 914ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FPDF_DWORD encodeType, 915ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FPDF_DWORD flag) { 916ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (NULL == m_pXFADocView) 917ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 918ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann IXFA_DocHandler* pDocHandler = m_pApp->GetXFAApp()->GetDocHandler(); 919ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString content; 920ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 921ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); 922ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pEnv == NULL) 923ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 924ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 925ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFPDF_FileStream fileStream(pFileHandler); 926ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 927ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (fileType == FXFA_SAVEAS_XML) { 928ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString ws; 929ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ws.FromLocal("data"); 930ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString content = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"; 931ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann fileStream.WriteBlock((const FX_CHAR*)content, 0, content.GetLength()); 932ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pDocHandler->SavePackage(m_pXFADoc, ws, &fileStream); 933ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } else if (fileType == FXFA_SAVEAS_XDP) { 934ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (flag == 0) 935ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann flag = FXFA_CONFIG | FXFA_TEMPLATE | FXFA_LOCALESET | FXFA_DATASETS | 936ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FXFA_XMPMETA | FXFA_XFDF | FXFA_FORM; 937ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_pPDFDoc == NULL) { 938ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann fileStream.Flush(); 939ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 940ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 941ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dictionary* pRoot = m_pPDFDoc->GetRoot(); 942ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pRoot == NULL) { 943ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann fileStream.Flush(); 944ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 945ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 946ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dictionary* pAcroForm = pRoot->GetDict("AcroForm"); 947ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (NULL == pAcroForm) { 948ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann fileStream.Flush(); 949ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 950ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 951ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Object* pXFA = pAcroForm->GetElement("XFA"); 952ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pXFA == NULL) { 953ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann fileStream.Flush(); 954ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 955ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 956ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pXFA->GetType() != PDFOBJ_ARRAY) { 957ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann fileStream.Flush(); 958ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 959ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 960ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Array* pArray = pXFA->GetArray(); 961ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (NULL == pArray) { 962ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann fileStream.Flush(); 963ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 964ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 965ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int size = pArray->GetCount(); 966ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann for (int i = 1; i < size; i += 2) { 967ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Object* pPDFObj = pArray->GetElement(i); 968ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Object* pPrePDFObj = pArray->GetElement(i - 1); 969ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pPrePDFObj->GetType() != PDFOBJ_STRING) 970ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann continue; 971ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pPDFObj->GetType() != PDFOBJ_REFERENCE) 972ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann continue; 973ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Object* pDirectObj = pPDFObj->GetDirect(); 974ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pDirectObj->GetType() != PDFOBJ_STREAM) 975ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann continue; 976ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pPrePDFObj->GetString() == "config" && !(flag & FXFA_CONFIG)) 977ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann continue; 978ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pPrePDFObj->GetString() == "template" && !(flag & FXFA_TEMPLATE)) 979ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann continue; 980ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pPrePDFObj->GetString() == "localeSet" && !(flag & FXFA_LOCALESET)) 981ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann continue; 982ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pPrePDFObj->GetString() == "datasets" && !(flag & FXFA_DATASETS)) 983ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann continue; 984ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pPrePDFObj->GetString() == "xmpmeta" && !(flag & FXFA_XMPMETA)) 985ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann continue; 986ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pPrePDFObj->GetString() == "xfdf" && !(flag & FXFA_XFDF)) 987ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann continue; 988ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pPrePDFObj->GetString() == "form" && !(flag & FXFA_FORM)) 989ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann continue; 990ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pPrePDFObj->GetString() == "form") { 991ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString ws; 992ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ws.FromLocal("form"); 993ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pDocHandler->SavePackage(m_pXFADoc, ws, &fileStream); 994ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } else if (pPrePDFObj->GetString() == "datasets") { 995ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString ws; 996ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ws.FromLocal("datasets"); 997ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pDocHandler->SavePackage(m_pXFADoc, ws, &fileStream); 998ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } else { 999ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann // PDF,creator. 1000ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann // TODO: 1001ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 1002ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 1003ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 1004ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return TRUE; 1005ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 1006ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 1007ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannvoid CPDFXFA_Document::_ClearChangeMark() { 1008ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_pSDKDoc) 1009ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pSDKDoc->ClearChangeMark(); 1010ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 1011ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 1012ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannvoid CPDFXFA_Document::_ToXFAContentFlags(CFX_WideString csSrcContent, 1013ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FPDF_DWORD& flag) { 1014ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (csSrcContent.Find(L" config ", 0) != -1) 1015ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann flag |= FXFA_CONFIG; 1016ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (csSrcContent.Find(L" template ", 0) != -1) 1017ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann flag |= FXFA_TEMPLATE; 1018ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (csSrcContent.Find(L" localeSet ", 0) != -1) 1019ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann flag |= FXFA_LOCALESET; 1020ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (csSrcContent.Find(L" datasets ", 0) != -1) 1021ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann flag |= FXFA_DATASETS; 1022ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (csSrcContent.Find(L" xmpmeta ", 0) != -1) 1023ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann flag |= FXFA_XMPMETA; 1024ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (csSrcContent.Find(L" xfdf ", 0) != -1) 1025ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann flag |= FXFA_XFDF; 1026ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (csSrcContent.Find(L" form ", 0) != -1) 1027ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann flag |= FXFA_FORM; 1028ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (flag == 0) 1029ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann flag = FXFA_CONFIG | FXFA_TEMPLATE | FXFA_LOCALESET | FXFA_DATASETS | 1030ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FXFA_XMPMETA | FXFA_XFDF | FXFA_FORM; 1031ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 1032ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CPDFXFA_Document::_MailToInfo(CFX_WideString& csURL, 1033ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString& csToAddress, 1034ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString& csCCAddress, 1035ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString& csBCCAddress, 1036ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString& csSubject, 1037ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString& csMsg) { 1038ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString srcURL = csURL; 1039ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann srcURL.TrimLeft(); 1040ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (0 != srcURL.Left(7).CompareNoCase(L"mailto:")) 1041ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 1042ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int pos = srcURL.Find(L'?', 0); 1043ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString tmp; 1044ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pos == -1) { 1045ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pos = srcURL.Find(L'@', 0); 1046ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pos == -1) 1047ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 1048ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann else { 1049ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann tmp = srcURL.Right(csURL.GetLength() - 7); 1050ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann tmp.TrimLeft(); 1051ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann tmp.TrimRight(); 1052ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 1053ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } else { 1054ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann tmp = srcURL.Left(pos); 1055ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann tmp = tmp.Right(tmp.GetLength() - 7); 1056ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann tmp.TrimLeft(); 1057ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann tmp.TrimRight(); 1058ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 1059ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 1060ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann csToAddress = tmp; 1061ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 1062ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann srcURL = srcURL.Right(srcURL.GetLength() - (pos + 1)); 1063ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann while (!srcURL.IsEmpty()) { 1064ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann srcURL.TrimLeft(); 1065ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann srcURL.TrimRight(); 1066ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pos = srcURL.Find(L'&', 0); 1067ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pos == -1) 1068ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann tmp = srcURL; 1069ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann else 1070ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann tmp = srcURL.Left(pos); 1071ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 1072ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann tmp.TrimLeft(); 1073ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann tmp.TrimRight(); 1074ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (tmp.GetLength() >= 3 && 0 == tmp.Left(3).CompareNoCase(L"cc=")) { 1075ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann tmp = tmp.Right(tmp.GetLength() - 3); 1076ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!csCCAddress.IsEmpty()) 1077ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann csCCAddress += L';'; 1078ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann csCCAddress += tmp; 1079ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 1080ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } else if (tmp.GetLength() >= 4 && 1081ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 0 == tmp.Left(4).CompareNoCase(L"bcc=")) { 1082ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann tmp = tmp.Right(tmp.GetLength() - 4); 1083ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!csBCCAddress.IsEmpty()) 1084ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann csBCCAddress += L';'; 1085ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann csBCCAddress += tmp; 1086ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } else if (tmp.GetLength() >= 8 && 1087ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 0 == tmp.Left(8).CompareNoCase(L"subject=")) { 1088ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann tmp = tmp.Right(tmp.GetLength() - 8); 1089ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann csSubject += tmp; 1090ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } else if (tmp.GetLength() >= 5 && 1091ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 0 == tmp.Left(5).CompareNoCase(L"body=")) { 1092ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann tmp = tmp.Right(tmp.GetLength() - 5); 1093ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann csMsg += tmp; 1094ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 1095ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pos == -1) 1096ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann srcURL = L""; 1097ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann else 1098ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann srcURL = srcURL.Right(csURL.GetLength() - (pos + 1)); 1099ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 1100ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann csToAddress.Replace(L",", L";"); 1101ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann csCCAddress.Replace(L",", L";"); 1102ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann csBCCAddress.Replace(L",", L";"); 1103ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return TRUE; 1104ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 1105ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 1106ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CPDFXFA_Document::_SubmitData(IXFA_Doc* hDoc, CXFA_Submit submit) { 1107ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#ifdef PDF_ENABLE_XFA 1108ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideStringC csURLC; 1109ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann submit.GetSubmitTarget(csURLC); 1110ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString csURL = csURLC; 1111ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); 1112ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pEnv == NULL) 1113ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 1114ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (csURL.IsEmpty()) { 1115ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString ws; 1116ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ws.FromLocal("Submit cancelled."); 1117ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString bs = ws.UTF16LE_Encode(); 1118ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int len = bs.GetLength() / sizeof(unsigned short); 1119ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pEnv->FFI_Alert((FPDF_WIDESTRING)bs.GetBuffer(len * sizeof(unsigned short)), 1120ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann (FPDF_WIDESTRING)L"", 0, 4); 1121ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bs.ReleaseBuffer(len * sizeof(unsigned short)); 1122ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 1123ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 1124ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 1125ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FPDF_BOOL bRet = TRUE; 1126ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FPDF_FILEHANDLER* pFileHandler = NULL; 1127ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int fileFlag = -1; 1128ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 1129ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (submit.GetSubmitFormat() == XFA_ATTRIBUTEENUM_Xdp) { 1130ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideStringC csContentC; 1131ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann submit.GetSubmitXDPContent(csContentC); 1132ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString csContent; 1133ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann csContent = csContentC.GetPtr(); 1134ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann csContent.TrimLeft(); 1135ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann csContent.TrimRight(); 1136ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString space; 1137ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann space.FromLocal(" "); 1138ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann csContent = space + csContent + space; 1139ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FPDF_DWORD flag = 0; 1140ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (submit.IsSubmitEmbedPDF()) 1141ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann flag |= FXFA_PDF; 1142ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann _ToXFAContentFlags(csContent, flag); 1143ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pFileHandler = pEnv->FFI_OpenFile(FXFA_SAVEAS_XDP, NULL, "wb"); 1144ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann fileFlag = FXFA_SAVEAS_XDP; 1145ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann _ExportSubmitFile(pFileHandler, FXFA_SAVEAS_XDP, 0, flag); 1146ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } else if (submit.GetSubmitFormat() == XFA_ATTRIBUTEENUM_Xml) { 1147ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pFileHandler = pEnv->FFI_OpenFile(FXFA_SAVEAS_XML, NULL, "wb"); 1148ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann fileFlag = FXFA_SAVEAS_XML; 1149ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann _ExportSubmitFile(pFileHandler, FXFA_SAVEAS_XML, 0); 1150ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } else if (submit.GetSubmitFormat() == XFA_ATTRIBUTEENUM_Pdf) { 1151ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann // csfilename = csDocName; 1152ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } else if (submit.GetSubmitFormat() == XFA_ATTRIBUTEENUM_Formdata) { 1153ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 1154ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } else if (submit.GetSubmitFormat() == XFA_ATTRIBUTEENUM_Urlencoded) { 1155ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pFileHandler = pEnv->FFI_OpenFile(FXFA_SAVEAS_XML, NULL, "wb"); 1156ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann fileFlag = FXFA_SAVEAS_XML; 1157ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann _ExportSubmitFile(pFileHandler, FXFA_SAVEAS_XML, 0); 1158ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } else if (submit.GetSubmitFormat() == XFA_ATTRIBUTEENUM_Xfd) { 1159ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 1160ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } else { 1161ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 1162ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 1163ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pFileHandler == NULL) 1164ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 1165ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (0 == csURL.Left(7).CompareNoCase(L"mailto:")) { 1166ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString csToAddress; 1167ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString csCCAddress; 1168ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString csBCCAddress; 1169ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString csSubject; 1170ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString csMsg; 1171ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 1172ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bRet = _MailToInfo(csURL, csToAddress, csCCAddress, csBCCAddress, csSubject, 1173ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann csMsg); 1174ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (FALSE == bRet) 1175ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 1176ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 1177ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString bsTo = CFX_WideString(csToAddress).UTF16LE_Encode(); 1178ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString bsCC = CFX_WideString(csCCAddress).UTF16LE_Encode(); 1179ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString bsBcc = CFX_WideString(csBCCAddress).UTF16LE_Encode(); 1180ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString bsSubject = CFX_WideString(csSubject).UTF16LE_Encode(); 1181ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString bsMsg = CFX_WideString(csMsg).UTF16LE_Encode(); 1182ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 1183ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FPDF_WIDESTRING pTo = (FPDF_WIDESTRING)bsTo.GetBuffer(bsTo.GetLength()); 1184ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FPDF_WIDESTRING pCC = (FPDF_WIDESTRING)bsCC.GetBuffer(bsCC.GetLength()); 1185ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FPDF_WIDESTRING pBcc = (FPDF_WIDESTRING)bsBcc.GetBuffer(bsBcc.GetLength()); 1186ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FPDF_WIDESTRING pSubject = 1187ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann (FPDF_WIDESTRING)bsSubject.GetBuffer(bsSubject.GetLength()); 1188ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FPDF_WIDESTRING pMsg = (FPDF_WIDESTRING)bsMsg.GetBuffer(bsMsg.GetLength()); 1189ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 1190ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pEnv->FFI_EmailTo(pFileHandler, pTo, pSubject, pCC, pBcc, pMsg); 1191ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bsTo.ReleaseBuffer(); 1192ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bsCC.ReleaseBuffer(); 1193ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bsBcc.ReleaseBuffer(); 1194ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bsSubject.ReleaseBuffer(); 1195ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bsMsg.ReleaseBuffer(); 1196ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } else { 1197ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann // http��ftp 1198ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString ws; 1199ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString bs = csURL.UTF16LE_Encode(); 1200ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int len = bs.GetLength() / sizeof(unsigned short); 1201ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pEnv->FFI_UploadTo( 1202ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann pFileHandler, fileFlag, 1203ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann (FPDF_WIDESTRING)bs.GetBuffer(len * sizeof(unsigned short))); 1204ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bs.ReleaseBuffer(len * sizeof(unsigned short)); 1205ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 1206ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 1207ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return bRet; 1208ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#else 1209ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return TRUE; 1210ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#endif 1211ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 1212ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 1213ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CPDFXFA_Document::SetGlobalProperty(IXFA_Doc* hDoc, 1214ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_ByteStringC& szPropName, 1215ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FXJSE_HVALUE hValue) { 1216ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (hDoc != m_pXFADoc) 1217ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 1218ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 1219ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_pSDKDoc && m_pSDKDoc->GetEnv()->GetJSRuntime()) 1220ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pSDKDoc->GetEnv()->GetJSRuntime()->SetHValueByName(szPropName, 1221ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann hValue); 1222ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 1223ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 1224ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CPDFXFA_Document::GetPDFScriptObject(IXFA_Doc* hDoc, 1225ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_ByteStringC& utf8Name, 1226ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FXJSE_HVALUE hValue) { 1227ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (hDoc != m_pXFADoc) 1228ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 1229ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 1230ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!m_pSDKDoc || !m_pSDKDoc->GetEnv()->GetJSRuntime()) 1231ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 1232ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 1233ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!m_pJSContext) { 1234ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pSDKDoc->GetEnv()->GetJSRuntime()->SetReaderDocument(m_pSDKDoc); 1235ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pJSContext = m_pSDKDoc->GetEnv()->GetJSRuntime()->NewContext(); 1236ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 1237ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 1238ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return _GetHValueByName(utf8Name, hValue, 1239ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pSDKDoc->GetEnv()->GetJSRuntime()); 1240ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 1241ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CPDFXFA_Document::GetGlobalProperty(IXFA_Doc* hDoc, 1242ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_ByteStringC& szPropName, 1243ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FXJSE_HVALUE hValue) { 1244ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (hDoc != m_pXFADoc) 1245ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 1246ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!m_pSDKDoc || !m_pSDKDoc->GetEnv()->GetJSRuntime()) 1247ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 1248ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 1249ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!m_pJSContext) { 1250ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pSDKDoc->GetEnv()->GetJSRuntime()->SetReaderDocument(m_pSDKDoc); 1251ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pJSContext = m_pSDKDoc->GetEnv()->GetJSRuntime()->NewContext(); 1252ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 1253ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 1254ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return _GetHValueByName(szPropName, hValue, 1255ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pSDKDoc->GetEnv()->GetJSRuntime()); 1256ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 1257ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL CPDFXFA_Document::_GetHValueByName(const CFX_ByteStringC& utf8Name, 1258ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FXJSE_HVALUE hValue, 1259ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann IJS_Runtime* runTime) { 1260ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return runTime->GetHValueByName(utf8Name, hValue); 1261ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 1262