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.
|
|
/*
IMSession.h */
#ifndef __IMSESSION__
#define __IMSESSION__
#include "resource.h"
#include "sessions.h"
#include "mdispid.h"
#include "wincrypt.h"
#include "statusdlg.h"
EXTERN_C const IID DIID_DMsgrSessionEvents; EXTERN_C const IID DIID_DMsgrSessionManagerEvents; EXTERN_C const IID LIBID_MsgrSessionManager;
class CIMSession;
#include "Shared.h"
#include "sessevnt.h"
#include "sessmgrevnt.h"
#define IDC_IMSession 100
class ATL_NO_VTABLE CIMSession : public CComObjectRootEx<CComSingleThreadModel>, public CComCoClass<CIMSession, &CLSID_IMSession>, public IDispatchImpl<IIMSession, &IID_IIMSession, &LIBID_RCBDYCTLLib> { public: CIMSession();
~CIMSession();
DECLARE_REGISTRY_RESOURCEID(IDR_IMSESSION)
DECLARE_PROTECT_FINAL_CONSTRUCT()
BEGIN_COM_MAP(CIMSession) COM_INTERFACE_ENTRY(IIMSession) COM_INTERFACE_ENTRY(IDispatch) END_COM_MAP()
public: STDMETHOD(put_OnSessionStatus)(/*[in]*/ IDispatch * pfn); STDMETHOD(HSC_Invite)(IDispatch *pUser); STDMETHOD(get_ReceivedUserTicket)(/*[out,retval]*/ BSTR* pNewTicket); STDMETHOD(GetLaunchingSession)(LONG lID); STDMETHOD(SendOutExpertTicket)(BSTR pbstrData); STDMETHOD(ProcessContext)(BSTR pContext); STDMETHOD(CloseRA)(); STDMETHOD(get_User)(IDispatch** ppVal); STDMETHOD(Hook)(IMsgrSession*, HWND); STDMETHOD(Notify)(int); STDMETHOD(ContextDataProperty)(BSTR pName, BSTR* ppValue); STDMETHOD(get_IsInviter)(BOOL* pVal); STDMETHOD(UninitObjects)();
public: IMsgrSessionManager* m_pSessMgr; IMsgrSession* m_pSessObj; IMsgrLock* m_pMsgrLockKey; IDispatch* m_pInvitee; CSessionMgrEvent* m_pSessionMgrEvent; BOOL m_bIsHSC; CComPtr<IDispatch> m_pfnSessionStatus;
private: CComObject<CSessionEvent>* m_pSessionEvent; CComBSTR m_bstrSalemTicket; CComBSTR m_bstrContextData;
BOOL m_bIsInviter; HCRYPTPROV m_hCryptProv; HCRYPTKEY m_hPublicKey; int m_iState; DWORD GetExchangeRegValue(); BOOL m_bExchangeUser;
CStatusDlg m_StatusDlg;
public: CComBSTR m_bstrExpertTicket; HWND m_hWnd; BOOL m_bLocked;
public: HRESULT InitCSP(BOOL bGenPublicKey=TRUE); HRESULT InitSessionEvent(IMsgrSession* pSessObj); HRESULT DoSessionStatus(int); HRESULT GetKeyExportString(HCRYPTKEY hKey, HCRYPTKEY hExKey, DWORD dwBlobType, BSTR* pBlob, DWORD *pdwCount); HRESULT ExtractSalemTicket(BSTR pContext); HRESULT BinaryToString(LPBYTE pBinBuf, DWORD dwLen, BSTR* pBlob, DWORD *pdwCount); HRESULT StringToBinary(BSTR pBlob, DWORD dwCount, LPBYTE *ppBuf, DWORD* pdwLen); HRESULT GenEncryptdNoviceBlob(BSTR pPublicKeyBlob, BSTR pSalemTicket, BSTR* pBlob); HRESULT InviterSendSalemTicket(BSTR pContext); HRESULT ProcessNotify(BSTR); HRESULT OnLockResult(BOOL, LONG); HRESULT OnLockChallenge(BSTR, LONG); HRESULT Invite(IDispatch*);
};
#endif // __IMSession__
|