Discussion:
Dynamic Data Exchange (DDE)
(too old to reply)
Sven
2004-12-15 15:18:18 UTC
Permalink
Hallo zusammen,

Mein Vorhaben:
Habe ein fremd Programm das DDE unterstütz. Dieses Programm läuft als
DDE-Client.
Mein Programm soll im Grunde als Vermittlwer dienen:
- Empfängt/ Sendet Informationen über UDP (kein Problem)
- Empfängt/ Sendet Informationen über DDE (großes Problem für mich)

Die Informationen sind normale CStrings.


Mit dem CSocket bzw. CAsyncSocket kann ich soweit umgehen.
Nur für das DDE fehlt es mir an allen Ecken und Enden!
#include "ddeml.h"
DWORD dw_DDE_ID_der_Instanz=0;
HSZ hszTopic;
HCONV hConv;
HDDEDATA hData;
//DDE Initialisierung
DdeInitialize(&dw_DDE_ID_der_Instanz, NULL, APPCLASS_STANDARD |
APPCMD_CLIENTONLY, 0);
//DDE Topic erstellen
hszTopic = DdeCreateStringHandle(dw_DDE_ID_der_Instanz, "Server", 0);
//DDE Verbindung zum Server aufbauen
hConv = DdeConnect(dw_DDE_ID_der_Instanz, NULL, hszTopic, NULL);
DdeFreeStringHandle(dw_DDE_ID_der_Instanz, hszTopic);
//führe DDE Kommando aus
hData = DdeCreateDataHandle(dw_DDE_ID_der_Instanz,
(LPBYTE)"DDEKommando",lstrlen("DDEKommando")+1, 0, NULL, CF_TEXT, 0);
DdeClientTransaction((LPBYTE)hData, 0xFFFFFFFF, hConv, 0L, 0,
XTYP_EXECUTE,
TIMEOUT_ASYNC, NULL);
DdeDisconnect(hConv);
DdeUninitialize(dw_DDE_ID_der_Instanz);
Nur leider ist dies der 'CODE' für eine Client-Anwendung. In der MSDN
habe ich schon nachgeschaut. Nur aus den Beschreibungen werd ich nicht
so richtig schlau. Keine der vorgestellten 'DDE...' - Funktionen hört
sich für mich an wie ein 'CreateServer' oder 'ReceiveMessage' usw.
Gegoogelt hab ich auch schon, mit nicht gerade so gutem Erfolg.

Ich hab hier gelesen das es einige gespräche über DDE gab (in allen
Sprachen). Nur belaufen sich diese auf 'Erstellen einer Client
Anwendung'.

Kann mir da vieleicht irgendeiner weiter helfen?

Gruß Sven

PS: Danke im vorraus
Dunn, Toby
2004-12-15 15:24:06 UTC
Permalink
Cool, I have never seen a SAS program in a foreign language before.

Toby Dunn

