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.

45 lines
1.5 KiB

  1. // DsctlObj.h : Declaration of the CDsctlObject
  2. #include "resource.h" // main symbols
  3. /////////////////////////////////////////////////////////////////////////////
  4. // dsctl
  5. //REVIEW -- using pointers to ID's is necessary because some compilers don't like
  6. //references as template arguments.
  7. class CDsctlObject :
  8. public CComDualImpl<IDsctl, &IID_IDsctl, &LIBID_DSCTLLib>,
  9. public ISupportErrorInfo,
  10. public CComObjectRoot,
  11. public CComCoClass<CDsctlObject, &CLSID_Dsctl>
  12. {
  13. public:
  14. CDsctlObject() {}
  15. BEGIN_COM_MAP(CDsctlObject)
  16. COM_INTERFACE_ENTRY(IDispatch)
  17. COM_INTERFACE_ENTRY(IDsctl)
  18. COM_INTERFACE_ENTRY(ISupportErrorInfo)
  19. END_COM_MAP()
  20. // Use DECLARE_NOT_AGGREGATABLE(CDsctlObject) if you don't want your object
  21. // to support aggregation
  22. DECLARE_AGGREGATABLE(CDsctlObject)
  23. // ISupportsErrorInfo
  24. STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);
  25. DECLARE_REGISTRY(CDsctlObject, TEXT("ADS.Connector.1"),
  26. TEXT("ADS.Connector.1"), IDS_DSCTL_DESC, THREADFLAGS_BOTH)
  27. // IDsctl
  28. public:
  29. BSTR m_Path;
  30. STDMETHOD (DSGetObject) (VARIANT ADsPath, VARIANT* retval);
  31. STDMETHOD (DSGetEnum) (VARIANT ADsPath, VARIANT* retval);
  32. STDMETHOD (DSEnumNext) (VARIANT Enum, VARIANT* retval);
  33. STDMETHOD (DSIsContainer) (VARIANT ObjectPtr, VARIANT* retval);
  34. STDMETHOD (DSGetLastError) (VARIANT* retval);
  35. STDMETHOD (DSGetMemberEnum) (VARIANT ObjectPtr, VARIANT* retval);
  36. STDMETHOD (DecodeURL) (VARIANT EncodedURL, VARIANT * retval);
  37. };