|
sorry a correct to my previous post, when I say HHOOK, I meant HOOKPROC
|
|
|
|
|
Go back and read my original post. The crash is probably happening because you're not calling CallNextHookEx().
he he he. I like it in the kitchen! - Marc Clifton (on taking the heat when being flamed)
Awasu v0.4a[^]: A free RSS reader with support for Code Project.
|
|
|
|
|
I put CallNextHookEx(0,nCode,wParam,lparam); in my callback function MouseProc, but it still crashed. Actually how do I obtain the first argument to CallNextBookEx inside MouseProc, the first argument is a handle to the current hook?
thanks
|
|
|
|
|
Since there may be more than 1 program wanting to receive these events, Windows keeps a list of everyone who is interested in receiving them. When you register for these events by calling SetWindowsHookEx(), the return value is a handle for the next person in the list. This is what you pass into CallNextHookEx() so that Windows can let him know about the event as well. He is then responsible for passing it on to the next guy and so on until everyone has received the event.
he he he. I like it in the kitchen! - Marc Clifton (on taking the heat when being flamed)
Awasu v0.4a[^]: A free RSS reader with support for Code Project.
|
|
|
|
|
yes, my question was how to obtain the HOOKPROC that points to the current hookproc in my callback function in order to pass it to CallNextHookEx
CallNextHookEx(currentHookProc,nCode,wParam,lparam);
thanks
|
|
|
|
|
If you call SetCapture, you'll get notification of the next mouse click and your window will recieve all mouse move messages until that click occurs.
Christian
No offense, but I don't really want to encourage the creation of another VB developer.
- Larry Antram 22 Oct 2002
C# will attract all comers, where VB is for IT Journalists and managers - Michael
P Butler 05-12-2002
Again, you can screw up a C/C++ program just as easily as a VB program. OK, maybe not
as easily, but it's certainly doable. - Jamie Nordmeyer - 15-Nov-2002
|
|
|
|
|
if I select from the inserted items(Properties->Data)
the MessageBox() shows the selected item
but when I enter text(item) to the EditBox of the Combo at run time (I want it shown on MessageBox too), the MessageBox is empty. Help me with this please.
the piece of code is:
void CComboView::OnButton1()
{
// TODO: Add your control notification handler code here
int x;
if (x=m_ComboCtrl.GetCurSel() == CB_ERR)
{
m_ComboCtrl.GetWindowText((LPSTR)(LPCSTR) m_Combostr, x);
}
else
{
m_ComboCtrl.GetLBText(x, m_Combostr);
}
MessageBox(m_Combostr, "Simple");
}
|
|
|
|
|
Have you try this?
void CComboView::OnButton1() <br />
{<br />
CString strText;<br />
<br />
m_ComboCtrl.GetWindowText(strText);<br />
if(!strText.IsEmpty())<br />
MessageBox(strText, "Simple");<br />
}
HTH,
K.
One small village of indomitable geeks still holds out against the invaders. And life is not easy for the managers legionaries who garrison the fortified camps of Microsoftum, Javum, Ceplumplum and Vebasum
|
|
|
|
|
hi,
I'm developing ATL ActiveX DLL that used by ASP/VBScript client.
This server uses VARIANT as a parameter input :
HRESULT UseThis([in] VARIANT StringParam, [out, retval] long *ret);<br />
<br />
STDMETHODIMP CObj::UseThis(VARIANT StringParam, long *ret)<br />
{<br />
*ret = 1;<br />
<br />
if((StringParam.vt & VT_ARRAY) && (StringParam.vt & VT_BSTR))<br />
{ <br />
SAFEARRAY *pString = StringParam.parray;<br />
BSTR *bstrArray;<br />
CComBSTR bstrRet;<br />
SafeArrayAccessData(pString, (void**)&bstrArray);<br />
<br />
for(ULONG i = 0; i < pString->rgsabound->cElements; i++)<br />
{<br />
bstrRet = bstrArray[i]; <br />
}<br />
SafeArrayUnaccessData(pString);<br />
SafeArrayDestroy(pString);<br />
<br />
*ret = 0;<br />
}<br />
<br />
return S_OK;<br />
}
When I try to use the function from VB client it OK, but when used from ASP/VBScript client it just FAILED !
VBscript client running on IIS:
Dim obj<br />
Dim ret<br />
Dim strParam(2)<br />
<br />
Set obj = Server.CreateObject("MyATL.Obj") <br />
<br />
strParam(0) = "We"<br />
strParam(1) = "love"<br />
strParam(2) = "COM" <br />
<br />
ret = obj.UseThis(strParam)<br />
<br />
Response.Write "Result is : " & ret<br />
<br />
Set obj = Nothing
Thank u very very much in advance . Any advice, help and suggestions strongly aprreciated.
Regards.
|
|
|
|
|
My initial suspicion is that if it runs fine in VB, but not in a script, that the problem might actually be in the script, not the COM server. I have had headaches debugging scripts, so are you sure execution is reaching obj.UseThis(strParam) without any errors?
|
|
|
|
|
hi,
thanx for ur reply.
I'm very sure it reach obj.UseThis(strParam) but with error.
In ASP I cannot declare variable like Dim strParam(2) as String .
regards.
|
|
|
|
|
Ah yes, a script would give you a SafeArray of Variants which contain BSTRs, not simply an array of BSTRs as with VB. Sorry I didn't notice that.
|
|
|
|
|
Here is my situation, I am using GetDiskFreeSpaceEx to grab drive information from mulitple servers across the network. When for some reason or another that the server is down/unavailable, it can take GetDiskFreeSpaceEx up to 60-180 seconds to "TimeOut". Does anyone know how to change the time out value or how I should go about implementing some timeout code?
Environment VC6
Platform writing for: NT4, W2K, XP
Thanks in advance.
|
|
|
|
|
Hi guys,
is there anybody who has examples of W2K power management/power options?? I would like to know how to implement functions like "stand by", "hiberate", etc. Thanks in advance.
|
|
|
|
|
I remember that there is a Windows API to immplement your wanted function.I am sorry that I had forgot the function name ,maybe "ShutdownWindows",you can search it in MSDN.microsoft.com
I am I,Who is who,I am who,Who am I
|
|
|
|
|
Hi,
I created an instance of my CFrameWnd-derived class with:
CRuntimeClass* pRuntimeClass=RUNTIME_CLASS(CMainWindow);
CObject* pObject=pRuntimeClass->CreateObject();
ASSERT(pObject->IsKindOf(RUNTIME_CLASS(CMainWindow)));
CMainWindow* mainWindow=(CMainWindow*)pObject;
How can I destroy this object at the end of my application?
delete mainWindow does obviously not work. Is there maybe a function similar to CreateObject() which destroys it?
Thank you
|
|
|
|
|
|
Thank you for your reply.
I also thought that the window would automatically get destroyed, but in debug mode it tells me that it detected memory leaks (the CFrameWnd and its toolbar)
|
|
|
|
|
IMO the automatic memory leak detection detects more than is there.
Christian
No offense, but I don't really want to encourage the creation of another VB developer.
- Larry Antram 22 Oct 2002
C# will attract all comers, where VB is for IT Journalists and managers - Michael
P Butler 05-12-2002
Again, you can screw up a C/C++ program just as easily as a VB program. OK, maybe not
as easily, but it's certainly doable. - Jamie Nordmeyer - 15-Nov-2002
|
|
|
|
|
In debug mode I checked if the destructor is called, and it is not called.
|
|
|
|
|
Greetings,
I am embedding a .pdf file in my executable by using a custom resource ("PDF"). At runtime, I can extract this using the usual LoadResource() stuff and saving as a temp file and then running ShellExecute() on that file. This works, but leaves a temp file around. Not tidy.
What would be nice is being able to do something like:
ShellExecute(..., "res://program.exe/PDF/mypdffile.pdf", ...)
Unfortunately, this doesn't seem to work (at least not on Win2000 using IE6). I get a message from IE saying the page couldn't be loaded.
Doing something like:
ShellExecute(..., "res://program.exe/myhtmfile.htm", ...)
works as expected. Which would tend to prove that I've got the basic motions working OK.
I saw a blurb on MSDN saying that the res: protocol didn't work properly for non-HTML resources, but the implication was that this was a bug in IE4.
Any ideas on what I am doing wrong?
Thanks!
|
|
|
|
|
I have an MDI app whose title is specified as the string resource AFX_IDS_APP_TITLE (eg: "MyApp"). I want to generate the app's title dynamically, based whether the app is running in "Lite" or "Professional" mode.
The following advice from MSDN appears to not work. The app still uses "MyApp" inspite of the following code in CMyApp 's constructor.
free ((void*) m_pszAppName);
if (isLiteEdition())
m_pszAppName = _tcsdup (_T("MyApp - Lite"));
else
m_pszAppName = _tcsdup (_T("MyApp - Pro"));
Any clues would be appreciated. Thanks,
/ravi
Let's put "civil" back in "civilization"
http://www.ravib.com
ravib@ravib.com
|
|
|
|
|
works fine for me. make sure nothing else is setting that string later on...
-c
Please stand by
|
|
|
|
|
Ugh - I just realized it does work fine - sort of. Message boxes generated by the app correctly use the Lite/Pro name.
Unfortunately, there's an IDR_MAINFRAME string resource (set to "MyApp") that's clobbering the mainframe's title. I can't simply SetWindowText() the custom title because my MDI frame windows use the FWS_ADDTOTITLE style which causes the window title to change to "MyApp - Doc name". Deleting the IDR_MAINFRAME resource causes document titles to be prefixed by an empty string (i.e. "- Doc name").
There must be a way to make my app use my custom title as a prefix...
/ravi
Let's put "civil" back in "civilization"
http://www.ravib.com
ravib@ravib.com
|
|
|
|
|
Doesn't SetWindowText set the caption ?
Christian
No offense, but I don't really want to encourage the creation of another VB developer.
- Larry Antram 22 Oct 2002
C# will attract all comers, where VB is for IT Journalists and managers - Michael
P Butler 05-12-2002
Again, you can screw up a C/C++ program just as easily as a VB program. OK, maybe not
as easily, but it's certainly doable. - Jamie Nordmeyer - 15-Nov-2002
|
|
|
|