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.
117 lines
4.0 KiB
117 lines
4.0 KiB
/*++
|
|
|
|
Copyright (c) 1996 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
router.h
|
|
|
|
Abstract:
|
|
|
|
This module contains the definition for the Server
|
|
Extension Object Router class.
|
|
|
|
Author:
|
|
|
|
Don Dumitru ([email protected])
|
|
|
|
Revision History:
|
|
|
|
dondu 03/04/97 created
|
|
|
|
--*/
|
|
|
|
|
|
// router.h : Declaration of the CSEORouter
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CSEORouter
|
|
class ATL_NO_VTABLE CSEORouter :
|
|
public CComObjectRootEx<CComMultiThreadModelNoCS>,
|
|
public CComCoClass<CSEORouter, &CLSID_CSEORouter>,
|
|
public ISEORouter,
|
|
public IDispatchImpl<IEventLock, &IID_IEventLock, &LIBID_SEOLib>,
|
|
public IMarshal
|
|
{
|
|
public:
|
|
HRESULT FinalConstruct();
|
|
void FinalRelease();
|
|
|
|
DECLARE_PROTECT_FINAL_CONSTRUCT();
|
|
|
|
DECLARE_REGISTRY_RESOURCEID_EX(IDR_StdAfx,
|
|
L"SEORouter Class",
|
|
L"SEO.SEORouter.1",
|
|
L"SEO.SEORouter");
|
|
|
|
DECLARE_GET_CONTROLLING_UNKNOWN();
|
|
|
|
BEGIN_COM_MAP(CSEORouter)
|
|
COM_INTERFACE_ENTRY(ISEORouter)
|
|
COM_INTERFACE_ENTRY(IEventLock)
|
|
COM_INTERFACE_ENTRY(IMarshal)
|
|
END_COM_MAP()
|
|
|
|
// ISEORouter
|
|
public:
|
|
HRESULT STDMETHODCALLTYPE get_Database(ISEODictionary **ppdictResult) {
|
|
return (m_pRouter->get_Database(ppdictResult)); };
|
|
HRESULT STDMETHODCALLTYPE put_Database(ISEODictionary *pdictDatabase) {
|
|
return (m_pRouter->put_Database(pdictDatabase)); }
|
|
HRESULT STDMETHODCALLTYPE get_Server(ISEODictionary **ppdictResult) {
|
|
return (m_pRouter->get_Server(ppdictResult)); };
|
|
HRESULT STDMETHODCALLTYPE put_Server(ISEODictionary *pdictServer) {
|
|
return (m_pRouter->put_Server(pdictServer)); };
|
|
HRESULT STDMETHODCALLTYPE get_Applications(ISEODictionary **ppdictResult) {
|
|
return (m_pRouter->get_Applications(ppdictResult)); };
|
|
HRESULT STDMETHODCALLTYPE GetDispatcher(REFIID iidEvent, REFIID iidDesired, IUnknown **ppUnkResult) {
|
|
return (m_pRouter->GetDispatcher(iidEvent,iidDesired,ppUnkResult)); };
|
|
HRESULT STDMETHODCALLTYPE GetDispatcherByCLSID(REFCLSID clsidDispatcher, REFIID iidEvent, REFIID iidDesired, IUnknown **ppUnkResult) {
|
|
return (m_pRouter->GetDispatcherByCLSID(clsidDispatcher,iidEvent,iidDesired,ppUnkResult)); };
|
|
|
|
// IEventLock
|
|
public:
|
|
HRESULT STDMETHODCALLTYPE LockRead(int iTimeoutMS) {
|
|
return (m_pLock->LockRead(iTimeoutMS)); };
|
|
HRESULT STDMETHODCALLTYPE UnlockRead() {
|
|
return (m_pLock->UnlockRead()); };
|
|
HRESULT STDMETHODCALLTYPE LockWrite(int iTimeoutMS) {
|
|
return (m_pLock->LockWrite(iTimeoutMS)); };
|
|
HRESULT STDMETHODCALLTYPE UnlockWrite() {
|
|
return (m_pLock->UnlockWrite()); };
|
|
|
|
// IMarshal
|
|
public:
|
|
HRESULT STDMETHODCALLTYPE GetUnmarshalClass(REFIID iid,
|
|
void *pv,
|
|
DWORD dwDestContext,
|
|
void *pvDestContext,
|
|
DWORD mshlflags,
|
|
CLSID *pCid) {
|
|
return (m_pMarshal->GetUnmarshalClass(iid,pv,dwDestContext,pvDestContext,mshlflags,pCid)); };
|
|
HRESULT STDMETHODCALLTYPE GetMarshalSizeMax(REFIID riid,
|
|
void *pv,
|
|
DWORD dwDestContext,
|
|
void *pvDestContext,
|
|
DWORD mshlflags,
|
|
ULONG *pSize) {
|
|
return (m_pMarshal->GetMarshalSizeMax(riid,pv,dwDestContext,pvDestContext,mshlflags,pSize)); };
|
|
HRESULT STDMETHODCALLTYPE MarshalInterface(IStream *pStm,
|
|
REFIID riid,
|
|
void *pv,
|
|
DWORD dwDestContext,
|
|
void *pvDestContext,
|
|
DWORD mshlflags) {
|
|
return (m_pMarshal->MarshalInterface(pStm,riid,pv,dwDestContext,pvDestContext,mshlflags)); };
|
|
HRESULT STDMETHODCALLTYPE UnmarshalInterface(IStream *pStm,REFIID riid,void **ppv) {
|
|
return (m_pMarshal->UnmarshalInterface(pStm,riid,ppv)); };
|
|
HRESULT STDMETHODCALLTYPE ReleaseMarshalData(IStream *pStm) {
|
|
return (m_pMarshal->ReleaseMarshalData(pStm)); };
|
|
HRESULT STDMETHODCALLTYPE DisconnectObject(DWORD dwReserved) {
|
|
return (m_pMarshal->DisconnectObject(dwReserved)); };
|
|
|
|
private:
|
|
CComPtr<ISEORouter> m_pRouter;
|
|
CComQIPtr<IEventLock,&IID_IEventLock> m_pLock;
|
|
CComQIPtr<IMarshal,&IID_IMarshal> m_pMarshal;
|
|
};
|