/****************************************************************** * WDML_ClientQueueExecute * * */ static WDML_XACT* WDML_ClientQueueExecute(WDML_CONV* pConv, LPCVOID pData, DWORD cbData) { WDML_XACT* pXAct; TRACE("XTYP_EXECUTE transaction\n"); pXAct = WDML_AllocTransaction(pConv->instance, WM_DDE_EXECUTE, 0, 0); if (!pXAct) return NULL; if (cbData == (DWORD)-1) { HDDEDATA hDdeData = (HDDEDATA)pData; pData = DdeAccessData(hDdeData, &cbData); if (pData) { pXAct->hMem = WDML_BuildExecuteCommand(pConv, pData, cbData); DdeUnaccessData(hDdeData); } } else { pXAct->hMem = WDML_BuildExecuteCommand(pConv, pData, cbData); } pXAct->lParam = (LPARAM)pXAct->hMem; return pXAct; }
/****************************************************************** * WDML_ClientQueueExecute * * */ static WDML_XACT* WDML_ClientQueueExecute(WDML_CONV* pConv, LPVOID pData, DWORD cbData) { WDML_XACT* pXAct; TRACE("XTYP_EXECUTE transaction\n"); if (pData == NULL) { if (cbData == (DWORD)-1) pConv->instance->lastError = DMLERR_INVALIDPARAMETER; else pConv->instance->lastError = DMLERR_MEMORY_ERROR; return NULL; } pXAct = WDML_AllocTransaction(pConv->instance, WM_DDE_EXECUTE, 0, 0); if (!pXAct) return NULL; if (cbData == (DWORD)-1) { HDDEDATA hDdeData = pData; pData = DdeAccessData(hDdeData, &cbData); if (pData) { pXAct->hMem = WDML_BuildExecuteCommand(pConv, pData, cbData); DdeUnaccessData(hDdeData); } } else { pXAct->hMem = WDML_BuildExecuteCommand(pConv, pData, cbData); } pXAct->lParam = (LPARAM)pXAct->hMem; return pXAct; }