|
Am I allowed to distribute an app that uses Microsofts MSHTML or CHtmlView without contacting MS for pemission. I have seen some apps with this in their about box.
"Microsoft Internet Explorer components under licence from Microsoft"
.NET or not .NET? MFC is the question......
|
|
|
|
|
Hello!
According to
Redistributing Microsoft Visual C++ 6.0 Applications
Redistributing Web Applications
If your application uses the MFC classes implementing the WebBrowser control (for example, CHtmlView or CHtmlEditView), Microsoft Internet Explorer 4.0 or later must at least be minimally installed on the target computer.
So this means that the user has to install IE4 or later to use your product, but since IE is "free" ...
// Mike
|
|
|
|
|
Two question:
1.
My program must monite the communication port in real-time mode,and display the trend-line in the screen,but when i do another long task,such as copy a big file to the floppy disk,
It seem that the program's interface can't updated until this long task has finished,
what shoud I do in such case?
2. when I drag another application's window, It seem that the WM_TIMER message only occured after I release the mouse-button,but I don't want this ,what do I do in such case?
Thanks a lot!
|
|
|
|
|
hemouse wrote:
the program's interface can't updated until this long task has finished,
what shoud I do in such case?
You should create a thread to perform time consuming tasks (such as the file copy) in the background. Alternatively, you can perform the file copy in small chunks, between which you should flush the Windows message queue. The separate thread is the preferred way.
hemouse wrote:
when I drag another application's window, It seem that the WM_TIMER message only occured after I release the mouse-button
WM_TIMER messages are still being sent as you perform the drag. However, Windows will handle higher priority messages first (eg: WM_MOUSEMOVE). Eventually, all the WM_TIMER messages will be handled as a single one. You need to restructure your logic to account for this.
/ravi
"There is always one more bug..."
http://www.ravib.com
ravib@ravib.com
|
|
|
|
|
about first question:
perhaps you have misunderstood my meaning.
I didn't copy the big file in my application.Instead, I switched to the window's explore to do this task, so my application can't handle something(such as update the interface in real-time , send a signal to the comport's DTR when I received some special bytes from the comport),and these only can do after the file's copying is ended.
About question 2:
Can you give me some good advices ?
Have a nice day!
No money is a terrible thing!
|
|
|
|
|
Hi,
If you must monitor the communication port in real-time mode, do not use WM_TIMER !
Use waitable timers(check the api SetWaitableTimer) or more precise than this
multimedia timers, do a check for this on MSDN.
Anyway WM_TIMER is meant to use in user mode gui applications , not on your type of project.
I've done this kind of development, and WM_TIMER doesn't work well, it have lower priority than waitable timers and multimedia timers(more precise)
Cheers,
Joao Vaz
|
|
|
|
|
I'm developing sth. similar: Data from Serial is displayed in a diagram.
I have a workerthread polling data from serial and adding it to a shreadsave queue. a GDI-thread takes data from the queue and draws a diagramm in the Client area.
Re: to hintiflo@gmx.at if you're interested!
Don't reply from CP directly, my account doesn't work!
mfg HintiFlo
|
|
|
|
|
hemouse wrote:
It seem that the program's interface can't updated until this long task has finished,
what shoud I do in such case?
As I posted, I suggest, updating not via timer, but polling data from a queue in another thread. Maybe it helps if you read my code, I have troubles with painting, so we could exchange our projs. But only if you sware not to laugh about me and my coding "style" !
Forget the email I sent yesterday, I'm on track about your question again!
|
|
|
|
|
Hi, as the title. Can you give me a sample or some links? Thank you.
More details:
FlexGrid binds to a Recorderset, which opened with SQL cmdText not table. How can I performance this?
|
|
|
|
|
Kamp Huang wrote:
Did anybody ever use MSFlexGrid control in VC++ before?
Yes, it sucks - next question....
Seriously you can't *bind* a flexgrid to a recordset, you need to go through and copy the data into the grid.
Save yourself some grief and download Chris Maunders most excellent grid control instead. You'll still need to handle copying data into and out of the grid, but it is a LOT nicer and more flexible.
Christian
I have come to clean zee pooollll. - Michael Martin Dec 30, 2001
Sonork ID 100.10002:MeanManOzI live in Bob's HungOut now
|
|
|
|
|
Copy the datas one by one?
|
|
|
|
|
Kamp Huang wrote:
Copy the datas one by one?
Yes, I've not seen any samples that auto fill a grid for you. If I'm wrong, please correct me, but I've never seen it happen by itself.
Christian
I have come to clean zee pooollll. - Michael Martin Dec 30, 2001
Sonork ID 100.10002:MeanManOzI live in Bob's HungOut now
|
|
|
|
|
I've never found that too. Thanks for your reply. It seems that I'd better shift back to DataGrid control.
|
|
|
|
|
See my sample on MS Data Grid, That Auto fills data for you.
http://www.codeproject.com/useritems/msdatagrid.asp
MS Data Flex Grid is used with ODBC and non OLE DB data sources. MS Data Grid is used for OLE DB data sources.
|
|
|
|
|
Thanks, I've read your excellent article before. But there is a strange thing in DataGrid. When I called SetRow() method, I failed set to the row that existed but not visible in current scroll range. Do you know why?
|
|
|
|
|
I am also facing the same problem of not able to see the data in the current scroll range but with MS Flex Grid. Did u get any solution for this.and if naybody knows it please reply back.
Thanks
Chitra
|
|
|
|
|
This sample uses the MS FlexGrid
http://www.codeproject.com/database/isqlado.asp
|
|
|
|
|
Thanks a LOT!
|
|
|
|
|
I have another stupid question now. I've downloaded this sample and traced it. but I can't find where the code of putting data into the FlexGrid. I also know that the methods, SetTextMatrix() and SetText(), which can performance that job. But how the sample does that without those methods?
|
|
|
|
|
Appreciate any guru's comments and advise on the feasibility of my intended project.
I have a DOS-based application program that interacts with an piece of equipment through COM1. I would like to write a program to peek at the serial data going in/out of COM1 and send them to a remote terminal using TCP/IP.
There is a utility on the Internet called TCPCOM, but that requires a Y-cable to loop COM1 into COM2.
My questions are:
1. Can I open the serial comm port in VC++ when the COM1 port is already in use by the DOS app?
2. Will the Opening of the serial comm port cause a momentary break in COM1?
3. What if the application is Windows-based? Is it possible for 2 windows apps to share a COM port?
Regards
|
|
|
|
|
Go to sysinternals.com and download the free utility, portmon. It's very good, and might even suit your needs on it's own.
the description of portmon on that site tells you how they implemented it. the source might be available for download, i'm not sure (some of their tools have source, some don't)
Sorry to dissapoint you all with my lack of a witty or poignant signature.
|
|
|
|
|
Something like that, but I need to send all the bytes to the remote terminal over an IP network.
Using mirroring software like Carbon Copy, PCAnywhere, etc is inadequate as they would limit one local PC to one remote terminal. Furthermore, my company's IT Dept disallow the use of such products.
So I really hope someone can provide some guidance.
Thanks.
|
|
|
|
|
et wrote:
1. Can I open the serial comm port in VC++ when the COM1 port is already in use by the DOS app?
No, you can't opena com port if it is in use by another program, that includes a DOS program.
The way to peek at data is to rcv (pin 3) to a new plug. You can then open the new COM port without affecting the original line. I assume this is what you mean by Y cable.
Normski. - Professional Windows Programmer
|
|
|
|
|
Hi,
I have two application which need to communicate though a dll (one application is written in C++, the other in Java). The Java application makes calls to the dll through its native interface. My problem is the following:
The dll has to transmit data (just a string and a float) to my C++ application which should immediately react. I use a shared data segment in my dll. The data which has to be transmited is first stored in that data segment, and then my C++ application periodically looks if something in the shared data segment is waiting. This is not so elegant and also my C++ application doesn't immediately react since it only does polling.
What is the best way to proceed? Should I use a PostMessage to announce that there is data waiting? And in that case will my C++ application immediately be able to react? (the C++ application is just a dialog doing nothing if no button is pressed). Or can the data directly be transmitted in a PostMessage? (there's just a string and a float to transmit).
Should you have some good idea, please let me know
Thanks
|
|
|
|
|
Hmm, there are a couple things that i can think of anyways.
If you have the DLL working in both projects already with shared memory, you can either poll a variable in your c++ code (a byte set to 0 for no-change or haschange). You can do this as little as once a second or in a tight loop depending on your needs. Not generally a good idea though, so i recommend:
Sending a windows message with PostMessage/SendMessage.
PostMessage is will return as soon as the message is dispatched, sendmessage waits for recipt confermation. Only use sendmessage for intra-process for deadlock reasons. So your left with PostMessage.
you can PostMessage an address in the DLL, or simply use the fact that the message has been sent to check pre-defined areas in the DLL. Either way is a good way of going.
Post/sendMessage can only send two 32-bit numbers, so you cant send a string. You could try packeting through the message pump, but thats just plain silly.
// Rock
|
|
|
|