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.
 
 
 
 
 
 

296 lines
13 KiB

/******************************************************************************
Copyright (c) 2000 Microsoft Corporation
Module Name:
MPCUploadJob.h
Abstract:
This file contains the declaration of the CMPCUploadJob class,
the descriptor of all jobs present in the Upload Library system.
Revision History:
Davide Massarenti (Dmassare) 04/15/99
created
******************************************************************************/
#if !defined(__INCLUDED___ULMANAGER___MPCUPLOADJOB_H___)
#define __INCLUDED___ULMANAGER___MPCUPLOADJOB_H___
class CMPCUpload;
class ATL_NO_VTABLE CMPCUploadJob : // Hungarian: mpcuj
public MPC::ConnectionPointImpl<CMPCUploadJob, &DIID_DMPCUploadEvents, MPC::CComSafeMultiThreadModel>,
public IDispatchImpl<IMPCUploadJob, &IID_IMPCUploadJob, &LIBID_UPLOADMANAGERLib>,
public IMPCPersist // Persistence
{
typedef UploadLibrary::Signature Sig;
CMPCUpload* m_mpcuRoot; // Volatile
DWORD m_dwRetryInterval; // Volatile
ULONG m_dwInternalSeq; // Local
Sig m_sigClient; // Global
CComBSTR m_bstrServer; // Local
CComBSTR m_bstrJobID; // Global
CComBSTR m_bstrProviderID; // Global
CComBSTR m_bstrCreator; // Local
CComBSTR m_bstrUsername; // Global
CComBSTR m_bstrPassword; // Global
CComBSTR m_bstrFileNameResponse; // Local
CComBSTR m_bstrFileName; // Local
long m_lOriginalSize; // Global
long m_lTotalSize; // Global
long m_lSentSize; // Global
DWORD m_dwCRC; // Global
UL_HISTORY m_uhHistory; // Local
UL_STATUS m_usStatus; // Local
DWORD m_dwErrorCode; // Local
UL_MODE m_umMode; // Local
VARIANT_BOOL m_fPersistToDisk; // Local
VARIANT_BOOL m_fCompressed; // Local
long m_lPriority; // Local
DATE m_dCreationTime; // Local
DATE m_dCompleteTime; // Local
DATE m_dExpirationTime; // Local
MPC::Connectivity::Proxy m_Proxy; // Local
CComPtr<IDispatch> m_sink_onStatusChange; // Volatile
CComPtr<IDispatch> m_sink_onProgressChange; // Volatile
mutable bool m_fDirty; // Volatile
////////////////////////////////////////
HRESULT CreateFileName ( /*[out]*/ CComBSTR& bstrFileName );
HRESULT CreateTmpFileName( /*[out]*/ CComBSTR& bstrTmpFileName );
HRESULT CreateDataFromStream ( /*[in ]*/ IStream* streamIn , /*[in]*/ DWORD dwQueueSize );
HRESULT OpenReadStreamForData( /*[out]*/ IStream* *pstreamOut );
public:
DECLARE_NO_REGISTRY()
DECLARE_NOT_AGGREGATABLE(CMPCUploadJob)
DECLARE_GET_CONTROLLING_UNKNOWN()
BEGIN_COM_MAP(CMPCUploadJob)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(IMPCUploadJob)
COM_INTERFACE_ENTRY(IConnectionPointContainer)
END_COM_MAP()
CMPCUploadJob();
virtual ~CMPCUploadJob();
HRESULT LinkToSystem( /*[in]*/ CMPCUpload* mpcuRoot );
HRESULT Unlink ( );
////////////////////////////////////////
HRESULT SetSequence( /*[in]*/ ULONG lSeq );
////////////////////////////////////////
HRESULT CanModifyProperties();
HRESULT CanRelease( bool& fResult );
HRESULT RemoveData ();
HRESULT RemoveResponse();
bool operator<( /*[in]*/ const CMPCUploadJob& x ) const
{
if(m_lPriority < x.m_lPriority) return true;
if(m_umMode < x.m_umMode ) return true; // Works, because BACKGROUND < FOREGROUND.
return false;
}
HRESULT Fire_onStatusChange ( IMPCUploadJob* mpcujJob, tagUL_STATUS usStatus );
HRESULT Fire_onProgressChange( IMPCUploadJob* mpcujJob, LONG lCurrentSize, LONG lTotalSize );
public:
// IMPCPersist
STDMETHOD_(bool,IsDirty)();
STDMETHOD(Load)( /*[in]*/ MPC::Serializer& streamIn );
STDMETHOD(Save)( /*[in]*/ MPC::Serializer& streamOut );
// IMPCUploadJob
HRESULT get_Sequence ( /*[out]*/ ULONG *pVal ); // INTERNAL METHOD
STDMETHOD(get_Sig )( /*[out]*/ BSTR *pVal );
STDMETHOD(put_Sig )( /*[in] */ BSTR newVal );
STDMETHOD(get_Server )( /*[out]*/ BSTR *pVal );
STDMETHOD(put_Server )( /*[in] */ BSTR newVal );
STDMETHOD(get_JobID )( /*[out]*/ BSTR *pVal );
STDMETHOD(put_JobID )( /*[in] */ BSTR newVal );
STDMETHOD(get_ProviderID )( /*[out]*/ BSTR *pVal );
STDMETHOD(put_ProviderID )( /*[in] */ BSTR newVal );
HRESULT put_Creator ( /*[out]*/ BSTR newVal ); // INTERNAL METHOD
STDMETHOD(get_Creator )( /*[out]*/ BSTR *pVal );
STDMETHOD(get_Username )( /*[out]*/ BSTR *pVal );
STDMETHOD(put_Username )( /*[in] */ BSTR newVal );
STDMETHOD(get_Password )( /*[out]*/ BSTR *pVal );
STDMETHOD(put_Password )( /*[in] */ BSTR newVal );
HRESULT get_FileName ( /*[out]*/ BSTR *pVal ); // INTERNAL METHOD
STDMETHOD(get_OriginalSize )( /*[out]*/ long *pVal );
STDMETHOD(get_TotalSize )( /*[out]*/ long *pVal );
STDMETHOD(get_SentSize )( /*[out]*/ long *pVal );
HRESULT put_SentSize ( /*[in] */ long newVal ); // INTERNAL METHOD
HRESULT put_Response ( /*[in] */ long lSize, /*[in]*/ LPBYTE pData ); // INTERNAL METHOD
STDMETHOD(get_History )( /*[out]*/ UL_HISTORY *pVal );
STDMETHOD(put_History )( /*[in] */ UL_HISTORY newVal );
STDMETHOD(get_Status )( /*[out]*/ UL_STATUS *pVal );
HRESULT put_Status ( /*[in] */ UL_STATUS newVal ); // INTERNAL METHOD
STDMETHOD(get_ErrorCode )( /*[out]*/ long *pVal );
HRESULT put_ErrorCode ( /*[in] */ DWORD newVal ); // INTERNAL METHOD
HRESULT get_RetryInterval ( /*[in] */ DWORD *pVal ); // INTERNAL METHOD
HRESULT put_RetryInterval ( /*[in] */ DWORD newVal ); // INTERNAL METHOD
HRESULT try_Status ( /*[in]*/ UL_STATUS ulPreVal, /*[in]*/ UL_STATUS ulPostVal ); // INTERNAL METHOD
STDMETHOD(get_Mode )( /*[out]*/ UL_MODE *pVal );
STDMETHOD(put_Mode )( /*[in] */ UL_MODE newVal );
STDMETHOD(get_PersistToDisk )( /*[out]*/ VARIANT_BOOL *pVal );
STDMETHOD(put_PersistToDisk )( /*[in] */ VARIANT_BOOL newVal );
STDMETHOD(get_Compressed )( /*[out]*/ VARIANT_BOOL *pVal );
STDMETHOD(put_Compressed )( /*[in] */ VARIANT_BOOL newVal );
STDMETHOD(get_Priority )( /*[out]*/ long *pVal );
STDMETHOD(put_Priority )( /*[in] */ long newVal );
STDMETHOD(get_CreationTime )( /*[out]*/ DATE *pVal );
STDMETHOD(get_CompleteTime )( /*[out]*/ DATE *pVal );
STDMETHOD(get_ExpirationTime)( /*[out]*/ DATE *pVal );
STDMETHOD(put_ExpirationTime)( /*[in] */ DATE newVal );
STDMETHOD(ActivateSync )();
STDMETHOD(ActivateAsync)();
STDMETHOD(Suspend )();
STDMETHOD(Delete )();
STDMETHOD(GetDataFromFile)( /*[in]*/ BSTR bstrFileName );
STDMETHOD(PutDataIntoFile)( /*[in]*/ BSTR bstrFileName );
STDMETHOD(GetDataFromStream )( /*[in] */ IUnknown* stream );
STDMETHOD(PutDataIntoStream )( /*[out]*/ IUnknown* *pstream );
STDMETHOD(GetResponseAsStream)( /*[out]*/ IUnknown* *pstream );
STDMETHOD(put_onStatusChange )( /*[in]*/ IDispatch* function );
STDMETHOD(put_onProgressChange)( /*[in]*/ IDispatch* function );
//
// Support Methods.
//
HRESULT SetupRequest( /*[out]*/ UploadLibrary::ClientRequest_OpenSession& crosReq );
HRESULT SetupRequest( /*[out]*/ UploadLibrary::ClientRequest_WriteSession& crwsReq, /*[in]*/ DWORD dwSize );
HRESULT GetProxySettings( );
HRESULT SetProxySettings( /*[in]*/ HINTERNET hSession );
};
typedef MPC::CComObjectNoLock<CMPCUploadJob> CMPCUploadJob_Object;
////////////////////////////////////////////////////////////////////////////////
class ATL_NO_VTABLE CMPCUploadJobWrapper : // Hungarian: mpcujr
public CComObjectRootEx<MPC::CComSafeMultiThreadModel>,
public IDispatchImpl<IMPCUploadJob, &IID_IMPCUploadJob, &LIBID_UPLOADMANAGERLib>,
public IConnectionPointContainer
{
CMPCUploadJob* m_Object;
public:
CMPCUploadJobWrapper();
HRESULT Init ( /*[in]*/ CMPCUploadJob* obj );
void FinalRelease( );
BEGIN_COM_MAP(CMPCUploadJobWrapper)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(IMPCUploadJob)
COM_INTERFACE_ENTRY(IConnectionPointContainer)
END_COM_MAP()
public:
// IMPCUploadJob
STDMETHOD(get_Sig )( /*[out]*/ BSTR *pVal );
STDMETHOD(put_Sig )( /*[in] */ BSTR newVal );
STDMETHOD(get_Server )( /*[out]*/ BSTR *pVal );
STDMETHOD(put_Server )( /*[in] */ BSTR newVal );
STDMETHOD(get_JobID )( /*[out]*/ BSTR *pVal );
STDMETHOD(put_JobID )( /*[in] */ BSTR newVal );
STDMETHOD(get_ProviderID )( /*[out]*/ BSTR *pVal );
STDMETHOD(put_ProviderID )( /*[in] */ BSTR newVal );
STDMETHOD(get_Creator )( /*[out]*/ BSTR *pVal );
STDMETHOD(get_Username )( /*[out]*/ BSTR *pVal );
STDMETHOD(put_Username )( /*[in] */ BSTR newVal );
STDMETHOD(get_Password )( /*[out]*/ BSTR *pVal );
STDMETHOD(put_Password )( /*[in] */ BSTR newVal );
STDMETHOD(get_OriginalSize )( /*[out]*/ long *pVal );
STDMETHOD(get_TotalSize )( /*[out]*/ long *pVal );
STDMETHOD(get_SentSize )( /*[out]*/ long *pVal );
STDMETHOD(get_History )( /*[out]*/ UL_HISTORY *pVal );
STDMETHOD(put_History )( /*[in] */ UL_HISTORY newVal );
STDMETHOD(get_Status )( /*[out]*/ UL_STATUS *pVal );
STDMETHOD(get_ErrorCode )( /*[out]*/ long *pVal );
STDMETHOD(get_Mode )( /*[out]*/ UL_MODE *pVal );
STDMETHOD(put_Mode )( /*[in] */ UL_MODE newVal );
STDMETHOD(get_PersistToDisk )( /*[out]*/ VARIANT_BOOL *pVal );
STDMETHOD(put_PersistToDisk )( /*[in] */ VARIANT_BOOL newVal );
STDMETHOD(get_Compressed )( /*[out]*/ VARIANT_BOOL *pVal );
STDMETHOD(put_Compressed )( /*[in] */ VARIANT_BOOL newVal );
STDMETHOD(get_Priority )( /*[out]*/ long *pVal );
STDMETHOD(put_Priority )( /*[in] */ long newVal );
STDMETHOD(get_CreationTime )( /*[out]*/ DATE *pVal );
STDMETHOD(get_CompleteTime )( /*[out]*/ DATE *pVal );
STDMETHOD(get_ExpirationTime)( /*[out]*/ DATE *pVal );
STDMETHOD(put_ExpirationTime)( /*[in] */ DATE newVal );
STDMETHOD(ActivateSync )();
STDMETHOD(ActivateAsync)();
STDMETHOD(Suspend )();
STDMETHOD(Delete )();
STDMETHOD(GetDataFromFile)( /*[in]*/ BSTR bstrFileName );
STDMETHOD(PutDataIntoFile)( /*[in]*/ BSTR bstrFileName );
STDMETHOD(GetDataFromStream )( /*[in] */ IUnknown* stream );
STDMETHOD(PutDataIntoStream )( /*[out]*/ IUnknown* *pstream );
STDMETHOD(GetResponseAsStream)( /*[out]*/ IUnknown* *pstream );
STDMETHOD(put_onStatusChange )( /*[in]*/ IDispatch* function );
STDMETHOD(put_onProgressChange)( /*[in]*/ IDispatch* function );
// IConnectionPointContainer
STDMETHOD(EnumConnectionPoints)( /*[out]*/ IEnumConnectionPoints* *ppEnum );
STDMETHOD(FindConnectionPoint )( /*[in] */ REFIID riid, /*[out]*/ IConnectionPoint* *ppCP );
};
#endif // !defined(__INCLUDED___ULMANAGER___MPCUPLOADJOB_H___)