windows-nt/Source/XPSP1/NT/net/config/netoc/netoc.h
2020-09-26 16:20:57 +08:00

129 lines
3.3 KiB
C

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1997.
//
// File: N E T O C . H
//
// Contents: Functions for handling installation and removal of optional
// networking components.
//
// Notes:
//
// Author: danielwe 28 Apr 1997
//
//----------------------------------------------------------------------------
#pragma once
#ifndef _NETOC_H
#define _NETOC_H
#ifndef _OCMANAGE_H
#define _OCMANAGE_H
#include <ocmanage.h> // OC Manager header
#endif //!_OCMANAGE_H
#include "netcon.h"
#include "ncstring.h"
#include "netcfgx.h"
enum EINSTALL_TYPE
{
IT_UNKNOWN = 0x0,
IT_INSTALL = 0x1,
IT_UPGRADE = 0x2,
IT_REMOVE = 0x3,
IT_NO_CHANGE = 0x4,
};
struct OCM_DATA
{
INetCfg * pnc; // Uh, I assume we all know what this is.
HWND hwnd; // hwnd of parent window for any UI
SETUP_INIT_COMPONENT sic; // initialization data
HINF hinfAnswerFile;
BOOL fErrorReported;
BOOL fNoDepends;
OCM_DATA()
{
hwnd = NULL;
hinfAnswerFile = NULL;
pnc = NULL;
fErrorReported = FALSE;
fNoDepends = FALSE;
}
};
//+---------------------------------------------------------------------------
//
// NetOCData - Combines all of the standard parameters that we were
// previously passing all over the place. This will keep
// us from having to continually change all of our prototypes
// when we need other info in ALL functions, and will prevent
// us from instantiating objects such as INetCfg in multiple
// places
//
// Notes: Some members of this structure will not be initialized right away,
// but will be filled in when first needed.
//
// Author: jeffspr 24 Jul 1997
//
struct NetOCData
{
PCWSTR pszSection;
PWSTR pszComponentId;
tstring strDesc;
EINSTALL_TYPE eit;
BOOL fCleanup;
BOOL fFailedToInstall;
HINF hinfFile;
NetOCData()
{
eit = IT_UNKNOWN;
pszSection = NULL;
fCleanup = FALSE;
fFailedToInstall = FALSE;
hinfFile = NULL;
pszComponentId = NULL;
}
~NetOCData()
{
delete [] pszComponentId;
}
};
typedef struct NetOCData NETOCDATA;
typedef struct NetOCData * PNETOCDATA;
// Extension proc prototype
//
typedef HRESULT (*PFNOCEXTPROC) (PNETOCDATA pnocd, UINT uMsg, WPARAM wParam,
LPARAM lParam);
struct OCEXTPROCS
{
PCWSTR pszComponentName;
PFNOCEXTPROC pfnHrOcExtProc;
};
// Message handler constants
//
const UINT NETOCM_QUERY_CHANGE_SEL_STATE = 1000;
const UINT NETOCM_POST_INSTALL = 1001;
const UINT NETOCM_PRE_INF = 1002;
const UINT NETOCM_QUEUE_FILES = 1003;
extern OCM_DATA g_ocmData;
//
// Public functions
//
HRESULT HrHandleStaticIpDependency(PNETOCDATA pnocd);
HRESULT HrOcGetINetCfg(PNETOCDATA pnocd, BOOL fWriteLock, INetCfg **ppnc);
#endif //!_NETOC_H