Microsoft KB Archive/172038: Difference between revisions
(importing KB archive) |
m (Text replacement - "&" to "&") |
||
(2 intermediate revisions by the same user not shown) | |||
Line 55: | Line 55: | ||
<div class="indent"> | <div class="indent"> | ||
[[File: | [[File:download.gif|[GRAPHIC: Download]]][http://download.microsoft.com/download/mapi/utility/11/w9xnt4/en-us/mapirtf.exe Download the Mapirtf.exe package now.] | ||
Line 85: | Line 85: | ||
for the ulFlags parameter. | for the ulFlags parameter. | ||
hr = RTFSync(lpMsg, RTF_SYNC_BODY_CHANGED | RTF_SYNC_RTF_CHANGED, & | hr = RTFSync(lpMsg, RTF_SYNC_BODY_CHANGED | RTF_SYNC_RTF_CHANGED, &fUpdated); | ||
Files | Files | ||
Line 109: | Line 109: | ||
version) contain the following functions: | version) contain the following functions: | ||
- | - "Writertf" writes RTF-formatted text to a message created by | ||
Active Messaging, when passed the profile name, entry ID of | Active Messaging, when passed the profile name, entry ID of | ||
the message, entry ID of the message store, and the RTF text. | the message, entry ID of the message store, and the RTF text. | ||
- | - "Readrtf" reads RTF-formatted text from a message when passed | ||
the profile name, entry ID of the message, entry ID of the | the profile name, entry ID of the message, entry ID of the | ||
message store, and a string variable to which to store the text. | message store, and a string variable to which to store the text. | ||
Line 128: | Line 128: | ||
' For the Debug version of the DLL, remark the following lines | ' For the Debug version of the DLL, remark the following lines | ||
Public Declare Function writertf _ | Public Declare Function writertf _ | ||
Lib | Lib "mapirtf.dll" _ | ||
(ByVal ProfileName As String, _ | (ByVal ProfileName As String, _ | ||
ByVal MessageID As String, _ | ByVal MessageID As String, _ | ||
Line 137: | Line 137: | ||
Public Declare Function readrtf _ | Public Declare Function readrtf _ | ||
Lib | Lib "mapirtf.dll" _ | ||
(ByVal ProfileName As String, _ | (ByVal ProfileName As String, _ | ||
ByVal SrcMsgID As String, _ | ByVal SrcMsgID As String, _ | ||
Line 147: | Line 147: | ||
' For the Debug version of the DLL, un-remark the following lines | ' For the Debug version of the DLL, un-remark the following lines | ||
'Public Declare Function writertf _ | 'Public Declare Function writertf _ | ||
Lib | Lib "mapirtfd.dll" _ | ||
(ByVal ProfileName As String, _ | (ByVal ProfileName As String, _ | ||
ByVal MessageID As String, _ | ByVal MessageID As String, _ | ||
Line 156: | Line 156: | ||
'Public Declare Function readrtf _ | 'Public Declare Function readrtf _ | ||
Lib | Lib "mapirtfd.dll" _ | ||
(ByVal ProfileName As String, _ | (ByVal ProfileName As String, _ | ||
ByVal SrcMsgID As String, _ | ByVal SrcMsgID As String, _ | ||
Line 179: | Line 179: | ||
Dim bRet As Integer | Dim bRet As Integer | ||
Set objSession = CreateObject( | Set objSession = CreateObject("MAPI.Session") | ||
objSession.Logon | objSession.Logon | ||
Line 191: | Line 191: | ||
If Not bRet = 0 Then | If Not bRet = 0 Then | ||
MsgBox | MsgBox "RTF Not Written Successfully", vbOKOnly, "VBSendRTF Warning" | ||
End If | End If | ||
Line 212: | Line 212: | ||
Dim bRet As Integer | Dim bRet As Integer | ||
Set objSession = CreateObject( | Set objSession = CreateObject("MAPI.Session") | ||
objSession.Logon | objSession.Logon | ||
Line 227: | Line 227: | ||
If Not bRet = 0 Then | If Not bRet = 0 Then | ||
MsgBox | MsgBox "RTF Not Written Successfully" | ||
Else | Else | ||
MsgBox | MsgBox "RTF Text: " & Chr(13) & cRTF | ||
End If | End If | ||
Latest revision as of 12:29, 21 July 2020
Article ID: 172038
Article Last Modified on 8/18/2005
APPLIES TO
- Microsoft Messaging Application Programming Interface
- Microsoft Collaboration Data Objects 1.1
- Microsoft Collaboration Data Objects 1.2
- Microsoft Collaboration Data Objects 1.21
This article was previously published under Q172038
SUMMARY
When writing an Active Messaging client, it would be useful to be able to use rich text formatting (RTF) in the body of the messages that are created. However, the Active Messaging Libraries provide access only to the plain text version of the body of the message, giving no control over the font characteristics of the message body.
This sample contains a DLL with functions that may be called from an Active Messaging client to read and write RTF text of a message.
The following file is available for download from the Microsoft Download Center:
For additional information about how to download Microsoft Support files, click the following article number to view the article in the Microsoft Knowledge Base:
119591 How to obtain Microsoft support files from online services
Microsoft scanned this file for viruses. Microsoft used the most current virus-detection software that was available on the date that the file was posted. The file is stored on security-enhanced servers that help to prevent any unauthorized changes to the file.
MORE INFORMATION
The following are the contents of the Readme.txt file for this sample.
MAPIRTF Sample -------------- This sample illustrates how use Extended MAPI to allow RTF-formatting in a message created by Active Messaging. NOTE: If you are working against Exchange 2000 Server, you need to rebuild Mapirtf.dll using the C++ source Mapirtf.cpp provided in this article. Specifically, we need to call RTFSync with RTF_SYNC_RTF_CHANGED | RTF_SYNC_BODY_CHANGED for the ulFlags parameter. hr = RTFSync(lpMsg, RTF_SYNC_BODY_CHANGED | RTF_SYNC_RTF_CHANGED, &fUpdated); Files ----- The self-extracting executable, Mapirtf.exe, contains the following files: - Readme.txt: Contains information about the sample - Mapirtf.dll: The release version of the DLL - Mapirtfd.dll: The debug version of the DLL - Vbmaprtf.exe: Microsoft Visual Basic Active Messaging client - Vbmaprtf.pdb: Debug symbols for Vbmaprtf.exe - CSource Folder: Contains the source file and Microsoft Visual C++ version 5.0 workspace and project files for Mapirtf(d).dll - VBSource Folder: Contains the Microsoft Visual Basic version 5.0 project, form, and module files for Vbmaprtf.exe General ------- The files Mapirtf.dll (release version) and Mapirtfd.dll (debug version) contain the following functions: - "Writertf" writes RTF-formatted text to a message created by Active Messaging, when passed the profile name, entry ID of the message, entry ID of the message store, and the RTF text. - "Readrtf" reads RTF-formatted text from a message when passed the profile name, entry ID of the message, entry ID of the message store, and a string variable to which to store the text. How to Use ---------- Before use, the DLL files should be placed in the Windows\System directory (for Windows 95) or the Winnt\System32 directory (for Windows NT. In Visual Basic, declare the functions as follows: ' For the Debug version of the DLL, remark the following lines Public Declare Function writertf _ Lib "mapirtf.dll" _ (ByVal ProfileName As String, _ ByVal MessageID As String, _ ByVal StoreID As String, _ ByVal cText As String) _ As Integer Public Declare Function readrtf _ Lib "mapirtf.dll" _ (ByVal ProfileName As String, _ ByVal SrcMsgID As String, _ ByVal SrcStoreID As String, _ ByRef MsgRTF As String) _ As Integer ' For the Debug version of the DLL, un-remark the following lines 'Public Declare Function writertf _ Lib "mapirtfd.dll" _ (ByVal ProfileName As String, _ ByVal MessageID As String, _ ByVal StoreID As String, _ ByVal cText As String) _ As Integer 'Public Declare Function readrtf _ Lib "mapirtfd.dll" _ (ByVal ProfileName As String, _ ByVal SrcMsgID As String, _ ByVal SrcStoreID As String, _ ByRef MsgRTF As String) _ As Integer Sample Code ----------- The following sample code assumes that you have already declared the DLL function as described above. For a more complete example, please see the Visual Basic project accompanying this sample. - WriteRTF Sample. (This code assumes you already have a variable called cRTF defined which contains RTF-formatted text.) Sub SendRTF() Dim objSession, objMessage, objMessageFilter As Object Dim MessageID As String Dim bRet As Integer Set objSession = CreateObject("MAPI.Session") objSession.Logon ' Create a new message Set objMessage = objSession.Outbox.Messages.Add objMessage.Update MessageID = objMessage.ID bRet = WriteRTF(objSession.Name, objMessage.ID, _ objMessage.StoreID, cRTF) If Not bRet = 0 Then MsgBox "RTF Not Written Successfully", vbOKOnly, "VBSendRTF Warning" End If 'Clear our current variable Set objMessage = Nothing ' Get our message Set objMessage = objSession.GetMessage(MessageID) ' Send the Message objMessage.Send ShowDialog:=True objSession.Logoff End Sub - ReadRTF Sample. Sub ReadRTF() Dim objSession, objMessage, objMessageFilter As Object Dim MessageID, cRTF As String Dim bRet As Integer Set objSession = CreateObject("MAPI.Session") objSession.Logon ' Read the first message in the Inbox Set objMessage = objSession.Inbox.Messages(1) objMessage.Update ' to get a permanent Entry ID MessageID = objMessage.ID ' We must initialize the string variable we are passing ' to a string of the maximum length we want to read cRTF = Space(500) bRet = ReadRTF(objSession.Name, objMessage.ID, _ objMessage.StoreID, cRTF) If Not bRet = 0 Then MsgBox "RTF Not Written Successfully" Else MsgBox "RTF Text: " & Chr(13) & cRTF End If Set objMessage = Nothing objSession.Logoff Set objSession = Nothing End Sub
Keywords: kbgraphxlinkcritical kbmsg kbfile kbsample kbfaq kbcode KB172038