I am looking for an article about dialing a phone number directly from my database (i.e. as in Call Centre), Via CPP Code. I do not seem to be able to filter the article count down to less than 3700, mostly altogether unrelated. Anyone a Hint or Idea?
It is an MFC42/CPP Desktop Application I want to Auto Dial from, to establish a Voice Connection. I.e.: I want staff to contact selected customers, via de Phone Number we have on our DB. As a Laundrette, we have an issue with customers forgetting they left stuff in. I'm writing an MFC Application for staff to deal with this during quiet times. Automatic dialling helps to prevent mis-dials, and protects our phone bill against misuse.
I am planning to connect Via a "RealTech" Dial up Modem Card, or Equivalent. All my XP Computers have one, or something similar, by a different manufacturer. I also harvested about half a dozen. The Installation software is typically part of WinXP.
The XP Default installation is that specific and unspecified features may not be available. However, I seek only Voice Contact, on an Out Dialling only Connection.
I have also a number of Installation disks for older Real Tech Modems which I bought in the past. I suppose that any and all of them can do a basic Function, Dialling out, and thereafter managing a Voice Based conversation. All Computers we currently have, have also a form of sound processing card.(Very Basic in most cases) I assume that this can be used to get the Voice Aspect realised for a phone connection.
Al I am ultimately interested in is, getting an outgoing Voice Connection.
We have NO requirement at all, to deal with in coming calls.
I Think we are both rumbled by gremlins. My Post was somehow split in two by the CodeProject Server.
Let us Discard One Thread, I Propose This One!
Otherwise: My Reply to This One is:
You must be under pressure, but, I know how that feels. Answered this question before in this thread, However,it is a Desktop Task, in MFC42. I am not looking for a Solution, but for an article(hopefully Old, so that it appreciates the limitations of MFc42) in CodeProject, or elsewhere. Even a Title of a book will do.
(Mental Block I had, not looking for 'Modems' in the first place!), as you know, that's how it goes.
However, it covers, apart from a sprinkling of C or CPP, a Lot of CE, C#, etc, which have their own libraries, etc, and hence are instructive, but not very useful. For Instance, "Phone.Lib" is not a component of MFC42.
All I need to do is the Dialling, and the Channelling of the connection to the Sound System, and hanging up, after ending the call.
I'm going to try for now something called "RasDial.exe" and see how I get on with it. Hopefully I can fool it in not looking for a Phonebook Entry, or stopping it from trying to make an Internet Connection.
I have also bought a £6.00 USB Dialup Modem which comes with a CD. Hopefully the CD contains something useful. I live in hope. Even if it fails, the cost is less than a packet of cigs, and, I still have the Modem.
Hope if all else fails to be able to hang a Head Set and Mike to the 'Phone' Output, and, hope the Modem can do the Dialling via the Line Socket.
May need to set to Pulse, and a switch to isolate the head set, (I know how POTS works) but, for now hope we can make it work without having to resort to this.
Worth Six Pound to try it, though, even if it does not work!
Thanks, and, I'll keep you Posted, but, remember, I'm on my own, and have to resolve many issues, all by myself. If I get an Intractable Problem in One Place, I put it aside, for dealing with, and whilst waiting, tackle something else. That keeps the entire front moving.
No, Richard gave you the link all child windows are automatically disposed.
Your only responsibility is to cleanup any memory allocation, handles etc you specifically created. You do that by intercepting the WM_DESTROY message and cleaning up there. WM_DESTROY is sent just before the window is deleted but while the window is actually still valid.
Typically you create things in the WM_CREATE and you dispose of it in the WM_DESTROY.
Okay the rules with memory or object allocation and deleting are very simple.
If the memory/object is used by multiple children windows and/or the parent then you create it in OnCreate (WM_CREATE) on the parent and destroy it on OnDestroy (WM_DESTROY) of the parent. The reason is because multiple children and/or parent are using it and you need it created before any children and disposed of after the children are deleted.
If the memory/Object is used by ONLY the SINGLE child window EXCLUSIVELY (that is the data belongs really to the child) then you create it on OnCreate (WM_CREATE) of the child and you delete it with the OnDestroy (WM_DESTROY) of the child.
Sometimes people get lazy and just use situation 1 to cover situation 2 but there are traps in that. It is very easy to forget you need something done before the child is created which is in an unrelated block of code in the parent window create function. So generally I would advise against being lazy and using situation 1 to try and cover all situations. Using Situation 2 when it is valid to do so makes your code self contained portable without thinking about it.
Situation 2 is that most often not understood by people. I will give you a simple example I might use on your edit entry, and this is a subclass of the edit I use a lot in programs. OnCreate (WM_CREATE) of the edit box I create a string object. Whenever the user hits enter, I validate the entry via a message call and if its valid put the current value into the string object and then update the edit window to the new value. Why do this ... well because in the edit box handler hitting the "esc" key goes and gets the value from the string object and puts it back it the edit box. It is a return to last valid value function or a simple single step back. If you think about it you could extend the concept to a list and be able to scroll back thru the list of entered values something you might recognize for the entry address input of your web browser. Now the point here is the string object is the edit boxes responsibility to delete so it will do that on it's OnDestroy (WM_DESTROY). Now everything is self contained I can create as many of these edit boxes as I want into a parent and they all look after there own object string.
So basically you need to work out what data is being used where and in this regard it is very similar to thread or task code.
I don’t know how to use git. I just downloaded a Windows version yesterday (haven’t installed it yet), and am studying an ebook on it. Or should I use GitHub? I don’t know anything about these things. Is there an easier way to do it? Is there an ftp site where you can just download it from without having to learn/use some complicated source code management system?
I’ve nearly completed writing my own version of only what I need from the C Standard Library, and all I need from the C++ Standard Library is a String Class, and I’ve used my own for many, many years which works fine. The only thing I need yet is a full implementation of pow, and possibly exp if pow needs that, and I don’t know how to do it myself. That’s why I need to study and learn from the GCC C sources. I’m linking without the Standard Libraries so as to avoid the bloat, and using Windows.
But if I’d have asked here first how to implement pow, within 1 minute of posting that question I’d have been told to look at the GCC sources, which I don’t know how to do. That’s why I’m asking for instruction here first on that. Once I’ve figured out how to get at the GCC sources, then I can tackle my pow issue.
I think I'm on the right track Richard. I downloaded Subversion for Windows from SourceForge, but it doesn't look like I have to use it. By replacing svn:// with http:// I can browse to sources as just ftp folders. I've gotten this far...
Perhaps I just need to spend some time searching for pow. Haven't found it yet.