HRESULT ITransactionResourceAsync::PrepareRequest(BOOL fRetaining, DWORD grfRM, BOOL fWantMoniker, BOOL fSinglePhase);
Si fSinglePhase a pour valeur Vrai alors la validation doit s'effectuer dans la foulée de la préparation.
Le gestionnaire de ressources doit appeler ITransactionEnlistmentAsync::AbortRequestDone pour signifier au moniteur transactionnel que le traitement est terminé.
Le résultat est S_OK en cas de succès.
#include <transact.h>
#include <txdtc.h>
#include <xolehlp.h>
static ITransactionResourceAsync *pITransactionResourceAsync;
static XACTUOW Uow;
...
if (pITransactionResourceAsync->PrepareRequest(FALSE, 0, FALSE, FALSE)!=S_OK)
{
...
}
...
if (pITransactionResourceAsync->CommitRequest(0, &Uow)!=S_OK)
{
...
}
...
if (pITransactionResourceAsync->AbortRequest(NULL, FALSE, &Uow)!=S_OK)
{
...
}
...