#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