Re: gute Beschreibung zu DdeClientTransaction()
- From: "Steffen Pelzetter" <Steffen Pelzetter@xxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Thu, 7 Apr 2005 04:21:06 -0700
Hallo Martin,
also mein erstes Problem war, dass ich eine asynchrone Transaction
implemetiert habe:
hData=DdeClientTransaction((LPBYTE)hData, 0xFFFFFFFF, hConv, 0L, 0,
XTYP_EXECUTE,TIMEOUT_ASYNC , NULL);
Lt. MSDN sollte hData !=0 sein, wenn die Funktion fehlerfrei ausgeführt wird.
Obwohl ich immer ein valides hData zurück bekam, wurden manche DDE- Befehle
vom Server nicht ausgeführt. Es liegt dabei nicht an den DDE- Befehlen
ansich, die werden zyklisch wiederholt und funktionieren auch.
Ich dachte mir dann, dass ich durch die asynchrone Übertragung den Server
evtl. zuviele Befehle hintereinander sende (da die Funktion sofort returned)
und wollte auf die synchrone Übertragung umsteigen.
Leider bekomme ich bei:
hData=DdeClientTransaction((LPBYTE)hData, 0xFFFFFFFF, hConv, 0L, 0,
XTYP_EXECUTE,10000 , NULL);
ein DMLERR_INVALIDPARAMETER.
Ich möchte eigentlich nur garantiert wissen, dass der DDE- Server meinen
Befehl ordnungsgemäß ausgeführt hat und dann (möglichst sequenziell) den
nächsten senden.
Im asynchronen Modus sieht es so aus als werden die Befehle in einer Queue
abgelegt und nacheinander vom Server ausgeführt.
Leider scheint die synchrone Übertragung von meinem Server nicht
unterstützt zu werden.
Steffen.
"Martin Richter [MVP]" schrieb:
> Hallo Steffen!
>
> > Mit dem Befehl DdeClientTransaction möchte ich einen Befehl zum Server
> > absetzen. Dies funktioniert eigentlich auch fast immer korrekt. Nur manchmal
> > scheint der Server den Befehl nicht zu erhalten, jedenfalls wird die
> > Anforderung nicht ausgeführt. Ich muß jedoch sicherstellen, dass der Server
> > alle Befehle verarbeitet ... ggf. würde ich ein resend durchführen.
>
> Ganz verstehe ich Dein Problem nicht!
>
> [snip]
> > --> Wie stelle ich fest ob der Timeout abgelaufen ist?
>
> Weil DdeClientTransaction dann einen Fehler liefert!
>
> > --> Wie stelle ich fest ob der Befehl korrekt ausgeführt wurde?
>
> Am Return Code des DdeClientTransaction normalerweise DMLERR_NO_ERROR.
> --
> Martin Richter [MVP] WWJD
> "In C we had to code our own bugs. In C++ we can inherit them."
> FAQ : http://www.mpdvc.de
> Samples: http://www.codeguru.com http://www.codeproject.com
>
.
- Follow-Ups:
- Re: gute Beschreibung zu DdeClientTransaction()
- From: Martin Richter [MVP]
- Re: gute Beschreibung zu DdeClientTransaction()
- References:
- gute Beschreibung zu DdeClientTransaction()
- From: Steffen Pelzetter
- Re: gute Beschreibung zu DdeClientTransaction()
- From: Martin Richter [MVP]
- gute Beschreibung zu DdeClientTransaction()
- Prev by Date: Re: XP Themes und Ownerdraw Buttons
- Next by Date: CString und Wildcards
- Previous by thread: Re: gute Beschreibung zu DdeClientTransaction()
- Next by thread: Re: gute Beschreibung zu DdeClientTransaction()
- Index(es):
Loading