|
What version of VS?
DirectX SDKs add themselves automatically to my VS2003 help contents. Platform SDK soesn't
doesn't but I just searched help and found...
"Visual Studio .NET Combined Help Collection Manager" or "VSCC" and there's a page that searches
the available documentation and lets me select which ones I want. I'm about to add the PSDK
so if it brings my system down I may not be back for a while heh
|
|
|
|
|
I am using a system wide hookapi DLL which hooks StartDocA, StartDocW, EndDoc, PrintDlgExA, PrintDlgExW the latter so I can obtain number of copies, page range etc.
My hook DLL works for NotePad, WordPad etc but the problem I have is Word (and I presume the other Office applications) do not appear to use PrintDlgA, PrintDlgW, or the Ex versions to display their Print dialogs and hence I cannot obtain the number of copies, page range etc.
Does anyone know which API Word is using to display the Print dialog ?
Thanks in advance
|
|
|
|
|
Hi Guys,
I want my application to do some series of operations for every 5 or 10 mins
and am facing a proble with setting the timer event in MFC.
This is the code that i am using.
<br />
wind::OnCreate(LPCREATESTRUCT lpCreateStruct)<br />
{<br />
SetTimer(test,100000,NULL); <br />
PostMessage(WM_TIMER,0,0);<br />
<br />
}<br />
<br />
wind::OnTimer(UINT te)<br />
{<br />
AfxMessageBox("Timer",MB_OK,NULL);<br />
}<br />
The program exits immediately and i cannot see the message box which i intended to see it for some time elapse.
Pls give me some suggestion.
Thanks,
Suresh
|
|
|
|
|
Is there a ON_WM_TIMER() entry in the wind class' message map?
Why are you calling PostMessage after SetTimer()? The timer should post the message.
Maybe for testing remove one of the '0's from the millisecond value
What is causing "program exits immediately" ?
|
|
|
|
|
Hi Mark,
There is a ON_WM_TIMER entry in the message maps section.
The program dose a normal exit as there is no other code after settimer.
I tried to remove the 00's and made the timer interval to 100 but the program exits instead of waiting for the timer event.
I am posting the entire code .
<br />
BEGIN_MESSAGE_MAP(wind,CFrameWnd)<br />
<br />
ON_WM_CREATE()<br />
ON_WM_TIMER()<br />
<br />
END_MESSAGE_MAP()<br />
<br />
wind::OnCreate(LPCREATESTRUCT lpCreateStruct)<br />
{<br />
SetTimer(test,1000,NULL); <br />
}<br />
<br />
wind::OnTimer(UINT te)<br />
{<br />
AfxMessageBox("Timer",MB_OK,NULL);<br />
}<br />
thanks,
suresh
|
|
|
|
|
If you remove the call to SetTimer() , does it behave normally?
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
Hi,
I am posting a wm_destroy immediately after creation.
Thanks for that.
It works fine now.
Regards,
suresh
|
|
|
|
|
suresh0009 wrote: The program dose a normal exit as there is no other code after settimer.
Noooooooooo, this is not true. MFC application keeps running but you have to return 0:
wind::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
SetTimer(test,1000,NULL);
return 0;
}
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
|
|
|
|
|
Hi,
If i place a messagebox after the settimer the application works as desired.
<br />
wind::OnCreate(LPCREATESTRUCT lpCreateStruct)<br />
{<br />
SetTimer(test,10,NULL); <br />
AfxMessageBox("HI........timer is set",MB_OK,NULL);<br />
}<br />
here the messagebox is making sure that the program dosent exit.
can u give some suggestion.
thanks,
Ramachandra raju KK
|
|
|
|
|
i am posting a wm_destroy.
thanks for the support.
it works fine after i remove the destroy message.
regards,
suresh
|
|
|
|
|
suresh0009 wrote: PostMessage(WM_TIMER,0,0);
Don't make that.
Do you know why your application exits immediately?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
|
|
|
|
|
Hi,
I am posting a wm_destroy immediately after creation.
thanks for the support.
timer workd as desired now.
regards,
suresh
|
|
|
|
|
You can't receive a timer notification if you exit your application!
|
|
|
|
|
Don't use WM_TIMER. Create a thread that posts a custom message at the desired interval. WM_TIMER is the lowest priority message in Windows and you're not guaranteed to get the message.
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
|
|
|
|
|
I have defined my own list control based on MFC's CListCtrl. When I select items in the list with mouse click, everything works fine, the onItemChanged even has been correctly fired. But when I walk through the list items with arrow keys (up and down), the selected item in the list hasn't been changed.
Does anybody know why?
Maruko
|
|
|
|
|
I finally decided to move an ancient MFC app from VC6 to VS2005. I've had no problems building, but the app (which happens to be dialog based) doesn't seem to honor XP themes. The VC6 version (in which I'd inserted an XML manifest) honors themes and renders buttons correctly[^].
Under VS2005, I started by letting the project wizard generate a minimal dialog based app and selected "manifest support" with the default options. Yet, the app displays buttons like this[^]. I have the usual InitCommonControls() code in the app's InitInstance() but am unable to get it to render controls using the current theme.
I'm probably doing something stupid. A nudge in the right direction would be much appreciated.
Thanks,
/ravi
-- Modified at 13:53 Wednesday 17th January, 2007
Turns out my version of VS2005 is omitting the "Microsoft.Windows.Common-Controls" version="6.0.0.0" entry from the manifest. Manually injecting this into the embedded manifest fixed the problem.
-- End modification
|
|
|
|
|
If your manifest is in your resources, you also have to set the project properties (Manifest/Input and Output tab) to indicate the where to find the manifest resources - as an embedded resource you would point that entry to the $(TargetDir)$(TargetFileName).
Hope that helps.
Karl - WK5M
PP-ASEL-IA (N43CS)
PGP Key: 0xDB02E193
PGP Key Fingerprint: 8F06 5A2E 2735 892B 821C 871A 0411 94EA DB02 E193
|
|
|
|
|
Yes, that's what I did (one for each of the debug/release builds).
Thanks,
/ravi
|
|
|
|
|
Hi,
I have a doubt regarding memory sharing in a COM object.
Background: Recently we shifted to VS2005. Hence the dll written in VC6 is no longer directly useful. I might have to write a COM wrapper to access this dll. The application would be working with huge files and I want only a single copy maintained across my application. The dll should actually read the file and after the error checking send the a pointer of the memory to my application.
My question:
1) Is it possible to do it with COM?
2) What would happen if my COM object memory is on a remote server?
3) Does the COM object copy the memory and send it to the requested application or does it just pass the reference.
My intention is to maintain a single place of memory where the file data would be read and used.
Please let me know how can I achieve this through COM. Any links would be useful.
Regards,
Arti Gujare
|
|
|
|
|
ArtiGujare wrote: Recently we shifted to VS2005. Hence the dll written in VC6 is no longer directly useful.
I don't understand that? Your old C++ code should be able to still do the following in a VS2005 C++ project.
ArtiGujare wrote: The dll should actually read the file and after the error checking send the a pointer of the memory to my application.
led mike
|
|
|
|
|
When I said we shifted to VS2005 I meant that the application using the dll was previosly written in VC6 and dll too was written in VC6. Now the application has to be written in VS2005 and still use the VC6 dll. My typical use case is:
1) Application send the file name to the dll.
2) dll reads the file at that mentioned filepath and does some file checks
3) if the file is in expected format, the dll returns the pointer pointing to the file data to the applictaion.
I hope it looks clear now.
|
|
|
|
|
I see no information in there that would keep you from accomplishing that using VS2005 C++ projects.
led mike
|
|
|
|
|
What about :
2) What would happen if my COM object memory is on a remote server?
3) Does the COM object copy the memory and send it to the requested application or does it just pass the reference.
|
|
|
|
|
For (3): You cannot pass a reference to memory across machines, that makes no sense at all. Therefore the memory is copied.
I have no idea why you are fixated on COM. Nothing in your requirments demands using COM. Without a requirement I would not choose to include the complexity and overhead associated with COM. In other words I would only use COM as a last resort.
led mike
|
|
|
|
|
Hi Led,
I tried adding the VC6dll in my VS2005App using "Add Reference". I could not add it. I got the message
"A reference to "<dllpath>" could not be added. Please make sure that the file is accesible, and that it is a valid assembly or COM component"
I googled around a bit with this message and I found that I cannot simply use the VC6dll in my VS2005App. Many links suggested that I might have to wrap the dll in a COM component in order to use it. Hence the COM usage. Otherwise if there is an alternative to bypass COM wrapping I would be more than happy to do the same.
Any suggestions?
Thanks and Regards,
Arti Gujare
|
|
|
|