home *** CD-ROM | disk | FTP | other *** search
- // varassoc.cpp : implementation file
- //
- // This is a part of the Microsoft Foundation Classes C++ library.
- // Copyright (C) 1992-1995 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 "inproc.h"
- #include "varassoc.h"
-
- #ifdef _DEBUG
- #undef THIS_FILE
- static char BASED_CODE THIS_FILE[] = __FILE__;
- #endif
-
- /////////////////////////////////////////////////////////////////////////////
- // CVariantAssoc
-
- IMPLEMENT_DYNCREATE(CVariantAssoc, CCmdTarget)
-
- CVariantAssoc::CVariantAssoc()
- {
- EnableAutomation();
-
- // To keep the application running as long as an OLE automation
- // object is active, the constructor calls AfxOleLockApp.
-
- AfxOleLockApp();
- }
-
- CVariantAssoc::~CVariantAssoc()
- {
- // To terminate the application when all objects created with
- // with OLE automation, the destructor calls AfxOleUnlockApp.
-
- AfxOleUnlockApp();
- }
-
- void CVariantAssoc::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(CVariantAssoc, CCmdTarget)
- //{{AFX_MSG_MAP(CVariantAssoc)
- // NOTE - the ClassWizard will add and remove mapping macros here.
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
-
- BEGIN_DISPATCH_MAP(CVariantAssoc, CCmdTarget)
- //{{AFX_DISPATCH_MAP(CVariantAssoc)
- DISP_PROPERTY_EX(CVariantAssoc, "Key", GetKey, SetNotSupported, VT_VARIANT)
- DISP_PROPERTY_EX(CVariantAssoc, "Value", GetValue, SetNotSupported, VT_VARIANT)
- //}}AFX_DISPATCH_MAP
- END_DISPATCH_MAP()
-
- // {84E099E0-F9F6-11cd-8C3D-00AA004BB3B7}
- static const IID IID_IVariantAssoc = { 0x84e099e0, 0xf9f6, 0x11cd,
- { 0x8c, 0x3d, 0x0, 0xaa, 0x0, 0x4b, 0xb3, 0xb7 } };
-
- // Note: we add support for IID_IVariantAssoc to support typesafe binding
- // from VBA. This IID must match the GUID that is attached to the
- // dispinterface in the .ODL file.
-
- BEGIN_INTERFACE_MAP(CVariantAssoc, CCmdTarget)
- INTERFACE_PART(CVariantAssoc, IID_IVariantAssoc, Dispatch)
- END_INTERFACE_MAP()
-
- /////////////////////////////////////////////////////////////////////////////
- // CVariantAssoc message handlers
-
- VARIANT CVariantAssoc::GetKey()
- {
- COleVariant varResult = m_varKey;
- return varResult.Detach();
- }
-
- VARIANT CVariantAssoc::GetValue()
- {
- COleVariant varResult = m_varValue;
- return varResult.Detach();
- }
-