1 | //////////////////////////////////////////////////////////// |
---|
2 | // Copyright (C) Roman Ryltsov, 2008-2012 |
---|
3 | // Created by Roman Ryltsov roman@alax.info |
---|
4 | // |
---|
5 | // $Id: Third.h 88 2012-08-11 11:44:30Z roman $ |
---|
6 | |
---|
7 | #pragma once |
---|
8 | |
---|
9 | #include "VbsCallback_i.h" |
---|
10 | #include "_IThirdEvents_CP.h" |
---|
11 | |
---|
12 | //////////////////////////////////////////////////////////// |
---|
13 | // CThird |
---|
14 | |
---|
15 | class ATL_NO_VTABLE CThird : |
---|
16 | public CComObjectRootEx<CComSingleThreadModel>, |
---|
17 | public CComCoClass<CThird, &CLSID_Third>, |
---|
18 | public IConnectionPointContainerImpl<CThird>, |
---|
19 | public CProxy_IThirdEvents<CThird>, |
---|
20 | public IDispatchImpl<IThird> |
---|
21 | { |
---|
22 | public: |
---|
23 | |
---|
24 | DECLARE_REGISTRY_RESOURCEID(IDR_THIRD) |
---|
25 | |
---|
26 | BEGIN_COM_MAP(CThird) |
---|
27 | COM_INTERFACE_ENTRY(IThird) |
---|
28 | COM_INTERFACE_ENTRY(IDispatch) |
---|
29 | COM_INTERFACE_ENTRY(IConnectionPointContainer) |
---|
30 | END_COM_MAP() |
---|
31 | |
---|
32 | BEGIN_CONNECTION_POINT_MAP(CThird) |
---|
33 | CONNECTION_POINT_ENTRY(__uuidof(_IThirdEvents)) |
---|
34 | END_CONNECTION_POINT_MAP() |
---|
35 | |
---|
36 | public: |
---|
37 | // CThird |
---|
38 | |
---|
39 | // IFirst |
---|
40 | STDMETHOD(OuterDo)(LONG nA, LONG* pnB) throw() |
---|
41 | { |
---|
42 | ATLASSERT(pnB); |
---|
43 | CComVariant vB(nA + 1); |
---|
44 | ATLVERIFY(SUCCEEDED(Fire_InnerDo(&vB))); |
---|
45 | ATLASSERT(vB.vt == VT_I4); |
---|
46 | *pnB = vB.lVal; |
---|
47 | return S_OK; |
---|
48 | } |
---|
49 | }; |
---|
50 | |
---|
51 | OBJECT_ENTRY_AUTO(__uuidof(Third), CThird) |
---|