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.

120 lines
2.5 KiB

  1. class CADsExtMgr;
  2. class CADsExtMgr
  3. {
  4. public:
  5. /* IUnknown methods */
  6. STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ;
  7. //
  8. // The IDispatch methods are the main interface of the Dispatch Manager.
  9. //
  10. STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo);
  11. STDMETHOD(GetTypeInfo)(THIS_ UINT itinfo, LCID lcid, ITypeInfo **pptinfo);
  12. STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPWSTR *rgszNames,
  13. UINT cNames, LCID lcid, DISPID *rgdispid);
  14. STDMETHOD(Invoke)(THIS_ DISPID dispidMember, REFIID riid, LCID lcid,
  15. WORD wFlags, DISPPARAMS *pdispparams, VARIANT *pvarResult,
  16. EXCEPINFO *pexcepinfo, UINT *puArgErr);
  17. CADsExtMgr::CADsExtMgr(
  18. IUnknown FAR * pUnkOuter
  19. );
  20. CADsExtMgr::~CADsExtMgr();
  21. static
  22. HRESULT
  23. CADsExtMgr::CreateExtMgr(
  24. IUnknown FAR * pUnkOuter,
  25. CAggregatorDispMgr * pDispMgr,
  26. LPTSTR pszClassName,
  27. CWinNTCredentials& Credentials,
  28. CADsExtMgr ** ppExtMgr
  29. );
  30. HRESULT
  31. CADsExtMgr::QueryForAggregateeInterface(
  32. REFIID riid,
  33. LPVOID FAR * ppv
  34. );
  35. HRESULT
  36. CADsExtMgr::LoadExtensions(
  37. CWinNTCredentials & Cred
  38. );
  39. HRESULT
  40. CADsExtMgr::FinalInitializeExtensions();
  41. STDMETHODIMP GetCLSIDForIID(
  42. REFIID riid,
  43. long lFlags,
  44. CLSID *pCLSID
  45. );
  46. STDMETHODIMP GetObjectByCLSID(
  47. CLSID clsid,
  48. IUnknown *pUnkOuter,
  49. REFIID riid,
  50. void **ppInterface
  51. );
  52. STDMETHODIMP GetCLSIDForNames(
  53. LPOLESTR * rgszNames,
  54. UINT cNames,
  55. LCID lcid,
  56. DISPID * rgDispId,
  57. long lFlags,
  58. CLSID *pCLSID
  59. );
  60. protected:
  61. HRESULT
  62. CheckAndPrefixExtIDArray(
  63. IN DWORD dwExtensionID,
  64. IN unsigned int cDispids,
  65. IN OUT DISPID * rgDispids
  66. );
  67. HRESULT
  68. CheckAndPrefixExtID(
  69. IN DWORD dwExtensionID,
  70. IN DISPID dispid,
  71. IN OUT DISPID * pDispid
  72. );
  73. HRESULT
  74. LoadExtensionsIfReqd(void);
  75. PCLASS_ENTRY _pClassEntry;
  76. CAggregatorDispMgr * _pDispMgr;
  77. IUnknown FAR * _pUnkOuter;
  78. CWinNTCredentials _Credentials;
  79. BOOL _fExtensionsLoaded;
  80. };
  81. HRESULT
  82. ADSILoadExtensionManager(
  83. LPWSTR pszClassName,
  84. IUnknown * pUnkOuter,
  85. CAggregatorDispMgr * pDispMgr,
  86. CWinNTCredentials& Credentials,
  87. CADsExtMgr ** ppExtMgr
  88. );
  89. void
  90. FreeClassEntry(
  91. PCLASS_ENTRY pClassEntry
  92. );