Outlookin Opensharedimitem-menetelmä sisältää tiedosto kahvojen allekirjoitetut. msg-tiedostot

Alkuperäinen tietämys kannan numero:   2633737

Oireet

OpenSharedItemMicrosoft Outlookin objekti mallin menetelmä ei vapauta. MSG-tiedoston tiedosto kahvojen, ennen kuin Outlook hankkii käyttämättömän ajan.

Syy

Tämä ongelma ilmenee, jos. msg-tiedosto on allekirjoitettu tai salattu (SMIME-pohjaiset viestit). Se rajoittaa sitä, miten Outlook hallitsee sisäisen SMIME-pohjaisten. msg-tiedostojen käsittely-ja tiedosto kahvoja. Outlook tekee viestin allekirjoituksen taustan tarkistuksen ja vapauttaa tiedosto kahvojen. msg-tiedostoon, kun Outlook hankkii käyttämättömän ajan. . Msg-tiedosto voidaan poistaa vain, kun Outlook on suorittanut kaikki tarvittavat käsittelyt ja julkaissut tiedosto kahvojen.

Voit viivyttää tiedoston poistamis yritystä, vaikka ei ole suoraa tapaa selvittää, milloin Outlook julkaisee tiedoston lukituksen.

Ratkaisu

Tätä toimintoa ei ole tarkoitus muuttaa.

Lisätietoja

Office Outlook 2007 ja Outlook 2010 mahdollistavat OpenSharedItem iCalendar (. ICS)-tapaamis tiedostojen, vCard-tiedostojen (. vcf) ja Outlook Message (. msg)-tiedostojen avaamisen tavan. Tämän menetelmän palauttama objekti laji määräytyy sen mukaan, millaista jaettua kohdetta on avattu.

Seuraavassa Microsoft Visual Basic for Applications (VBA)-sovelluksen esimerkissä koodi avaa SignedMessage. MSG-tiedoston OpenSharedItem menetelmän avulla. Koodi yrittää sitten poistaa. MSG-tiedoston sen jälkeen, kun se sulki Sähkö posti viestin. Jos. msg-tiedosto on allekirjoitettu tai salattu, koodi aiheuttaa käyttö estetty -virheen. Jos allekirjoittamaton tai ei-salattu. msg-tiedosto avataan, koodi poistaa. MSG-tiedoston oikein.

Public Sub TestOpenSharedItem()
    Dim oNamespace As Outlook.NameSpace
    Dim oSharedItem As Outlook.MailItem
    Dim oFolder As Outlook.Folder
    On Error GoTo ErrRoutine

    ' Get a reference to a NameSpace object.
    Set oNamespace = Application.GetNamespace("MAPI")'Open the Signed Message (.msg) file containing the shared item.
    Set oSharedItem = oNamespace.OpenSharedItem("C:\Temp\SignedMessage.msg")'Open the Regular Message (.msg) file containing the shared item.
    'Set oSharedItem = oNamespace.OpenSharedItem("C:\Temp\RegularMessage.msg")

    oSharedItem.Close (olDiscard)
    Set oSharedItem = Nothing

    'Add a reference to Microsoft Scripting Runtime
    Dim oFSO As New FileSystemObject

    ' Try to delete the Signed Message
    oFSO.DeleteFile ("C:\Temp\SignedMessage.msg")'Try to delete the Regular Message
    'oFSO.DeleteFile ("C:\Temp\RegularMessage.msg")

EndRoutine:
    On Error GoTo 0
    Set oSharedItem = Nothing
    Set oFSO = Nothing
    Set oNamespace = Nothing
Exit Sub
ErrRoutine:
Select Case Err.Number
    Case -2147024894 ' &H80070002
        ' Occurs if the specified file or URL could not
        ' be found, or the file or URL cannot be
        ' processed by the OpenSharedItem method.
        MsgBox Err.Description, _
        vbOKOnly, _
        Err.Number & " - " & Err.Source
    Case Else
        ' Any other error that may occur.
        MsgBox Err.Description, _
        vbOKOnly, _
        Err.Number & " - " & Err.Source
End Select
GoTo EndRoutine
End Sub