HDDEDATA CALLBACK SleepyApi::Impl::OnDdeCallback(UINT type, UINT fmt, HCONV hconv, HSZ hsz1, HSZ hsz2, HDDEDATA hdata, ULONG_PTR data1, ULONG_PTR data2) { if (!m_instance) return FALSE; if (type==XTYP_REGISTER&&!m_instance->m_conv) { char help[30]; DdeQueryStringA(m_instance->m_appId,hsz1,help,sizeof(help),CP_WINANSI); if (!strcmp(help,"VerySleepyProfilerServer")) { m_instance->TryConnect(); } } if (type==XTYP_UNREGISTER&&m_instance->m_conv) { char help[30]; DdeQueryStringA(m_instance->m_appId,hsz1,help,sizeof(help),CP_WINANSI); if (!strcmp(help,"VerySleepyProfilerServer")) { DdeDisconnect(m_instance->m_conv); m_instance->m_conv=NULL; } } return FALSE; }
HDDEDATA CALLBACK GSviewDdeCallback(UINT type, UINT fmt, HCONV hconv, HSZ hsz1, HSZ hsz2, HDDEDATA hData, DWORD dwData1, DWORD dwData2) { char szBuffer[32]; if (server_enabled) { switch (type) { case XTYP_CONNECT: DdeQueryStringA(idInst, hsz2, (LPSTR)szBuffer, sizeof(szBuffer), 0); if (strcmp(szBuffer, szServiceName) != 0) return FALSE; DdeQueryStringA(idInst, hsz1, (LPSTR)szBuffer, sizeof(szBuffer), 0); if (strcmp(szBuffer, szTopicName) != 0) return FALSE; return (HDDEDATA)TRUE; case XTYP_EXECUTE: dde_server_execute(hData); return (HDDEDATA)DDE_FACK; } } return (HDDEDATA)NULL; }
/***************************************************************** * DdeQueryString (DDEML.23) */ DWORD WINAPI DdeQueryString16(DWORD idInst, HSZ hsz, LPSTR lpsz, DWORD cchMax, INT16 codepage) { return DdeQueryStringA(idInst, hsz, lpsz, cchMax, codepage); }
void gcDDEManager::stringFromAtom(HSZ atom, char* str, size_t size) { char buff[256]; DdeQueryStringA(m_hDDEIdInst, atom, buff, 256, CP_WINANSI); Safe::snprintf(str, size, "%s", buff); }
/* MAKE_EXPORT DdeQueryStringW_new=DdeQueryStringW */ DWORD WINAPI DdeQueryStringW_new(DWORD idInst, HSZ hsz, LPWSTR pszW, DWORD cchMax, int iCodePage) { ALLOC_WtoA(psz); return DdeQueryStringA(idInst, hsz, pszA, cchMax, iCodePage); }