windows-nt/Source/XPSP1/NT/admin/dsweb/dsctl/dsctlobj.h
2020-09-26 16:20:57 +08:00

46 lines
1.5 KiB
C++

// DsctlObj.h : Declaration of the CDsctlObject
#include "resource.h" // main symbols
/////////////////////////////////////////////////////////////////////////////
// dsctl
//REVIEW -- using pointers to ID's is necessary because some compilers don't like
//references as template arguments.
class CDsctlObject :
public CComDualImpl<IDsctl, &IID_IDsctl, &LIBID_DSCTLLib>,
public ISupportErrorInfo,
public CComObjectRoot,
public CComCoClass<CDsctlObject, &CLSID_Dsctl>
{
public:
CDsctlObject() {}
BEGIN_COM_MAP(CDsctlObject)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(IDsctl)
COM_INTERFACE_ENTRY(ISupportErrorInfo)
END_COM_MAP()
// Use DECLARE_NOT_AGGREGATABLE(CDsctlObject) if you don't want your object
// to support aggregation
DECLARE_AGGREGATABLE(CDsctlObject)
// ISupportsErrorInfo
STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);
DECLARE_REGISTRY(CDsctlObject, TEXT("ADS.Connector.1"),
TEXT("ADS.Connector.1"), IDS_DSCTL_DESC, THREADFLAGS_BOTH)
// IDsctl
public:
BSTR m_Path;
STDMETHOD (DSGetObject) (VARIANT ADsPath, VARIANT* retval);
STDMETHOD (DSGetEnum) (VARIANT ADsPath, VARIANT* retval);
STDMETHOD (DSEnumNext) (VARIANT Enum, VARIANT* retval);
STDMETHOD (DSIsContainer) (VARIANT ObjectPtr, VARIANT* retval);
STDMETHOD (DSGetLastError) (VARIANT* retval);
STDMETHOD (DSGetMemberEnum) (VARIANT ObjectPtr, VARIANT* retval);
STDMETHOD (DecodeURL) (VARIANT EncodedURL, VARIANT * retval);
};