Source code of Windows XP (NT5)
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.
|
|
/******************************************************************************
Copyright (c) 2000 Microsoft Corporation
Module Name: Wrapper.h
Abstract: This file contains the declaration of the COM wrapper classes, used for interfacing with the Custom Providers.
Revision History: Davide Massarenti (Dmassare) 04/25/2000 created
******************************************************************************/
#if !defined(__INCLUDED___ULSERVER___WRAPPER_H___)
#define __INCLUDED___ULSERVER___WRAPPER_H___
#include <UploadServerCustom.h>
class MPCServer; class MPCClient; class MPCSession;
template <class Base> class CComUnknown : public Base { public: STDMETHOD_(ULONG, AddRef )() { return 2; } STDMETHOD_(ULONG, Release)() { return 1; }
STDMETHOD(QueryInterface)( REFIID iid, void* *ppvObject ) { if(ppvObject == NULL) return E_POINTER;
if(IsEqualGUID( iid, IID_IUnknown ) || IsEqualGUID( iid, __uuidof(Base) ) ) { *ppvObject = this; return S_OK; } return E_NOINTERFACE; } };
class MPCServerCOMWrapper : public CComUnknown<IULServer> { MPCServer* m_mpcsServer;
public: MPCServerCOMWrapper( /*[in]*/ MPCServer* mpcsServer ); virtual ~MPCServerCOMWrapper();
// IULServer
STDMETHOD(GetRequestVariable)( /*[in]*/ BSTR bstrName, /*[out]*/ BSTR *pbstrVal );
STDMETHOD(AbortTransfer )( ); STDMETHOD(CompleteTransfer)( /*[in]*/ IStream* data ); };
class MPCSessionCOMWrapper : public CComUnknown<IULSession> { MPCSession* m_mpcsSession;
public: MPCSessionCOMWrapper( /*[in]*/ MPCSession* mpcsSession ); virtual ~MPCSessionCOMWrapper();
// IULSession
STDMETHOD(get_Client )( /*[out]*/ BSTR *pVal ); STDMETHOD(get_Command )( /*[out]*/ DWORD *pVal );
STDMETHOD(get_ProviderID )( /*[out]*/ BSTR *pVal ); STDMETHOD(get_Username )( /*[out]*/ BSTR *pVal );
STDMETHOD(get_JobID )( /*[out]*/ BSTR *pVal ); STDMETHOD(get_SizeAvailable)( /*[out]*/ DWORD *pVal ); STDMETHOD(get_SizeTotal )( /*[out]*/ DWORD *pVal ); STDMETHOD(get_SizeOriginal )( /*[out]*/ DWORD *pVal );
STDMETHOD(get_Data )( /*[out]*/ IStream* *pStm );
STDMETHOD(get_ProviderData )( /*[out]*/ DWORD *pVal ); STDMETHOD(put_ProviderData )( /*[in]*/ DWORD newVal ); };
#endif // !defined(__INCLUDED___ULSERVER___SERVER_H___)
|