|
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devio/base/monitoring_communications_events.asp
and
http://www.codeproject.com/system/serial_com.asp
|
|
|
|
|
Thank you for your response. However, I still don't understand how to set the DTR high before monitoring for the DSR flag. Could you please explain that?
Thank you,
-----------------
Genaro
|
|
|
|
|
I think that you have null modem connection. DTR -> DSR are continual signal. When you set DTR signal on high that means you are redy to send data but when your DSR become high that mean you can receive data from device. When you start to configure port set DTR signal with DTR_CONTROL_DISABLE and fDsrSensitivity in DCB with TRUE to avoid flow, but watch all changing are valid after calling function SetCommState. Now you can control DTR with function EscapeCommFunction and monitoring DSR. My recommmendation is whenever use EscapeCommFunction(hFile, CLRDTR | CLRRTS ) or EscapeCommFunction(hFile, SETDTR | SETRTS).
|
|
|
|
|
Hi everyone
I'm in the first phase of a project where I just plan stuff, and it seems I'll be developing a plugin system for my app. I'm working in MFC, I don't really have much experience with dll's, there are still things bugging me (and we all hate bugs ) Now the questions..
a) Is it possible for the main app to load a dialog from dll and display it as a child window of tab control? or..
b) ..would it be better if the dll itself displays a standalone dialog using main app window as it's parent?
Which one of these would be easier to implement? Every dll would be a plugin, and giving the plugins an option to display windows is a nice thing to do.
c) Is there a way for dll plugins to add a menu to the main app window, and get notifications when the user clicks on them?
Any kind of help is appreciated, links to articles etc.. Also, if you have a good tip on plugin system development, please share it
thx
---
http://sprdsoft.cmar-net.org - We Sprd You Softly
Our site features contents and several images. All of this is very weird.
In the end, war is not about who's right, it's about who's left.
|
|
|
|
|
|
That's a great article indeed, but unfortunately I can't use much of the code, my app will be dialog based, and I have the basic idea of plugin system. Has some good tricks in it though, might use some of it.
Also, using MESSAGE_MAPs is a bit too much for my app, I was thinking more like please-notify-me-of-an-even-using-my-exported-function kind of plugin.
My only trouble is displaying a window and/or a menu from dll, not sure if this could work properly..
---
http://sprdsoft.cmar-net.org - We Sprd You Softly
Our site features contents and several images. All of this is very weird.
In the end, war is not about who's right, it's about who's left.
|
|
|
|
|
I don't know why I'm getting this error. I'm trying to make a MDI edit type application and implement it with plugins based off the code i found while looking through MSDN.
Here's the code for the First Part:
void CChildView::OnPluginCmd(UINT id)
{
CEdit& edit = GetEditCtrl();
int begin,end;
edit.GetSel(begin,end);
if (end>begin) {
Object* obj = theApp.m_plugins.GetPlugin(id - IDC_PLUGIN_BASE);
ASSERT(obj);
ITextPlugin* plugin = dynamic_cast<ITextPlugin*>(obj);
if (plugin) {
CString text;
edit.GetWindowText(text);
text = text.Mid(begin, end-begin);
text = plugin->Transform(text);
edit.ReplaceSel(text);
edit.SetSel(begin,end);
}
}
}
------------------------------------------
Here's the code for the second error:
void CChildView::OnPluginCmdUI(CCmdUI* pCmdUI)
{
CEdit& edit = GetEditCtrl();
int begin,end;
edit.GetSel(begin,end);
pCmdUI->Enable(begin!=end);
}
|
|
|
|
|
CChildView must be derived from CEditView for this to work.
Software Zen: delete this;
|
|
|
|
|
how do you register small and regular icons for a program so that when you look at the program in windows explorer, you see your own icon instead of the default (IDI_APPLICATION) icon
PPLSHERO54 give his thanks
|
|
|
|
|
By default, Windows Explorer uses the 'first' icon it finds. First, in this case, means the icon with the lowest-numbered resource identifier.
Software Zen: delete this;
|
|
|
|
|
Im looking for a good example to show me how to use a slider control. Ive some useful things through googling, but wondering if anyone knows of a good tutorial sorta thing. Some the questions im looking to get solved is, i have a vertical slider, and it increases as the thumb goes down, and i want that inveresed. The other is how to limit the interval of the thumb? I have set the range from 0 - 3000 and only want it in multiples of 50. Some others would be how to implement the VM_VSCROLL deal, im not quite sure how to do that. And on and on... Thanks in advance.
-Jader89
"There are 10 types of people, those who understand binary, and those who don't."
- Somebody, not me.
|
|
|
|
|
Not so much graphically, but functionality
"There are 10 types of people, those who understand binary, and those who don't."
- Somebody, not me.
|
|
|
|
|
Jader89 wrote: Im looking for a good example to show me how to use a slider control.
This would be a good place to start.
"Take only what you need and leave the land as you found it." - Native American Proverb
|
|
|
|
|
I've been there, doesnt help much on what i want to do. Unless im blind and missing a blantantly obvious method, among other things.
"There are 10 types of people, those who understand binary, and those who don't."
- Somebody, not me.
|
|
|
|
|
You need to use the TBS_DOWNISLEFT style, although this style may just be ignored by the control.
"Take only what you need and leave the land as you found it." - Native American Proverb
|
|
|
|
|
I've tried that and TBS_REVERSED , all combonations of both and it still seems to not be working.. Here is the part in the .rc file. Any ideas why this doesnt work?
CONTROL "",IDC_SLIDER1,"msctls_trackbar32",TBS_AUTOTICKS| TBS_VERT | TBS_TOP | TBS_ENABLESELRANGE | TBS_DOWNISLEFT | WS_GROUP | WS_TABSTOP | 0x400,207,23,21,116
Here is the OnInitDialog(), there is no other place i do anything with it.
BOOL CThisClass::OnInitDialog()<br />
{<br />
BOOL ret;<br />
ret = CDialog::OnInitDialog();<br />
<br />
altCtrl.SetRange(0, 3000);<br />
altCtrl.SetTicFreq(300);<br />
altCtrl.SetPos(3000);<br />
UpdateData(FALSE);<br />
<br />
return ret;<br />
}
"There are 10 types of people, those who understand binary, and those who don't."
- Somebody, not me.
|
|
|
|
|
Jader89 wrote: Any ideas why this doesnt work?
Yes. Like I indicated, it may be one of those styles that the control ignores. I can neither confirm nor deny this, though.
"Take only what you need and leave the land as you found it." - Native American Proverb
|
|
|
|
|
Hi All,
Is there a way to know the reference to the calling function at runtime without using some flag variables? For eg.
<br />
void foo() {<br />
foobar();<br />
}<br />
<br />
void bar() {<br />
foobar();<br />
}<br />
<br />
void foobar() {<br />
<br />
if (calling function is 'foo') {<br />
bla... bla..<br />
} else {<br />
bla... bla..<br />
}<br />
}<br />
Thanks.
|
|
|
|
|
The only thing I can think of it to pass an argument to the foobar() function.
"Take only what you need and leave the land as you found it." - Native American Proverb
|
|
|
|
|
DavidCrow wrote: The only thing I can think of it to pass an argument to the foobar() function.
Thanks David. But maybe I did not put my question correctly. I have a library and I want to hide a function from direct calling by functions which are external to the library. Kind of like keeping it in private: section of a C++ class. But the problem is, I want the library in pure C and not C++. So, my library function 'foo()' should be able to invoke foobar() correctly. However, if an external function bar() tries to invoke it, the library should be able to correctly identify it and return appropriate error.
Appreciate your help.
|
|
|
|
|
Even with these new constraints, my suggestion will still work. All you have to do is choose a number to pass to the exported foobar() function that will likely not be guessed by others.
"Take only what you need and leave the land as you found it." - Native American Proverb
|
|
|
|
|
DavidCrow wrote: Even with these new constraints, my suggestion will still work. All you have to do is choose a number to pass to the exported foobar() function that will likely not be guessed by others.
You are right. That is a Workable solution. Thanks David.
|
|
|
|
|
I'm not certain that you can hide functions in a library; hackers will find the name and arguments for it in the library ( but I might be wrong )
If the function is not "published" in a header file, a normal user will not call it.
Maximilien Lincourt
Your Head A Splode - Strong Bad
|
|
|
|
|
Maximilien wrote: If the function is not "published" in a header file, a normal user will not call it.
I agree with you on that. Thanks Maximilien.
|
|
|
|
|
> a normal user will not call it.
Does that make me abnormal?
--
Pictures[^] from my Japan trip.
|
|
|
|