windows-nt/Source/XPSP1/NT/ds/adsi/winnt/cumiconn.hxx
2020-09-26 16:20:57 +08:00

176 lines
3.7 KiB
C++

//----------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 2000.
//
// File: cumiconn.hxx
//
// Contents: Header file for CUmiConnection.
//
// History: 03-06-00 SivaramR Created.
//
//----------------------------------------------------------------------------
#ifndef __CUMICONN_H__
#define __CUMICONN_H__
class CUmiConnection : INHERIT_TRACKING,
public IUmiConnection
{
public:
CUmiConnection(void);
~CUmiConnection(void);
HRESULT FInit(void);
DECLARE_STD_REFCOUNTING
STDMETHODIMP QueryInterface(
REFIID iid,
LPVOID *ppInterface
);
STDMETHODIMP GetLastStatus(
ULONG uFlags,
ULONG *puSpecificStatus,
REFIID riid,
LPVOID *pStatusObj
);
STDMETHODIMP GetInterfacePropList(
ULONG uFlags,
IUmiPropList **pPropList
);
STDMETHODIMP Open(
IUmiURL *pURL,
ULONG uFlags,
REFIID TargetIID,
LPVOID *ppInterface
);
static
HRESULT CUmiConnection::CreateConnection(
REFIID iid,
LPVOID *ppInterface
);
// Methods of IUmiPropList - return error as there are no object
// properties on a connection object.
STDMETHODIMP Put(
LPCWSTR pszName,
ULONG uFlags,
UMI_PROPERTY_VALUES *pProp
)
{
SetLastStatus(UMI_E_NOTIMPL);
RRETURN(UMI_E_NOTIMPL);
}
STDMETHODIMP Get(
LPCWSTR pszName,
ULONG uFlags,
UMI_PROPERTY_VALUES **ppProp
)
{
SetLastStatus(UMI_E_NOTIMPL);
RRETURN(UMI_E_NOTIMPL);
}
STDMETHODIMP GetAs(
LPCWSTR pszName,
ULONG uFlags,
ULONG uCoercionType,
UMI_PROPERTY_VALUES **ppProp
)
{
SetLastStatus(UMI_E_NOTIMPL);
RRETURN(UMI_E_NOTIMPL);
}
STDMETHODIMP FreeMemory(
ULONG uReserved,
LPVOID pMem
)
{
SetLastStatus(UMI_E_NOTIMPL);
RRETURN(UMI_E_NOTIMPL);
}
STDMETHODIMP GetAt(
LPCWSTR pszName,
ULONG uFlags,
ULONG uBufferLength,
LPVOID pExistingMem
)
{
SetLastStatus(UMI_E_NOTIMPL);
RRETURN(UMI_E_NOTIMPL);
}
STDMETHODIMP GetProps(
LPCWSTR *pszNames,
ULONG uNameCount,
ULONG uFlags,
UMI_PROPERTY_VALUES **pProps
)
{
SetLastStatus(UMI_E_NOTIMPL);
RRETURN(UMI_E_NOTIMPL);
}
STDMETHODIMP PutProps(
LPCWSTR *pszNames,
ULONG uNameCount,
ULONG uFlags,
UMI_PROPERTY_VALUES *pProps
)
{
SetLastStatus(UMI_E_NOTIMPL);
RRETURN(UMI_E_NOTIMPL);
}
STDMETHODIMP PutFrom(
LPCWSTR pszName,
ULONG uFlags,
ULONG uBufferLength,
LPVOID pExistingMem
)
{
SetLastStatus(UMI_E_NOTIMPL);
RRETURN(UMI_E_NOTIMPL);
}
STDMETHODIMP Delete(
LPCWSTR pszName,
ULONG uFlags
)
{
SetLastStatus(UMI_E_NOTIMPL);
RRETURN(UMI_E_NOTIMPL);
}
private:
void SetLastStatus(ULONG ulStatus);
HRESULT GetUserName(LPWSTR *ppszUserName);
HRESULT GetPassword(LPWSTR *ppszPassword);
HRESULT GetBindFlags(DWORD *pdwBindFlags);
HRESULT CheckObject(
IUnknown *pUnknown,
DWORD dwNumComps,
LPWSTR *ppszClasses
);
IUmiPropList *m_pIUmiPropList;
CUmiPropList *m_pCUmiPropList;
ULONG m_ulErrorStatus;
IADsOpenDSObject *m_pIADsOpenDSObj;
BOOL m_fAlreadyOpened;
LPWSTR m_pszComputerName;
LPWSTR m_pszDomainName;
};
#endif // __CUMICONN_H__