|
acerunner316 wrote: Is this the correct way to do it?
Yeah I didn't think about how the class wizard would react I guess some hand-coding/rearranging
will be necessary.
acerunner316 wrote: I would have to remap all the controls from the existing tab window though
If you choose to go that route, use the class with the most code already in it. Copy the
cpp and h files and rename to the base class name or whatever. In the files find/replace all
instances of the old class name with the new name.
That'll save much work.
|
|
|
|
|
The class wizard doesn't seem to allow creating a derived class from a derived class. In the Add New Class dialog box, there is no selection for user defined classes, just the standard Windows classes.
|
|
|
|
|
That has to be changed by hand as far as I know. I usually derive from the known (by the class
wizard) class (CDialog) and then change all the CDialog to CMyDialog. This is way easier after
all the controls and control message handlers have been added using the wizard.
Later, if controls are added or removed I just do it by hand, since there's already code there
to copy from.
It's a fact of life with an advanced UI layout
Someday the wizards will learn from the way we do things and adapt....I hope!
|
|
|
|
|
Hello,
I am having real trouble figuring out how to use CInternetSession, CHttpFile, and the like to interact with web servers and download content.
Is there anyone here with experience using these classes?
Specific Questions:
Am I supposed to use either OpenURL OR create a CHttpConnection, but not both?
Am I supposed to first call CHttpFile::SendRequest() and then wait for it to call my StatusCallback function, then start reading from the CHttpFile?
Why does the CHttpFile not show any response even though the callback function says that a response has been received?
--------------------------------
"All that is necessary for the forces of evil to win in the world is for enough good men to do nothing" -- Edmund Burke
|
|
|
|
|
Richie308 wrote: Has anyone used the MFC Internet Classes?
No. No one has ever used them.
Richie308 wrote: I am having real trouble figuring out how to use CInternetSession, CHttpFile, and the like to interact with web servers and download content.
You mean like in the instructions that they hid in the documentation[^]?
led mike
|
|
|
|
|
Your post is not helpful. Better to say nothing than say garbage like that.
The documentation is obviously not answering my questions. If you have something to contribute, then do so.
--------------------------------
"All that is necessary for the forces of evil to win in the world is for enough good men to do nothing" -- Edmund Burke
|
|
|
|
|
Well I wouldn't want you to have to read any documentation so here use this article [^]and you can just copy paste your code.
led mike
|
|
|
|
|
That's fine for synchronous use of the classes, but I'm trying to use them asynchronously.
--------------------------------
"All that is necessary for the forces of evil to win in the world is for enough good men to do nothing" -- Edmund Burke
|
|
|
|
|
Richie308 wrote: I'm trying to use them asynchronously
Can you do that with the MFC WinInet classes (well, aside from using a separate thread)?
|
|
|
|
|
Mark Salsbery wrote: Can you do that with the MFC WinInet classes (well, aside from using a separate thread)?
I don't know, and the documentation doesn't provide an answer either way.
--------------------------------
"All that is necessary for the forces of evil to win in the world is for enough good men to do nothing" -- Edmund Burke
|
|
|
|
|
Check this out (code samples): WinInet Basics[^]
From the CInternetSession::EnableStatusCallback docs:
"To handle any operations asynchronously, you must either create your own thread or use the
WinInet functions without MFC."
|
|
|
|
|
Anybody can miss any specific sentence buried in the documentation.
This is supposed to be a help board, not a stick-it-in-your-face board.
--------------------------------
"All that is necessary for the forces of evil to win in the world is for enough good men to do nothing" -- Edmund Burke
|
|
|
|
|
If quoting it here didn't help then sorry. It was easier to copy/paste than to type it.
|
|
|
|
|
Richie308 wrote: the documentation doesn't provide an answer either way.
As posted in another reply... yes it does. MSDN online has almost everything. Google performs the best searches of MSDN material. Put "MSDN" as the first keyword in your google search input. Figuring out what keywords to use is the... ummm ... key to researching these days. In case Bob is listening.... of course Articles at CodeProject are another great resource.
led mike
|
|
|
|
|
Richie308 wrote: I'm trying to use them asynchronously.
You never said that until now.
Google is your friend: "MSDN WinInet MFC"
finds: http://support.microsoft.com/kb/164983[^]
SUMMARY
The MFC WinInet classes (CInternetSession, CInternetConnection, and so forth) are not designed to be used with asynchronous WinInet connections or file transfer. Instead, developers looking for asynchronous-like behavior in their MFC WinInet application should implement separate synchronous WinInet sessions in secondary threads.
led mike
|
|
|
|
|
led mike wrote: You never said that until now.
Well you would not have known, because you initially responded with childish sarcasm, instead of like a helpful human being.
--------------------------------
"All that is necessary for the forces of evil to win in the world is for enough good men to do nothing" -- Edmund Burke
|
|
|
|
|
Richie308 wrote: because you initially responded with childish sarcasm, instead of like a helpful human being.
For a few poeple, the sarcam will help them understand the need to develop skills related to finding information and reading it rather than having to rely on others for help. Others who can help because they did read the documentation. For those few that heed the message, they will significantly improve thier development skills. For the rest that don't heed the message but rather complain about the delivery, they will continue to struggle but that is their choice. A few insults and complaints hurled at me by lazy people that won't amount to anything anyway are worth bearing if I may help even a single person become a "professional" developer. But if you prefer to whine about it go right ahead, it has no effect on me.
Also, no one knew about your async requirement because you didn't post it, not for any other reason.
led mike
|
|
|
|
|
You can rationalize being a jerk if you want to, but it will not improve you.
Rich
--------------------------------
"All that is necessary for the forces of evil to win in the world is for enough good men to do nothing" -- Edmund Burke
|
|
|
|
|
Richie308 wrote: You can rationalize being a jerk lazy unskilled developer if you want to, but it will not improve you.
led mike
|
|
|
|
|
It's not your job to police the boards for people whom you think are lazy. If you think someone is lazy, just don't answer them.
This is not YOUR board, you don't make the rules. Quit trying to prove you're better than the next guy, and shut up.
--------------------------------
"All that is necessary for the forces of evil to win in the world is for enough good men to do nothing" -- Edmund Burke
|
|
|
|
|
Richie308 wrote: and shut up.
I am not the one that had to post a question asking for help, or did that fact escape you? If I feel like handing out other advice along with the particular solution some lazy mental midget asks for I will. All your whining won't stop me.
Richie308 wrote: It's not your job to police the boards
But apparently it is your job? Obviously logic is not one of your strong skills.
led mike
|
|
|
|
|
|
I'm sorry for reposting this but I was not able to get back to work on this project until just now.
I am currently designing a 2D/3D interface package based on Direct3D, but need to include a DirectShow VMR9 window in the interface which will be diplaying video from a capture card or pre-recorded videos.
The problem is that I have a render loop that constantly updates and redraws the interface, which causes the embedded video to flash. Is there a way that I can tell part of a surface not to be redrawn, i.e. the surface behind the vid window? It is on top of a large fullscreen size surface which holds a background image. Else is there a simple way to place individual frames of a my video onto a Direct3D surface which can then be drawn on top of the backgroung image.
I'm fairly new to Direct3D and very new to DirectShow. Any help is appreciated.
Thanks,
Dustin
P.S. I have tried using ExcludeClipRect() but it appaerantly only works with GDI. I have also tried telling the video to repaint after the interface was drawn, but to no avail.
|
|
|
|
|
Writing your own renderer is one option. The sample base classes included with the DirectShow
SDK make it relatively simple.
The Texture3D9 Sample[^] in the DirectShow SDK may help for rendering video to a Direct3D surface.
|
|
|
|
|
I've tried looking through that sample but can't really make heads or tails of it, mainly because I don't really have a clue about how DirectShow actually works. I have searched everywhere for a good tutorial, but everone I can find does things that I don't need and doesn't do the things that I do.
I've got a file loading and playing just fine with full control over playback, but that's where my success ends. I need to be able to load multiple videos and play them back based on events generated by the interface. The problem is I don't know how the videos are actually stored. Do I need to create a multiple IVMRWindowlessControl9 or IGraphBuilder. Which interfaces can be reused and which cannot.
If anybody knows of a good tutorial that would teach me all this I would very much appreciate it. It seems DirectShow is far less popular than the other DirectX APIs.
Thanks for your help,
Dustin
|
|
|
|