/****************************************************************************** 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 class MPCServer; class MPCClient; class MPCSession; template 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 { 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 { 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___)