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.

66 lines
2.3 KiB

  1. /*---------------------------------------------------------------------------
  2. File: ProcessExtensions.h
  3. Comments: interface for the CProcessExtensions class..
  4. (c) Copyright 1999, Mission Critical Software, Inc., All Rights Reserved
  5. Proprietary and confidential to Mission Critical Software, Inc.
  6. REVISION LOG ENTRY
  7. Revision By: Sham Chauthani
  8. Revised on 07/02/99 12:40:00
  9. ---------------------------------------------------------------------------
  10. */
  11. #if !defined(AFX_PROCESSEXTENSIONS_H__B3C465A0_2E47_11D3_8C8E_0090270D48D1__INCLUDED_)
  12. #define AFX_PROCESSEXTENSIONS_H__B3C465A0_2E47_11D3_8C8E_0090270D48D1__INCLUDED_
  13. #if _MSC_VER > 1000
  14. #pragma once
  15. #endif // _MSC_VER > 1000
  16. #include "ARExt.h"
  17. #include "TNode.hpp"
  18. //#import "\bin\McsVarSetMin.tlb" no_namespace
  19. //#import "VarSet.tlb" no_namespace rename("property", "aproperty")
  20. #include "sdstat.hpp" //include this to get a #import of VarSet.tlb
  21. #include "iads.h"
  22. #include "TARNode.hpp"
  23. #include "ExtSeq.h"
  24. class CProcessExtensions;
  25. struct Options;
  26. #include "usercopy.hpp"
  27. class CProcessExtensions
  28. {
  29. public:
  30. CProcessExtensions(IVarSetPtr pVs);
  31. virtual ~CProcessExtensions();
  32. HRESULT Process(TAcctReplNode * pAcctNode, _bstr_t sTargetDomain, Options * pOptions,BOOL bPreMigration);
  33. private:
  34. IVarSetPtr m_pVs;
  35. TNodeListSortable m_listInterface;
  36. protected:
  37. void PutAccountNodeInVarset(TAcctReplNode * pNode, IADs * pTarget, IVarSet * pVS);
  38. void UpdateAccountNodeFromVarset(TAcctReplNode * pNode, IADs * pTarget, IVarSet * pVS);
  39. };
  40. class TNodeInterface : public TNode
  41. {
  42. IExtendAccountMigration * m_pExt;
  43. long m_Sequence;
  44. public:
  45. TNodeInterface( IExtendAccountMigration * pExt ) { m_pExt = pExt; m_Sequence = AREXT_DEFAULT_SEQUENCE_NUMBER; }
  46. ~TNodeInterface() { m_pExt->Release(); }
  47. IExtendAccountMigration * GetInterface() const { return m_pExt; }
  48. void SetInterface( const IExtendAccountMigration * pExt ) { m_pExt = const_cast<IExtendAccountMigration *>(pExt); }
  49. long GetSequence() const { return m_Sequence; }
  50. void SetSequence(long val) { m_Sequence = val; }
  51. };
  52. typedef HRESULT (CALLBACK * ADSGETOBJECT)(LPWSTR, REFIID, void**);
  53. extern ADSGETOBJECT ADsGetObject;
  54. #endif // !defined(AFX_PROCESSEXTENSIONS_H__B3C465A0_2E47_11D3_8C8E_0090270D48D1__INCLUDED_)