diff options
Diffstat (limited to 'src/vm/assemblynamesconfigfactory.h')
-rw-r--r-- | src/vm/assemblynamesconfigfactory.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/vm/assemblynamesconfigfactory.h b/src/vm/assemblynamesconfigfactory.h new file mode 100644 index 0000000000..234adb9208 --- /dev/null +++ b/src/vm/assemblynamesconfigfactory.h @@ -0,0 +1,72 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. +// AssemblyNamesConfigFactory.h +// + +// +// +// Parses XML files and adding runtime entries to assembly list +// Abstract, derived classes need to override AddAssemblyName + + +#ifndef ASSEMBLYNAMESCONFIGFACTORY_H +#define ASSEMBLYNAMESCONFIGFACTORY_H + +#include "unknwn.h" +#include "../xmlparser/_reference.h" +#include "../xmlparser/_unknown.h" + + +class AssemblyNamesConfigFactory : public _unknown<IXMLNodeFactory, &IID_IXMLNodeFactory> +{ + +public: + AssemblyNamesConfigFactory (); + ~AssemblyNamesConfigFactory (); + HRESULT STDMETHODCALLTYPE NotifyEvent( + /* [in] */ IXMLNodeSource __RPC_FAR *pSource, + /* [in] */ XML_NODEFACTORY_EVENT iEvt); + + HRESULT STDMETHODCALLTYPE BeginChildren( + /* [in] */ IXMLNodeSource __RPC_FAR *pSource, + /* [in] */ XML_NODE_INFO* __RPC_FAR pNodeInfo); + + HRESULT STDMETHODCALLTYPE EndChildren( + /* [in] */ IXMLNodeSource __RPC_FAR *pSource, + /* [in] */ BOOL fEmptyNode, + /* [in] */ XML_NODE_INFO* __RPC_FAR pNodeInfo); + + HRESULT STDMETHODCALLTYPE Error( + /* [in] */ IXMLNodeSource __RPC_FAR *pSource, + /* [in] */ HRESULT hrErrorCode, + /* [in] */ USHORT cNumRecs, + /* [in] */ XML_NODE_INFO* __RPC_FAR * __RPC_FAR apNodeInfo) + { + LIMITED_METHOD_CONTRACT; + /* + UNUSED(pSource); + UNUSED(hrErrorCode); + UNUSED(cNumRecs); + UNUSED(apNodeInfo); + */ + return hrErrorCode; + } + + HRESULT STDMETHODCALLTYPE CreateNode( + /* [in] */ IXMLNodeSource __RPC_FAR *pSource, + /* [in] */ PVOID pNodeParent, + /* [in] */ USHORT cNumRecs, + /* [in] */ XML_NODE_INFO* __RPC_FAR * __RPC_FAR apNodeInfo); + + virtual void AddAssemblyName(IAssemblyName*) = 0; +protected: + IAssemblyName* m_pAssemblyName; + BOOL m_bCurrentEntryInvalid; + DWORD m_dwCurrentElementDepth; + DWORD m_dwProperty; + +}; + + +#endif |