Informações para programadores 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 de Artigos Traduções de Artigos
Artigo: 899919 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

INTRODUÇÃO

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

O novo design não tem um efeito visível sobre os utilizadores finais. No entanto, o novo design pode afectar soluções personalizadas que integram com as funcionalidades de calendário do Outlook. Este artigo descreve o novo design para que os programadores de soluções personalizadas podem actualizar essas soluções sempre que tal for necessário.

O novo design funciona da seguinte forma. Quando um utilizador aceita ou em modo de tentativa aceita uma reunião, de um pedido de reunião ou de um item de calendário, o item de calendário existente é eliminado do calendário. Além disso, é criado um duplicado do item de calendário para o item eliminado. Por conseguinte, o novo item de calendário tem um ID de entrada que seja diferente do ID da entrada do item de calendário antigos.

Soluções personalizadas podem ser afectadas negativamente se foram concebidos de forma a pressupõe que um ID de entrada para um item de calendário permanece consistente ou só raramente é alterado.

Por predefinição, este nova comportamento de aceitação da reunião está activada no Outlook 2003 SP2 e versões posteriores. No entanto, o comportamento pode ser desactivado ou reactivado utilizando os seguintes dados de registo no cliente Outlook:
Chave: HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\Options\Calendar
DWORD: DisableMeetingRegeneration
Valores: 1 = reverter para a pré-SP2 comportamento; 0 = utilizar o SP2 novo comportamento
Nota Sem estes dados de registo, o Outlook 2003 utilizará a predefinição SP2 ou posterior service pack comportamento.

No Outlook 2007, esta chave de registo está disponível nas ferramentas de implementação do Office. Para obter mais informações, consulte a documentação de implementação. Para o fazer, visite o seguinte Web site da Microsoft:
http://office.microsoft.com

Mais Informação

Informações gerais sobre IDs de acesso baseado em MAPI

Quando o Outlook guarda um item numa pasta, o produto é atribuído um valor de ID da entrada pela loja na qual o item reside. São exemplos de arquivos de caixa de correio do Microsoft Exchange Server, o arquivo de pastas públicas do Exchange Server e um ficheiro de pastas pessoais (.pst).

ID de entrada são garantidos que ser exclusivo no âmbito de um arquivo. No entanto, pode alterar IDs de acesso em determinados cenários. Estas situações incluem quando um item é movido para uma pasta diferente ou para uma loja diferente. Também podem alterar IDs de entrada quando um utilizador efectua determinadas funções no Outlook. Estas funções incluem exportar e, em seguida, reimporting dados. À 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 um ID de entrada podem alterar.

Para obter mais informações sobre IDs de acesso, visite o seguinte site da Web MSDN:
http://msdn2.microsoft.com/en-us/library/ms531268.aspx
Existem diversas APIs que suportem a trabalhar com IDs de acesso. Estas APIs incluem o Extended MAPI, a biblioteca de objectos do CDO 1.21 e a biblioteca de objectos do Outlook.

Como esta nova concepção poderá afectar soluções

Algumas soluções que integram com o Outlook manter um registo dos dados Outlook numa base de dados externa. Outras soluções podem utilizar formulários personalizados do Outlook para armazenar o ID de entrada de um item como um campo de outro item para fornecer funcionalidades de ligação. Nestes cenários, pode utilizar abordagens, tais como o método GetItemFromID na biblioteca de objectos do Outlook para aceder directamente a um item com base no respectivo ID de entrada.

No entanto, utilizando um ID de entrada para localizar um item poderá tornar-se pouco fiável depois do SP2 ou um service pack posterior está instalado. Por conseguinte, tem as seguintes opções:
  1. Actualize o código para compensar o facto de que irá alterar o ID de entrada de um item de calendário.
  2. Utilizar o ID de objecto global. Este é um identificador que permanecem as mesmas em toda a duração do item de calendário.
Como programador, deverá tomar esta nova concepção no comportamento do Outlook em consideração quando conceber ou actualiza uma solução personalizada que integra com o calendário do Outlook.

ID do objecto global

O ID de objecto global é uma propriedade MAPI que o Outlook utiliza para actualizações de reuniões de correspondência e respostas com uma determinada reunião no calendário. O ID de objecto global é o mesmo em todas as cópias do item de calendário. No Microsoft Office Outlook 2003 Service Pack 1 (SP1) e em versões anteriores, o ID de objecto global é gerado quando um organizador envia primeiro um pedido de reunião. Por conseguinte, estas versões anteriores do Outlook não geram um ID de objecto global para reuniões não enviados ou para os compromissos que têm sem destinatários.

No Outlook 2003 SP2 ou em versões posteriores do Office, o ID de objecto global é gerado quando um utilizador guardar primeiro um item de calendário, independentemente de se for enviada. Assim, partir do Outlook 2003 SP2 ou um service pack posterior, todos os compromissos serão têm um ID de objecto global, independentemente de estarem reuniões a que outros utilizadores tenham sido convidados.

Para aceder programaticamente o ID de objecto global, utilize as informações que se seguem.
Property Set Tag (Namespace)
GUID = {6ED8DA90-450B-101B-98DA-00AA003F1305}
Named Property ID: 3

Outlook O objecto de biblioteca não tiver sido actualizada para expor esta propriedade. Os exemplos que se seguem são exemplos de código que ilustram como acessar o ID do objecto global sobre um item de compromisso utilizando o Extended MAPI (requer C++) ou biblioteca de objectos do CDO 1.21.

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
Expandidos MAPI
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);

Dados específicos sobre a biblioteca de objectos do CDO 1.21

Biblioteca de objectos 1.21 do CDO foi actualizada para processar compromissos com base nesta nova concepção. A alteração de concepção é incluída no CDO.dll lado do servidor que está incluída no Exchange Server 2003 SP2. Versão da CDO.dll lado do cliente é instalada pelo Outlook ou pelo Microsoft Office. A versão de cliente primeira para incluir esta alteração é o CDO.dll instalado pelo Microsoft Office 2003 SP2.

Dados específicos sobre a biblioteca de objectos CDOEX

Biblioteca de objectos CDOEX foi actualizada para processar novos compromissos com base nesta nova concepção. CDOEX pode ser utilizado apenas num servidor do Exchange. Além disso, o CDOEX.dll actualizado está incluído no Exchange Server 2003 SP2.

Dados específicos sobre a biblioteca de objectos do Outlook

A biblioteca de objectos do Outlook fornece a funcionalidade nova, iniciar no Office Outlook 2003 SP2 ou posterior. Esta alteração também está incluída em versões posteriores do Outlook.

Dados específicos sobre o Extended MAPI

Embora seja possível aceder a IDs de acesso utilizando o Extended MAPI, utilizar o Extended MAPI para trabalhar com compromissos não é suportada. Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft:
266353O Outlook com o nome propriedades não são suportadas pelo MAPI ou CDO

Propriedades

Artigo: 899919 - Última revisão: 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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