|
Funnily enough I just solved this one yesterday.
Hope this helps
Norm
void CLeftView::OnRclick(NMHDR* pNMHDR, LRESULT* pResult)
{
// Find client cursor pos...
CPoint point;
GetCursorPos(&point);
ScreenToClient(&point);
// Setup hit-code for treeitem
UINT dwItem = TVHT_ONITEM;
HTREEITEM hItem = GetTreeCtrl().HitTest(point,&dwItem);
if (hItem == NULL)
return;
// Now select the item - for real
GetTreeCtrl().Select(hItem,TVGN_CARET);
// ... some other code...
}
|
|
|
|
|
Hi All,
Q1: Any one have (simple) sample code on establishing a TCP Connection???
Q2: I need to capture some TCP/UDP Packet data (to see what a client sends to a virus server when a virus if found). I have a sniffer and the data is coming out unreadable (portions of it)??
Project Explination: I need to find out what data is being sent to a virus server which reports the virus. Once I have that, create a program that will test the reporting on all of the Virus Servers (50+). Basically send TCP/UDP message to each Server...who ever doesn't report the virus is having reporting problems.
Help is much appreciated
Thanks in advance,
Dan
|
|
|
|
|
Ok - so basically your prog is a kind of 'yes I'm here' type thing that you can run periodically to see that all hands are reporting.
The real killer would be if the packets are encrypted by the reporting program - then your only hope is binary dup and pray you fool the server.
But the first problem is getting the data.
You will probably be looking for UDP packets arriving from the clients on the server. (Just a guess). Next, there will probably be a port number you can identify (the servers listen or 'recievefrom' sockets local port).
Once you have that info, you can filter the packets accordingly and see whats being sent.
Just a suggestion though - except for the fact that you'll see the virus server respond, all your testing is that the wire's not cut. You could probably write simple clients on both ends to test that. (yes even a one socket client can do some 'listening' if you don't overload it).
Hmmm... surely this has been done before... hmmm... need coffee... hmmm... where's the 'sleepy' emoticon...
|
|
|
|
|
Thanks for the info Tim. I have created a server component that will monitor a port (139 - TCP) used by the reporting Server. After I perform some tests, I'll let you know hao it turns out. Seeing that this is not anything that my firm will not have a problem with me posting the code for others to use that need to perform simular tests.
Thanks in advance,
Dan
|
|
|
|
|
Has anyone capture the appearance of mouse on windows 98?
|
|
|
|
|
Do you mean what the cursor is set to ? GetCursor will return the current cursor for you. If you mean where the mouse appears, then GetCursorPos will return the mouse pos, and there are VK_ definitions for the mouse buttons, so you can get them as you would any other key.
Christian
The content of this post is not necessarily the opinion of my yadda yadda yadda.
To understand recursion, we must first understand recursion.
|
|
|
|
|
I meant that capturing of mouse position and what I need is to record the position of mouse position into a file . If you have any source code on mouse capture , can you show me so that I can learn more effectively ?
|
|
|
|
|
You want a file that logs the mouse position ? This would be very easy to do, but how big do you want the file to be ? How often do you want to know the mouse position ? Why ?
Christian
The content of this post is not necessarily the opinion of my yadda yadda yadda.
To understand recursion, we must first understand recursion.
|
|
|
|
|
I am suppose to capture the mouse position every 30 ms but I read about the timer and the fastest i can capture it at every 50 ms interval. I have not read about file and so do not have any idea on how big the file . So what do you suggest?
|
|
|
|
|
Whoever told you that is wrong - the smallest interval you can set the timer to is one millisecond. Look up CFile to create the file, the point of my question was if you did it in OnMouseMove you'd have a massive file. As it is you'll get a reasonable size file pretty quickly. You'll use GetCursorPos to get the mouse position in OnTimer.
Christian
The content of this post is not necessarily the opinion of my yadda yadda yadda.
To understand recursion, we must first understand recursion.
|
|
|
|
|
What if I store the position of mouse in a file , then later on I want to restore the current mouse position to that of the position stored earlier in the file?
|
|
|
|
|
I cannot concieve of a reason to do this - moving the mouse position is something you should not do without good reason as from a user perspective it is confusing. I'm guessing you want to move the mouse, capture the movement and then 'play' it ? I'd suggest using serialisation in a doc/view program, as you can just send and receive int's without any mucking around. Otherwise, it's a snap - just call SetCursorPos to move your mouse to the stored position.
Christian
The content of this post is not necessarily the opinion of my yadda yadda yadda.
To understand recursion, we must first understand recursion.
|
|
|
|
|
Could someone please shed some light on why CALLBACK functions (such as WndProc) should be either static or global and can't be non-static member functions?
Thanks.
|
|
|
|
|
Because the Windows API is still, at its heart, a C interface. Functions with the CALLBACK modifier get called by the OS, and as such have to look like a C function. That is, they can't be overloaded (which would make them name-mangled), and can't have a this pointer.
C++ member functions have an implicit this pointer as the first parameter. It goes on the stack, and it's a real parameter, even though you don't type it when you write a function. Making a member function static removes the this pointer from the function (which is the technical reason why static methods can't access non-static methods and data).
Making a function global means it's not inside a class, and so has no this pointer to begin with.
--Mike--
http://home.inreach.com/mdunn/
"Would it save you a lot of bother if I just gave up and went mad now?"
-- Arthur Dent
|
|
|
|
|
Thanks Mike! Much appreciated.
|
|
|
|
|
To add what Mike says here:
The Windows API makes a C API call into your callback function. Since it doesn't know about any objects, it can't possibly pass a this pointer to the function call.
When you write code like this:
a.DoIt();
It's really creating a function call that looks like this:
Classname::DoIt(ClassName* this)
And since this doesn't look like what the API expects, it would cause all kinds of stack corruption problems.
|
|
|
|
|
Technical aspect:
'this' is not passed on the stack. It is passed in the ECX register.
Stephen Kellett
|
|
|
|
|
Actually, it can be passed any way. Just because it currently is in your implementation doesn't mean it always is, or that it cannot be passed any other way.
|
|
|
|
|
I was referring to VC++, I should have said so (I did but the submission was reject, so I was terse the next time).
For those interested, if you are using VC++, search for
naked
in the MSDN docs, you'll find all the register usage notes.
Stephen Kellett
|
|
|
|
|
i would like to know, i got the learn c++ 21 days book, and it teaches me C++, but what about visual C++.
The book teached me dos programming (I think)
not windows as i thought.
I got Microsoft Visual Studio 6.0, to program C++
but i cant figure out: Is C++ the same as Visual C++??
Is it the same, or is it defrents. I want to program Windows
programs not dos.
Any help would be good.. THANKS (I know am dumb)
|
|
|
|
|
Before you learn Windows programming, you should at least becoming passingly familiar with C++, and the easiest way to do that is with console mode programming (what looks like DOS).
Once you are comfortable with C++, then you can move on to the more visual fundamentals.
|
|
|
|
|
First of all let me back up TOTALLY what Eric said. MFC (or even Win32) is an extension to C++, and there is no way any sensible person would attempt to jump in there without first learning C++. It's kinda like learning to dance before you can walk, one is a superset of the other, and while it can be done, the end result is usually a poor C++ programmer.
Having said that, I recommend you buy a book like 'Learn Visual C++ in 21 days' to progress into the world of Windows. I promise you the first time you look at a Doc/View application you'll wonder where everything is and how it all works, but knowing C++ will give you a start in understanding what things do, if not where they should be.
In answer to question two - Visual C++ is a C++ compiler that also compiles ATL COM objects, Win32 and MFC programs ( among others ). It can be used to write (almost) ANSI C++, or, more commonly, to write Win32 or MFC programs.
No, you're not dumb, we all start somewhere and the differences between standard C++ and Windows are not immediately apparent ( that is from the POV of a beginner with a C++ book ). You should buy a book that teachs Visual C++, and I also recommend as a long term reference 'MFC programming with Visual C++ Unleashed' - a rockin' good book. Finally, make sure you get a copy of the MSDN on your computer - an OLD edition should have come with your VC++, but getting it sent every quarter is well worth the cost.
Also, don't hesitate to ask questions in forums like this - you might be surprised to find that people who seem to know more than you could ever hope to actually learned because other people answered THEIR questions once upon a time....
Christian
The content of this post is not necessarily the opinion of my yadda yadda yadda.
To understand recursion, we must first understand recursion.
|
|
|
|
|
Hi Graap... I am from Korea. I've been learning Windows Programming from Jan in this year.
Do You know about C Language...? C++ is an Extention of C Language... So I think you must to study C Language before start to learn C++ & Visual C++'s MFC. But This is a recommended thing.
C++ is an OOP(Object Oriented Programming) Languege. OOP Language is powerfull in the reusable code aspect. You know... Now a days Programs are very large and heavy... If these programs are made of C... Most of Developers say 'Oh GOD!... or What a shame....' C is a procedural Language... So analysis of program source is very difficult. But C++ OOP Language... These codes are very intuitive.
Early days of Windows Programming... C was a major Windows Programming Language. In these days Developers used Windows API(Application Program Interface)Function that built with C. But as days go by... C reached to its limit. So MS made C++ Classes as named of MFC(Microsoft Foundation Class) to take advantage of C++ and support easy way & shortcut of Windows programming. Now a days Most of Windows programmer use MFC. These Classes wrapped a lot of Windows API as its member function. These Classes are not perfect thing. So We use these classes with Visual C++ Compiler. Visual C++ is a Tool to use MFC, not a Language. Common code for Windows programs was written by Visual Studio. So the only thing We have to do is to manipulate MFC classes and add new user defined classes.
I recommend that you first study Windows program Architecture. There are a few Bible About this. Charles petzold's 'Programming Windows" is for API Programmer and Jeff Prosise's 'MFC Windows 98 Programming' is for MFC Programmer. You can gain a lot of thing about Windows programming in these book.
There are not shortcut to be a Windows Programmer.
Good Luck!
-PS-
Do You use the MSN Instance Messenger? My ID is lee_chanwoo@yahoo.co.kr If you have additional question... access me through this messenger or Email. Email address is the same as My MSN ID.
|
|
|
|
|
I used to advocate learning C before C++, but I no longer do so, since there are plenty of good books on C++ that cover the C basics now and it's pretty seldom that most people have to write in C anymore (as opposed to using C in a C++ program which is still quite common).
If you absolutely must write C code sometime in the future, it'll be a lot easier to learn the differences between C++ and C then than to do it now.
|
|
|
|
|
First of all NEVER say the word DUMB to yourself or antone! ;-D
This word is discouraging!
O.K., to the main stuff:
#1, as you say and hear the VISUAL word, it should be clear that you have an interface, that is a GUI or Grphical User Interface. The VISUAL C++ is for a program with GUI like the windows operationg system or if you know about the X Windows/Motif which is a GUI library for the Unix systems!
The C++ itself only is for NON-GUI programs, like the ones for the DOS or even the Unix systems. No graphical user interfaces exist, all are charcter based.
If you want to start with windows C++ with a GUI, you must start learning C++ 1st, then learn MFC. The second is the library for all the windows based GUI components and it makes it very easy to program windows with GUI.
As Christian mentioned, learn C++ with the Visual C++ Console projects which makes a windows with dos shell mode application and no GUI.
To learn windows programming, you should know about Message and Event based programming, which is all what Windows does, in contrast is the Dos.
Good Luck and keep asking QUESTIONS, they SLOVE things!
Never DISCOURAGE yourself, especially in this field!
Cheers
Masoud
|
|
|
|