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 |
---|---|
|
A reconciliação foi concluída com êxito e as alterações devem ser propagadas para os outros objetos. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
A reconciliação não pode ser realizada porque as versões de documento fornecidas são muito diferentes. |
|
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 . |
|
O objeto é um objeto incorporado OLE que deve ser executado antes que essa operação possa ser executada. O estado do objeto é inalterado. |
|
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) |