|
>> i'm new to VC6++
Are you new to C++ or just the Microsoft Environment?
"No matter where you go, there your are." - Buckaroo Banzai
-pete
|
|
|
|
|
Presently i'm working in .NET envirnoment and have a good Idead of Turbo C++ 3.0 and C language and JAVA too.
but as i started wor on speech Technologies specialy Philips , which has raw VisualC++ 6 API, So either i need to program it in VC or a way to create reusable component of whole API ewhich includes .lib,.h and dll files?
To get Alll let me know good book to start on developing COM component of API as we had COM component of MS WOrd
thanks
|
|
|
|
|
I tried to hide a window B, and active window A, however, even though the dialog is hidden, the menubar belongs to B is still active, any solution for this? Thanks a lot!
|
|
|
|
|
Some questions to clarify the issue..
How do you mean the menubar is active when you say the dialog is hidden?
How have you created and hidden the dialog and how have you attached the menu?
|
|
|
|
|
Hi i'm trying to load a bitmap in a menu. I'm using this code, in the create function of the mainframe, but i'm not succesful:
[CODE]bmp.LoadBitmap(IDB_BITMAP2);
this->GetMenu()->GetSubMenu(2)->SetMenuItemBitmaps(1,MF_BYPOSITION,&bmp,&bmp);
[/CODE]
In the menu properties, the item number one, is checked.
what am i doing wrong?
thanks
|
|
|
|
|
Have you cross-checked your code against any of the multitude of examples on http://www.codeproject.com/menu/[^]. If the code is ok, have you tried adding some error checking to see if any of the calls fails?
|
|
|
|
|
>> struct fileHdr has member (first one) as a char* and its set to "ABCD".
So you are writing the value of the pointer to the file NOT the charcters. So the reading is not the problem it is the writing. Did you look at the file in Notepad to see if the "ABCD" was in there?
"No matter where you go, there your are." - Buckaroo Banzai
-pete
|
|
|
|
|
A named pipe is a named, one-way or duplex pipe for communication between the pipe server and one or more pipe clients. All instances of a named pipe share the same pipe name, but each instance has its own buffers and handles, and provides a separate conduit for client-server communication. The use of instances enables multiple pipe clients to use the same named pipe simultaneously.
Can anyone point me in the right direction for creating multiple named pipe of the same name and using multiple clients over it. i.e how do a client distinguish which pipe to connect if we have two pipes created in two process with the same name.
|
|
|
|
|
One the Win32 platform, in theory instanses of the named pipe could be distinguished via handles. One the UNIX platform, consider, for example, a file descriptor.
Kuphryn
|
|
|
|
|
I am sorry but if two different processes create a named pipe with the same name how can the client differ in the two? A client would not have handles to any.
|
|
|
|
|
One possible solution is via process ID or the name of the window?
Kuphryn
|
|
|
|
|
What you're planning is not possible. Two different pipe server processes can not create a named pipe with the same name.
From MSDN:
Each named pipe has a unique name that distinguishes it from other named pipes in the system's list of named objects.
The way named pipes work is pretty straight-forward. Firstly, you have a pipe server process that is responsible for creating pipe instances. The function CreateNamedPipe creates either the first instance of a named pipe, or a new instances of an existing pipe. Like MSDN states, each of these instances have their own buffers and handles. When the first instance of the pipe is created, this pipe-name becomes unique to this process. No other pipe server process can create a named pipe with the same name. Attempting such would result in an error code (ERROR_BAD_PIPE or ERROR_INVALID_HANDLE). After the pipe instance is created, ConnectNamedPipe prepares this created pipe instance for client connections. Each instance of a named pipe MUST be prepared by the server before a connection from a client is possible.
This server process can then, as it sees fit, create and prepare more instances of the same pipe or instances of differently-named pipes. Clients can then use CallNamedPipe to connect, transact and disconnect from an (undetermined) instance of the named pipe. If the server has run out of free pipe instances, an error value is returned (ERROR_PIPE_BUSY), or optionally, the function can wait until a pipe instance becomes available. The clients can not distinguish which pipe instance they are connecting to. All instances of a named pipe are similar by outside aspects, i.e. they provide precisely the similar type of services. If you need a type A pipe for one client and type B pipe for another client, you must create two named pipes, which both have a seperate unique name.
See the idea ? Server creates and initializes named pipe instances (one or more instances of the same named pipe, and/or one or more instances of several named pipes), and clients request an access to these instances for data transfer, identifying the requested named pipe by it's name. But the clients can not determine the specific instance of the pipe they wish to connect to. This is determined by the server.
-Antti Keskinen
----------------------------------------------
The definition of impossible is strictly dependant
on what we think is possible.
|
|
|
|
|
Thanks for the response. I will see how I can work this out......
Can you please clarify what nDefaultTimeOut parameter stands for in CreateNamedPipe call and what is its connection to WaitNamedPipe etc call(s) if any.
|
|
|
|
|
This parameter of the call specifies the time, in milliseconds, that a client connecting to the pipe will wait for when no free pipe instances are available. You can determine how long the client side function will wait before issuing a time-out. It can be a certain time in milliseconds, the default wait time specified by the server, or it can wait forever.
Here, the default wait time specified by the server is the key phrase. This time period is determined by the nDefaultTimeOut parameter. Each pipe instance created by CreateNamedPipe must specify the same time-out value. This value is supplied only so that clients, which use WaitNamedPipe or CallNamedPipe functions to connect to the named pipe, know how long they should wait, by default, before issuing a time-out error.
If, during this time period, a pipe instance becomes available (the server creates a new instance or some other client disconnects from one pipe instance), then the client-side pipe function will connect to this available pipe.
-Antti Keskinen
----------------------------------------------
The definition of impossible is strictly dependant
on what we think is possible.
|
|
|
|
|
Thanks a lot!!!
One more question....
<br />
LPTSTR lpszPipename = "\\\\.\\pipe\\mynamedpipe"; <br />
HANDLE hEvents = CreateEvent(NULL, TRUE, TRUE, NULL);<br />
OVERLAPPED Overlap;<br />
Overlap.hEvent = hEvents; <br />
<br />
Pipe.hPipeInst = CreateNamedPipe( <br />
lpszPipename,
PIPE_ACCESS_DUPLEX |
FILE_FLAG_OVERLAPPED,
PIPE_TYPE_MESSAGE |
PIPE_READMODE_MESSAGE |
PIPE_WAIT,
INSTANCES,
BUFSIZE,
BUFSIZE,
PIPE_TIMEOUT,
NULL);
<br />
while (1) <br />
{ <br />
BOOL bSuccess = ::ConnectNamedPipe(m_hPipe, lpOverlapped); <br />
dwWait = WaitForMultipleObjects( <br />
INSTANCES,
hEvents,
FALSE,
INFINITE);
switch(dwWait)<br />
{<br />
case ..
}<br />
}<br />
How can I create a new pipe instance using CreateNamedPipe for every new client.
|
|
|
|
|
Named pipes should only be used when you have at least some approximation of how many clients there will be connecting. If you have no idea how many, then I would consider using sockets as a better alternative, for efficiency, safety and listening reasons. Afterall, when the server creates one listening socket, each client can connect to that one and the server will worry about establishing a connection on a seperate socket.
But if you must use pipes, then I suggest that you firstly create just one pipe instance. Always when a client connects to this pipe (handle client connecting), the server will call a function that creates a new pipe instance. This follows the logic: "You don't know how many clients there will be, so always keep at least one pipe instance available for a new client."
-Antti Keskinen
----------------------------------------------
The definition of impossible is strictly dependant
on what we think is possible.
|
|
|
|
|
Thanks a lot!! I know that the number of clients will be very limited usually max 2, so I think there is not much to worry about....
|
|
|
|
|
Where can i find the IE auto complete form data in the registry or whereever it is stored
any links and help will be much appreciated
C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg
|
|
|
|
|
Check out the HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\SPW registry key.
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
Thanks i couldnt find the key on my system
i have intelliforms but it has no subkeys may be because i have disabled autocomplete since i can remember
and what about username and passwords i just want to remove all of them (not through IE ) where are they stored ?
C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg
http://www.mastishk.com
|
|
|
|
|
I know of no other location where that information is stored. You might search in the same key under the HKEY_USERS hive. If you are not using Windows 2000, you might search the HKEY_CURRENT_USER hive for the IntelliForms key.
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
Dear Friends,
I have a .li file which works well in Release Mode but it gives error in Debug Mode. I have told to do necessary modification in .lib file to work satisfactorily in Debug mode.
Will you please write to me how to handle this task. Any kind of suggesion will be highly appreciable.
Thanking You in advance..
Billar
|
|
|
|
|
Can you specify what error you get in Debug mode.
|
|
|
|
|
hot to get font file path to font selected to dc?
all i can get is something depending on actual language, not real file path
(arial bold instead of arialb.ttf, 'bold' is act language dependant)
|
|
|
|
|
Can we change wParam in callback keyboardProc function in order to get the character we want , in the destination window(by changing the actual virtual keycode). In my practice, when I changed the wParam inside callback function I didn't get the desired result(no change in the result) . Can any one help me.
Thanking you
arathi
|
|
|
|