213 lines
4.3 KiB
C++
213 lines
4.3 KiB
C++
|
//----------------------------------------------------------------------------
|
||
|
//
|
||
|
// Microsoft Windows
|
||
|
// Copyright (C) Microsoft Corporation, 1992 - 2000.
|
||
|
//
|
||
|
// File: cumicurs.hxx
|
||
|
//
|
||
|
// Contents: Header file for CUmiCursor, can be used with both IADsContainer
|
||
|
// and also for queries.
|
||
|
//
|
||
|
// History: 03-16-00 SivaramR Created (in WinNT).
|
||
|
// 03-28-00 AjayR modified for LDAP.
|
||
|
//
|
||
|
//----------------------------------------------------------------------------
|
||
|
#ifndef __CUMICURS_H__
|
||
|
#define __CUMICURS_H__
|
||
|
|
||
|
class CUmiCursor : INHERIT_TRACKING,
|
||
|
public IUmiCursor
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
//
|
||
|
// IUknown Support.
|
||
|
//
|
||
|
DECLARE_STD_REFCOUNTING
|
||
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ;
|
||
|
|
||
|
//
|
||
|
// IUmiCursor Methods.
|
||
|
//
|
||
|
STDMETHOD (SetIID)(
|
||
|
IN REFIID riid
|
||
|
);
|
||
|
|
||
|
STDMETHOD (Reset)();
|
||
|
|
||
|
STDMETHOD (Next)(
|
||
|
IN ULONG uNumRequested,
|
||
|
OUT ULONG *puNumReturned,
|
||
|
OUT LPVOID *ppObjects
|
||
|
);
|
||
|
|
||
|
STDMETHOD (Count)(
|
||
|
OUT ULONG *puNumObjects
|
||
|
);
|
||
|
|
||
|
STDMETHOD (Previous)(
|
||
|
IN ULONG uFlags,
|
||
|
OUT LPVOID *pObj
|
||
|
);
|
||
|
|
||
|
//
|
||
|
// IUmiBaseObject methods
|
||
|
//
|
||
|
STDMETHOD (GetLastStatus)(
|
||
|
IN ULONG uFlags,
|
||
|
OUT ULONG *puSpecificStatus,
|
||
|
IN REFIID riid,
|
||
|
OUT LPVOID *pStatusObj
|
||
|
);
|
||
|
|
||
|
STDMETHOD (GetInterfacePropList)(
|
||
|
IN ULONG uFlags,
|
||
|
OUT IUmiPropList **pPropList
|
||
|
);
|
||
|
|
||
|
//
|
||
|
// IUmiPropList Methods - none need to be implemented.
|
||
|
// There are only interface properties on cursors.
|
||
|
//
|
||
|
STDMETHODIMP Put(
|
||
|
IN LPCWSTR pszName,
|
||
|
IN ULONG uFlags,
|
||
|
OUT UMI_PROPERTY_VALUES *pProp
|
||
|
)
|
||
|
{
|
||
|
SetLastStatus(0);
|
||
|
RRETURN(E_NOTIMPL);
|
||
|
}
|
||
|
|
||
|
STDMETHODIMP Get(
|
||
|
IN LPCWSTR pszName,
|
||
|
IN ULONG uFlags,
|
||
|
OUT UMI_PROPERTY_VALUES **ppProp
|
||
|
)
|
||
|
{
|
||
|
SetLastStatus(0);
|
||
|
RRETURN(E_NOTIMPL);
|
||
|
}
|
||
|
|
||
|
STDMETHODIMP GetAs(
|
||
|
IN LPCWSTR pszName,
|
||
|
IN ULONG uFlags,
|
||
|
IN ULONG uCoercionType,
|
||
|
OUT UMI_PROPERTY_VALUES **ppProp
|
||
|
)
|
||
|
{
|
||
|
SetLastStatus(0);
|
||
|
RRETURN(E_NOTIMPL);
|
||
|
}
|
||
|
|
||
|
STDMETHODIMP FreeMemory(
|
||
|
IN ULONG uReserved,
|
||
|
IN LPVOID pMem
|
||
|
)
|
||
|
{
|
||
|
SetLastStatus(0);
|
||
|
RRETURN(E_NOTIMPL);
|
||
|
}
|
||
|
|
||
|
STDMETHODIMP GetAt(
|
||
|
IN LPCWSTR pszName,
|
||
|
IN ULONG uFlags,
|
||
|
IN ULONG uBufferLength,
|
||
|
OUT LPVOID pExistingMem
|
||
|
)
|
||
|
{
|
||
|
SetLastStatus(0);
|
||
|
RRETURN(E_NOTIMPL);
|
||
|
}
|
||
|
|
||
|
STDMETHODIMP GetProps(
|
||
|
IN LPCWSTR *pszNames,
|
||
|
IN ULONG uNameCount,
|
||
|
IN ULONG uFlags,
|
||
|
OUT UMI_PROPERTY_VALUES **pProps
|
||
|
)
|
||
|
{
|
||
|
SetLastStatus(0);
|
||
|
RRETURN(E_NOTIMPL);
|
||
|
}
|
||
|
|
||
|
STDMETHODIMP PutProps(
|
||
|
IN LPCWSTR *pszNames,
|
||
|
IN ULONG uNameCount,
|
||
|
IN ULONG uFlags,
|
||
|
OUT UMI_PROPERTY_VALUES *pProps
|
||
|
)
|
||
|
{
|
||
|
SetLastStatus(0);
|
||
|
RRETURN(E_NOTIMPL);
|
||
|
}
|
||
|
|
||
|
STDMETHODIMP PutFrom(
|
||
|
IN LPCWSTR pszName,
|
||
|
IN ULONG uFlags,
|
||
|
IN ULONG uBufferLength,
|
||
|
IN LPVOID pExistingMem
|
||
|
)
|
||
|
{
|
||
|
SetLastStatus(0);
|
||
|
RRETURN(E_NOTIMPL);
|
||
|
}
|
||
|
|
||
|
STDMETHODIMP Delete(
|
||
|
IN LPCWSTR pszName,
|
||
|
IN ULONG uFlags
|
||
|
)
|
||
|
{
|
||
|
SetLastStatus(0);
|
||
|
RRETURN(E_NOTIMPL);
|
||
|
}
|
||
|
|
||
|
CUmiCursor::CUmiCursor();
|
||
|
CUmiCursor::~CUmiCursor();
|
||
|
|
||
|
//
|
||
|
// For use with IADsContainer.
|
||
|
//
|
||
|
static
|
||
|
HRESULT
|
||
|
CUmiCursor::CreateCursor(
|
||
|
IUnknown *pCont,
|
||
|
REFIID iid,
|
||
|
LPVOID *ppInterface
|
||
|
);
|
||
|
|
||
|
//
|
||
|
// For use with a query -> IUmiQuery.
|
||
|
//
|
||
|
static
|
||
|
HRESULT
|
||
|
CUmiCursor::CreateCursor(
|
||
|
IUmiQuery *pQuery,
|
||
|
IUmiConnection *pConnection,
|
||
|
IUnknown *pUnk,
|
||
|
LPCWSTR pszADsPath,
|
||
|
LPCWSTR pszLdapServer,
|
||
|
LPCWSTR pszLdapDn,
|
||
|
CCredentials cCredentials,
|
||
|
DWORD dwPort,
|
||
|
REFIID iid,
|
||
|
LPVOID *ppInterface
|
||
|
);
|
||
|
|
||
|
private:
|
||
|
|
||
|
void SetLastStatus(ULONG ulStatus);
|
||
|
HRESULT GetFilter(VARIANT *pvFilter);
|
||
|
|
||
|
BOOL _fQuery;
|
||
|
CPropertyManager *_pPropMgr;
|
||
|
ULONG _ulErrorStatus;
|
||
|
IID *_pIID;
|
||
|
IADsContainer *_pContainer;
|
||
|
IEnumVARIANT *_pEnum;
|
||
|
CUmiSearchHelper *_pSearchHelper;
|
||
|
|
||
|
};
|
||
|
#endif // __CUMICURS_H__
|
||
|
|