42 lines
867 B
C++
42 lines
867 B
C++
#ifndef _CRAWLER_H_
|
|
#define _CRAWLER_H_
|
|
|
|
#define CB_WNET_BUFFER 8*1024
|
|
|
|
typedef enum tagCrawlerFlags
|
|
{
|
|
NC_FINISHED = 0x0001,
|
|
NC_INIT_WORKGROUPS = 0x0002,
|
|
} NCFLAGS;
|
|
|
|
class CNetCrawler
|
|
{
|
|
public:
|
|
CNetCrawler(void) : _dwStatus(0), _hdpaWorkGroups(NULL), _cRef(1), _cItems(0) {}
|
|
~CNetCrawler(void);
|
|
void Init(DWORD dwFlags, int nItems);
|
|
HRESULT GetWorkGroupName(LPTSTR pszWorkGroupName, int cb, BOOL fBlocking);
|
|
inline void AddRef(void)
|
|
{
|
|
InterlockedIncrement(&_cRef);
|
|
}
|
|
inline void Release(void)
|
|
{
|
|
InterlockedDecrement(&_cRef);
|
|
if (!_cRef)
|
|
delete this;
|
|
}
|
|
|
|
private:
|
|
BOOL _dwStatus;
|
|
HDPA _hdpaWorkGroups;
|
|
int _iMaxItems;
|
|
int _cItems;
|
|
LONG _cRef;
|
|
|
|
void _EnumNetResources(LPNETRESOURCE pnr);
|
|
static DWORD WINAPI _EnumWorkGroups(LPVOID pv);
|
|
};
|
|
|
|
#endif // _CRAWLER_H_
|