|
Hi all,
I have a qiestion about Norton AntiVirus and SetWindowsHookEx().
In Win98, I installed Norton AntiVirus (ver.2000) and my program using SetWindowsHookEx(WH_GETMESSAGE...) to get the mouse message.
The purpose of my program is to redirect the mouse button's performance.
For example, when I click right button, I don't want system to show a popup menu but I want to simulate 'Enter' key.
It works well in all O.S.. But in Win98 and WinMe, if I installed Norton Antivirus, my program will delay about 1 second.
I write some values in registry and when I click mouse button, it will open and read the registry key value which I wrote.
Is that the main reason to cause the delay ??
But in WinXP and Win2000 don't have this question.
Does anyone can help me to check this issue ?
If you need my source code to check , please let me know, I'll send to you .
Thanks a lot.
|
|
|
|
|
I want to understand that if we give a same ID to a CWnd derive window while creating it, Would it be erronous. If yes then how ?
Also I want to understand let me frame my question with an example
I create a EditBox whose parent is my view class lets say the id of this editbox is 1001.
Now I create a Modeless Dialog which has also got a EditBox with the same ID that is 1001.
So are these two CWnd going to clash in some way or the other ?
Please throw some light on this.
Abhishek Narula
"Learn to appreciate others ... World would appreciate you"
|
|
|
|
|
Abhishek Narula wrote:
I want to understand that if we give a same ID to a CWnd derive window while creating it, Would it be erronous.
Of course.
Abhishek Narula wrote:
If yes then how ?
Those ID's are used to map messages, I believe. Imagine two controls in one dialog both with the same ID. They are used to interact with your code - your variable name is mapped to an ID. Now imagine if two were both the same ID.
They obviously won't clash, or at least they are unlikely to. If two different dialogs have an edit box named IDC_EDIT, they will both have the same ID and not clash.
Christian
I am completely intolerant of stupidity. Stupidity is, of course, anything that doesn't conform to my way of thinking. - Jamie Hale - 29/05/2002
Half the reason people switch away from VB is to find out what actually goes on.. and then like me they find out that they weren't quite as good as they thought - they've been nannied. - Alex, 13 June 2002
|
|
|
|
|
Is there a limit to these IDs ? except for the range of UINT, is there any reserver range or something ??
why does Resource.h has got various IDS starting from different values.
what is the significance of these ranges !!
Abhishek Narula
"Learn to appreciate others ... World would appreciate you"
|
|
|
|
|
Abhishek Narula wrote:
what is the significance of these ranges !!
Just to group like things together.
Christian
I am completely intolerant of stupidity. Stupidity is, of course, anything that doesn't conform to my way of thinking. - Jamie Hale - 29/05/2002
Half the reason people switch away from VB is to find out what actually goes on.. and then like me they find out that they weren't quite as good as they thought - they've been nannied. - Alex, 13 June 2002
|
|
|
|
|
There are defined limits for the various ID ranges in resource.h. Microsoft describes these ranges in technical note 35.
From TN035:
---------------------------------------------------------------------------------------------------------
_APS_NEXT_RESOURCE_VALUE is the next symbol value that will be used for a dialog resource, menu resource, and so on. The valid range for resource symbol values is 1 to 0x6FFF.
_APS_NEXT_COMMAND_VALUE is the next symbol value that will be used for a command identification. The valid range for command symbol values is 0x8000 to 0xDFFF.
_APS_NEXT_CONTROL_VALUE is the next symbol value that will be used for a dialog control. The valid range for dialog control symbol values is 8 to 0xDFFF.
---------------------------------------------------------------------------------------------------------
It is best to keep your resource #defines within these ranges, as some things may break if you use values outside these ranges.
Certain MFC data types are written assuming that the resource id values fit within a 16 bit unsigned int. For instance, the CString object allows a string to be loaded from the resources during its construction by passing its resource id to the constructor, but only works if HIWORD(id) is 0.
In order to load a string this way, you use the following form of the constructor:
CString string( LPCTSTR(RESOURCE_ID) );
This constructor distinguishes between a resource id and a pointer to an existing character buffer by looking at the hiword of the LPCTSTR pointer. If the hiword is 0, a string is loaded from the resources. If the hiword is not 0, a string is copied from an existing buffer.
Best regards,
John
|
|
|
|
|
Linking...
Creating library ReleaseMinSize/Deskband.lib and object ReleaseMinSize/Deskband.exp
LIBCMT.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
ReleaseMinSize/Deskband.dll : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
Deskband.dll - 2 error(s), 0 warning(s)
Please Help me. What could I do ?
Thank you for your kindness
|
|
|
|
|
What are you building ? Probably it's an ATL project and you need to remove the #define ATL_MIN_CRT from stdafx.h.
Christian
I am completely intolerant of stupidity. Stupidity is, of course, anything that doesn't conform to my way of thinking. - Jamie Hale - 29/05/2002
Half the reason people switch away from VB is to find out what actually goes on.. and then like me they find out that they weren't quite as good as they thought - they've been nannied. - Alex, 13 June 2002
|
|
|
|
|
Hi All,
I'm on Windows 2000 and am trying to get the status of a directory which has the permission to write files turned off.
When you click on the properties of a directory and click on the "security" tab you can set certain permissions of that directory, such as ability to write files turned off.
My question is how can I get these permissions in Visual C++? What API call do I have to do?
Thanks,
Philip
|
|
|
|
|
Use _taccess with mode = 2
|
|
|
|
|
I feel dumb asking this question ... but
what the heck.
You know how sometimes a program writes to the
console stuff like ...
main.cpp line 345 cannot open file blah.dat
... I want to open the file main.cpp and
have to cursor go to line 345.
How do you do that with the VC++ 6 editor?
Thanks
|
|
|
|
|
As i recall, it's either an option under the Edit menu, or Edit->Advanced menu.
--------
Have you hugged your monitor today? --Shog9 --
|
|
|
|
|
Ctrl+G, In the dialog that appears type the line number.
I have never wasted time worrying about such insignificant things. Keep your eye upon the donut and NOT upon the hole. - Bill Sergio about posting in the right forum. The Lounge - June 23, 2002
|
|
|
|
|
I think you may have gotten a better answer, but:
There is a line and column counter in the lower right of the screen when you are editing your source file.
|
|
|
|
|
hi all,
would anyone kindly to solve this problem for me?
do you know how to print a message in VC++ IDE's debug window when i run a program in debug mode?
i saw that CWinThread able to send the thread ID to the debug window when the CWinThread was quitted.
i want to do sth like this. for example, print "button is clicked" in debug window when i click a button.
pls try to ask my question!
thanks,
Jim
|
|
|
|
|
If you're using MFC, just use the TRACE() macro.
--------
Have you hugged your monitor today? --Shog9 --
|
|
|
|
|
|
How can i disable the shadows for my CMenu derived class without disabling the shadows for the main menus under Windows XP?
|
|
|
|
|
I am trying to find the position in a midi file. The file is opened and playing and the time format is in milliseconds if that matters. The following code always returns false after the mciSendCommand. Why? What is going wrong?
MCI_STATUS_PARMS mci_status_params;
mci_status_params.dwItem = MCI_STATUS_POSITION;
if(mciSendCommand(myDeviceHandle, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)&mci_status_params))
{
return false; // this always occurs
}
myPosition = mci_status_params.dwReturn;
return myPosition;
Can anyone help? Obviously I am using MCI.
|
|
|
|
|
Let me state the problem ANOTHER way:
Microsoft says that The IShellLink interface has an ANSI version (IShellLinkA) and a Unicode version (IShellLinkW). The version that will be used depends on whether you compile for ANSI or Unicode. However, Microsoft® Windows® 95 and Windows 98 only support IShellLinkA.
My question is this... Is there a way to compile a SINGLE CLASS that will work on BOTH Windows 98 and Windows 2000 to create Links depending on the platform?
For example, can you do something like:
if (b2000 || bNT)
{
// Use IShellLinkW
}
else {
// use IShellLinkA
}
Do you have to compile 2 separate programs to create links?
Bill SerGio, The Infomercial King
|
|
|
|
|
Two more thinks to check for are if it works in both NTFS and FAT.
Also NT5 /2000 uses shell link tracking, so check to see if a shortcut is moved that it still works.
Regardz
Colin J Davies
Sonork ID 100.9197:Colin
More about me
|
|
|
|
|
It seems that the more I test code and research this problem, that it is IMPOSSIBLE to write a single class and compile it to work for both Windows 98 and windows 2000.
The ONLY solution seems to be to create 2 versions of a DLL or an EXE, one for UNICODe and one for ASCII to create links.
Bill SerGio, The Infomercial King
|
|
|
|
|
There is no reason to build both a UNICODE and ASCII version. Just call the W and A routines directly based on the OS.
Tim Smith
I know what you're thinking punk, you're thinking did he spell check this document? Well, to tell you the truth I kinda forgot myself in all this excitement. But being this here's CodeProject, the most powerful forums in the world and would blow your head clean off, you've got to ask yourself one question, Do I feel lucky? Well do ya punk?
|
|
|
|
|
That is what I thought originally and it turns out NOT to work which surprised me.
the reason that it fails is that if you include a condition based on the operating system as follows:
if (b2000 || bNT)
{
// Use Unicode
}
else {
// Use ASCII
}
The reason it fails has to do with the fact that you can't get the code to compile on Windows 98.
Remember I am developing on Windows 98 and this is the problem.
For example, "SHGetSpecialFolderLocation()" works on Windows 98 but the call for the UNICODE function, "ShGetFolderPath()" FAILS to compile on a Windows 98 machine using Visual Studio UNLESS YOU COMPILE with unicode which renders the code useless on Windows 98
Bill SerGio, The Infomercial King
|
|
|
|
|
Bill SerGio wrote:
For example, "SHGetSpecialFolderLocation()" works on Windows 98 but the call for the UNICODE function, "ShGetFolderPath()" FAILS to compile on a Windows 98 machine using Visual Studio UNLESS YOU COMPILE with unicode which renders the code useless on Windows 98
You may have a problem with your VS installation. Or possibly need updated SDK header files, not sure. SHGetFolderPath() was introduced as a shortcut for the most common use of SHGetSpecialFolderLocation() , and requires that a separate DLL (SHFolder.dll) be installed. It does however work on both Win98 and Win2k should these criteria be met.
Or you can just use SHGetSpecialFolderLocation() and SHGetPathFromIDList() to accomplish (mostly) the same thing (but you'll have to do your own handling for CSIDL that are user-specific or not implemented on 98 (ex: CSIDL_PROGRAM_FILES_COMMON , CSIDL_COMMON_DOCUMENTS ).
--------
Have you hugged your monitor today? --Shog9 --
|
|
|
|