Compartilhar via


Método IReconcilableObject::Reconcile (reconcil.h)

Reconcilia o estado de um objeto com um ou mais outros objetos. A reconciliação atualiza o estado interno do objeto mesclando os estados de todos os objetos para formar um estado combinado.

Sintaxe

HRESULT Reconcile(
  IReconcileInitiator *pInitiator,
  DWORD               dwFlags,
  HWND                hwndOwner,
  HWND                hwndProgressFeedback,
  ULONG               ulcInput,
  IMoniker            **rgpmkOtherInput,
  PLONG               plOutIndex,
  IStorage            *pstgNewResidues,
  PVOID               pvReserved
);

Parâmetros

pInitiator

Tipo: IReconcileInitiator*

O endereço da interface IReconcileInitiator para o iniciador do processo de reconciliação. Esse parâmetro não deve ser NULL.

dwFlags

Tipo: DWORD

Os sinalizadores de controle para a reconciliação. Esse parâmetro pode ser zero ou uma combinação desses valores:

RECONCILEF_FEEDBACKWINDOWVALID

O parâmetro hwndProgressFeedback é válido.

RECONCILEF_MAYBOTHERUSER

O reconciliador de maleta pode solicitar a interação do usuário, se necessário. Sem esse valor, a interação do usuário não é permitida. O parâmetro hwndOwner é válido.

RECONCILEF_NORESIDUESOK

O reconciliador de maleta pode ignorar pedidos de resíduos e realizar a reconciliação. Reconciliadores que não dão suporte a resíduos devem marcar para esse valor sempre que um iniciador solicita resíduos. Sem esse valor, um reconciliador que não dá suporte a resíduos deve retornar imediatamente REC_E_NORESIDUES.

RECONCILEF_OMITSELFRESIDUE

O reconciliador de maleta pode descartar qualquer resíduo associado a esse objeto. Os iniciadores normalmente usam esse valor para reconciliações que fazem loop de geração em geração.

RECONCILEF_ONLYYOUWERECHANGED

O método Reconcile está sendo chamado para propagar alterações no objeto alterado para outros objetos inalterados. Esse valor só será definido se a chave a seguir existir no Registro.

HKEY_CLASSES_ROOT
   CLSID
      {CLSID of reconciler}
         SingleChangeHook

Se essa chave não estiver presente no registro, o iniciador realizará a reconciliação tornando os outros objetos inalterados cópias binárias idênticas do objeto alterado. Os monikers rgpmkOtherInput identificam os outros objetos. Esse valor só será definido em dwFlags se RECONCILEF_YOUMAYDOTHEUPDATES também estiver definido. Se o reconciliador de pasta concluir as atualizações em si com êxito, REC_S_IDIDTHEUPDATES deverá ser retornado e a variável apontada pelo parâmetro plOutIndex deverá ser definida como -1L. Observe que S_OK não deve ser retornado com êxito se esse valor for definido em dwFlags. O iniciador não salvará o armazenamento do objeto de origem se Reconcile retornar REC_S_IDIDTHEUPDATES. Se o reconciliador quiser voltar à implementação de cópia de bits do iniciador, ele poderá retornar S_FALSE.

RECONCILEF_RESUMEDRECONCILIATION

O reconciliador de maleta deve retomar a reconciliação, utilizando os resíduos parciais fornecidos. Sem esse valor, o reconciliador deve ignorar qualquer informação "considerada, mas rejeitada" em qualquer uma das versões de entrada.

RECONCILEF_YOUMAYDOTHEUPDATES

O reconciliador de maleta pode executar as atualizações. Sem esse valor, o reconciliador não pode executar as atualizações. Se a reconciliação for concluída com êxito, o reconciliador deverá retornar REC_S_IDIDTHEUPDATES se executou as atualizações ou S_OK se não executou as atualizações.

hwndOwner

Digite: HWND

Um identificador para a janela a ser usada como o pai de qualquer janela filho que o reconciliador de pasta cria. Esse parâmetro só será válido se RECONCILEF_MAYBOTHERUSER for especificado em dwFlags.

hwndProgressFeedback

