Anyone ever get a handle on DDEML client server operation?

Just starting out? Need help? Post your questions and find answers here.
Randy Walker
Addict
Addict
Posts: 1092
Joined: Sun Jul 25, 2004 4:21 pm
Location: USoA

Anyone ever get a handle on DDEML client server operation?

Post by Randy Walker »

My main project could really benefit from use of DDEML but all efforts to get a handle on it escapes me. :(
- - - - - - - - - - - - - - - -
Randy
I *never* claimed to be a programmer.
User avatar
mk-soft
Always Here
Always Here
Posts: 6285
Joined: Fri May 12, 2006 6:51 pm
Location: Germany

Re: Anyone ever get a handle on DDEML client server operation?

Post by mk-soft »

Little more code ...
My Projects ThreadToGUI / OOP-BaseClass / EventDesigner V3
PB v3.30 / v5.75 - OS Mac Mini OSX 10.xx - VM Window Pro / Linux Ubuntu
Downloads on my Webspace / OneDrive
Randy Walker
Addict
Addict
Posts: 1092
Joined: Sun Jul 25, 2004 4:21 pm
Location: USoA

Re: Anyone ever get a handle on DDEML client server operation?

Post by Randy Walker »

mk-soft wrote: Mon Sep 16, 2024 9:50 am Little more code ...
Huh??? :?
- - - - - - - - - - - - - - - -
Randy
I *never* claimed to be a programmer.
User avatar
idle
Always Here
Always Here
Posts: 5984
Joined: Fri Sep 21, 2007 5:52 am
Location: New Zealand

Re: Anyone ever get a handle on DDEML client server operation?

Post by idle »

I've never used it and yes it does look a little complicated
https://learn.microsoft.com/en-us/windo ... nt-library

What are you doing that you think DDE is the right solution. There are loads of IPC methods you could use
PBJim
Enthusiast
Enthusiast
Posts: 296
Joined: Fri Jan 19, 2024 11:56 pm

Re: Anyone ever get a handle on DDEML client server operation?

Post by PBJim »

Randy Walker wrote: Mon Sep 16, 2024 10:39 pm
mk-soft wrote: Mon Sep 16, 2024 9:50 am Little more code ...
Huh??? :?
Exactly, I feel the same way. I rarely bother to ask honest questions on the forum most of the time, because of this kind of agenda that they have. I've blocked the three of them whom I've seen do it to others, so I just never bother to read their replies.
User avatar
Demivec
Addict
Addict
Posts: 4277
Joined: Mon Jul 25, 2005 3:51 pm
Location: Utah, USA

Re: Anyone ever get a handle on DDEML client server operation?

Post by Demivec »

PBJim wrote: Tue Sep 17, 2024 12:18 am
Randy Walker wrote: Mon Sep 16, 2024 10:39 pm
mk-soft wrote: Mon Sep 16, 2024 9:50 am Little more code ...
Huh??? :?
Exactly, I feel the same way. I rarely bother to ask honest questions on the forum most of the time, because of this kind of agenda that they have. I've blocked the three of them whom I've seen do it to others, so I just never bother to read their replies.
The original post stated this (emphasis added):
Randy Walker wrote: Mon Sep 16, 2024 9:21 am My main project could really benefit from use of DDEML but all efforts to get a handle on it escapes me. :(
People using this forum speak different languages natively and the OP gave one sentence, not even a question.

Here is one interpretation:
If the OP says he has a problem getting a handle then he should post the code that he used to try and get the handle.


Here is a second interpretation of this sentence:
The OP understands nothing about anything dealing with DDEML. In that case he needs to add more information about what he doesn't understand and possibly what little he does understand as well as why he feels his project would benefit from it.

In both cases more information is needed from the original poster. It is a common requirement for such things to be included in the original positing so that someone can give assistance and to give more focus on what may be needed. If the information is not provided it is customary and natural to request it if someone desires to help if they can.

@PBJim: What do you mean by 'an honest question'?
Randy Walker
Addict
Addict
Posts: 1092
Joined: Sun Jul 25, 2004 4:21 pm
Location: USoA

Re: Anyone ever get a handle on DDEML client server operation?

Post by Randy Walker »

idle wrote: Mon Sep 16, 2024 11:48 pm I've never used it and yes it does look a little complicated
What are you doing that you think DDE is the right solution. There are loads of IPC methods you could use
I could grasp enough about DDE that I understand it is used to allow two apps to communicate between each other. I'm really only looking to send data from one app to the other. Cannot get any useful info on your IPC so you're just talking over my head, like the URL you sent. But thanks for the reply anyway. :mrgreen:

I did a web search for DDE example and found a powerbasic example but no clue how to adapt that code. Anytime I run into anything using structures and types, I am immediately lost without working PB sample code. It only covers the DDE client.
https://forum.powerbasic.com/forum/user ... nt-example
- - - - - - - - - - - - - - - -
Randy
I *never* claimed to be a programmer.
User avatar
idle
Always Here
Always Here
Posts: 5984
Joined: Fri Sep 21, 2007 5:52 am
Location: New Zealand

Re: Anyone ever get a handle on DDEML client server operation?

Post by idle »

IPC (inter process communications) for windows programs

copy data strucure cds messaging
file mapping
tcp.

Are easy to achieve but if DDE is what you really need it helps to explain what your specific requirements are which might be more beneficial in getting answers abd also helps others too.

DDE looks Like some over complicated ms solution to a problem that can be solved by much simpler means.

Search for copy data structure that might be what you need
Randy Walker
Addict
Addict
Posts: 1092
Joined: Sun Jul 25, 2004 4:21 pm
Location: USoA

Re: Anyone ever get a handle on DDEML client server operation?

Post by Randy Walker »

mk-soft wrote: Mon Sep 16, 2024 9:50 am Little more code ...
Randy Walker wrote: Mon Sep 16, 2024 9:21 am My main project could really benefit from use of DDEML but all efforts to get a handle on it escapes me. :(
People using this forum speak different languages natively and the OP gave one sentence, not even a question.
[/quote]

Ah yes. Something I did not take into account when I wrote my OP. I Should have wrote:
"All efforts to try to get an understanding of DDE escapes me."
Here... "get a handle on" = "get an understanding of" but may not translate so well.
Sorry for the confusion. :(
AND, now I understand what mk-soft was asking when he/she wrote "Little more code", but I have no code since I have NO idea how to begin.
- - - - - - - - - - - - - - - -
Randy
I *never* claimed to be a programmer.
Randy Walker
Addict
Addict
Posts: 1092
Joined: Sun Jul 25, 2004 4:21 pm
Location: USoA

Re: Anyone ever get a handle on DDEML client server operation?

Post by Randy Walker »

People using this forum speak different languages natively and the OP gave one sentence, not even a question.
BTW = By The Way... The question was in the subject line:
Anyone ever get a handle on DDEML client server operation?
- - - - - - - - - - - - - - - -
Randy
I *never* claimed to be a programmer.
User avatar
idle
Always Here
Always Here
Posts: 5984
Joined: Fri Sep 21, 2007 5:52 am
Location: New Zealand

Re: Anyone ever get a handle on DDEML client server operation?

Post by idle »

here's a CDS example
run without debugger
then run with debugger ; this one will have the window ID of the 1st windows so send from it

Code: Select all


EnableExplicit 

Global mhwnd,apphwnd 

Procedure SendToApp(hwnd,type,*mdata)

Protected *cds.COPYDATASTRUCT,str.s   

*cds = AllocateMemory(SizeOf(COPYDATASTRUCT))
 Select type 
    Case #PB_String 
      str = PeekS(*mdata,-1)  
      *cds\dwData = type  
      *cds\cbData = StringByteLength(str) 
      *cds\lpData = @str 
 EndSelect    
   
 SendMessage_(hwnd, #WM_COPYDATA, mhwnd, *cds)
    
 FreeMemory(*cds)
 
EndProcedure 

Procedure WinCallback(hWnd, uMsg, WParam, LParam) 
  
  Protected *cds.COPYDATASTRUCT
    
  Select umsg 
    Case #WM_COPYDATA 
      *cds = LParam 
      
      Select *cds\dwData 
          Case #PB_String 
          SetGadgetText(0,PeekS(*cds\lpData,-1))  
      EndSelect 
   EndSelect    
      
   ProcedureReturn #PB_ProcessPureBasicEvents 
   
EndProcedure   

Procedure FindWindowByName(name.s) 
  
  Protected hwnd,TitleSize.l,Title.s  
  
  hwnd = GetWindow_(GetDesktopWindow_(), #GW_CHILD)
  While hwnd
	TitleSize.l = GetWindowTextLength_(hwnd) + 2
	Title = Space(TitleSize)
	GetWindowText_(hwnd, Title, TitleSize)
	If FindString(LCase(Title), LCase(name))
		If hwnd <> WindowID(mhwnd) 
		   ProcedureReturn hwnd
		EndIf   
	EndIf
	hwnd = GetWindow_(hwnd, #GW_HWNDNEXT)
Wend

EndProcedure   

Procedure SendString() 
  
  Protected  str.s = GetGadgetText(0) 
  If apphwnd = 0 
     apphwnd = FindWindowByName("Sendit")
  EndIf 
  If apphwnd 
    SendToApp(apphwnd,#PB_String,@str)
    SetGadgetText(0,"")
  EndIf  
  
EndProcedure  

mhwnd = OpenWindow(#PB_Any,0,0,200,100,"Sendit") 
apphwnd = FindWindowByName("Sendit")

EditorGadget(0,10,10,180,30) 
ButtonGadget(1,10,50,60,30,"Send url")
BindGadgetEvent(1,@SendString(),#PB_EventType_LeftClick) 
SetWindowCallback(@WinCallback(),mhwnd) 

Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
 


Randy Walker
Addict
Addict
Posts: 1092
Joined: Sun Jul 25, 2004 4:21 pm
Location: USoA

Re: Anyone ever get a handle on DDEML client server operation?

Post by Randy Walker »

idle wrote: Wed Sep 18, 2024 1:12 am here's a CDS example
Hahaaa I searched "CDS example" on the web and got many hits for "Credit default swap".
I see now looking back at your previous post you were talking about copy data strucure cds messaging.

Well either way. THANKS MUCH for the code sample. It is quite complex. Much more so than I imagined.
- - - - - - - - - - - - - - - -
Randy
I *never* claimed to be a programmer.
Randy Walker
Addict
Addict
Posts: 1092
Joined: Sun Jul 25, 2004 4:21 pm
Location: USoA

Re: Anyone ever get a handle on DDEML client server operation?

Post by Randy Walker »

idle wrote: Tue Sep 17, 2024 7:11 am
Are easy to achieve but if DDE is what you really need it helps to explain what your specific requirements are which might be more beneficial in getting answers abd also helps others too.
DDE looks Like some over complicated ms solution to a problem that can be solved by much simpler means.

Search for copy data structure that might be what you need
I did search for copy data structure and got one hit with C++ example but my brain melts just looking at C code.
I have two programs. The main app provides the user access to a customer database, logging and troubleshooting. All the data is shared through an FTP server. The 2nd app is responsible for uploading new data and downloading any files that change on the server, parsing and files as required and building cache files used for reporting in the main app. I have been using Global Atoms to simulate communication between the two apps so the main app can notify the user on progress of the 2nd app. Global Atoms as you might imagine is a very complex and clumsy means of communication. This is a list of my Atoms, basically used as flags to notify the main app as the 2nd app enters each stage of its process. The main app has to constantly monitor Atoms:
; ATOMS INDEX / Main app is oneLook.exe / 2nd app is AutoFTP.exe / 3rd app is Update.exe used to update the first 2 apps.
;GlbX0.W) Does nothing in AutoFTP
;GlbX1.W) ; Cheking server status
;GlbX2.W) ; Downloading files
;GlbX3.W) ; FTP failed (jumps to 11)
;GlbX4.W) ; Decompressing customer and help files
;GlbX5.W) ; Decompressing user history files
;GlbX6.w) ; Parsing customer records
;GlbX7.w) ; Indexing history records
;GlbX8.w) ; Refresh now / No changes or actions required
;GlbX9.w) ; Download / parsing complete
;GlbX10.w) ; Ok to commence oneLook refresh
;GlbX11.w) ; Please check connection
;GLBXLog.W) ; Let Update know oneLook not running
;GlbXLook.W) ; Let Update know oneLook not running
;GLBXFTP.W) ; Let Update know oneLook not running
;GlbDL.W) ; Let Update know oneLook not running
;GlbXadmin.W) ; Let Update know oneLook not running

Oh!! And the 2nd app is dependant on the MS native ftp.exe because that was the only option when I created the original code back in the 16bit GFA Basic Era, Long before I even learned of PB. I am tentatively rewriting the 2nd app now using PB native FTP and figured it would be a good time to do away with Atoms if possible. It took me a year to port my 20k+ lines of GFA code into PB, keeping in mind I am NOT a programmer by any stretch of my imagination :)
- - - - - - - - - - - - - - - -
Randy
I *never* claimed to be a programmer.
Post Reply