void InternalPokeData(object form, string itemName, string strData) { Connection conn; if (m_connections.TryGetValue(form, out conn)) { IntPtr hszItem = DDEML.DdeCreateStringHandle(m_idInst, itemName, DDEML.CP_WINANSI); byte [] data = Encoding.GetBytes(strData); IntPtr hszDat = DDEML.DdeCreateDataHandle(m_idInst, data, data.Length, 0, hszItem, DDEML.CF_TEXT, 0); uint returnFlags = 0; DDEML.DdeClientTransaction(hszDat, -1, conn.Conv, hszItem, DDEML.CF_TEXT, DDEML.XTYP_POKE, Timeout.Infinite, ref returnFlags); DDEML.DdeFreeStringHandle(m_idInst, hszItem); } }
void InternalExecuteMacro(object form, string strText) { Connection conn; if (m_connections.TryGetValue(form, out conn)) { uint idErr = 0; byte[] data = Encoding.GetBytes(strText); IntPtr hszDat = DDEML.DdeCreateDataHandle(m_idInst, data, data.Length, 0, IntPtr.Zero, DDEML.CF_TEXT, 0); if (hszDat == IntPtr.Zero) { idErr = DDEML.DdeGetLastError(m_idInst); } uint returnFlags = 0; DDEML.DdeClientTransaction(hszDat, -1, conn.Conv, IntPtr.Zero, DDEML.CF_TEXT, DDEML.XTYP_EXECUTE, Timeout.Infinite, ref returnFlags); } }