4 Windows Implementation Details
This chapter describes the implementation of the Web View Export SDK on the Windows platform.
The Windows implementation of this software is delivered as a set of DLLs.
For a list of the currently supported platforms, see Outside In Technology and click links under Certified Platforms and Supported Formats from Get Started page.
This chapter includes the following sections:
4.1 Installation
To install the demo version of the SDK, copy the contents of the ZIP archive (available on the web site) to a local directory of your choice.
This product requires the Visual C++ libraries included in the Visual C++ Redistributable Package available from Microsoft. There is a version of this package for the appropriate platform (x86 or x64) version of Windows. This can be downloaded from www.microsoft.com, by searching on the site for the following package:
-
vcredist_x86.exe, or
-
vcredist_x64.exe
The required download version is the "Visual C++ Redistributable Packages for Visual Studio 2013."
Oracle Outside In requires the msvcr120.dll redistributable module.
The installation directory should contain the following directory structure.
Directory | Description |
---|---|
\redist |
Contains a working copy of the Windows version of the technology. |
\sdk\common |
Contains the C include files needed to build or rebuild the technology. |
\sdk\demo |
Contains the compiled executables of the sample applications. |
\sdk\lib |
Contains the library (.lib) files needed for the products. |
\sdk\resource |
Contains localization resource files. |
\sdk\samplecode |
Contains a subdirectory holding the source code for a sample application. |
\sdk\samplefiles |
Contains sample input files authored in a variety of popular graphics, word processor, compression, spreadsheet and presentation applications. |
\sdk\template |
Contains template files based on which html is created. |
4.1.1 NSF Support
Notes Storage Format (NSF) files are produced by the Lotus Notes Client or the Lotus Domino server. The NSF filter is the only Oracle Outside In filter that requires the native application to be present to filter the input documents. Due to integration with an outside application, NSF support will not work with redirected I/O, when an NSF file is embedded in another file, or with IOTYPE_UNICODEPATH. Either Lotus Notes version 8 or Lotus Domino version 8 must be installed on the same machine as OIT. A 32-bit version of the Lotus software must be used if you are using a 32-bit version of OIT. A 64-bit version of the Lotus software must be used if you are using a 64-bit version of OIT. On Windows, SCCOPT_LOTUSNOTESDIRECTORY should be set to the directory containing the nnotes.dll. NSF support is only available on the Win32, Win x86-64, Linux x86-32, and Solaris Sparc 32 platforms.
4.2 Libraries and Structure
The following is an overview of the files in the main installation directory for all five Oracle Outside In export products.
4.2.1 API DLLs
These libraries implement the API. They should be linked with the developer's application. Files with a .lib extension are included in the SDK.
Library | Description | HTMLExport | ImageExport | PDF Export | Search Export | XML Export | Web View Export |
---|---|---|---|---|---|---|---|
sccda.dll |
Data Access module |
X |
X |
X |
X |
X |
X |
sccex.dll |
Export module |
X |
X |
X |
X |
X |
X |
sccfi.dll |
File Identification module (identifies files based on their contents). |
X |
X |
X |
X |
X |
X |
The File ID Specification may not be used directly by any application or workflow without it being separately licensed expressly for that purpose.
4.2.2 Support DLLs
The following libraries are used for support.
Library | Description | HTML Export | ImageExport | PDF Export | Search Export | XML Export | Web View Export |
---|---|---|---|---|---|---|---|
ccflex.dll |
A data model adapter that converts from stream model utilized by Oracle Outside In filters to the FlexionDoc Tree model used as a basis by XML Export. |
X |
|||||
libexpatw.dll |
A third-part XML parser |
X |
|||||
ocemul.dll |
Output component emulation module |
X |
X |
X |
X |
X |
X |
oswin*.dll |
Interface to the native GDI implementation oswin32.dll is the 32-bit version, oswin64.dll is the 64-bit version |
X |
X |
X |
X |
X |
|
sccanno.dll |
The annotation module |
X |
X |
X |
|||
sccca.dll |
Content Access module (provides organized chunker data for the developer) |
X |
X |
X |
X |
||
sccch.dll |
Chunker (provides caching of and access to filter data for the export engines) |
X |
X |
X |
X |
X |
X |
sccdu.dll |
Display Utilities module (includes text formatting) |
X |
X |
X |
X |
X |
X |
sccexind.dll |
The core engine for all Search Export formats: SearchText, SearchHTML, SearchML and PageML |
X |
X |
||||
sccfmt.dll |
Formatting module (resolves numbers to formatted strings) |
X |
X |
X |
X |
X |
|
sccfut.dll |
Filter utility module |
X |
X |
X |
X |
X |
X |
sccind.dll |
Indexing engine. In Search Export, it handles common functionality. |
X |
X |
X |
X |
X |
|
scclo.dll |
Localization library (all strings, menus, dialogs and dialog procedures reside here) |
X |
X |
X |
X |
X |
X |
sccole2.dll |
OLE rendering module |
X |
X |
X |
X |
X |
X |
sccsd.dll |
Schema Definition Module Manager (brokers multiple Schema Definition Modules) |
X |
X |
||||
sccut.dll |
Utility functions, including IO subsystem |
X |
X |
X |
X |
X |
X |
sccxt.dll |
XTree module |
X |
|||||
sdflex.dll |
Schema Definition module (handles conversion of XML string names and attribute values to compact binary representations and vice versa) |
X |
X |
||||
wvcore.dll |
The GDI Abstraction layer |
X |
X |
X |
X |
X |
4.2.3 Engine Libraries
The following libraries are used for display purposes.
Library | Description | HTML Export | Image Export | PDF Export | Search Export | XML Export | Web View Export |
---|---|---|---|---|---|---|---|
debmp.dll |
Raster rendering engine (TIFF, GIF, BMP, PNG, PCX…) |
X |
X |
||||
devect.dll |
Vector/Presentation rendering engine (PowerPoint, Impress, Freelance…) |
X |
X |
X |
X |
X |
|
dess.dll |
Spreadsheet/Database (Excel, Calc, Lotus 123…) |
X |
X |
X |
|||
detree.dll |
Archive (ZIP, GZIP, TAR…) |
X |
X |
||||
dewp.dll |
Document (Word, Writer, WordPerfect…) |
X |
X |
X |
X |
4.2.4 Filter and Export Filter Libraries
The following libraries are used for filtering.
Library | Description | HTML Export | Image Export | PDF Export | Search Export | XML Export | Web View Export |
---|---|---|---|---|---|---|---|
vs*.dll |
Filters for specific file types (there are more than 150 of these filters, covering more than 600 file formats) |
X |
X |
X |
X |
X |
X |
oitnsf.id |
Support file for the vsnsf filter. |
X |
X |
X |
X |
X |
X |
exgdsf.dll |
Export filter for GIF, JPEG, and PNG graphics files |
X |
X |
X |
|||
eximg.dll |
Extended image conversion module |
X |
|||||
exh5.dll |
Export filter for HTML5 files |
X |
|||||
exhtml.dll |
Export filter for HTML files |
X |
|||||
exihtml.dll |
Export filter for SearchHTML |
X |
|||||
exitext.dll |
Export filter for SearchText |
X |
|||||
exixml.dll |
Export filters for XML files using the SearchML schema |
X |
|||||
expage.dll |
Export filter for XML files using the PageML schema |
X |
|||||
expagelayout.dll |
Page layout module |
X |
|||||
exxml.dll |
XML Export module |
X |
|||||
sccimg.dll |
Image conversion module |
X |
X |
X |
X |
4.2.5 Premier Graphics Filters
The following are graphics filters.
Library | Description | HTML Export | ImageExport | PDF Export | Search Export | XML Export | Web View Export |
---|---|---|---|---|---|---|---|
i*2.dll |
Import filters for premier graphics formats |
X |
X |
X |
X |
X |
X |
isgdi32.dll |
Interface to premier graphics filters |
X |
X |
X |
X |
X |
X |
4.2.6 Additional Files
The following files are also used.
Library | Description | HTML Export | ImageExport | PDF Export | Search Export | XML Export | Web View Export |
---|---|---|---|---|---|---|---|
adinit.dat |
Support file for the vsacad filter |
X |
X |
X |
X |
X |
X |
cmmap000.bin |
Tables for character mapping (all character sets) |
X |
X |
X |
X |
X |
X |
cmmap000.sbc |
Tables for character mapping (single-byte character sets). This file is located in the /sdk/common directory. |
X |
X |
X |
X |
X |
X |
cmmap000.dbc |
Identical to cmmap000.bin, but renamed for clarity (.dbc = double-byte character). This file is located in the /sdk/common directory. |
X |
X |
X |
X |
X |
X |
exbf.dll |
Internal |
X |
|||||
pageml.dtd |
The Document Type Definition for the PageML schema |
X |
|||||
pageml.xsd |
The Extensible Schema Definition for the PageML schema |
X |
|||||
searchml3.dtd |
The Document Type Definitions for the SearchML schema |
X |
|||||
searchml3.xsd |
The Extensible Schema Definitions for the SearchML schema |
X |
|||||
flexiondoc.dtd |
The DTD version of the Flexiondoc schema |
X |
|||||
flexiondoc.xsd |
The schema version of the Flexiondoc schema |
X |
4.3 The Basics
The following is a discussion of some basic usage and installation features.
All the steps outlined in this section are used in the sample applications provided with the SDK. Looking at the code for the exsimple sample application is recommended for those wishing to see a real-world example of this process.
4.3.1 What You Need in Your Source Code
Any source code that uses this product should #include
the file sccex.h and #define
WINDOWS
and WIN32
or WIN64
. For example, a Windows application might have a source file with the following lines:
#define WINDOWS /* Will be automatically defined if your compiler defines _WINDOWS */ #define WIN32 #include <sccex.h>
The developer's application should be linked to the product DLLs through the provided libraries.
4.3.2 Options and Information Storage
When using the Export products, a list of available filters and a list of available display engines are built by the technology, usually the first time the product runs. You do not need to ship these lists with your application. The lists are automatically recreated if corrupted or deleted.
The files used to store this information are stored in an .oit subdirectory in \Documents and Settings\user name\Application Data.
If an .oit directory does not exist in the user's directory, the directory is created automatically. The files are automatically regenerated if corrupted or deleted.
The files are:
-
*.d = Display Engine lists
-
*.opt = Persistent options
Some applications and services may run under a local system account for which there is no users "application data" folder. The technology first does a check for an environment variable called OIT_DATA_PATH. Then it checks for APPDATA, and then LOCALAPPDATA. If none of those exist, the options files are put into the executable path of the UT module.
These file names are intended to be unique enough to avoid conflict for any combination of machine name and install directory. This allows the user to run products in separate directories without having to reload the files above. The file names are built from an 11-character string derived from the directory the Oracle Outside In technology resides in and the name of the machine it is being run on. The string is generated by code derived from the RSA Data Security, Inc. MD5 Message-Digest Algorithm.
The software still functions if these lists cannot be created for some reason. In that situation, however, significant performance degradation should be expected.
4.3.3 Structure Alignment
Oracle Outside In is built with 8-byte structure alignment. This is the default setting for most Windows compilers. This and other compiler options that should be used are demonstrated in the files provided with the sample applications in samples\win.
4.3.4 Character Sets
The strings passed in the Windows API are Microsoft Code Page 1252 by default.
To optimize performance on systems that do not require DBCS support, a second character mapping bin file, that does not contain any of the DBCS pages, is now included. The second bin file gives additional performance benefits for English documents, but cannot handle DBCS documents. To use the new bin file, replace the cmmap000.bin with the new bin file, cmmap000.sbc. For clarity, a copy of the cmmap000.bin file (cmmap000.dbc) is also included. Both cmmap000.sbc and cmmap000.dbc are located in the \common directory of the technology.
Note:
All of the Search Export flavors produce most text in UTF-8 encoded Unicode. Two exceptions to this are the characters in <unmapped> elements and XMP metadata (which is passed through without character mapping being applied).
4.4 Default Font Aliases
The technology includes the following default font alias map for Windows. The first value is the original font, the second is the alias.
-
Chicago = Arial
-
Geneva = Arial
-
New York = Times New Roman
-
Helvetica = Arial
-
Helv = Arial
-
times = Times New Roman
-
Times = Times New Roman
-
Tms Roman = Times New Roman
-
itc zapfdingbats = Zapfdinbats
-
itc zapf dingbats = Zapfdinbats
4.5 Changing Resources
Oracle Outside In Web View Export ships with the necessary files for OEMs to change any of the strings in the technology as they see fit.
Strings are stored in the lodlgstr.h file found in the resource directory. The file can be edited using any text editor.
Note:
Do not directly edit the scclo.rc file. Strings are saved with their identifiers in lodlgstr.h. If a new scclo.rc file is saved, it will contain numeric identifiers for strings, instead of their #define'd names.
Once the changes have been made, the updated scclo.dll file can be rebuilt using the following steps:
If you are not using Microsoft Visual Studio, substitute the appropriate development tools from your enviroment.
Note:
In previous versions of Oracle Outside In, it was possible to directly edit the SCCLO.DLL using Microsoft Visual Studio. Oracle Outside In DLLs are now digitally signed. Editing the signed DLL is not advisable.