📄 relnotes.txt
字号:
Licensed Materials - Property of IBM
C99VCEN
C99VDEN
(c) Copyright IBM Corporation 1996, 2007
All rights reserved.
IBM, Lotus, Lotus Notes, Notes, and Domino are trademarks or registered
trademarks of Lotus Development Corporation and/or IBM Corporation
in the United States, or other countries, or both.
*******************************************************************
IBM Lotus C++ API 7.0a for IBM Lotus Notes/Domino
Release Notes
*******************************************************************
This file describes changes in Release 7.0a of the Lotus C++ API
Toolkit for Domino and Notes. This release of the Lotus C++ API
Toolkit supports development of programs for IBM Lotus Notes
Release 7.0.
Note: For more information about the C++ API, visit IBM
developerWorks (http://www.ibm.com/developerworks/lotus). The
Toolkits and Drivers page in the Downloads section contains links
to documentation, product information, and pages where you can
download the product itself or related material such as sample
programs.
Contents:
1. New and Changed Features
2. Known issues
3. Resolved issues
---------------------------
1. NEW AND CHANGED FEATURES
---------------------------
The following changes were introduced in release 7.0 of the toolkit:
Notes/Domino version support change
Applications you build with this version of the C++ API toolkit will
work with Notes and Domino releases 7.0. Users of earlier releases
of Domino and Notes should use an earlier version of the toolkit,
such as version 3.0.
---------------
2. KNOWN ISSUES
---------------
The following issues and problems affect C++ API classes,
functions, and sample programs in this release. Some problem
descriptions are followed by an internal tracking number.
- This release of the C++ API toolkit does not support the use of
IBM VisualAge C++ for Windows. Users of that environment should use
the 2.3 toolkit release instead.
- This release of the C++ API toolkit does not support HP-UX. Users of
that platform should use the 2.2 toolkit release instead.
- This release of the C++ API toolkit does not support 16-bit Windows
or Macintosh. Users of those platforms should use the 2.0 toolkit
release instead.
- At this time, the C++ API does not directly support the creation
of repeating calendar entries. If you need to do this, you can
use the C++ API to create each individual calendar entry, but you
will have to provide the additional logic associated with
determining the dates of each entry. (SJAN4MYKLS)
- LNRichText::AppendRenderedDocument(LNDocument &doc) and
LNRichText::AppendRenderedDocument(LNDocument &doc, LNForm &form)
prepend an extra blank line in the rich text item before the
rendered document. (SCHN3KULWA)
- When you get a value that is stored internally in twips (for
example, by calling LNTable::GetRowSpacing to get the spacing
between table rows) it may differ slightly from the value you
specified (for example, by calling LNTable::SetRowSpacing).
(LASH357U32)
- Some C++ API functions attempt to locate your mail database (for
example, LNNoteSession::CreateMailMessage and GetMailDatabase,
and LNDocument::Send and SendTo). These functions generate the
error LNERR_NO_MAIL_DATABASE ("Cannot locate mail database") if
they cannot find the database. If you receive this error, you
can do one of the following:
* If the program is running on a Notes client, make sure the
personal name and address book (NAB) contains a location
document that specifies the mail server and database name,
and make sure that location is the current one. The Location
entry in the notes.ini file specifies the current location.
* If the program is running on the server, make sure the
server's notes.ini file contains the entries MailServer and
MailFile, which specify the mail server and database name
respectively. If the C++ API doesn't find a location
document in the NAB, it looks in the notes.ini file for
these values (on both server and client machines). Although
you could add a location document to the server's NAB, you
might not wish to do this, because that document will
replicate to other servers.
- If you insert too many large tables or too many LNCompositeData
objects into a rich text item you may run out of memory.
- LNStylizedText containers cannot hold more than 40KB of text.
Attempting to store more than 40KB of text causes the new
LNERR_TEXT_TOO_BIG error code to be returned. Also note that
Notes may not be able to open documents that contain stylized
text items with more than 20KB of text. If your application
stores more than 20KB of text (but less than 40KB), the new
LNWARN_TEXT_TOO_BIG_FOR_NOTES warning is returned.
Remember that appending text to a rich text item may make it
larger than the maximum sizes given above. The safe way to
append text to a stylized text object is to call Append with the
optional parameter that converts embedded nulls in the appended
text to paragraph breaks, thereby adding the text as a series of
LNStylizedText objects:
LNRichText rt;
LNString text;
...
rt.Append(text, TRUE);
...
- You cannot specify the LotusScript for an agent, button, form or
view action, or action hotspot by passing an LNLotusScript object
that was constructed "from scratch" with a string or LNString
containing pure LotusScript code as you would enter it in Notes.
This is because the code lacks special comments that are normally
inserted and parsed by Notes when you manually create
LotusScript.
To properly specify LotusScript code, you must get it from an
LNLotusScript object that represents LotusScript that was
manually created and saved in Notes.
This does not prevent you from using strings containing
LotusScript, but it does require some extra steps. For example,
if you had a library of scripts, you could add them to agents by
doing the following:
1. Manually or programmatically create a database that holds a
series of LotusScript agents named after your scripts.
2. Manually copy and paste your scripts from text files into the
new agents.
3. Save the new agents so that Notes can insert its special
comments.
4. Write code that gets the LotusScript code from the agents you
just created and adds it to agents in your target database.
For example:
LNDatabase agentDb, targetDb;
LNAgent agent, newAgent;
LNLotusScript script;
agentDb.GetAgent("Script1", &agent);
agent.Open();
agent.GetLotusScript(&script);
targetDb.CreateAgent("NewAgent", TRUE, &newAgent);
newAgent.SetLotusScript(script);
//set other properties
newAgent.Save();
- If you use LNRichText::CreateOLEObject to embed an OLE object in a
note and then view the note in Notes, an OLE object icon is
displayed instead of the object itself (for example, a word
processor document). To insert the graphic representation
of an OLE object into rich text, use the method demonstrated in the
EMBEDOLE sample.
- In some situations involving the assignment of roles to users,
LNNotesSession::CreateDatabaseReplica may fail, when replicating
through the Notes user interface would succeed. If you encounter
this problem, please let us know. (PBIT44AP7S)
- Calling LNNote::GetItem on a field on a subform in a tabbed table
results in a "Note item not found" error. This is due to a
problem in the C API that has been reported but not yet fixed.
(DCO49ZJ64)
- You cannot directly copy a rich text item containing an embedded OLE
object in applications running on non-OLE platforms. To work around
the problem, copy the entire LNNote, rather than just the LNRichText
item. (SCHN4JTUUC)
- Some LNCreateDatabaseOptions methods currently have no effect:
* LNCreateDatabaseOptions::SetCopyACL does not let you specify
whether a database's ACL should be copied when you call the
LNNotesSession CreateDatabaseCopy, CreateDatabaseReplica or
CreateDatabaseFromTemplate functions to create a new database.
* LNCreateDatabaseOptions::SetPreserveNoteModifiedTime does not let
you specify whether LNNotesSession::CreateDatabaseCopy and
CreateDatabaseReplica preserve the original modification time for
each note when copying it to a new database.
We are investigating these problems and hope to fix them in a future
release. (DSCR4J3SH4)
- This release of the C++ API does not support the full text search
features introduced in Notes 5.0, including domain search, returning
results as URLs, and 'chunking' large result sets. (SBON4GYSTG)
- If you call LNTableCell::GetMergeBoundaries on a cell that was not
created by merging multiple cells, the function should return a
warning but may throw an exception instead. To avoid this problem,
call LNTableCell::IsCellMerged before calling
LNTableCell::GetMergeBoundaries. (SCHN53LJ4F)
- If you use LNDatabase::CreateDocument to create an LNDocument
document in a mail database, using the "Memo" form, the message type
(unexposed in the C++ API) is not properly set. As one result,
failover routing may fail. To work around this problem, use
LNNotesSession::CreateMailMessage and LNMailMessage instead.
(SBON56NLW3)
- Calling LNNote::GetSigner on a signed mail message may cause a
"Document has been modified or corrupted since signed" error.
(NSCZ4VMBED)
- AIX users may receive the following error when running C++ API
applications with Domino 5.0.9 or later:
The process [API application name] is unable to map the required
amount of shared memory. Please refer to the documentation to
correct this.
If you see this error, run the the Domino "dataseg" utility,
located in the Domino executable directory. This utility examines
your API applications and makes shared memory recommendations or
changes shared memory allocations as you specify. Use the
following syntax:
dataseg -s [executable]
This command changes the shared memory to the amount used by
Domino. To check and change shared memory for all API applications,
use the following syntax:
dataseg -s *
You can also supply a list of applications to check and change.
This utility affects only the data segment, and only in 32-bit AIX
executables. For more information about the shared memory error
and the dataseg utility, see the Release Notes: Domino/Notes
database included in your Domino or Notes installation.
- Calling LNLayout::CreateLayoutGraphicButton to create a graphic
button based on a text hotspot results in a very small button.
(PNOT5ZCJA2)
------------------
3. RESOLVED ISSUES
------------------
The following customer-reported problems have been resolved
in release 7.0 of the toolkit:
- You can now successfully call LNScriptLibrary::Save to save changes
to an existing script library. (SBON5WPQ24)
- Saving a document with invalid rich text (in the reported case,
rich text that contains the start records for a hotspot popup, but
not the end records) no longer causes a crash. (SBON65954R)
- The C++ API now properly copies all needed paragraph definitions
when copying a table. (SBON5WNSNT)
- We have resolved a problem which prevented HideIf formulas from
being removed in some circumstances. (SBON5XUK35)
- We have resolved a problem that resulted in an "Unable to perform
operation due to unopened note" error when copying a script
library. (SSAA5WRPEA)
- LNViewFolder::Open error in 3.0e toolkit if view column uses
nonstandard font is resolved.(JHER6BNQCW)
- Domino 6: Need to support extended event records is resolved(SBON5SJJMG)
- C++ API Toolkit 2.2 problem with attachments and Append method of
LNRichText class is resolved.(WMUH5SSSYD)
- saving the form resets "allow multiple values" for Dialog lists fields
problem is resolved.(PNOT5T6LVE)
- LNLayoutGraphicButton - Creates a button that is about a pixel in size
when based on a text hotspot issue is resolved.(PNOT5ZCJA2)
- Problems with inserting Layout elements if the cursor isn't positioned
correctly issue is resolved.(PNOT5ZJKQW)
- LNLayout::CreateLayoutField - Combo or List box will be created instead
of check box in a given scenario issue is resolved.(PNOT5ZKQ7J)
- sample frameset not setting FrameSize correctly issue is resolved.(SCHN5Z5T46)
- Text created with CreateLayoutText doesn't set the Text Transparent Background
to True issue is resolved.(SCHN5ZCSB4)
- C++ api may try to write >40k blocks of data with beta version of Domino 7
issue is resolved.(SCHN65QS7M)
- LNLayoutGraphic and LNLayoutGraphicButton aren't really centered issue is
resolved.(SCHN5ZEJAP)
- Need to provide API controls for right-to-left text issue is resolved.(SBON5ZALPF)
The following customer-reported problems have been resolved
in this release of the toolkit (7.0a):
- Calling GetCDRecords method of LNRTObject will cause exception of data
corruption. (DWUU6HS9UN)
- We have fixed a problem that LNRichText::HasAttachments returns
"No Match Found" for encrypted documents. (PCHE6VAJ82)
- C++ API cannot access multiple $FILE items in encrypted MIME notes.
(MDLS6X5KL8)
- C ++ api GetItemValue reports Out of Private Handles on documents with
big size. (WSCN6VDTTQ)
- C++ API parser incorrectly handles graphics with incomplete begin/end records.
(SBON6TNJPN)
- LNRichText::HasAttachment() throws Unexpected Exception on some documents who
use non-standard fonts. (PCHE6X6NLV)
- LNNote::DeleteAllItems returns "Note Item Not Found" when documents include OLE
object. (PCHE6WVSEV)
- We have fixed a problem that memory leak since release 3.0b. (XZWG6T85RX)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -