Leaked source code of windows server 2003
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.
|
|
//+----------------------------------------------------------------------------
//
// 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
|