Informações de desenvolvedor sobre as alterações de calendário no Outlook 2003 Service Pack 2, no Exchange Server 2003 Service Pack 2 e em versões posteriores do Exchange Server e do Outlook

Traduções deste artigo Traduções deste artigo
ID do artigo: 899919 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

INTRODUÇÃO

Este artigo descreve uma alteração em como o Microsoft Office Outlook 2003 Service Pack 2 (SP2) e service packs mais recentes, Microsoft Exchange Server 2003 Service Pack 2 (SP2) e versões posteriores do Exchange Server e do Outlook tratar reuniões. Esse novo design endereços reunião desaparecendo cenários que foram introduzidos pelo Outlook 2003 no modo de cache.

O novo design não tem um efeito visível sobre os usuários finais. No entanto, o novo design pode afetar soluções personalizadas que se integram os recursos de calendário no Outlook. Este artigo descreve o novo design para que os desenvolvedores de soluções personalizadas possam atualizar essas soluções se for necessário.

O novo design funciona da seguinte maneira. Quando um usuário aceita ou aceita provisoriamente uma reunião, a partir de uma solicitação de reunião ou de um item de calendário, o item de calendário existente é excluído do calendário. Além disso, uma duplicata do item de calendário é criada para o item excluído. Portanto, o novo item de calendário tem uma identificação de entrada diferente da ID de entrada do item de calendário antigo.

Soluções personalizadas podem ser afetadas negativamente se eles são criados de forma que presume que uma identificação de entrada para um item de calendário permanece consistente ou altera apenas raramente.

Por padrão, esse novo comportamento de aceitação da reunião está ativada no Outlook 2003 SP2 e posterior. No entanto, o comportamento pode ser desativado ou reabilitado usando os seguintes dados do registro no cliente Outlook:
Chave: HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\Options\Calendar
DWORD: DisableMeetingRegeneration
Valores: 1 = Reverter para anteriores ao SP2 comportamento; 0 = usar o SP2 novo comportamento
Observação: Sem esses dados do registro, o Outlook 2003 usa padrão SP2 ou posterior comportamento de pacote de serviço.

No Outlook 2007, essa chave do registro está disponível em ferramentas de implantação do Office. Para obter mais informações, consulte a documentação de implantação. Para fazer isso, visite o seguinte site da Microsoft:
http://office.microsoft.com

Mais Informações

Plano de fundo no código de entrada com base em MAPI

Quando o Outlook salva um item em uma pasta, o item é atribuído um valor de identificação de entrada pela loja na qual reside o item. São exemplos de armazenamentos de caixa de correio do Microsoft Exchange Server, o armazenamento de pasta pública do Exchange Server e um arquivo de pastas particulares (.pst).

Identificações de entrada são garantidas como exclusivas em um armazenamento. No entanto, pode alterar código de entrada em alguns cenários. Esses cenários incluem quando um item é movido para uma pasta diferente ou para um armazenamento de diferente. Identificações de entrada também podem alterar quando um usuário executa determinadas funções no Outlook. Essas funções incluem exportar e, em seguida, reimportando dados. A nova abordagem ao processamento de itens no Outlook 2003 SP2 do calendário e service packs posteriores e no Exchange Server 2003 SP2 é outro exemplo de quando uma identificação de entrada pode alterar.

Para obter mais informações sobre o código de entrada, visite o seguinte site da MSDN:
http://msdn2.microsoft.com/en-us/library/ms531268.aspx
Há diversas APIs que oferecem suporte à trabalhando com código de entrada. Essas APIs incluem MAPI estendido, a biblioteca de objeto CDO 1.21 e biblioteca de objetos do Outlook.

Como esse novo design pode afetar soluções

Algumas soluções que integram com o Outlook mantenha registro de dados do Outlook em um banco de dados externo. Outras soluções podem usar formulários personalizados do Outlook para armazenar a identificação de entrada de um item como um campo em outro item para fornecer funcionalidade de vinculação. Nessas situações, você pode usar abordagens, como o método GetItemFromID na biblioteca de objetos do Outlook para acessar diretamente um item com base em sua identificação de entrada.

No entanto, usando uma ID de entrada para localizar um item pode se tornar não-confiável depois do SP2 ou um service pack mais recente está instalado. Portanto, você tem as seguintes opções:
  1. Atualize o código para o fato de que a identificação de entrada para um item de calendário será alterado.
  2. Usar a identificação de objeto global. Este é um identificador permanece o mesmo em todo o ciclo de vida do item de calendário.
Como desenvolvedor, você deve levar este novo projeto no comportamento do Outlook em conta ao criar ou atualizar uma solução personalizada que integra com o calendário do Outlook.

ID do objeto global

A identificação de objeto global é uma propriedade MAPI que o Outlook utiliza para atualizações de correspondência de reunião e respostas com uma determinada reunião no calendário. A identificação de objeto global é a mesma em todas as cópias do item de calendário. No Microsoft Office Outlook 2003 Service Pack 1 (SP1) e em versões anteriores, a identificação de objeto global é gerada quando um organizador envia uma solicitação de reunião pela primeira vez. Portanto, essas versões anteriores do Outlook não geram uma identificação de objeto global para não enviadas reuniões ou compromissos que têm sem destinatários.