"It's OK to figure out murder mysteries, but you shouldn't need to figure out code. You should be able to read it." -Steve C McConnell
-----Original Message-----
Behalf Of Sven
Sent: Wednesday, December 15, 2004 9:18 AM
Subject: Dynamic Data Exchange (DDE)
Hallo zusammen,
Habe ein fremd Programm das DDE unterstütz. Dieses Programm
läuft als DDE-Client. Mein Programm soll im Grunde als
- Empfängt/ Sendet Informationen über UDP (kein Problem)
- Empfängt/ Sendet Informationen über DDE (großes Problem für mich)
Die Informationen sind normale CStrings.
Mit dem CSocket bzw. CAsyncSocket kann ich soweit umgehen.
Nur für das DDE fehlt es mir an allen Ecken und Enden!
#include "ddeml.h"
DWORD dw_DDE_ID_der_Instanz=0;
HSZ hszTopic;
HCONV hConv;
HDDEDATA hData;
//DDE Initialisierung
DdeInitialize(&dw_DDE_ID_der_Instanz, NULL, APPCLASS_STANDARD |
APPCMD_CLIENTONLY, 0);
//DDE Topic erstellen
hszTopic =
DdeCreateStringHandle(dw_DDE_ID_der_Instanz, "Server",
0);
//DDE Verbindung zum Server aufbauen
hConv = DdeConnect(dw_DDE_ID_der_Instanz, NULL,
hszTopic, NULL);
DdeFreeStringHandle(dw_DDE_ID_der_Instanz, hszTopic);
//führe DDE Kommando aus
hData = DdeCreateDataHandle(dw_DDE_ID_der_Instanz,
(LPBYTE)"DDEKommando",lstrlen("DDEKommando")+1, 0,
NULL, CF_TEXT,
0);
DdeClientTransaction((LPBYTE)hData, 0xFFFFFFFF, hConv, 0L, 0,
XTYP_EXECUTE,
TIMEOUT_ASYNC, NULL);
DdeDisconnect(hConv);
DdeUninitialize(dw_DDE_ID_der_Instanz);
Nur leider ist dies der 'CODE' für eine Client-Anwendung. In
der MSDN habe ich schon nachgeschaut. Nur aus den
Beschreibungen werd ich nicht so richtig schlau. Keine der
vorgestellten 'DDE...' - Funktionen hört sich für mich an wie
ein 'CreateServer' oder 'ReceiveMessage' usw. Gegoogelt hab
ich auch schon, mit nicht gerade so gutem Erfolg.
Ich hab hier gelesen das es einige gespräche über DDE gab (in
allen Sprachen). Nur belaufen sich diese auf 'Erstellen einer
Client Anwendung'.
Kann mir da vieleicht irgendeiner weiter helfen?
Gruß Sven
PS: Danke im vorraus
Richard A. DeVenezia
2004-12-16 05:53:02 UTC
Permalink
Post by Dunn, Toby
#include "ddeml.h"
DWORD dw_DDE_ID_der_Instanz=0;
HSZ hszTopic;
HCONV hConv;
HDDEDATA hData;
//DDE Initialisierung
DdeInitialize(&dw_DDE_ID_der_Instanz, NULL, APPCLASS_STANDARD |
...
Post by Dunn, Toby
Cool, I have never seen a SAS program in a foreign language before.
Um, That ain't SAS. It's C using Win32API calls.
--
Richard A. DeVenezia
http://www.devenezia.com/
Howard Schreier <hs AT dc-sug DOT org>
2004-12-16 04:35:40 UTC
Permalink
Looks to me like you still haven't. The comments and the user-supplied
names are German. The method or function names are English. The syntax is
not SAS.
Post by Dunn, Toby
Cool, I have never seen a SAS program in a foreign language before.
Toby Dunn
"It's OK to figure out murder mysteries, but you shouldn't need to figure
out code. You should be able to read it." -Steve C McConnell
Post by Dunn, Toby
-----Original Message-----
Behalf Of Sven
Sent: Wednesday, December 15, 2004 9:18 AM
Subject: Dynamic Data Exchange (DDE)
Hallo zusammen,
Habe ein fremd Programm das DDE unterstütz. Dieses Programm
läuft als DDE-Client. Mein Programm soll im Grunde als
- Empfängt/ Sendet Informationen über UDP (kein Problem)
- Empfängt/ Sendet Informationen über DDE (großes Problem für mich)
Die Informationen sind normale CStrings.
Mit dem CSocket bzw. CAsyncSocket kann ich soweit umgehen.
Nur für das DDE fehlt es mir an allen Ecken und Enden!
#include "ddeml.h"
DWORD dw_DDE_ID_der_Instanz=0;
HSZ hszTopic;
HCONV hConv;
HDDEDATA hData;
//DDE Initialisierung
DdeInitialize(&dw_DDE_ID_der_Instanz, NULL, APPCLASS_STANDARD |
APPCMD_CLIENTONLY, 0);
//DDE Topic erstellen
hszTopic =
DdeCreateStringHandle(dw_DDE_ID_der_Instanz, "Server",
0);
//DDE Verbindung zum Server aufbauen
hConv = DdeConnect(dw_DDE_ID_der_Instanz, NULL,
hszTopic, NULL);
DdeFreeStringHandle(dw_DDE_ID_der_Instanz, hszTopic);
//führe DDE Kommando aus
hData = DdeCreateDataHandle(dw_DDE_ID_der_Instanz,
(LPBYTE)"DDEKommando",lstrlen("DDEKommando")+1, 0,
NULL, CF_TEXT,
0);
DdeClientTransaction((LPBYTE)hData, 0xFFFFFFFF, hConv, 0L, 0,
XTYP_EXECUTE,
TIMEOUT_ASYNC, NULL);
DdeDisconnect(hConv);
DdeUninitialize(dw_DDE_ID_der_Instanz);
Nur leider ist dies der 'CODE' für eine Client-Anwendung. In
der MSDN habe ich schon nachgeschaut. Nur aus den
Beschreibungen werd ich nicht so richtig schlau. Keine der
vorgestellten 'DDE...' - Funktionen hört sich für mich an wie
ein 'CreateServer' oder 'ReceiveMessage' usw. Gegoogelt hab
ich auch schon, mit nicht gerade so gutem Erfolg.
Ich hab hier gelesen das es einige gespräche über DDE gab (in
allen Sprachen). Nur belaufen sich diese auf 'Erstellen einer
Client Anwendung'.
Kann mir da vieleicht irgendeiner weiter helfen?
Gruß Sven
PS: Danke im vorraus
Continue reading on narkive:
Loading...