Re: Vb to c++ code conversion (SHDocVw)
Consider posting in the shell group:
microsoft.public.platformsdk.shell
On the C++ side you'd likely want to base your project on
ATL. The ATL group is:
microsoft.public.vc.atl
As far as handling events, ATL offers IDispEvent[Simple]Impl
for dispinterfaces. For regular COM interfaces you simply
implement an object derived from CComObjectRootEx<>
and the event COM interface for your sink. Then you instantiate
it via CComObject:
CComObject<CSink>* pSink = NULL;
HRESULT hr = CComObject<CSink>::CreateInstance(&pSink);
// Init you sink here if necessary
DWORD dwCookie = 0;
hr = AtlAdvise(pSource, pSink->GetUnknown(), IID_IEvent, &dwCookie);
pSink = NULL; // Time to forget about the C++ object
....
AtlUnadvise(pSource, IID_IEvent, dwCookie);
--
=====================================
Alexander Nickolov
Microsoft MVP [VC], MCSD
email: agnickolov@mvps.org
MVP VC FAQ: http://vcfaq.mvps.org
=====================================
"Bob" <Bob@discussions.microsoft.com> wrote in message
news:597AEC0C-8DD7-4AF7-8328-BBFCF472E76E@microsoft.com...
Hi.
That code that i wrote is in vb6.
I need it in c++6 - not .net, you know just a simple c++
(if possible)
#include <windows.h>
...
...
in vb there is the magic word WithEvents, i do not know how to do that in
c++.
I want to get the events i wrote:
Private Sub winShell_WindowRevoked(ByVal lCookie As Long)
'callback function that gets winShell events - this function should be
called evrytim a shell windows was closed
End Sub
Private Sub winShell_WindowRegistered(ByVal lCookie As Long)
callback function that gets winShell events
'callback function that gets winShell events - this function should be
called evrytim a shell windows was created
End Sub
Lets start with the first class, i need a code that i can put in a dll
(not
mfc not atl not com) that as in VB, will callback the functions:
WindowRegistered WindowRevoked when these events are thrown.
I could not find any code that does it without MFC or COM.
As said, there should be a class, lets call it CShellWin
1)This class should have a member:
Private WithEvents oWinShell As SHDocVw.ShellWindows
2)This class should have a function f() that will do what i wrote in the
first post.
3)This class should have two callback functions:
WindowRegistered WindowRevoked
that will catch oWinShell events.
Does that helps?
Thanks for trying to help me.
"Ben Voigt [C++ MVP]" wrote:
"Bob" <Bob@discussions.microsoft.com> wrote in message
news:7899321D-4D29-4A62-AB37-A899D5A13FF7@microsoft.com...
Can someone please convert this code for me to c++
Which VB? VB6?
Which C++? You said not MFC. Do you want ATL, .NET, or what?