No Outlook 2003 SP2 ou em versões posteriores do Office, a identificação de objeto global é gerada quando um usuário salva pela primeira vez um item de calendário, independentemente de ele é enviado. Portanto, a partir do Outlook 2003 SP2 ou um service pack mais recente, todos os compromissos terá uma identificação de objeto global, independentemente de eles serem reuniões ao qual outros usuários foi convidados.

Para acessar programaticamente o ID do objeto global, use as seguintes informações.
Property Set Tag (Namespace)
GUID = {6ED8DA90-450B-101B-98DA-00AA003F1305}
Named Property ID: 3

biblioteca de objetos O Outlook não foi atualizada para expor essa propriedade. Os exemplos a seguir são exemplos de código que indicam como acessar o ID de objeto global em um item de compromisso usando o CDO 1.21 biblioteca de objetos ou MAPI estendido (requer o C++).

CDO 1.21
'Note that you must add a reference to ?Microsoft CDO 1.21 Library?  (CDO.DLL) to run this code
Dim objCDO As MAPI.Session
Dim objAppt As MAPI.Message
Dim oAppt As Outlook.AppointmentItem
Dim objFields As MAPI.Fields
Dim Value

Dim propSet As String

Set objCDO = CreateObject("MAPI.Session")
objCDO.Logon "", "", False, False

'Assumes that active inspector is a calendar item
Set oAppt = objCDO.GetDefaultFolder(0).Messages.GetFirst()

'Use EntryID to get CDO Message
Set objAppt = objCDO.GetMessage(oAppt.EntryID)

'http://support.microsoft.com/?kbid=195656 says to swap around the GUID
'propSet = "6ED8DA90450B101B98DA00AA003F1305" '<-GUID we think we should be using
propSet = "90DAD86E0B451B1098DA00AA003F1305" '<-GUID that will really work

Set objFields = objAppt.Fields
Value = objFields.Item("0x0003", propSet).Value

MsgBox Value
MAPI estendido
DEFINE_GUID(PSETID_Meeting, 
   0x6ED8DA90,0x450B,0x101B,0x98,0xDA,0x00,0xAA,0x00,0x3F,0x13,0x05); 
#define LID_GLOBAL_OBJID 3 

// This code assumes that lpMsg is an LPMESSAGE 
HRESULT hr = S_OK; 
ULONG ulVal = 0; 
LPSPropValue lpPropVal = NULL; 
LPSPropTagArray lpNamedPropTag = NULL; 

MAPINAMEID NamedID = {0}; 
LPMAPINAMEID lpNamedID = NULL; 

// Set up the request to GetIDsFromNames. 
NamedID.lpguid = (LPGUID) &PSETID_Meeting; 
NamedID.ulKind = MNID_ID; 
NamedID.Kind.lID = LID_GLOBAL_OBJID; 
lpNamedID = &NamedID; 

// Find the prop tag 
hr = lpMsg->GetIDsFromNames(1, &lpNamedID, NULL, &lpNamedPropTag); 

// Set our type to binary 
lpNamedPropTag->aulPropTag[0] = 
   CHANGE_PROP_TYPE(lpNamedPropTag->aulPropTag[0],PT_BINARY); 

// Get the value of the property. 
hr = lpMsg->GetProps(lpNamedPropTag ,0, &ulVal, &lpPropVal); 

// Do something with the ID here 

// Cleanup 
MAPIFreeBuffer(lpPropVal); 
MAPIFreeBuffer(lpNamedPropTag);

Informações específicas sobre a biblioteca de objeto CDO 1.21

Biblioteca de objetos do CDO 1.21 foi atualizada para processar compromissos com base neste novo projeto. A alteração de design está incluída no CDO.dll servidor inclusa no Exchange Server 2003 SP2. Versão do CDO.dll no lado do cliente é instalada pelo Outlook ou Microsoft Office. A primeira versão de cliente para incluir essa alteração é CDO.dll instalado pelo Microsoft Office 2003 SP2.

Informações específicas sobre a biblioteca de objetos CDOEX

A biblioteca de objetos CDOEX foi atualizada para processar novos compromissos com base neste novo projeto. CDOEX pode ser usado somente em um servidor Exchange. Além disso, o CDOEX.dll atualizado é incluído no Exchange Server 2003 SP2.

Informações específicas sobre a biblioteca de objetos do Outlook

Biblioteca de objetos do Outlook fornece a funcionalidade nova, iniciando com o Office Outlook 2003 SP2 ou posterior. Essa alteração também é incluída em versões posteriores do Outlook.

Informações específicas sobre MAPI estendido

Embora você possa acessar o código de entrada usando MAPI estendido, usando MAPI estendido para trabalhar com compromissos não tem suporte. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
266353O Outlook propriedades nomeado não são suportados pelo MAPI ou CDO

Propriedades

ID do artigo: 899919 - Última revisão: quinta-feira, 25 de outubro de 2007 - Revisão: 6.4
A informação contida neste artigo aplica-se a:
  • Microsoft Office Outlook 2007
  • Microsoft Exchange Server 2007 Standard Edition
  • Microsoft Exchange Server 2007 Enterprise Edition
  • Microsoft Office Outlook 2003
  • Microsoft Exchange Server 2003 Enterprise Edition
  • Microsoft Exchange Server 2003 Standard Edition
Palavras-chave: 
kbmt kbinfo KB899919 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 899919

Submeter comentários

 

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