Sven
2004-12-15 15:18:18 UTC
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!
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
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 MSDNDWORD 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);
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