mirror of https://github.com/tongzx/nt5src
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.
234 lines
7.6 KiB
234 lines
7.6 KiB
/************************************************************************
|
|
|
|
Copyright (c) 2000 - 2000 Microsoft Corporation
|
|
|
|
Module Name :
|
|
|
|
drizcpat.h
|
|
|
|
Abstract :
|
|
|
|
Compatibility wrapper against the old AU bits.
|
|
|
|
Author :
|
|
|
|
Revision History :
|
|
|
|
***********************************************************************/
|
|
|
|
#pragma once
|
|
#if !defined(___DRIZCPAT_H___)
|
|
#define ___DRIZCPAT_H___
|
|
|
|
#include "qmgrlib.h"
|
|
#include "qmgr.h"
|
|
|
|
class COldJobInterface : public IBackgroundCopyJob1
|
|
{
|
|
public:
|
|
|
|
// IUnknown Methods
|
|
STDMETHOD(QueryInterface)(REFIID riid, void **ppvObject);
|
|
ULONG _stdcall AddRef(void);
|
|
ULONG _stdcall Release(void);
|
|
|
|
// IBackgroundCopyJob1 methods
|
|
|
|
STDMETHOD(AddFilesInternal)( ULONG cFileCount, FILESETINFO **ppFileSet );
|
|
STDMETHOD(AddFiles)( ULONG cFileCount, FILESETINFO **ppFileSet )
|
|
{ EXTERNAL_FUNC_WRAP( AddFilesInternal( cFileCount, ppFileSet ) ) }
|
|
STDMETHOD(GetFileCountInternal)( DWORD *pCount );
|
|
STDMETHOD(GetFileCount)( DWORD *pCount )
|
|
{ EXTERNAL_FUNC_WRAP( GetFileCountInternal( pCount ) ) }
|
|
STDMETHOD(GetFileInternal)( ULONG cFileIndex, FILESETINFO *pFileInfo );
|
|
STDMETHOD(GetFile)( ULONG cFileIndex, FILESETINFO *pFileInfo )
|
|
{ EXTERNAL_FUNC_WRAP( GetFileInternal( cFileIndex, pFileInfo ) ) }
|
|
STDMETHOD(CancelJobInternal)();
|
|
STDMETHOD(CancelJob)()
|
|
{ EXTERNAL_FUNC_WRAP( CancelJobInternal( ) ) }
|
|
STDMETHOD(get_JobIDInternal)(GUID *pId);
|
|
STDMETHOD(get_JobID)(GUID *pId)
|
|
{ EXTERNAL_FUNC_WRAP( get_JobIDInternal( pId ) ) }
|
|
STDMETHOD(GetProgressInternal)(DWORD flags, DWORD *pProgress);
|
|
STDMETHOD(GetProgress)(DWORD flags, DWORD *pProgress)
|
|
{ EXTERNAL_FUNC_WRAP( GetProgressInternal( flags, pProgress ) ) }
|
|
STDMETHOD(SwitchToForegroundInternal)();
|
|
STDMETHOD(SwitchToForeground)()
|
|
{ EXTERNAL_FUNC_WRAP( SwitchToForegroundInternal( ) ) }
|
|
STDMETHOD(GetStatusInternal)(DWORD *pdwStatus,DWORD *pdwWin32Result, DWORD *pdwTransportResult, DWORD *pdwNumOfRetries );
|
|
STDMETHOD(GetStatus)(DWORD *pdwStatus,DWORD *pdwWin32Result, DWORD *pdwTransportResult, DWORD *pdwNumOfRetries )
|
|
{ EXTERNAL_FUNC_WRAP( GetStatusInternal( pdwStatus, pdwWin32Result, pdwTransportResult, pdwNumOfRetries ) ) }
|
|
|
|
GUID GetOldJobId()
|
|
{
|
|
return m_OldJobGuid;
|
|
}
|
|
|
|
COldJobInterface( GUID JobGuid, CJob *pJob );
|
|
~COldJobInterface();
|
|
|
|
void Serialize( HANDLE hFile );
|
|
|
|
static COldJobInterface *Unserialize(
|
|
HANDLE hFile,
|
|
CJob* Job
|
|
);
|
|
|
|
void SetInterfaceClass(
|
|
CJob *pVal
|
|
)
|
|
{
|
|
m_pJob = pVal;
|
|
}
|
|
|
|
private:
|
|
|
|
long m_refs;
|
|
long m_ServiceInstance;
|
|
|
|
const GUID m_OldJobGuid;
|
|
CJob * m_pJob;
|
|
CJobExternal * const m_pJobExternal;
|
|
};
|
|
|
|
class COldGroupInterface : public IBackgroundCopyGroup
|
|
{
|
|
public:
|
|
|
|
// IUnknown Methods
|
|
STDMETHOD(QueryInterface)(REFIID riid, void **ppvObject);
|
|
ULONG _stdcall AddRef(void);
|
|
ULONG _stdcall Release(void);
|
|
|
|
// IBackgroundCopyGroup methods
|
|
|
|
STDMETHOD(GetPropInternal)( GROUPPROP property, VARIANT * pVal );
|
|
STDMETHOD(GetProp)( GROUPPROP property, VARIANT * pVal )
|
|
{ EXTERNAL_FUNC_WRAP( GetPropInternal( property, pVal ) ) }
|
|
STDMETHOD(SetPropInternal)( GROUPPROP property, VARIANT *pvarVal );
|
|
STDMETHOD(SetProp)( GROUPPROP property, VARIANT *pvarVal )
|
|
{ EXTERNAL_FUNC_WRAP( SetPropInternal( property, pvarVal ) ) }
|
|
STDMETHOD(GetProgressInternal)( DWORD flags, DWORD * pProgress );
|
|
STDMETHOD(GetProgress)( DWORD flags, DWORD * pProgress )
|
|
{ EXTERNAL_FUNC_WRAP( GetProgressInternal( flags, pProgress ) ) }
|
|
STDMETHOD(GetStatusInternal)( DWORD *pdwStatus, DWORD *pdwJobIndex );
|
|
STDMETHOD(GetStatus)( DWORD *pdwStatus, DWORD *pdwJobIndex )
|
|
{ EXTERNAL_FUNC_WRAP( GetStatusInternal( pdwStatus, pdwJobIndex ) ) }
|
|
STDMETHOD(GetJobInternal)( GUID jobID, IBackgroundCopyJob1 **ppJob );
|
|
STDMETHOD(GetJob)( GUID jobID, IBackgroundCopyJob1 **ppJob )
|
|
{ EXTERNAL_FUNC_WRAP( GetJobInternal( jobID, ppJob ) ) }
|
|
STDMETHOD(SuspendGroupInternal)();
|
|
STDMETHOD(SuspendGroup)()
|
|
{ EXTERNAL_FUNC_WRAP( SuspendGroupInternal() ) }
|
|
STDMETHOD(ResumeGroupInternal)();
|
|
STDMETHOD(ResumeGroup)()
|
|
{ EXTERNAL_FUNC_WRAP( ResumeGroupInternal() ) }
|
|
STDMETHOD(CancelGroupInternal)();
|
|
STDMETHOD(CancelGroup)()
|
|
{ EXTERNAL_FUNC_WRAP( CancelGroupInternal() ) }
|
|
STDMETHOD(get_SizeInternal)( DWORD *pdwSize );
|
|
STDMETHOD(get_Size)( DWORD *pdwSize )
|
|
{ EXTERNAL_FUNC_WRAP( get_SizeInternal( pdwSize ) ) }
|
|
STDMETHOD(get_GroupIDInternal)( GUID *pguidGroupID );
|
|
STDMETHOD(get_GroupID)( GUID *pguidGroupID )
|
|
{ EXTERNAL_FUNC_WRAP( get_GroupIDInternal( pguidGroupID ) ) }
|
|
STDMETHOD(CreateJobInternal)( GUID guidJobID, IBackgroundCopyJob1 **ppJob );
|
|
STDMETHOD(CreateJob)( GUID guidJobID, IBackgroundCopyJob1 **ppJob )
|
|
{ EXTERNAL_FUNC_WRAP( CreateJobInternal( guidJobID, ppJob ) ) }
|
|
STDMETHOD(EnumJobsInternal)( DWORD dwFlags, IEnumBackgroundCopyJobs1 **ppEnumJobs );
|
|
STDMETHOD(EnumJobs)( DWORD dwFlags, IEnumBackgroundCopyJobs1 **ppEnumJobs )
|
|
{ EXTERNAL_FUNC_WRAP( EnumJobsInternal( dwFlags, ppEnumJobs ) ) }
|
|
STDMETHOD(SwitchToForegroundInternal)();
|
|
STDMETHOD(SwitchToForeground)()
|
|
{ EXTERNAL_FUNC_WRAP( SwitchToForegroundInternal() ) }
|
|
|
|
// extensions to IBackgroundCopyGroup, not in original Mars interface
|
|
|
|
STDMETHOD(QueryNewJobInterface)( REFIID iid, IUnknown ** pUnk );
|
|
STDMETHOD(SetNotificationPointer)( REFIID iid, IUnknown * pUnk );
|
|
|
|
COldGroupInterface( CJob *pJob );
|
|
~COldGroupInterface();
|
|
|
|
void Serialize( HANDLE hFile );
|
|
static COldGroupInterface *UnSerialize(HANDLE hFile, CJob* Job);
|
|
|
|
IBackgroundCopyCallback1 * GetNotificationPointer();
|
|
|
|
void SetInterfaceClass(
|
|
CJob *pVal
|
|
)
|
|
{
|
|
m_pJob = pVal;
|
|
}
|
|
|
|
private:
|
|
|
|
long m_refs;
|
|
long m_ServiceInstance;
|
|
|
|
CJob * m_pJob;
|
|
CJobExternal * const m_pJobExternal;
|
|
|
|
IBackgroundCopyCallback1 * m_NotifyPointer;
|
|
GUID m_NotifyClsid;
|
|
};
|
|
|
|
|
|
class COldQmgrInterface : public IBackgroundCopyQMgr,
|
|
public IClassFactory
|
|
{
|
|
public:
|
|
|
|
// IUnknown Methods
|
|
STDMETHOD(QueryInterface)(REFIID riid, void **ppvObject);
|
|
ULONG _stdcall AddRef(void);
|
|
ULONG _stdcall Release(void);
|
|
|
|
// IClassFactory
|
|
STDMETHOD(CreateInstance)( IUnknown * pUnkOuter, REFIID riid, void ** ppvObject );
|
|
STDMETHOD(LockServer)( BOOL fLock );
|
|
|
|
// IBackgroundCopyQmgr
|
|
STDMETHOD(CreateGroupInternal)(GUID id, IBackgroundCopyGroup **ppGroup);
|
|
STDMETHOD(CreateGroup)(GUID id, IBackgroundCopyGroup **ppGroup)
|
|
{ EXTERNAL_FUNC_WRAP( CreateGroupInternal( id, ppGroup ) ) }
|
|
STDMETHOD(GetGroupInternal)(GUID id, IBackgroundCopyGroup ** ppGroup);
|
|
STDMETHOD(GetGroup)(GUID id, IBackgroundCopyGroup ** ppGroup)
|
|
{ EXTERNAL_FUNC_WRAP( GetGroupInternal( id, ppGroup ) ) }
|
|
STDMETHOD(EnumGroupsInternal)(DWORD flags, IEnumBackgroundCopyGroups **ppEnum );
|
|
STDMETHOD(EnumGroups)(DWORD flags, IEnumBackgroundCopyGroups **ppEnum )
|
|
{ EXTERNAL_FUNC_WRAP( EnumGroupsInternal( flags, ppEnum ) ) }
|
|
|
|
// other methods
|
|
|
|
COldQmgrInterface();
|
|
|
|
void SetInterfaceClass(
|
|
CJobManager *pVal
|
|
)
|
|
{
|
|
m_pJobManager = pVal;
|
|
}
|
|
|
|
private:
|
|
|
|
long m_refs;
|
|
long m_ServiceInstance;
|
|
|
|
CJobManager *m_pJobManager;
|
|
};
|
|
|
|
class CEnumOldGroups : public CEnumItem<IEnumBackgroundCopyGroups,GUID>
|
|
{
|
|
public:
|
|
CEnumOldGroups();
|
|
};
|
|
|
|
class CEnumOldJobs : public CEnumItem<IEnumBackgroundCopyJobs1,GUID>
|
|
{
|
|
public:
|
|
CEnumOldJobs();
|
|
};
|
|
|
|
#endif //__DRIZCPAT_H__
|