70 lines
1.8 KiB
C++
70 lines
1.8 KiB
C++
#include "OTScan.hpp"
|
|
|
|
#ifndef _OIDTOFILE_HPP
|
|
#define _OIDTOFILE_HPP
|
|
|
|
class SIMCOidTreeNode;
|
|
|
|
class OidToFile : public OidTreeScanner
|
|
{
|
|
typedef struct _FileNode
|
|
{
|
|
long lNextOffset;
|
|
UINT uNumChildren;
|
|
UINT uStrLen;
|
|
LPSTR lpszTextSubID;
|
|
UINT uNumSubID;
|
|
} T_FILE_NODE;
|
|
|
|
// mib.bin file actually needs the following platform independent format
|
|
// on 32bit(x86) and 64bit(ia64) environment. The uReserved field is used
|
|
// for backward compatibility to T_FILE_NODE on 32bit platform because
|
|
// mib.bin file format has been around since NT 3.51 time frame.
|
|
typedef struct _FileNodeEx
|
|
{
|
|
long lNextOffset; // This field must remain first
|
|
UINT uNumChildren;
|
|
UINT uStrLen;
|
|
UINT uReserved;
|
|
UINT uNumSubID;
|
|
} T_FILE_NODE_EX;
|
|
|
|
HFILE m_hMibFile;
|
|
const char *m_pszMibFilename;
|
|
public:
|
|
OidToFile();
|
|
|
|
// DESCRIPTION:
|
|
// wrapper for the base class Scan();
|
|
// it find first the sizes of subtrees;
|
|
// RETURN VALUE:
|
|
// 0 on success
|
|
// -1 on failure;
|
|
virtual int Scan();
|
|
|
|
// DESCRIPTION:
|
|
// Creates the output file, containing the OID encoding
|
|
// PARAMETERS:
|
|
// (in) pointer to the output file name
|
|
// RETURN VALUE:
|
|
// 0 on success, -1 on failure
|
|
int SetMibFilename(const char * pszMibFilename);
|
|
|
|
// DESCRIPTION:
|
|
// "callback" function, called each time a
|
|
// tree node passes through the scan. The user
|
|
// should redefine this function in the derived
|
|
// object to perform the action desired.
|
|
// PARAMETERS:
|
|
// (in) Pointer to the current node in the tree.
|
|
// Nodes are supplied in lexicographic order.
|
|
// RETURN VALUE:
|
|
// 0 - the scanner should continue
|
|
// -1 - the scanner should abort.
|
|
int OnScanNode(const SIMCOidTreeNode *pOidNode);
|
|
|
|
~OidToFile();
|
|
};
|
|
|
|
#endif
|