summaryrefslogtreecommitdiff
path: root/storage/connect/macutil.h
blob: c80bd58e20ad4796833e33a7aedcf8589b966c61 (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(__WIN__)
#include <iphlpapi.h>
#else   // !__WIN__
#error This is WINDOWS only
#endif  // !__WIN__
#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