COleControl and CWnd - Using both - Newbie
Hi,
Now that I can make custom controls,
http://www.codeproject.com/miscctrl/customcontrol.asp
I would like to move to the next step.
So, I guess I would like to turn my control into a COM / ActiveX control =
to use with VB/C# and ASP web pages.
And just to get some experience with COM / ActiveX.
I noticed something on one ActiveX control that I stumbled upon.
It is not inheriting from CWnd. It inherits from COleControl
COleControl inherits from CWnd. (That is good)
Now, I am wondering what all that entails.
"In a windowless control, you should always use the COleControl member =
functions instead of the
corresponding CWnd member functions or their related Windows API =
functions."
I suppose what they mean by this, is that an ActiveX control is a =
Windowless control and I have to use COleControl member functions.
That sounds reasonable...
Well, some of the methods are not the same.
virtual void COleControl::OnDraw(CDC* pDC, const CRect& rcBounds, =
const CRect& rcInvalid );
differs from CWnd::OnDraw(CDC* pDC);
So, In order for me to keep developing both controls, I suppose I have =
to do something like this.
CMyControl::OnDraw(CDC*pDC) { OnDraw( pDC, CRect(0,0,0,0), =
CRect(0,0,0,0)); }
CMyControl::OnDraw(CDC* pDC, const CRect& rcBounds, const CRect& =
rcInvalid )
{
if(__ACTIVEX_COMPILE__){
DoActiveXSpecificStuff();
}else{
DoNormalStuf();
}
}
I suppose I am going to need a lot of the __ACTIVEX_COMPILE__ =
directives.
An example is that it seems RegisterWindowClass is not used in ActiveX =
controls.
It uses a different sort of registration.
Is that generally how developing both kind of controls is done, before I =
jump head first into developing ActiveX controls?
I am new to this kind of thing, so forgive me for my lack of knowledge =
in this arena.
Any useful pre-hand information would be most helpful.
TIA,
/*-------- The rest of this is just HIS (Headache Inducing Stuff) for my =
reference. --------*/
A common use of ATL in ASP (Active Server Pages) is to construct objects =
that can be called from a script.
VBScript is very limited, but it can call C++ windows code contained in =
a COM object.
A COM object may be used in .NET by implementing a runtime callable =
wrapper (RCW).
DDE - Dynamic Data Exchange
OLE - Object Linking / Embedding
OCX - OLE Custom Controls
VBX - Visual Basic Extenstions
COM - Component Object Model
COM+ -
DCOM - Distributed Component Object Model : for software components =
distributed across several networked computers to communicate with each =
other
STL - Standard Template Library
ATL.- Active Template Library
WTL - Windows Template Library
ODBC - Open Database Connectivity
ADO - Active X Data Object
RDO - Remote Data Objects
MSDN ActiveX Samples: =
http://msdn2.microsoft.com/en-us/library/fzykcbwc(VS.71).aspx
MSDN COleControl Member Functions : =
http://msdn2.microsoft.com/en-us/library/dyzfwetb(VS.71).aspx
Thanks,