Source code of Windows XP (NT5)
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.

112 lines
2.3 KiB

  1. typedef struct _comp_info_4
  2. {
  3. WCHAR szOwner[MAX_PATH];
  4. WCHAR szOS[MAX_PATH];
  5. WCHAR szOSVersion[MAX_PATH];
  6. WCHAR szDivision[MAX_PATH];
  7. WCHAR szProcessor[MAX_PATH];
  8. WCHAR szProcessorCount[MAX_PATH];
  9. }COMP_INFO_4, *PCOMP_INFO_4, *LPCOMP_INFO_4;
  10. class CWinNTComputer;
  11. class CWinNTComputer : INHERIT_TRACKING,
  12. public CCoreADsObject,
  13. public ISupportErrorInfo,
  14. public IADsComputer,
  15. public IADsComputerOperations,
  16. public IADsContainer,
  17. public IADsPropertyList,
  18. public INonDelegatingUnknown,
  19. public IADsExtension
  20. {
  21. public:
  22. /* IUnknown methods */
  23. STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ;
  24. STDMETHODIMP_(ULONG) AddRef(void);
  25. STDMETHODIMP_(ULONG) Release(void);
  26. // INonDelegatingUnknown methods
  27. STDMETHOD(NonDelegatingQueryInterface)(THIS_
  28. const IID&,
  29. void **
  30. );
  31. DECLARE_NON_DELEGATING_REFCOUNTING
  32. DECLARE_IDispatch_METHODS
  33. DECLARE_ISupportErrorInfo_METHODS
  34. DECLARE_IADs_METHODS
  35. DECLARE_IADsComputer_METHODS
  36. DECLARE_IADsComputerOperations_METHODS
  37. DECLARE_IADsContainer_METHODS
  38. DECLARE_IADsPropertyList_METHODS
  39. DECLARE_IADsExtension_METHODS
  40. CWinNTComputer::CWinNTComputer();
  41. CWinNTComputer::~CWinNTComputer();
  42. static
  43. HRESULT
  44. CWinNTComputer::CreateComputer(
  45. BSTR Parent,
  46. BSTR DomainName,
  47. BSTR ComputerName,
  48. DWORD dwObjectState,
  49. REFIID riid,
  50. CWinNTCredentials& Credentials,
  51. void **ppvObj
  52. );
  53. static
  54. HRESULT
  55. CWinNTComputer::AllocateComputerObject(
  56. CWinNTComputer ** ppComputer
  57. );
  58. STDMETHOD(GetInfo)(THIS_ DWORD dwApiLevel, BOOL fExplicit) ;
  59. STDMETHOD(ImplicitGetInfo)(void);
  60. HRESULT
  61. CWinNTComputer::UnMarshall_Level4(
  62. BOOL fExplicit,
  63. LPCOMP_INFO_4 pCompInfo4
  64. );
  65. protected:
  66. VARIANT _vFilter;
  67. BSTR _DomainName;
  68. CAggregatorDispMgr FAR * _pDispMgr;
  69. CADsExtMgr FAR * _pExtMgr;
  70. CPropertyCache FAR * _pPropertyCache;
  71. CWinNTCredentials _Credentials;
  72. BOOL _fCredentialsBound;
  73. HRESULT _hrBindingResult;
  74. BOOL _fNoWKSTA;
  75. private:
  76. HRESULT
  77. RefCredentials();
  78. };