Re: gute Beschreibung zu DdeClientTransaction()



Hallo Martin Richter,

> Das kann aber auch heißen, dass der Server den Befehl frisst aber nicht
> ausführt? DDESpy mal verwendet?

Das ist gut möglich. Die Probleme treten nämlich immer dann auf, wenn ich den
DDE- Server aus dem Client heraus starte. Es scheint so, als würde der
Server noch keine "execute" Anfragen akzeptieren (Requests funktionieren)
oder verarbeiten. Da kann ich wohl nur über einen Timer etwas warten bis ich
die Executes sende...?

> Wenn ich einen Execute übergebe, dann verwende ich immer einen String
> und übergebe auch die korrekte Länge.

Das verstehe ich nicht. Wo soll den die Länge vom String angegeben werden?
Naja, bei meinem Code- Listing fehlen natürlich noch wichtige Zeilen.
Die gesamte Funktion sieht so aus:

HDDEDATA CStpProcessThreadCtl::DDEExecute(DWORD idInst, HCONV hConv, char
*szCommand)
{
TraceMsg("DDEExecute "+(CString) szCommand);

HDDEDATA hData = DdeCreateDataHandle(idInst, (LPBYTE)szCommand,
lstrlen(szCommand)+1, 0, NULL, CF_TEXT, 0);

if (hData==NULL)
{
DdeError(idInst);
return hData;
}
else
{
hData=DdeClientTransaction((LPBYTE)hData, 0xFFFFFFFF, hConv, 0L, 0,
XTYP_EXECUTE, TIMEOUT_ASYNC , NULL);

while(hData == 0)
{
AddMessage("DDEExecute -> "+(CString) szCommand+" failed!");
DdeError(idInst);
Sleep(1000);
AddMessage("Resending DDEExecute ->"+(CString) szCommand);
hData=DdeClientTransaction((LPBYTE)hData, 0xFFFFFFFF, hConv, 0L, 0,
XTYP_EXECUTE, TIMEOUT_ASYNC, NULL);
}
DdeFreeDataHandle(hData);
return hData;
}


} lstrlen(szCommand)+1, 0, NULL, CF_TEXT, 0);

"Martin Richter [MVP]" schrieb:

> Hallo Steffen Pelzetter!
>
> > 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.
>
> Das kann aber auch heißen, dass der Server den Befehl frisst aber nicht
> ausführt? DDESpy mal verwendet?
>
> > 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.
>
> Wenn ich einen Execute übergebe, dann verwende ich immer einen String
> und übergebe auch die korrekte Länge.
>
> --
> 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
>
.



Relevant Pages

  • Help: OWSADM hangs when executing from C# web service
    ... admin user and providing the login credentials through the ... string output = process.StandardOutput.ReadToEnd; ... For some reason when I execute the Startmethod then the OWSADM hangs ... The machine is running Windows Server 2003 Enterprise edition. ...
    (microsoft.public.dotnet.framework.aspnet.security)
  • Impersonate second session require restart of IIS
    ... 2000 Server with latest security pacx and service pacs) ... Cannot execute a program. ... (IntPtr userToken, String cmd, String currentDir, ... (CompilerParameters options, String compilerDirectory, ...
    (microsoft.public.dotnet.framework.aspnet.security)
  • SQL Connection Problem
    ... An error has occurred while establishing a connection to the server. ... database location within the applications App_Data directory. ... Boolean& failoverDemandDone, String host, String failoverPartner, String ... user, String password, Boolean trusted, String connectionString) +68 ...
    (microsoft.public.dotnet.framework.aspnet)
  • server-side JavaScript: Prototypes of built-in classes, objects and functins
    ... Session object (disk-based session variables for data persistence ... File class (manipulation of files on server, ie. open, close, read, ... //Methods Cgi.queryCgi.postCgi.anyby default return an empty string if requested var not found ...
    (comp.lang.javascript)
  • Re: App_data - ASPNETDB.MDF
    ... is only because I want my site work, without exception. ... Server Error in '/' Application. ... serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 ...
    (microsoft.public.dotnet.framework.aspnet)