From 13612043693429a9ea453bee577c7bddcf26da9c Mon Sep 17 00:00:00 2001 From: "locka%iol.ie" Date: Thu, 27 May 1999 21:16:06 +0000 Subject: [PATCH] Ole item container methods seperated from control site class --- webshell/embed/ActiveX/ItemContainer.cpp | 115 +++++++++++++++++++++++ webshell/embed/ActiveX/ItemContainer.h | 54 +++++++++++ 2 files changed, 169 insertions(+) create mode 100644 webshell/embed/ActiveX/ItemContainer.cpp create mode 100644 webshell/embed/ActiveX/ItemContainer.h diff --git a/webshell/embed/ActiveX/ItemContainer.cpp b/webshell/embed/ActiveX/ItemContainer.cpp new file mode 100644 index 000000000000..59c505cce44c --- /dev/null +++ b/webshell/embed/ActiveX/ItemContainer.cpp @@ -0,0 +1,115 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * The contents of this file are subject to the Netscape Public License + * Version 1.0 (the "NPL"); you may not use this file except in + * compliance with the NPL. You may obtain a copy of the NPL at + * http://www.mozilla.org/NPL/ + * + * Software distributed under the NPL is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL + * for the specific language governing rights and limitations under the + * NPL. + * + * The Initial Developer of this code under the NPL is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All Rights + * Reserved. + */ + +#include "stdafx.h" + +CItemContainer::CItemContainer() +{ +} + +CItemContainer::~CItemContainer() +{ +} + +/////////////////////////////////////////////////////////////////////////////// +// IParseDisplayName implementation + + +HRESULT STDMETHODCALLTYPE CItemContainer::ParseDisplayName(/* [unique][in] */ IBindCtx __RPC_FAR *pbc, /* [in] */ LPOLESTR pszDisplayName, /* [out] */ ULONG __RPC_FAR *pchEaten, /* [out] */ IMoniker __RPC_FAR *__RPC_FAR *ppmkOut) +{ + // TODO + return E_NOTIMPL; +} + + +/////////////////////////////////////////////////////////////////////////////// +// IOleContainer implementation + + +HRESULT STDMETHODCALLTYPE CItemContainer::EnumObjects(/* [in] */ DWORD grfFlags, /* [out] */ IEnumUnknown __RPC_FAR *__RPC_FAR *ppenum) +{ + HRESULT hr = E_NOTIMPL; +/* + if (ppenum == NULL) + { + return E_POINTER; + } + + *ppenum = NULL; + typedef CComObject, CNamedObjectList > > enumunk; + enumunk* p = NULL; + p = new enumunk; + if(p == NULL) + { + return E_OUTOFMEMORY; + } + + hr = p->Init(); + if (SUCCEEDED(hr)) + { + hr = p->QueryInterface(IID_IEnumUnknown, (void**) ppenum); + } + if (FAILED(hRes)) + { + delete p; + } +*/ + return hr; +} + + +HRESULT STDMETHODCALLTYPE CItemContainer::LockContainer(/* [in] */ BOOL fLock) +{ + // TODO + return S_OK; +} + + +/////////////////////////////////////////////////////////////////////////////// +// IOleItemContainer implementation + + +HRESULT STDMETHODCALLTYPE CItemContainer::GetObject(/* [in] */ LPOLESTR pszItem, /* [in] */ DWORD dwSpeedNeeded, /* [unique][in] */ IBindCtx __RPC_FAR *pbc, /* [in] */ REFIID riid, /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject) +{ + if (pszItem == NULL) + { + return E_INVALIDARG; + } + if (ppvObject == NULL) + { + return E_INVALIDARG; + } + + *ppvObject = NULL; + + return MK_E_NOOBJECT; +} + + +HRESULT STDMETHODCALLTYPE CItemContainer::GetObjectStorage(/* [in] */ LPOLESTR pszItem, /* [unique][in] */ IBindCtx __RPC_FAR *pbc, /* [in] */ REFIID riid, /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvStorage) +{ + // TODO + return MK_E_NOOBJECT; +} + + +HRESULT STDMETHODCALLTYPE CItemContainer::IsRunning(/* [in] */ LPOLESTR pszItem) +{ + // TODO + return MK_E_NOOBJECT; +} diff --git a/webshell/embed/ActiveX/ItemContainer.h b/webshell/embed/ActiveX/ItemContainer.h new file mode 100644 index 000000000000..8be6fa86cce3 --- /dev/null +++ b/webshell/embed/ActiveX/ItemContainer.h @@ -0,0 +1,54 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * The contents of this file are subject to the Netscape Public License + * Version 1.0 (the "NPL"); you may not use this file except in + * compliance with the NPL. You may obtain a copy of the NPL at + * http://www.mozilla.org/NPL/ + * + * Software distributed under the NPL is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL + * for the specific language governing rights and limitations under the + * NPL. + * + * The Initial Developer of this code under the NPL is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All Rights + * Reserved. + */ + +#ifndef ITEMCONTAINER_H +#define ITEMCONTAINER_H + +class CItemContainer : public CComObjectRootEx, + public IOleItemContainer +{ + // List of all named objects managed by the container + CNamedObjectList m_cObjectList; +public: + + CItemContainer(); + virtual ~CItemContainer(); + +BEGIN_COM_MAP(CItemContainer) + COM_INTERFACE_ENTRY_IID(IID_IParseDisplayName, IOleItemContainer) + COM_INTERFACE_ENTRY_IID(IID_IOleContainer, IOleItemContainer) + COM_INTERFACE_ENTRY_IID(IID_IOleItemContainer, IOleItemContainer) +END_COM_MAP() + + // IParseDisplayName implementation + virtual HRESULT STDMETHODCALLTYPE ParseDisplayName(/* [unique][in] */ IBindCtx __RPC_FAR *pbc, /* [in] */ LPOLESTR pszDisplayName, /* [out] */ ULONG __RPC_FAR *pchEaten, /* [out] */ IMoniker __RPC_FAR *__RPC_FAR *ppmkOut); + + // IOleContainer implementation + virtual HRESULT STDMETHODCALLTYPE EnumObjects(/* [in] */ DWORD grfFlags, /* [out] */ IEnumUnknown __RPC_FAR *__RPC_FAR *ppenum); + virtual HRESULT STDMETHODCALLTYPE LockContainer(/* [in] */ BOOL fLock); + + // IOleItemContainer implementation + virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetObject(/* [in] */ LPOLESTR pszItem, /* [in] */ DWORD dwSpeedNeeded, /* [unique][in] */ IBindCtx __RPC_FAR *pbc, /* [in] */ REFIID riid, /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject); + virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetObjectStorage(/* [in] */ LPOLESTR pszItem, /* [unique][in] */ IBindCtx __RPC_FAR *pbc, /* [in] */ REFIID riid, /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvStorage); + virtual HRESULT STDMETHODCALLTYPE IsRunning(/* [in] */ LPOLESTR pszItem); +}; + +typedef CComObject CItemContainerInstance; + + +#endif \ No newline at end of file