DDEML Client side - DDERequest

Hi All,

I have buit a very small DDEML client software that connects to a trading platform and retrieve foreign exchange prices.

I had to select between the hot link mode and the other mode (basically cold link), since the most documented way was the "cold link" solution it took me a few days to set up the client that way.

Now, I have something basically like:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

void DDERequest(DWORD idInst, HCONV hConv, char* szItem, char* sDesc)
{
    HSZ hszItem = DdeCreateStringHandle(idInst, szItem, 0);
    HDDEDATA hData = DdeClientTransaction(NULL,0,hConv,hszItem,CF_TEXT, XTYP_REQUEST,5000, NULL);    
    DdeGetData(hData, (unsigned char *)szResult, 255, 0);   
}  

int main(int argc, char* argv[])
{   

//DDE Initialization

//Start DDE Server and wait for it to become idle

//DDE Connect to Server using given AppName and topic.

for (int x=0; x<15000; x++)
     {
      DDERequest(idInst, hConv, szItem1, szDesc1); 
      //---do something with szResult
     Sleep(100);
      }

    return 0;
}


Now all is working fine, HOWEVER, after reaching x=8200, the flow of data I receive is not anymore what is displayed on the trading software. In other terms, when x>8199 the DDERequest is not giving me anymore the expected results.

I checked its not a cpu or memory issue.

I was wondering if the DDEML protocol has a hardcoded limit for 8199 requests maximum, or maybe the server side does ?

Any thoughts would be helpful.

Thanks and regards,

Wissam
Last edited on
Topic archived. No new replies allowed.