DLL para leer y escribir RTF con mensajería activa

Seleccione idioma Seleccione idioma
Id. de artículo: 172038 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Resumen

Al escribir a un cliente de mensajería activa, sería útil para poder utilizar el formato (RTF) de texto enriquecido en el cuerpo de los mensajes que se crean. Sin embargo, las bibliotecas Active Messaging proporciona acceso sólo a la versión de texto sin formato del cuerpo del mensaje, conceda a ningún control sobre las características de fuente del cuerpo del mensaje.

Este ejemplo contiene un archivo DLL con funciones que puede llamarse desde un cliente Active Messaging para leer y escribir texto RTF de un mensaje.

El archivo siguiente está disponible para descargarlo del Centro de descarga de Microsoft:
Contraer esta imagenAmpliar esta imagen
Download
Download the Mapirtf.exe package now.
Para obtener información adicional acerca de cómo descargar los archivos de soporte técnico de Microsoft, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
119591Cómo obtener Archivos de soporte técnico de Microsoft desde los servicios en línea
Microsoft exploró este archivo en busca de virus. con el software de detección de virus más reciente disponible en la fecha de publicación. Asimismo, el archivo se almacenó en servidores seguros que ayudan a impedir la realización de cambios no autorizados.

Más información

Los siguientes son el contenido del archivo Readme.txt para este ejemplo.
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
				

Propiedades

Id. de artículo: 172038 - Última revisión: jueves, 18 de agosto de 2005 - Versión: 6.3
La información de este artículo se refiere a:
  • Microsoft Office Outlook 2007
  • Microsoft Messaging Application Programming Interface
  • Microsoft Collaboration Data Objects 1.1
  • Microsoft Collaboration Data Objects 1.2
  • Microsoft Collaboration Data Objects 1.21
Palabras clave: 
kbmt kbcode kbfaq kbfile kbgraphxlinkcritical kbmsg kbsample KB172038 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 172038

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com