161 lines
4.9 KiB
C++
161 lines
4.9 KiB
C++
//+-------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1997.
|
|
//
|
|
// File: Invoke.h
|
|
//
|
|
// Contents: Private Invoke interface for kicking off Synchronizations
|
|
//
|
|
// Classes: CSynchronizeInvoke
|
|
//
|
|
// Notes:
|
|
//
|
|
// History: 05-Nov-97 rogerg Created.
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
|
|
|
|
#ifndef _SYNCINVOKE_
|
|
#define _SYNCINVOKE_
|
|
|
|
#ifdef _SENS
|
|
#include <sensevts.h> // Review - must be real path
|
|
#endif // _SENS
|
|
|
|
class CSynchronizeInvoke : public IPrivSyncMgrSynchronizeInvoke
|
|
{
|
|
|
|
public:
|
|
CSynchronizeInvoke(void);
|
|
~CSynchronizeInvoke();
|
|
|
|
// default controlling unknown.
|
|
class CPrivUnknown : public IUnknown
|
|
{
|
|
public:
|
|
STDMETHOD(QueryInterface) ( REFIID riid, LPVOID FAR* ppvObj);
|
|
STDMETHOD_(ULONG,AddRef) (void);
|
|
STDMETHOD_(ULONG,Release) (void);
|
|
|
|
inline void SetParent(CSynchronizeInvoke *pSynchInvoke) { m_pSynchInvoke = pSynchInvoke; };
|
|
|
|
private:
|
|
CSynchronizeInvoke *m_pSynchInvoke;
|
|
};
|
|
|
|
friend class CPrivUnknown;
|
|
CPrivUnknown m_Unknown;
|
|
|
|
//IUnknown members
|
|
STDMETHODIMP QueryInterface(REFIID, LPVOID FAR *);
|
|
STDMETHODIMP_(ULONG) AddRef();
|
|
STDMETHODIMP_(ULONG) Release();
|
|
|
|
// IOfflineSynchronizeInvoke Methods
|
|
STDMETHODIMP UpdateItems(DWORD dwInvokeFlags,REFCLSID rclsid,DWORD cbCookie,const BYTE*lpCookie);
|
|
STDMETHODIMP UpdateAll(void);
|
|
|
|
// private methods
|
|
STDMETHODIMP Logon();
|
|
STDMETHODIMP Logoff();
|
|
STDMETHODIMP Schedule(WCHAR *pszTaskName);
|
|
STDMETHODIMP Idle();
|
|
STDMETHODIMP RasPendingDisconnect(DWORD cbConnectionName,const BYTE *lpConnectionName);
|
|
|
|
#ifdef _SENS
|
|
|
|
class CPrivSensNetwork : public ISensNetwork
|
|
{
|
|
public:
|
|
STDMETHOD(QueryInterface) ( REFIID riid, LPVOID FAR* ppvObj);
|
|
STDMETHOD_(ULONG,AddRef) (void);
|
|
STDMETHOD_(ULONG,Release) (void);
|
|
|
|
// Dispatch Methods
|
|
STDMETHOD (GetTypeInfoCount) (UINT *);
|
|
STDMETHOD (GetTypeInfo) (UINT, LCID, ITypeInfo **);
|
|
STDMETHOD (GetIDsOfNames) (REFIID, LPOLESTR *, UINT, LCID, DISPID *);
|
|
STDMETHOD (Invoke) (DISPID, REFIID, LCID, WORD, DISPPARAMS *, VARIANT *, EXCEPINFO *, UINT *);
|
|
|
|
// ISensNetwork
|
|
STDMETHOD (ConnectionMade) (BSTR, ULONG, LPSENS_QOCINFO);
|
|
STDMETHOD (ConnectionMadeNoQOCInfo) (BSTR, ULONG);
|
|
STDMETHOD (ConnectionLost) (BSTR, ULONG);
|
|
STDMETHOD (BeforeDisconnect) (BSTR, ULONG);
|
|
STDMETHOD (DestinationReachable) (BSTR, BSTR, ULONG, LPSENS_QOCINFO);
|
|
STDMETHOD (DestinationReachableNoQOCInfo) (BSTR, BSTR, ULONG);
|
|
|
|
inline void SetParent(CSynchronizeInvoke *pSynchInvoke) { m_pSynchInvoke = pSynchInvoke; };
|
|
|
|
private:
|
|
CSynchronizeInvoke *m_pSynchInvoke;
|
|
};
|
|
|
|
friend class CPrivSensNetwork;
|
|
CPrivSensNetwork m_PrivSensNetwork;
|
|
|
|
class CPrivSensLogon : public ISensLogon
|
|
{
|
|
public:
|
|
STDMETHOD(QueryInterface) ( REFIID riid, LPVOID FAR* ppvObj);
|
|
STDMETHOD_(ULONG,AddRef) (void);
|
|
STDMETHOD_(ULONG,Release) (void);
|
|
|
|
// Dispatch Methods
|
|
STDMETHOD (GetTypeInfoCount) (UINT *);
|
|
STDMETHOD (GetTypeInfo) (UINT, LCID, ITypeInfo **);
|
|
STDMETHOD (GetIDsOfNames) (REFIID, LPOLESTR *, UINT, LCID, DISPID *);
|
|
STDMETHOD (Invoke) (DISPID, REFIID, LCID, WORD, DISPPARAMS *, VARIANT *, EXCEPINFO *, UINT *);
|
|
|
|
// ISensLogon
|
|
STDMETHOD (Logon)(BSTR bstrUserName);
|
|
STDMETHOD (Logoff)(BSTR bstrUserName);
|
|
STDMETHOD (Startup)(BSTR bstrUserName);
|
|
STDMETHOD (StartShell)(BSTR bstrUserName);
|
|
STDMETHOD (Shutdown)(BSTR bstrUserName);
|
|
STDMETHOD (DisplayLock)(BSTR bstrUserName);
|
|
STDMETHOD (DisplayUnlock)(BSTR bstrUserName);
|
|
STDMETHOD (StartScreenSaver)(BSTR bstrUserName);
|
|
STDMETHOD (StopScreenSaver)(BSTR bstrUserName);
|
|
|
|
inline void SetParent(CSynchronizeInvoke *pSynchInvoke) { m_pSynchInvoke = pSynchInvoke; };
|
|
|
|
private:
|
|
CSynchronizeInvoke *m_pSynchInvoke;
|
|
|
|
};
|
|
|
|
friend class CPrivSensLogon;
|
|
CPrivSensLogon m_PrivSensLogon;
|
|
|
|
#endif // _SENS
|
|
|
|
public:
|
|
STDMETHODIMP RunIdle();
|
|
|
|
private:
|
|
STDMETHODIMP PrivUpdateAll(DWORD dwInvokeFlags,DWORD dwSyncFlags,DWORD cbCookie,const BYTE *lpCooke,
|
|
DWORD cbNumConnectionNames,TCHAR **ppConnectionNames,
|
|
TCHAR *pszScheduleName,BOOL fCanMakeConnection,HANDLE hRasPendingDisconnect,
|
|
ULONG ulIdleRetryMinutes,ULONG ulDelayIdleShutDownTime,BOOL fRetryEnabled);
|
|
|
|
STDMETHODIMP PrivHandleAutoSync(DWORD dwSyncFlags);
|
|
STDMETHODIMP PrivAutoSyncOnConnection(DWORD dwSyncFlags,DWORD cbNumConnectionNames,
|
|
TCHAR **ppConnectionName,
|
|
HANDLE hRasPendingEvent);
|
|
|
|
STDMETHODIMP GetLogonTypeInfo();
|
|
STDMETHODIMP GetNetworkTypeInfo();
|
|
|
|
|
|
DWORD m_cRef;
|
|
IUnknown *m_pUnkOuter; // pointer to outer unknown.
|
|
|
|
ITypeInfo *m_pITypeInfoLogon; // TypeInfo for Sens Logon Event.
|
|
ITypeInfo *m_pITypeInfoNetwork; // TypeInfo for Sens Network Event.
|
|
};
|
|
|
|
|
|
#endif // _SYNCINVOKE_
|