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.

86 lines
3.1 KiB

  1. /*++
  2. Copyright (c) 1996 Microsoft Corporation
  3. Module Name:
  4. subdict.h
  5. Abstract:
  6. This module contains the definition for the Server
  7. Extension Object Sub-Dictionary class.
  8. Author:
  9. Don Dumitru (dondu@microsoft.com)
  10. Revision History:
  11. dondu 03/09/97 created
  12. --*/
  13. // item.h : Declaration of the CSEOSubDictionary
  14. /////////////////////////////////////////////////////////////////////////////
  15. // CSEOSubDictionary
  16. class ATL_NO_VTABLE CSEOSubDictionary :
  17. public CComObjectRootEx<CComMultiThreadModelNoCS>,
  18. // public CComCoClass<CSEOSubDictionary, &CLSID_CSEOSubDictionary>,
  19. public IDispatchImpl<ISEODictionary, &IID_ISEODictionary, &LIBID_SEOLib>
  20. {
  21. public:
  22. HRESULT FinalConstruct();
  23. void FinalRelease();
  24. DECLARE_PROTECT_FINAL_CONSTRUCT();
  25. // DECLARE_REGISTRY_RESOURCEID_EX(IDR_StdAfx,
  26. // L"SEOSubDictionary Class",
  27. // L"SEO.SEOSubDictionary.1",
  28. // L"SEO.SEOSubDictionary");
  29. DECLARE_GET_CONTROLLING_UNKNOWN();
  30. BEGIN_COM_MAP(CSEOSubDictionary)
  31. COM_INTERFACE_ENTRY(ISEODictionary)
  32. COM_INTERFACE_ENTRY(IDispatch)
  33. // COM_INTERFACE_ENTRY(ISupportErrorInfo)
  34. COM_INTERFACE_ENTRY_AGGREGATE(IID_IMarshal, m_pUnkMarshaler.p)
  35. END_COM_MAP()
  36. // ISEODictionary
  37. public:
  38. HRESULT STDMETHODCALLTYPE get_Item(VARIANT *pvarName, VARIANT *pvarResult);
  39. HRESULT STDMETHODCALLTYPE put_Item(VARIANT *pvarName, VARIANT *pvarValue);
  40. HRESULT STDMETHODCALLTYPE get__NewEnum(IUnknown **ppunkResult);
  41. HRESULT STDMETHODCALLTYPE GetVariantA(LPCSTR pszName, VARIANT *pvarResult);
  42. HRESULT STDMETHODCALLTYPE GetVariantW(LPCWSTR pszName, VARIANT *pvarResult);
  43. HRESULT STDMETHODCALLTYPE SetVariantA(LPCSTR pszName, VARIANT *pvarValue);
  44. HRESULT STDMETHODCALLTYPE SetVariantW(LPCWSTR pszName, VARIANT *pvarValue);
  45. HRESULT STDMETHODCALLTYPE GetStringA(LPCSTR pszName, DWORD *pchCount, LPSTR pszResult);
  46. HRESULT STDMETHODCALLTYPE GetStringW(LPCWSTR pszName, DWORD *pchCount, LPWSTR pszResult);
  47. HRESULT STDMETHODCALLTYPE SetStringA(LPCSTR pszName, DWORD chCount, LPCSTR pszValue);
  48. HRESULT STDMETHODCALLTYPE SetStringW(LPCWSTR pszName, DWORD chCount, LPCWSTR pszValue);
  49. HRESULT STDMETHODCALLTYPE GetDWordA(LPCSTR pszName, DWORD *pdwResult);
  50. HRESULT STDMETHODCALLTYPE GetDWordW(LPCWSTR pszName, DWORD *pdwResult);
  51. HRESULT STDMETHODCALLTYPE SetDWordA(LPCSTR pszName, DWORD dwValue);
  52. HRESULT STDMETHODCALLTYPE SetDWordW(LPCWSTR pszName, DWORD dwValue);
  53. HRESULT STDMETHODCALLTYPE GetInterfaceA(LPCSTR pszName, REFIID iidDesired, IUnknown **ppunkResult);
  54. HRESULT STDMETHODCALLTYPE GetInterfaceW(LPCWSTR pszName, REFIID iidDesired, IUnknown **ppunkResult);
  55. HRESULT STDMETHODCALLTYPE SetInterfaceA(LPCSTR pszName, IUnknown *punkValue);
  56. HRESULT STDMETHODCALLTYPE SetInterfaceW(LPCWSTR pszName, IUnknown *punkValue);
  57. // CSEOSubDictionary
  58. public:
  59. HRESULT SetBaseA(ISEODictionary *pdictBase, LPCSTR pszPrefix);
  60. HRESULT SetBaseW(ISEODictionary *pdictBase, LPCWSTR pszPrefix);
  61. private:
  62. CComPtr<ISEODictionary> m_pdictBase;
  63. LPSTR m_pszPrefixA;
  64. LPWSTR m_pszPrefixW;
  65. CComPtr<IUnknown> m_pUnkMarshaler;
  66. };