Leaked source code of windows server 2003
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

/*++
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;
};