From 8a118c2e0f5f42836e58f0ca6849d9d57ff40d50 Mon Sep 17 00:00:00 2001 From: Vincent Povirk Date: Fri, 20 Oct 2017 14:16:25 -0500 Subject: [PATCH] twain_32: Notify data sources of their assigned Id. Signed-off-by: Vincent Povirk Signed-off-by: Alexandre Julliard --- dlls/twain_32/dsm_ctrl.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/dlls/twain_32/dsm_ctrl.c b/dlls/twain_32/dsm_ctrl.c index 9d67dfb6ff0..b20d55c31ae 100644 --- a/dlls/twain_32/dsm_ctrl.c +++ b/dlls/twain_32/dsm_ctrl.c @@ -242,13 +242,14 @@ TW_UINT16 TWAIN_OpenDS (pTW_IDENTITY pOrigin, TW_MEMREF pData) } newSource->hmod = hmod; newSource->dsEntry = (DSENTRYPROC)GetProcAddress(hmod, "DS_Entry"); + /* Assign id for the opened data source */ + pIdentity->Id = DSM_sourceId ++; if (TWRC_SUCCESS != newSource->dsEntry (pOrigin, DG_CONTROL, DAT_IDENTITY, MSG_OPENDS, pIdentity)) { DSM_twCC = TWCC_OPERATIONERROR; HeapFree(GetProcessHeap(), 0, newSource); + DSM_sourceId--; return TWRC_FAILURE; } - /* Assign name and id for the opened data source */ - pIdentity->Id = DSM_sourceId ++; /* add the data source to an internal active source list */ newSource->next = activeSources; newSource->identity.Id = pIdentity->Id;