OpenSharedItem metody pro aplikaci Outlook obsahuje popisovač souboru MSG podepsané soubory

Platí pro: Microsoft Office Outlook 2007Microsoft Outlook 2010

Příznaky


OpenSharedItem metoda v objektovém modelu aplikace Microsoft Outlook neuvolní popisovač souboru MSG souboru, dokud aplikace Outlook získává určitou dobu nečinný.

Příčina


K tomuto chování dochází, pokud soubor MSG je podepsán nebo zašifrován (s/MIME na základě zprávy). Jedná se o omezení jak Outlook interně spravuje zpracování a soubor popisovače souborů msg založené na protokolu SMIME. Aplikace Outlook provede ověření podpisu zprávy pozadí a uvolní popisovač souboru pro soubor MSG při Outlook získává určitou dobu nečinný. Msg soubor lze odstranit pouze při aplikaci Outlook dokončí všechny požadované zpracování a vydala popisovač souboru.
Pokus o odstranění souboru, můžete pozdržet sice přímý způsob, jak určit, kdy aplikace Outlook bude uvolnění uzamčení souboru.

Řešení


Nejsou žádné plány, můžete toto chování změnit.

Další informace


Aplikace Microsoft Office Outlook 2007 a Microsoft Outlook 2010 poskytují metodu OpenSharedItem k otevření souborů schůzku ve formátu iCalendar (ICS), soubory ve formátu vCard (VCF) a soubory aplikace Outlook zprávy (MSG). Druh objektu, který je vrácený touto metodou závisí na typu sdílené položce, která je otevřena. V Microsoft Visual Basic for Applications (VBA) aplikace Outlook příkladu, který následuje, kód otevře soubor SignedMessage.msg pomocí metody OpenSharedItem . Kód se poté pokusí odstranit soubor MSG po jeho zavření položky pošty. Je-li podepsán nebo zašifrován soubor MSG kód způsobí chybu "Oprávnění odepřen". Však pokud otevřete soubor MSG nepodepsaný nebo nešifrovaných kód odstraní soubor MSG podle očekávání.
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 = NothingExit SubErrRoutine:    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 EndRoutineEnd Sub