This manual is protected under copyright law, furnished for informational use only, is subject to change without notice, and should not be construed as a
commitment by Adobe Systems Incorporated. Adobe Systems Incorporated assumes no responsibility or liability for any errors or inaccuracies that may
appear in the informational content contained in this manual.
This manual is licensed for use under the terms of the Creative Commons Attribution Non-Commercial 3.0 License. This License allows users to copy,
distribute, and transmit the manual for noncommercial purposes only so long as (1) proper attribution to Adobe is given as the owner of the manual; and (2)
any reuse or distribution of the manual contains a notice that use of the manual is governed by these terms. The best way to provide notice is to include the
following link. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc/3.0/us/
Adobe, the Adobe logo, Adobe AIR, Adobe Captivate, Adobe Type Manager, Acrobat, AIR, Creative Suite, Distiller, Flash, FrameMaker, Illustrator,
PageMaker, Photoshop, PostScript, Reader, RoboHelp, and RoboScreenCapture are trademarks of Adobe Systems Incorporated in the United States and/or
other countries.
Microsoft, Windows, and Windows Vista are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other
countries. Solaris is a trademark or registered trademark of Oracle and/or its affiliate. SVG is a trademark of the World Wide Web Consortium; marks
of the W3C are registered and held by its host institutions MIT, INRIA, and Keio.
Updated Information/Additional Third Party Code Information available at http://www.adobe.com/go/thirdparty
Portions include software under the following terms:
This product includes software developed by the Apache Software Foundation (http://www.apache.org/
Portions copyright 1984-1998 Faircom Corporation. "FairCom" and "c-tree Plus" are trademarks of Faircom Corporation and are registered in the United States
and other countries. All Rights Reserved.
MPEG Layer-3 audio compression technology licensed by Fraunhofer IIS and THOMSON multimedia (http://www.iis.fhg.de/amm
ImageStream Graphics Filters and ImageStream are registered trademarks of Inso Corporation.
Portions utilize code licensed from Nellymoser (www.nellymoser.com
Certain trademarks are owned by The Proximity Division of Franklin Electronic Publishers, Inc., and are used by permission. Merriam-Webster is a
trademark of Merriam-Webster, Inc.
This product contains either BSAFE and/or TIPEM software by RSA Data Security, Inc.
.
eveloper’s Kit for Windows
.
).
).
)
Sorenson Spark™ video compression and decompression technology licensed from Sorenson Media, Inc.
Adobe Systems Incorporated, 345 Park Avenue, San Jose, California 95110, USA.
Notice to U.S. government end users. The software and documentation are “Commercial Items,” as that term is defined at 48 C.F.R. §2.101, consisting of
“Commercial Computer Software” and “Commercial Computer Software Documentation,” as such terms are used in 48 C.F.R. §12.212 or 48 C.F.R.
§227.7202, as applicable. Consistent with 48 C.F.R. §12.212 or 48 C.F.R. §§227.7202-1 through 227.7202-4, as applicable, the Commercial Computer Software
and Commercial Computer Software Documentation are being licensed to U.S. Government end users (a) only as Commercial items and (b) with only those
rights as are granted to all other end users pursuant to the terms and conditions herein. Unpublished-rights reserved under the copyright laws of the United
States. For U.S. Government End Users, Adobe agrees to comply with all applicable equal opportunity laws including, if appropriate, the provisions of
Executive Order 11246, as amended, Section 402 of the Vietnam Era Veterans Readjustment Assistance Act of 1974 (38 USC 4212), and Section 503 of the
Rehabilitation Act of 1973, as amended, and the regulations at 41 CFR Parts 60-1 through 60-60, 60-250, and 60-741. The affirmative action clause and
regulations contained in the preceding sentence shall be incorporated by reference.
The latest version of this document is available online at
The Frame Developer’s Kit™ (FDK) provides tools for developers to enhance the
functionality of FrameMaker
This chapter provides an overview of the FDK and other aspects of FrameMaker that are
useful for developers. It also discusses the FDK documentation.
The principal parts of the FDK are:
Frame Application Program Interface™ (API)
Frame Development Environment™ (FDE)
Frame Structure Import/Export Application Program Interface (Structure
Import/Export API)
The following sections describe these parts and discuss how you can use them.
.
Frame API
The Frame API allows you to write C language programs, called FDK clients, that can
take control of a FrameMaker product session and communicate interactively with the
user. With the API, a client can do nearly anything an interactive user can do and more.
The API gives a client direct access to the text and graphic objects in documents. The
API includes a set of header files, libraries, and makefiles for each supported platform.
Here are some examples of the types of clients you can create with the API:
Grammar checkers
Bibliography utilities
FDK Programmer’s Guide 11
Using Frame Developer Tools
The Frame Developer’s Kit
Voice control utilities
Document reporting utilities
Version control systems for documents
Table utilities, such as sorting and totaling
Database publishing packages
Interfaces to document management systems
Filters to exchange files between other desktop publishing applications and
FrameMaker products
FDE
The Frame Development Environment (FDE) provides platform-independent
alternatives to platform-specific I/O, string, and memory allocation schemes. It also
provides a variety of utility functions, such as Maker Interchange Format (MIF) writing
functions.
Structure Import/Export API
The Structure Import/Export API allows you to write clients that control the import of
markup documents into FrameMaker, and control the export of FrameMaker documents
to markup.
Other FrameMaker product features for developers
FrameMaker provides other advanced features that are useful for developers. You do
not need the FDK to use these features.
MIF
Maker Interchange Format (MIF) is an easily parsed ASCII format that describes a
document’s text, graphics, formatting, and layout. FrameMaker can save a document or
a book to a MIF file, and convert a MIF file back to a document or book, without losing
any information.
You can write applications or scripts that convert a MIF file to the format of another
desktop publishing package, or convert other formats to MIF.
Here are some examples of things you can use MIF for:
Sharing files with earlier releases of FrameMaker products
Converting database files into Frame documents
12 FDK Programmer’s Guide
Filtering word processor documents into Frame documents
You can find documentation for MIF in the online manuals folder for your FrameMaker
installation.
Choosing the right Frame tools
There are often several tools or combinations of tools that you can use to solve a given
problem. In particular, you can use the API to perform many of the tasks that MIFand
fmbatch perform. The tool or combination of tools you should use depends on your
needs. Generally, MIF and fmbatch are more useful for one-time solutions to small
problems, whereas the API is more useful for full-scale applications or applications
where interaction with the user is required.
The following table summarizes the advantages and limitations of each Frame tool.
Frame tool
or featureAdvantagesLimitations
Using Frame Developer Tools
Choosing the right Frame tools
. . .
Frame APIFast, interactive, and portable; easy to
provide a user interface for your
applications
MIFCan be used by text-processing
utilities. It can also be used to provide
“backwards” compatibility allowing
files to be opened in earlier releases of
the product. Third-party MIF creators
do not need to write complete MIF.
FrameMaker will always write out
complete MIF.
Must be compiled
Files must be saved as MIF; not
interactive
FDK Programmer’s Guide 13
Using Frame Developer Tools
FDK documentation
FDK documentation
FDK documentation assumes that you have a thorough knowledge of FrameMaker .
For background information on FrameMaker, see your user documentation.
FDK documentation includes the following manuals, which are available in the doc
folder of your FDK installation.
FDK Programmer’s Reference
The FDK Programmer’s Reference provides FDK reference information, such as error
codes and data structure, function, and property descriptions.
FDK Programmer’s Guide
The FDK Pr ogrammer’s Guide is the guide you are reading now. It describes how to use
the FDK to create clients for FrameMaker. To get the most from this guide, you should
be familiar with the C programming language and event-driven programming.
The FDK Programmer’s Guide is divided into four parts:
Part I, "Getting Started," provides step-by-step guidance for getting familiar with the
FDK.
Part II, “Frame Product Architecture,” provides a conceptual overview of how the
API represents sessions, books, and documents.
Part III, "Frame Application Program Interface (API),” provides instructions for
creating API clients.
Part IV, "Frame Development Environment," provides instructions for making filters
and API clients platform-independent.
Naming conventions
To help you identify the structures, constants, and functions defined by the FDK, this
manual and the FDK adhere to the following naming conventions:
TypeNaming conventionExample
API error codesBegin with FE_FE_NotPgf
API functionsBegin with F_Api F_ApiGetInt()
14 FDK Programmer’s Guide
Using Frame Developer Tools
Style conventions
TypeNaming conventionExample
. . .
Style conventions
API scriptable function
property names
FDE functionsBegin with F_ F_StrNew()
Flags used by API functionsBegin with FF_ and all
Initialization constantsBegin with FA_InitFA_Init_First
Notification constantsBegin with FA_NoteFA_Note_PreFileType
Object property namesBegin with FP_ FP_Fill
Object typesBegin with FO_FO_Doc
Property value constantsBegin with FV_ FV_Doc_Type_MIF
TypedefsEnd with TMetricT
Begin with FS_ FS_NewDoc
FF_UFF_VAR
letters are uppercase
This manual uses the term API graphic object to refer to objects (such as FO_Polygon
and FO_TextFrame objects) that the API uses to represent the graphic objects (such
as polygons and text frames) that appear on a page.
FDK manuals distinguish between you, the developer, and the user, the person for
whom you write clients.
FDK manuals may use the term FrameMaker product to refer to the FrameMaker
software, as opposed to the software you write to work with the FrameMaker product.
Structured program interface
FrameMaker 7.0 and later ships with two program interfaces—Structured FrameMaker
and FrameMaker. The structured program interface presents menus, icons, and
commands for working with structured documents. The FDK includes some functions
that only work on structured documents. For example, setting an element range makes
no sense in a document that doesn’t contain any structure elements. Further, you can
specify that an FDK client requires the Structured FrameMaker program interface. For
example, assume you specify Structured FrameMaker when you register your client. If
a user has your client installed, but is running the FrameMaker program interface (not
structured), then his installation of FrameMaker will not initialize your client when it
starts up.
FDK Programmer’s Guide 15
Using Frame Developer Tools
Style conventions
The FDK Programmer’s Reference indicates those FDK functions that apply only to
structured FrameMaker documents, as follows:
Structured F_ApiGetAttributeDefs()
In this example the word Structured appears to the left of the function name, indicating
that this function applies only to the content of a structured document. If you register a
client to work with the FrameMaker program interface, you should be sure that your
client doesn’t use any functions identified as Structured, otherwise your client may
exhibit unpredictable behavior.
Typographic conventions
This manual uses different fonts to represent different types of information.
What you type is shown in
text like this.
Function names, property names, structure names, returned values, constants, filter
names, program names, pathnames, and filenames are also shown in
text like this.
Placeholders (such as those representing names of files and directories) are shown in
text like this.
For example, this represents the name of your working directory:
\Mydir
Omitted code in source code examples is indicated with ellipses.
For example, the ellipsis in the following code indicates that some of the code
necessary to create a complete program is omitted:
This Getting Started section is intended to help you get familiar with the basics of FDK
11. It includes information on creating, compiling, running, and debugging FDK clients.
Sample code snippets are provided as pointers that you can build upon and create your
own FDK clients.
In this section:
"Downloading and installing the FDK"
"System requirements"
"Reviewing the sample programs in the samples/hello folder"
"Getting familiar with how the FDK works on Windows"
"Writing FDK clients for Windows"
"Compiling, Registering, and Running FDK Clients"
"Writing an Asynchronous FDK Client"
"Example: adding menus and commands"
. . . . .
"Next Steps"
FDK Programmer’s Guide 17
Getting Started with FDK 11
5
Downloading and installing the FDK
DownloadingandinstallingtheFDK
Download the FrameMaker FDK from the FrameMaker Developer Center
http://www.adobe.com/devnet/framemaker.html
System requirements
Ensure that your system meets the following requirements:
Intel Pentium IV
Microsoft Windows XP, or Windows Vista or Windows 7
1GB of RAM
53MB of available hard-disk space
In addition, you should have Microsoft Visual Studio 2010 installed on the system.
18 FDK Programmer’s Guide
Getting Started with FDK 11
Reviewing the sample programs in the samples/hello folder
Reviewing the sample programs in the samples/hello folder
#include "fapi.h" /* required for all FDK client programs */
#include "fencode.h"
/* Call back invoked at product startup time */
FDK Programmer’s Guide 19
Getting Started with FDK 11
5
Getting familiar with how the FDK works on Windows
VoidT F_ApiInitialize(init)
IntT init;
{
/* Making it unicode enabled. */
F_FdeInit();
F_ApiEnableUnicode(True);
F_FdeInitFontEncs("UTF-8");
Getting familiar with how the FDK works on Windows
FDK clients on Windows are not implemented as true Windows clients. They are
dynamic link libraries (DLLs) that provide entry points or callback functions, which
FrameMaker can invoke.
There are several types of FDK clients:
A standar d FDK client is an FDK client that initializes when FrameMaker starts and
thenwaits to respond to specific user actions, such as menu choices.
A take-control client is an FDK client that responds to a special initialization and
takes complete control of a FrameMaker session. Many of the effectsyou can get
with this type of client can also be realized by an asynchronous client.
A filter is an FDK client that converts FrameMaker files to or from other file formats.
FrameMaker calls a filter when the user attempts to open, import, or save a file with
a particular format.
Adocument r eport is an FDK client that provides information about a document. The
user can start a document report by choosing Utilities>Document Reports from the
File menu and selecting the report from the Document Reports dialog box.
When FrameMaker starts, it reads the maker.ini file in the FrameMaker installation
directory, and if applicable, the maker.ini file stored in the user’s Documents and
Settings directory. The [APIClients] section of the maker.ini file contains entries
describing the FDK clients to be loaded. FrameMaker then scans the
fminit/Plugins directory and subdirectories and loads the FDK clients that have a
.dll file extension and valid VERSIONINFO resource information. FrameMaker
ignores all other files in the fminit/Plugins directory that do not have a .dll file
extension and valid VERSIONINFO resource information.
If your client calls FDE functions, it must call F_FdeInit() once before it calls the
functions. The syntax for F_FdeInit() is:
ErrorT F_FdeInit(VoidT);
To call F_FdeInit(), your client must include the fdetypes.h header file.
Howtowritefilterclients
You can use filter clients to translate documents from one format to another.
FrameMaker invokes an import filter client when it recognizes a file of a particular
format or when the file has a registered suffix. It invokes an export filter when you
choose a particular format from the Format pop-up menu of the Save As dialog box or
save a file using a registered suffix. For example, if you register a suffix for a text import
filter and then open a file with that suffix, the Unknown File Type dialog box appears
with the appropriate filter preselected.
You must register your filter client before use. For information on registering clients,
Compiling, Registering, and Running FDK Clients".
see "
You can also use your filter to import text or graphic files into a document. If you import
a file by reference, FrameMaker stores in the document the registered format and
vendor ID of the filter used in the import operation. If you import the file by copy,
FrameMaker stores the facet name in the document. The information in both these cases
ensures that FrameMaker invokes the correct filter for updating the next time you open
the document.
IMPORTANT: If you are writing a filter client, FrameMaker will not fully recognize it
unless you include function calls that actually cause the API library to link with your
client. To make sure the client links properly, you can include the following as minimal
code in your F_ApiNotification() function:
To identify your filter to FrameMaker, you need to supply information in the line that
registers the filter. This information identifies the filter on all platforms and identifies
the original import filter when reimporting the file. FrameMaker uses several pieces of
information that you specify for this purpose:
The vendor ID is a four-character string describing the provider of the filter.
22 FDK Programmer’s Guide
Getting Started with FDK 11
Writing FDK clients for Windows
The format ID is a four-character string describing the file format of files on which
the filter operates.
The facet name is an arbitrary-length string describing the filter.
For example, assume you create a filter for Windows machines that translates
Himyaritic documents to English. You give it the format ID "HIMF" and the vendor ID
"FAPI". If you create a document and create a text inset using that filter, FrameMaker
stores this information with the inset. The next time you open that document,
FrameMaker knows to update the inset with your Himyaritic filter.
FrameMaker reserves the following vendor IDs:
"FRAM"
"FFLT"
"IMAG"
"XTND"
"AW4W"
"ADBE"
. . .
"ADBI"
Your client cannot use these vendor IDs. FrameMaker recognizes FAPI as a valid ID for
anyFDK filter client. However, you do not have to use this ID. You can use any other
four-characterstring as your vendor ID.
FrameMaker reserves format IDs for the indicated file formats. For a complete list of
format Ids, see "Specifying format IDs and filetype hint strings"
. FrameMaker does not
supply filters for all of these formats. However, to aid in portabilityof your clients, you
should not use one of these format IDs unless it is for the specified file format.
Automatic recognition of a file format
Some graphic file formats have signature bytes. Signature bytes are a set of bytes that
have a unique value and location in a particular file format. FrameMaker can use
signature bytes to identify a graphic file’s format.
The documentation for the file format that your graphics filter converts may contain
information on the signature bytes for that format. If it does, you can register the
signature bytes in the [FormatList] section of the maker.ini file. Each graphic file
format description must be on a separate line and must have the following format:
where n is any number, facet_name is the file format’s description (also used in the
client registration), start_offset is how many bytes from the start of the file the
signature begins, signature_size is the size in bytes of the signature, and
signature is the hexadecimal value of the signature. You can enclose any of the
FDK Programmer’s Guide 23
Getting Started with FDK 11
5
Writing FDK clients for Windows
arguments in double quotation marks. For example, you can register the file format for
MIF with the following:
[FormatList]
100="MIF" 0 8 0x3c4d494646696c65
where 0x3c4d494646696c65 is the hexadecimal encoding of the characters
MIFFile.
Using Windows pathnames
The FDK delimits pathnames with backslashes (\). When you specify a pathname in an
FDK function call, follow these rules:
Follow the drive letter with a colon.
Don’t terminate a pathname that specifies a file with a backslash.
The following table lists examples of files and directories and the pathname strings that
specify them.
File or DirectoryAbsolute PathnameRelative Pathname
File named myfile.doc on the
c: drive
Directory named mydir on
the c: drive
c:\myfile.docmyfile.doc
c:\mydirmydir
Because the backslash is a special character, you must precede it with another backslash
when you specify it in a string. For example, to open a file named c:\myfile.doc with
F_ApiSimpleOpen(), use the following code:
F_ApiSimpleOpen("c:\\myfile.doc", False);
Using pathnames returned by FDK functions
Pathnames returned by FDK functions don’t end with a backslash, unless they specify
rootdirectories, such as c:\.
Using F_PathNameToFilePath()
To specify an absolute pathname when you call F_PathNameToFilePath(), you
must specify a pathname that includes the drive and begins with the root directory of the
drive. If the pathname does not include the drive and begin with the root directory of the
drive, F_PathNameToFilePath() assumes the pathname is relative.
If you call F_PathNameToFilePath() with anchor set to NULL and you do not
specify an absolute pathname, F_PathNameToFilePath() adds the currently open
24 FDK Programmer’s Guide
Getting Started with FDK 11
Writing FDK clients for Windows
directory or the currently open directory of the specified drive to the pathname. For
example, if you specify c:myfile.c for pathname, F_PathNameToFilePath()
generates: c:\cwd\myfile.c, where cwd is the currently open directory on drive c:.
If you specify \\myfile.c for pathname, F_PathNameToFilePath() generates:
current_drive:\myfile.c, where current_drive is the current drive.
If you do not set anchor to NULL, F_PathNameToFilePath() constructs the
filepath relative to the path specified by anchor. If the pathname you specify for
pathname and the filepath you specify for anchor are inconsistent,
F_PathNameToFilePath() ignores anchor and constructs the filepath with the
currently open directory
Using F_FilePathGetNext()
The function F_FilePathGetNext() returns the next file in a specified directory. To
do so, this function uses DOS system calls. As a result, since DOS is case-insensitive,
the returned FilePathT structure uses only uppercase letters. This may not match a
FilePathT structure you have created.
. . .
FDK Programmer’s Guide 25
Getting Started with FDK 11
5
Writing FDK clients for Windows
For example, assume you want to create a filepath and then at some later time process
all files in the same directory other than the one you created. You might be tempted to
use this code:
while ((file = F_FilePathGetNext (handle, &Statusp)) != NULL) {
/* WRONG! This attempts to compare current file to the one you
created. */
if ! (F_StrEqual (pathname, F_FilePathToPathName (file)))
ProcessFile (file);
F_FilePathFree (file);
}
}
/* Bad code! */
. . ..
26 FDK Programmer’s Guide
The string returned by F_FilePathToPathName(newpath) contains the lowercase
letters as specified in the earlier call to the function F_PathNameToFilePath(). On
the other hand, the string returned by each call to F_FilePathToPathName() always
contains only uppercase letters. Therefore, the call to F_StrEqual() never succeeds.
Instead of calling F_StrEqual(), you should call F_StrIEqual().
Using menus and commands
The following sections describe how to use menus and commands in your FDK client.
Getting Started with FDK 11
Writing FDK clients for Windows
FindingFrameMakermenuandcommandnames
The [Files] section of the maker.ini file specifies the location of the menu and
command configuration files that list FrameMaker’s menus and commands. The
following are the default entries in the maker.ini file:
MathCharacterFile = fminit\mathchar.cfg
ConfigCommandsFile = fminit\cmds.cfg
MSWinConfigCommandsFile = fminit\wincmds.cfg
ConfigMathFile = fminit\mathcmds.cfg
ConfigMenuFile = fminit\maker\menus.cfg
ConfigCustomUIFile = fminit\customui.cfg
The following table lists the menus and commands each file contains.
Menu or Command FileContents
MathCharacterFileSpecial math characters
ConfigCommandsFileBasic commands
. . .
MSWinConfigCommandsFileWindows-specific commands
ConfigMathFileMath commands
ConfigMenuFileStandard menus
ConfigCustomUIFileCustom menus
Using FDK functions that write to FrameMaker console
The following functions write output to the FrameMaker console on Windows:
F_ApiPrintFAErrno()
F_ApiPrintOpenStatus()
F_ApiPrintPropVals()
F_ApiPrintSaveStatus()
F_Printf() with Channel set to NULL
F_Warning()
For descriptions of these functions, see the FDK Programmer’s Reference. As with
printf(), the F_Printf() function does not automatically print a line feed ("\n")
after the output. If you don’t end the output with "\n", the next call to one of the
functions listed above begins printing on the last line printed by the F_Printf() call.
FDK Programmer’s Guide 27
Getting Started with FDK 11
5
Compiling, Registering, and Running FDK Clients
Using platform-dependent session properties
Session (FO_Session) objects have the following platform-dependent properties:
PropertyValue
FP_FM_BinDirPathname of the bin directory in the FrameMaker installation
directory
FP_FM_CurrentDirPathname of the FrameMaker installation directory
FP_FM_HomeDirPathname of the FrameMaker installation directory
FP_FM_InitDirPathname of the fminit directory in the FrameMaker
installation
directory
FP_HostNameHost name specified for PCName in the maker.ini file
FP_OpenDirPathname of the FrameMaker installation directory
FP_PathPath specified by the $PATH environment variable
FP_TmpDirDirectory specified by the $TEMP environment variable
FP_UserHomeDirPathname of the FrameMaker installation directory
FP_UserLoginThe user name under which FrameMaker is registered
FP_UserNameThe user name under which FrameMaker is registered
Although the values of some of these properties specify directory pathnames, they are
not terminated with a backslash.
Compiling, Registering, and Running FDK Clients
This section describes how to compile, register, and run FDK clients on Windows. It
also briefly explains how to debug your FDK clients.
Compiling FDK Clients
The following sections describe how to compile FDK sample clients and your own
clients.
Supported compilers
To compile FDK clients for Windows, you must use Microsoft Visual Studio 2010.
28 FDK Programmer’s Guide
Getting Started with FDK 11
Compiling, Registering, and Running FDK Clients
Compiling and registering sample clients in Microsoft Visual Studio 2010
To compile and register a sample FDK client in Microsoft Visual Studio 2010, follow
these steps:
1. Start Microsoft Visual Studio 2010
2. Open the Project and then choose the solution file for one of the sample clients.For
example, to compile the aframes sample client, choose
fdk_install_dir\samples\aframes\aframes.sln, where
fdk_install_dir is the pathname of the directory in which the FDK is installed.
NOTE: The project settings for the sample clients have relative paths to the FDK lib and
include files already specified. If you open a sample project from its location in the FDK
installation, these paths will be valid. If you move the sample client to a different
location, you may need to specify new paths for the include and lib files. For more
information, see "
3. Use the build utility to build the client. Choose Rebuild Solution from the Build
menu. Microsoft Visual Studio 2010 compiles your code into a DLL file named
project.dll in the debug subdirectory of your client directory, where project is
the name of the sample project. For example, the aframes sample client compiles
into debug\aframes.dll.
4. Register the sample client.
Compiling and registering your own FDK clients".
. . .
Each of the following sample clients includes a VERSIONINFO resource, and you
register each by placing the DLL file in the Plugins folder:
pickfmts
elemutils
dialog
Because the remaining sample clients do not include a VERSIONINFO resource, you
must register them in the maker.ini file. For more information see "
Registering clients
in the FrameMaker maker.ini file".
Running the sample FDK clients
It is best to store client DLL files in the FrameMaker Plugins folder
(install_dir\FrameMaker<version>\fminit\Plugins), or in a folder below
it. If you register your clients via the VersionInfo resource, you must store them in
this way. When you register a client in the .ini file, you can specify any location for
the DLL file.
After you have compiled and registered a sample FDK client, start FrameMaker to test
the client. Some of the sample clients add menus and commands to the FrameMaker
menus. For example, if you have compiled and registered the sample client described in
FDK Programmer’s Guide 29
Loading...
+ 529 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.