|
If you are using a CAsyncSocket then you can request a notification upon closure of a socket. If not, any read or write to a closed socket will indicate the same. Note that this is only a low level socket check to see if the TCP/IP stack on the remote computer is working - it doesnt tell you if the remote application is working, for which you'll need to implement your own 'ping' or timeout, if appropriate.
TCP will manage most of the temporary physical breaks in connections, and ensure that the connection remains valid - you dont need to worry about this. If it can't then the socket will be closed, which you can check for as above
|
|
|
|
|
How to write simple program for login password and each button can display function as help tool.........
|
|
|
|
|
"and each button can display function as help tool"
wat it means. give clear qns
Shanmuga Sundar.V
|
|
|
|
|
i mean that when the mouse pointer is point to that button it will come out message box which explain that button function example exit button is exit the program....
|
|
|
|
|
hi
I have an SDI with a few dialogs within for user interactions. I wish to know if it is possible for the doc class to gather data from the dialogs and then using the OnPaint() in view class to draw the graphics? I been having problems trying to connect the user input data to visual display. is there any way to directly code drawing in view class and then execute when after dialogs are accessed?
|
|
|
|
|
EDIT: I seem to have solved my problem using pointer pointers, but i'm not sure why or how without sitting down and thinking about it, someone care to shed some light still and get me started?
Someone explain why this isn't working please:
MyFunc(char* pBuf1, char* pBuf2, int nSize1, int& nSize2)
{
ASSERT(pBuf2==0);
pBuf2 = new char[SOMENUMBER];
}
However when I call this function like:
int nSize = 0;
char* pOut = NULL;
MyFunc(pOrg, pOut, 100, nSize);
delete[] pOut;
The code is straight forward, but when I step through it pOut doesn't retain the pointer to memory that is allocated inside the function? Inside the function everything is fine and a memory block is allocated, however once the function is complete and I continue with caller code the pointer to the allocated memory block remains ZERO???
What am I doing wrong...?
Thanks
The word of the day is legs, let's go back to my house and spread the word
|
|
|
|
|
Your problem is passing a pointer by value. You want to modify the pointer in the calling function so you have to pass the POINTER BY REFERENCE
change like this
MyFunc(char* pBuf1, char** ppBuf2, int nSize1, int& nSize2)
{
ASSERT(*ppBuf2==0); // Make sure caller hasn't allocated memory
*ppBuf2 = new char[SOMENUMBER];
// Fill previously allocated buffer with valid data
// ...
}
int nSize = 0; // Size of buffer allocated by functions belowchar
*pOut = NULL; // So function doesn't ASSERT
MyFunc(pOrg, &pOut, 100, nSize);
delete[] pOut; // Delete memory allocated by function
|
|
|
|
|
Hello
I have an app that plays a wav file to attract the users attention. The customer would like to have different sounds for different situations.
Rather than add a dialog box that allows the user to select a wav file I would like my application and its events to appear in the Sounds and Multimedia control panel applet and allow the user to select from the list of souns available.
I have found some settings in the registry under HKEY_CURRENT_USER\AppEvents\Schemees
that looks promising. Is it just a matter of figuring out what these are for and adding keys for my app or is there a set of API functions to do it.
Also, at runtime how do I ask windows to play the sound assosiated with this event?
If you could just point me to the general area in MSDN I should be right. I just cant find it
Thanks
Josh
|
|
|
|
|
You could find some info here: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwue/html/ch11f.asp[^]
Basically, you have to create a registry key HKCU/AppEvents/EventLabels/<MyEvent> , with the default value set as a description. Then you have to associate this event with your application, by creating the registry key HKCU/AppEvents/Schemes/Apps/<MyApp>/<MyEvent>
To programmatically associate a sound file to this event for this application, create the registry key HKCU/AppEvents/Schemes/Apps/<MyApp>/<MyEvent>/.Current and set the default value to the path of the sound file.
To play it in your application, just call
sndPlaySound(_T("<MyEvent>"), SND_APPLICATION | SND_ALIAS | SND_SYNC | SND_NODEFAULT);
Or course, replace <MyApp> and <MyEvent> by your specific values.
HTH,
K.
A quoi rêvent les personnes qui nous font vivre ce monde ?
|
|
|
|
|
Briefly, how is the association between the executable and <myapp> made?
Steve S
|
|
|
|
|
I'm not sure to understand your question.
The register key "HKCU/AppEvents/Schemes/Apps/<myapp>/<myevent>" makes the connection between the event and the application.
A quoi rêvent les personnes qui nous font vivre ce monde ?
|
|
|
|
|
|
My pleasure
A quoi rêvent les personnes qui nous font vivre ce monde ?
|
|
|
|
|
I think what I meant (!) was how do I identify my application?
If it's the module name 'MSDEV', for instance, that would mean I can't have two apps with the same EXE name that have associated (but different) sounds, if they have events in common.
Steve S
|
|
|
|
|
If you have two apps with the same name, there are not 2 applications but 2 instances of the same application. So, these instances share the same registry values, and share also the sound events.
A quoi rêvent les personnes qui nous font vivre ce monde ?
|
|
|
|
|
KaЯl wrote:
If you have two apps with the same name, there are not 2 applications but 2 instances of the same application.
Not necessarily. The name in the registry is only the module name, not a FQN, so I could have
C:\Program Files\AardvarkSoftware\CTLMGR.EXE
and
C:\Program Files\ZebraSoft\CTLMGR.EXE
which are distinct applications, rather than instances of the application.
However, I take your point, it answers my question, and my suspicion was right.
Thanks
Steve S
|
|
|
|
|
Ok, I get your point. That's true it may be a problem, but I never faced it for the moment. In this case, the events names should be specific enough to avoid confusion.
A quoi rêvent les personnes qui nous font vivre ce monde ?
|
|
|
|
|
a socket generally has a listener and receiver
can a socket be used to communicate with > 1 receiver?
Bryce
---
Publitor, making Pubmed easy.
http://www.sohocode.com/publitor
|
|
|
|
|
Sure it can be done.
This is the concept where the multiple client acces the an single server.
Shanmuga Sundar.V
|
|
|
|
|
As you say, a single socket has only one listener and one receiver. To get multiple receivers you will need to do broadcasts using datagram sockets.
|
|
|
|
|
coolo
one of the blokes here at work says its possible to do a TCP broadcast (as opposed to a UDP multicast which i can do)
to the local subnet, just have the last section of the IP as 255for our clas of network.
eg. 192.168.0.255
What else do i need to set up to get it going?
regards
bryce
---
Publitor, making Pubmed easy.
http://www.sohocode.com/publitor
|
|
|
|
|
bryce wrote:
one of the blokes here at work says its possible to do a TCP broadcast (as opposed to a UDP multicast which i can do)
Sorry for being blunt, but the bloke at work is full of shite. TCP is a point to point protocol. It can't handle anything but exactly two parties.
--
He is the painkiller. This is the painkiller!
|
|
|
|
|
Depends what you're trying to do.
The conventional technique is to 'listen' on a common socket, when a client tries to communicate the 'accept' function returns the handle to a new socket that is used to hold the the conversation with that client. Thus a server can wait for a connection from multiple clients. But the conversation with each client is one-to-one on a dedicated socket.
Broadcasting or multi-casting to multiple clients is somewhat different.
|
|
|
|
|
What is the easiest way to connect to an Access DB from a ISO standard C module?
|
|
|
|
|