Source code of Windows XP (NT5)
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.
|
|
/**********************************************************************/ /** Microsoft Windows/NT **/ /** Copyright(c) Microsoft Corporation, 1997 - 1998 **/ /**********************************************************************/
/*
winsdb.h Wins database enumerator
FILE HISTORY: Oct 13 1997 EricDav Modified
*/
#ifndef _WINDDB_H
#define _WINSDB_H
#include "wins.h"
#ifndef _MEMMNGR_H
#include "memmngr.h"
#endif
#ifndef _HARRAY_H
#include "harray.h"
#endif
class CWinsDatabase : public IWinsDatabase { public: CWinsDatabase(); ~CWinsDatabase();
DeclareIUnknownMembers(IMPL) DeclareIWinsDatabaseMembers(IMPL)
// helper to set the current state
HRESULT SetCurrentState(WINSDB_STATE winsdbState);
// for background threading
DWORD Execute(); DWORD ReadRecords(handle_t hBinding); DWORD ReadRecordsByOwner(handle_t hBinding);
// ??
int GetIndex(HROW hrow); HROW GetHRow(WinsRecord wRecord, BYTE bLast, BOOL fAllRecords);
protected: // Holds all of the sorted and filtered indicies
CIndexMgr m_IndexMgr; // handles memory allocation
CMemoryManager m_cMemMan; // total number of records scanned
DWORD m_dwRecsCount;
LONG m_cRef; BOOL m_fFiltered; BOOL m_fInitialized; BOOL m_bShutdown;
CString m_strName; CString m_strIp; HANDLE m_hThread; HANDLE m_hStart; HANDLE m_hAbort;
HRESULT m_hrLastError;
WINSDB_STATE m_DBState;
handle_t m_hBinding;
CCriticalSection m_csState;
// CDWordArray m_dwaOwnerFilter;
BOOL m_bEnableCache; DWORD m_dwOwner; LPSTR m_strPrefix; };
typedef ComSmartPointer<IWinsDatabase, &IID_IWinsDatabase> SPIWinsDatabase;
// thread proc the background thread initially is called on
DWORD WINAPI ThreadProc(LPVOID lParam);
// converts records from the server to WinsRecords
void WinsIntfToWinsRecord(PWINSINTF_RECORD_ACTION_T pRecord, WinsRecord & wRecord);
// helper to create and initialize the WinsDatabase
extern HRESULT CreateWinsDatabase(CString& strName, CString& strIP, IWinsDatabase **ppWinsDB);
#endif // _WINSDB_H
|