home *** CD-ROM | disk | FTP | other *** search
- // ClikPnt.cpp : implementation file
- //
- // This is a part of the Microsoft Foundation Classes C++ library.
- // Copyright (C) 1992-1998 Microsoft Corporation
- // All rights reserved.
- //
- // This source code is only intended as a supplement to the
- // Microsoft Foundation Classes Reference and related
- // electronic documentation provided with the library.
- // See these sources for detailed information regarding the
- // Microsoft Foundation Classes product.
-
- #include "stdafx.h"
- #include "AutoClik.h"
- #include "ClikPnt.h"
-
- #ifdef _DEBUG
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
-
- /////////////////////////////////////////////////////////////////////////////
- // CAutoClickPoint
-
- IMPLEMENT_DYNCREATE(CAutoClickPoint, CCmdTarget)
-
- CAutoClickPoint::CAutoClickPoint()
- {
- EnableAutomation();
-
- // To keep the application running as long as an OLE automation
- // object is active, the constructor calls AfxOleLockApp.
-
- AfxOleLockApp();
- }
-
- CAutoClickPoint::~CAutoClickPoint()
- {
- // To terminate the application when all objects created with
- // with OLE automation, the destructor calls AfxOleUnlockApp.
-
- AfxOleUnlockApp();
- }
-
- void CAutoClickPoint::OnFinalRelease()
- {
- // When the last reference for an automation object is released
- // OnFinalRelease is called. This implementation deletes the
- // object. Add additional cleanup required for your object before
- // deleting it from memory.
-
- delete this;
- }
-
-
- BEGIN_MESSAGE_MAP(CAutoClickPoint, CCmdTarget)
- //{{AFX_MSG_MAP(CAutoClickPoint)
- // NOTE - the ClassWizard will add and remove mapping macros here.
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
-
- BEGIN_DISPATCH_MAP(CAutoClickPoint, CCmdTarget)
- //{{AFX_DISPATCH_MAP(CAutoClickPoint)
- DISP_PROPERTY(CAutoClickPoint, "x", m_x, VT_I2)
- DISP_PROPERTY(CAutoClickPoint, "y", m_y, VT_I2)
- //}}AFX_DISPATCH_MAP
- END_DISPATCH_MAP()
-
- // DUAL_SUPPORT_START
- // Original Code:
- // // Note: we add support for IID_IAutoClickPoint to support typesafe binding
- // // from VBA. This IID must match the GUID that is attached to the
- // // dispinterface in the .ODL file.
- //
- // // {0368D830-A050-11CE-B0F3-00AA006C28B3}
- // static const IID IID_IAutoClickPoint =
- // { 0x368d830, 0xa050, 0x11ce, { 0xb0, 0xf3, 0x0, 0xaa, 0x0, 0x6c, 0x28, 0xb3 } };
- //
- // BEGIN_INTERFACE_MAP(CAutoClickPoint, CCmdTarget)
- // INTERFACE_PART(CAutoClickPoint, IID_IAutoClickPoint, Dispatch)
- // END_INTERFACE_MAP()
-
- // Note: we add support for DIID_IAutoClickPoint to support typesafe binding
- // from VBA. We add support for IID_IDualAutoClickPoint to support our
- // dual interface. See ACDual.H for the definition of DIID_IAutoClickPoint
- // and IID_IDualAutoClickPoint.
- //
- // DUAL_ERRORINFO_PART indicates we support OLE Automation
- // error handling.
- //
-
- BEGIN_INTERFACE_MAP(CAutoClickPoint, CCmdTarget)
- INTERFACE_PART(CAutoClickPoint, DIID_IAutoClickPoint, Dispatch)
- INTERFACE_PART(CAutoClickPoint, IID_IDualAutoClickPoint, DualAutoClickPoint)
- DUAL_ERRORINFO_PART(CAutoClickPoint)
- END_INTERFACE_MAP()
- // DUAL_SUPPORT_END
-
- /////////////////////////////////////////////////////////////////////////////
- // CAutoClickPoint message handlers
-
- // DUAL_SUPPORT_START
-
- // delegate standard IDispatch methods to MFC IDispatch implementation
- DELEGATE_DUAL_INTERFACE(CAutoClickPoint, DualAutoClickPoint)
-
- // Our method and property functions can generally just
- // delegate back to the methods we generated using
- // ClassWizard. However, if we set up properties to
- // access variables directly, we will need to write the
- // code to get/put the value into the variable.
-
- STDMETHODIMP CAutoClickPoint::XDualAutoClickPoint::put_x(short newX)
- {
- METHOD_PROLOGUE(CAutoClickPoint, DualAutoClickPoint)
-
- TRY_DUAL(IID_IDualAutoClickPoint)
- {
- pThis->m_x = newX;
- return NOERROR;
- }
- CATCH_ALL_DUAL
- }
-
- STDMETHODIMP CAutoClickPoint::XDualAutoClickPoint::get_x(short FAR* retval)
- {
- METHOD_PROLOGUE(CAutoClickPoint, DualAutoClickPoint)
-
- TRY_DUAL(IID_IDualAutoClickPoint)
- {
- *retval = pThis->m_x;
- return NOERROR;
- }
- CATCH_ALL_DUAL
- }
-
- STDMETHODIMP CAutoClickPoint::XDualAutoClickPoint::put_y(short newY)
- {
- METHOD_PROLOGUE(CAutoClickPoint, DualAutoClickPoint)
-
- TRY_DUAL(IID_IDualAutoClickPoint)
- {
- pThis->m_y = newY;
- return NOERROR;
- }
- CATCH_ALL_DUAL
- }
-
- STDMETHODIMP CAutoClickPoint::XDualAutoClickPoint::get_y(short FAR* retval)
- {
- METHOD_PROLOGUE(CAutoClickPoint, DualAutoClickPoint)
-
- TRY_DUAL(IID_IDualAutoClickPoint)
- {
- *retval = pThis->m_y;
- return NOERROR;
- }
- CATCH_ALL_DUAL
- }
-
- // Implement ISupportErrorInfo to indicate we support the
- // OLE Automation error handler.
- IMPLEMENT_DUAL_ERRORINFO(CAutoClickPoint, IID_IDualAutoClickPoint)
-
- // DUAL_SUPPORT_END
-