summaryrefslogtreecommitdiff
path: root/storage/connect/macutil.h
blob: 69a785dc9da4a90905fbeab2878e1e6852a9c8dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// MACUTIL.H     Olivier Bertrand    2008-2012
// Get Mac Addresses via GetAdaptersInfo
#if defined(_WIN32)
#include <iphlpapi.h>
#else   // !_WIN32
#error This is WINDOWS only
#endif  // !_WIN32
#include "block.h"

typedef class MACINFO *MACIP;

/***********************************************************************/
/*  This is the class declaration for MACINFO.                         */
/***********************************************************************/
class DllExport MACINFO : public BLOCK {
 public:
  // Constructor
  MACINFO(bool adap, bool fix);

  // Implementation
  int  GetNadap(PGLOBAL g);
  bool GetMacInfo(PGLOBAL g);
  bool GetFixedInfo(PGLOBAL g);
  void MakeErrorMsg(PGLOBAL g, DWORD drc);
  bool NextMac(void);
  bool GetOneInfo(PGLOBAL g, int flag, void *v, int lv);

  // Members
  FIXED_INFO      *Fip;          // Points to fixed info structure
  PIP_ADAPTER_INFO Piaf;         // Points on Adapter info array
  PIP_ADAPTER_INFO Curp;         // Points on current Adapt info
  ULONG            Buflen;       // Buffer length
  bool             Fix;           // true if FixedInfo is needed
  bool             Adap;         // true if Piaf is needed
  int              N;             // Number of adapters
  }; // end of class MACINFO