source: trunk/Utilities/VbsCallback/Second.h @ 937

Last change on this file since 937 was 88, checked in by roman, 10 years ago
  • Property svn:keywords set to Id
File size: 1.2 KB
Line 
1////////////////////////////////////////////////////////////
2// Copyright (C) Roman Ryltsov, 2008-2012
3// Created by Roman Ryltsov roman@alax.info
4//
5// $Id: Second.h 88 2012-08-11 11:44:30Z roman $
6
7#pragma once
8
9#include "VbsCallback_i.h"
10
11////////////////////////////////////////////////////////////
12// CSecond
13
14class ATL_NO_VTABLE CSecond :
15        public CComObjectRootEx<CComSingleThreadModel>,
16        public CComCoClass<CSecond, &CLSID_Second>,
17        public IDispatchImpl<ISecond>
18{
19public:
20
21DECLARE_REGISTRY_RESOURCEID(IDR_SECOND)
22
23BEGIN_COM_MAP(CSecond)
24        COM_INTERFACE_ENTRY(ISecond)
25        COM_INTERFACE_ENTRY(IDispatch)
26END_COM_MAP()
27
28public:
29// CSecond
30
31// ISecond
32        STDMETHOD(OuterDo)(LONG nA, IDispatch* pSite, LONG* pnB) throw()
33        {
34                ATLASSERT(pSite && pnB);
35                _ATLTRY
36                {
37                        CComVariant vB(nA + 1);
38                        DISPPARAMS Parameters;
39                        ZeroMemory(&Parameters, sizeof Parameters);
40                        Parameters.rgvarg = &vB;
41                    Parameters.cArgs = 1;
42                        CComVariant vResult;
43                        ATLENSURE_SUCCEEDED(pSite->Invoke(0, IID_NULL, 0, DISPATCH_METHOD, &Parameters, &vResult, NULL, NULL));
44                        ATLASSERT(vResult.vt == VT_I4);
45                        *pnB = vResult.lVal;
46                }
47                _ATLCATCH(Exception)
48                {
49                        return Exception;
50                }
51                return S_OK;
52        }
53};
54
55OBJECT_ENTRY_AUTO(__uuidof(Second), CSecond)
Note: See TracBrowser for help on using the repository browser.