121 lines
3.1 KiB
C++
121 lines
3.1 KiB
C++
|
//+----------------------------------------------------------------------------
|
||
|
//
|
||
|
// Copyright (C) 1992, Microsoft Corporation.
|
||
|
//
|
||
|
// File: enumnode.hxx
|
||
|
//
|
||
|
// Contents: This has the definitions for the Classes that are used in order
|
||
|
// to support the enumeration functions of the Dfs provider.
|
||
|
//
|
||
|
// Classes: CDfsEnumNode
|
||
|
// CDfsEnumHandleTable
|
||
|
//
|
||
|
// History: 20-June-1994 SudK Created.
|
||
|
//
|
||
|
//-----------------------------------------------------------------------------
|
||
|
|
||
|
#ifndef _DFS_ENUM_NODE_HXX_
|
||
|
#define _DFS_ENUM_NODE_HXX_
|
||
|
|
||
|
DWORD DfsEnumEnterCriticalSection(VOID);
|
||
|
VOID DfsEnumLeaveCriticalSection(VOID);
|
||
|
DWORD InitDfsEnum(VOID);
|
||
|
VOID TermDfsEnum(VOID);
|
||
|
|
||
|
//--------------------------------------------------------------------------
|
||
|
//
|
||
|
// Class: CDfsEnumNode
|
||
|
//
|
||
|
// Synopsis: This is a wrapper class used to instantiate an enumeration
|
||
|
// in progress (to which a handle has been handed out).
|
||
|
//
|
||
|
// Methods: QueryType -
|
||
|
// QueryScope -
|
||
|
// QueryUsage -
|
||
|
// GetNetResource -
|
||
|
//
|
||
|
// History: 20 June 1994 SudK Created.
|
||
|
//
|
||
|
//--------------------------------------------------------------------------
|
||
|
class CDfsEnumNode
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
CDfsEnumNode( DWORD dwScope,
|
||
|
DWORD dwType,
|
||
|
DWORD dwUsage);
|
||
|
|
||
|
virtual ~CDfsEnumNode();
|
||
|
|
||
|
virtual DWORD Init() = 0;
|
||
|
virtual DWORD GetNetResource(LPVOID lpBuffer,
|
||
|
LPDWORD lpBufferSize) = 0;
|
||
|
|
||
|
DWORD QueryType()
|
||
|
{ return _dwType; }
|
||
|
|
||
|
DWORD QueryScope()
|
||
|
{ return _dwScope; }
|
||
|
|
||
|
DWORD QueryUsage()
|
||
|
{ return _dwUsage; }
|
||
|
|
||
|
private:
|
||
|
|
||
|
DWORD _dwType;
|
||
|
DWORD _dwScope;
|
||
|
DWORD _dwUsage;
|
||
|
|
||
|
};
|
||
|
|
||
|
//--------------------------------------------------------------------------
|
||
|
//
|
||
|
// Class: CDfsEnumConnectedNode
|
||
|
//
|
||
|
// Synopsis: This is a wrapper class used to instantiate an enumeration
|
||
|
// of domains in progress (to which a handle has been handed out).
|
||
|
//
|
||
|
// Methods:
|
||
|
// Init -
|
||
|
// GetNetResource -
|
||
|
//
|
||
|
// History: 18 Jan 1996 BruceFo Created.
|
||
|
//
|
||
|
//--------------------------------------------------------------------------
|
||
|
|
||
|
#define ECN_INITIAL_BUFFER_SIZE 1024
|
||
|
|
||
|
class CDfsEnumConnectedNode : public CDfsEnumNode
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
CDfsEnumConnectedNode(DWORD dwScope,
|
||
|
DWORD dwType,
|
||
|
DWORD dwUsage,
|
||
|
LPCTSTR pszProviderName,
|
||
|
const LPNETRESOURCE lpNetResource );
|
||
|
|
||
|
~CDfsEnumConnectedNode();
|
||
|
|
||
|
virtual DWORD Init();
|
||
|
|
||
|
virtual DWORD GetNetResource(
|
||
|
LPVOID lpBuffer,
|
||
|
LPDWORD lpBufferSize);
|
||
|
|
||
|
private:
|
||
|
|
||
|
DWORD _iNext;
|
||
|
DWORD _cTotal;
|
||
|
LPNETRESOURCE _lpNetResource;
|
||
|
BYTE _buffer[ECN_INITIAL_BUFFER_SIZE];
|
||
|
|
||
|
LPWSTR PackString(
|
||
|
IN LPVOID pBuffer,
|
||
|
IN LPCWSTR wszString,
|
||
|
IN DWORD cbString,
|
||
|
IN OUT LPDWORD lpcbBuf);
|
||
|
};
|
||
|
|
||
|
#endif
|