mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.5 KiB
72 lines
1.5 KiB
/*--------------------------------------------------**
|
|
** Implementation file for IOleContainer interface. **
|
|
** **
|
|
** Author: Phil Cooper **
|
|
** Creation date: 08-27-95 **
|
|
**--------------------------------------------------*/
|
|
|
|
#include "project.hpp"
|
|
#pragma hdrstop
|
|
|
|
#include "ioc.hpp"
|
|
#include "ieu.hpp"
|
|
|
|
COleContainer::COleContainer(LPUNKNOWN pUnk)
|
|
{
|
|
_dwRef = 0;
|
|
_pUnkOuter = pUnk;
|
|
}
|
|
|
|
COleContainer::~COleContainer(void)
|
|
{
|
|
}
|
|
|
|
|
|
// IUnknown methods
|
|
STDMETHODIMP_(ULONG) COleContainer::AddRef(void)
|
|
{
|
|
++_dwRef;
|
|
return _pUnkOuter->AddRef();
|
|
}
|
|
|
|
STDMETHODIMP_(ULONG) COleContainer::Release(void)
|
|
{
|
|
--_dwRef;
|
|
return _pUnkOuter->Release();
|
|
}
|
|
|
|
STDMETHODIMP COleContainer::QueryInterface(REFIID riid, LPVOID *ppvObj)
|
|
{
|
|
return _pUnkOuter->QueryInterface(riid, ppvObj);
|
|
}
|
|
|
|
// IParseDisplayName method:
|
|
|
|
STDMETHODIMP COleContainer::ParseDisplayName(struct IBindCtx * pbc, unsigned short* lpszDisplayName, ULONG *pchEaten, struct IMoniker ** ppmkOut)
|
|
{
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
// IOleContainer methods
|
|
STDMETHODIMP COleContainer::EnumObjects(DWORD grfFlags, LPENUMUNKNOWN *ppenumUnknown)
|
|
{
|
|
ASSERT(ppenumUnknown != NULL);
|
|
*ppenumUnknown = NULL;
|
|
|
|
LPCENUMUNKNOWN pEnum = NULL;
|
|
pEnum = new (CEnumUnknown(this));
|
|
if (pEnum != NULL)
|
|
{
|
|
*ppenumUnknown = pEnum;
|
|
pEnum->AddRef();
|
|
}
|
|
else
|
|
return E_OUTOFMEMORY;
|
|
|
|
return S_OK;
|
|
}
|
|
|
|
STDMETHODIMP COleContainer::LockContainer(BOOL fLock)
|
|
{
|
|
return E_NOTIMPL;
|
|
}
|