Digite: HWND

Um identificador para a janela de comentários de progresso a ser exibida pelo iniciador. Esse parâmetro só será válido se RECONCILEF_FEEDBACKWINDOWVALID for especificado em dwFlags. O reconciliador de pasta pode chamar a função SetWindowText usando esse identificador de janela para exibir informações adicionais de reconciliação status para o usuário.

ulcInput

Tipo: ULONG

O número de versões ou resíduos parciais especificados em dwFlags. Esse parâmetro não deve ser zero.

rgpmkOtherInput

Tipo: IMoniker**

O endereço de uma matriz que contém os endereços dos monikers a serem usados para acessar as versões ou resíduos parciais a serem reconciliados.

plOutIndex

Tipo: LONG*

O endereço da variável que recebe um valor de índice que indica se o resultado da reconciliação é idêntico a uma das versões iniciais. A variável será definida como -1L se o resultado da reconciliação for uma combinação de duas ou mais versões. Caso contrário, é um índice baseado em zero, com 0 indicando esse objeto, 1 indicando a primeira versão, 2 indicando a segunda versão e assim por diante.

pstgNewResidues

Tipo: IStorage*

O endereço da interface IStorage usada para armazenar os novos resíduos. Esse parâmetro pode ser NULL para indicar que resíduos não devem ser salvos.

pvReserved

Tipo: void*

Reservados; deve ser NULL.

Valor retornado

Tipo: HRESULT

Retorna um dos valores a seguir.

Código de retorno Descrição
S_OK
A reconciliação foi concluída com êxito e as alterações devem ser propagadas para os outros objetos.
S_FALSE
Nenhuma ação de reconciliação foi executada. O reconciliador de pasta deseja voltar à implementação de cópia de bits do iniciador. Esse valor só poderá ser retornado se RECONCILEF_ONLYYOUWERECHANGED estiver definido em dwFlags.
REC_S_IDIDTHEUPDATES
A reconciliação foi concluída com êxito e todos os objetos envolvidos (o objeto que implementa o método Reconcile e todos os outros objetos descritos por rgpmkOtherInput) foram atualizados adequadamente. Portanto, o iniciador não precisa fazer mais nada para propagar as alterações. A variável apontada por plOutIndex deverá ser definida como -1L se Reconcile retornar esse valor. O iniciador não salvará o armazenamento do objeto de origem se Reconcile retornar esse valor. Esse valor só poderá ser retornado se RECONCILEF_YOUMAYDOTHEUPDATES tiver sido definido em dwFlags.
REC_S_NOTCOMPLETE
O reconciliador de maleta completou alguns, mas não todos, da reconciliação. Pode ser necessário interação do usuário. As alterações não serão propagadas para outros objetos.
REC_S_NOTCOMPLETEBUTPROPAGATE
O reconciliador de maleta completou alguns, mas não todos, da reconciliação. Pode ser necessário interação do usuário. As alterações serão propagadas para os outros objetos.
REC_E_NORESIDUES
O reconciliador de maleta não dá suporte à geração de resíduos, portanto, a solicitação de resíduos é negada. O estado do objeto é inalterado.
REC_E_ABORTED
O reconciliador de pasta interrompeu a reconciliação em resposta a uma solicitação de encerramento do iniciador (consulte SetAbortCallback para obter mais informações). O estado do objeto não é especificado.
REC_E_TOODIFFERENT
A reconciliação não pode ser realizada porque as versões de documento fornecidas são muito diferentes.
REC_E_INEEDTODOTHEUPDATES
O sinalizador RECONCILEF_YOUMAYDOTHEUPDATES não foi definido quando a implementação de Reconciliação do objeto foi chamada; essa implementação requer que esse valor seja definido no parâmetro dwFlags .
OLE_E_NOTRUNNING
O objeto é um objeto incorporado OLE que deve ser executado antes que essa operação possa ser executada. O estado do objeto é inalterado.
E_UNEXPECTED
Erro não especificado.

Requisitos

   
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho reconcil.h
DLL Shell32.dll (versão 4.0 ou posterior)

Confira também

IReconcilableObject