281 lines
8.3 KiB
C
281 lines
8.3 KiB
C
//+---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows NT5.0
|
|
// Copyright (C) Microsoft Corporation, 1997-1999.
|
|
//
|
|
// File: O E M U P G E X . H
|
|
//
|
|
// Contents: Function prototypes needed for OEM network upgrade
|
|
//
|
|
// Notes:
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
#ifndef __OEMUPGEX_H__
|
|
#define __OEMUPGEX_H__
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#ifndef WINNT32P_H
|
|
typedef enum {
|
|
UNKNOWN,
|
|
NT_WORKSTATION,
|
|
NT_SERVER
|
|
} PRODUCTTYPE;
|
|
#endif
|
|
|
|
typedef struct
|
|
{
|
|
PRODUCTTYPE ProductType;
|
|
DWORD dwBuildNumber;
|
|
} ProductInfo;
|
|
|
|
typedef struct
|
|
{
|
|
ProductInfo From;
|
|
ProductInfo To;
|
|
} NetUpgradeInfo;
|
|
|
|
typedef struct
|
|
{
|
|
WCHAR szCompanyName[256];
|
|
WCHAR szSupportNumber[256];
|
|
WCHAR szSupportUrl[256];
|
|
WCHAR szInstructionsToUser[1024];
|
|
} VENDORINFO;
|
|
|
|
const DWORD c_dwMaxProductIdLen = 255;
|
|
|
|
const DWORD NUA_LOAD_POST_UPGRADE = 0x0001;
|
|
const DWORD NUA_REQUEST_ABORT_UPGRADE = 0x0002;
|
|
const DWORD NUA_ABORT_UPGRADE = 0x0004;
|
|
const DWORD NUA_SKIP_INSTALL_IN_GUI_MODE = 0x80000L;
|
|
|
|
typedef struct
|
|
{
|
|
LPTSTR mszServicesNotToBeDeleted;
|
|
} NetUpgradeData;
|
|
|
|
// Names of functions exported from OEM DLL
|
|
//
|
|
|
|
#define c_szPreUpgradeInitialize "PreUpgradeInitialize"
|
|
#define c_szDoPreUpgradeProcessing "DoPreUpgradeProcessing"
|
|
#define c_szPostUpgradeInitialize "PostUpgradeInitialize"
|
|
#define c_szDoPostUpgradeProcessing "DoPostUpgradeProcessing"
|
|
|
|
// Names of functions exported from netupgrd.dll
|
|
//
|
|
#define c_szNetUpgradeAddSection "NetUpgradeAddSection"
|
|
#define c_szNetUpgradeAddLineToSection "NetUpgradeAddLineToSection"
|
|
|
|
// Keys in OemSection
|
|
//
|
|
#define c_szInfToRunBeforeInstall TEXT("InfToRunBeforeInstall")
|
|
#define c_szInfToRunAfterInstall TEXT("InfToRunAfterInstall")
|
|
|
|
//
|
|
// Prototypes for functions exported from OEM DLL
|
|
//
|
|
|
|
LONG __stdcall
|
|
GetListOfServicesNotToBeDeleted(OUT LPTSTR* pmszServices);
|
|
|
|
typedef LONG
|
|
(__stdcall *GetListOfServicesNotToBeDeletedPrototype)
|
|
(OUT LPTSTR* pmszServices);
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Function: PreUpgradeInitialize
|
|
//
|
|
// Purpose: Intialize OEM DLL
|
|
//
|
|
// Arguments:
|
|
// szWorkingDir [in] name of temporary directory to be used
|
|
// pNetUpgradeInfo [in] pointer to NetUpgradeInfo structure
|
|
// pviVendorInfo [out] information about OEM
|
|
// pdwFlags [out] pointer to flags
|
|
// pNetUpgradeData [out] pointer to NetUpgradeData structure
|
|
//
|
|
// Returns: ERROR_SUCCESS in case of success, win32 error otherwise
|
|
//
|
|
// Notes:
|
|
// This function is called before any other function in this dll.
|
|
// The main purpose of calling this function is to obtain
|
|
// identification information and to allow the DLL to initialize
|
|
// its internal data
|
|
//
|
|
LONG __stdcall
|
|
PreUpgradeInitialize(IN LPCTSTR szWorkingDir,
|
|
IN NetUpgradeInfo* pNetUpgradeInfo,
|
|
OUT VENDORINFO* pviVendorInfo,
|
|
OUT DWORD* pdwFlags,
|
|
OUT NetUpgradeData* pNetUpgradeData);
|
|
|
|
typedef LONG
|
|
(__stdcall *PreUpgradeInitializePrototype)
|
|
(IN LPCTSTR szWorkingDir,
|
|
IN NetUpgradeInfo* pNetUpgradeInfo,
|
|
OUT VENDORINFO* pviVendorInfo,
|
|
OUT DWORD* pdwFlags,
|
|
OUT NetUpgradeData* pNetUpgradeData);
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Function: DoPreUpgradeProcessing
|
|
//
|
|
// Purpose: Intialize OEM DLL
|
|
//
|
|
// Arguments:
|
|
// hParentWindow [in] window handle for showing UI
|
|
// hkeyParams [in] handle to parameters key in registry
|
|
// szPreNT5InfId [in] pre-NT5 InfID
|
|
// szPreNT5Instance [in] pre-NT5 instance name
|
|
// szNT5InfId [in] NT5 InfId
|
|
// szSectionName [in] section name to be used for writing info
|
|
// pviVendorInfo [out] information about OEM
|
|
// pdwFlags [out] pointer to flags
|
|
// pvReserved [in] reserved
|
|
//
|
|
// Returns: ERROR_SUCCESS in case of success, win32 error otherwise
|
|
//
|
|
// Notes:
|
|
// This function is called once per component to be upgraded.
|
|
//
|
|
LONG __stdcall
|
|
DoPreUpgradeProcessing(IN HWND hParentWindow,
|
|
IN HKEY hkeyParams,
|
|
IN LPCTSTR szPreNT5InfId,
|
|
IN LPCTSTR szPreNT5Instance,
|
|
IN LPCTSTR szNT5InfId,
|
|
IN LPCTSTR szSectionName,
|
|
OUT VENDORINFO* pviVendorInfo,
|
|
OUT DWORD* pdwFlags,
|
|
IN LPVOID pvReserved);
|
|
|
|
typedef LONG
|
|
(__stdcall *DoPreUpgradeProcessingPrototype)
|
|
(IN HWND hParentWindow,
|
|
IN HKEY hkeyParams,
|
|
IN LPCTSTR szPreNT5InfId,
|
|
IN LPCTSTR szPreNT5Instance,
|
|
IN LPCTSTR szNT5InfId,
|
|
IN LPCTSTR szSectionName,
|
|
OUT VENDORINFO* pviVendorInfo,
|
|
OUT DWORD* pdwFlags,
|
|
IN LPVOID pvReserved);
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Function: PostUpgradeInitialize
|
|
//
|
|
// Purpose: Intialize OEM DLL during GUI mode setup
|
|
//
|
|
// Arguments:
|
|
// szWorkingDir [in] name of temporary directory to be used
|
|
// pNetUpgradeInfo [in] pointer to NetUpgradeInfo structure
|
|
// pviVendorInfo [out] information about OEM
|
|
// pvReserved [out] reserved
|
|
//
|
|
// Returns: ERROR_SUCCESS in case of success, win32 error otherwise
|
|
//
|
|
// Notes:
|
|
// This function is called in GUI mode setup before
|
|
// any other function in this dll .
|
|
// The main purpose of calling this function is to obtain
|
|
// identification information and to allow the DLL to initialize
|
|
// its internal data
|
|
//
|
|
LONG __stdcall
|
|
PostUpgradeInitialize(IN LPCTSTR szWorkingDir,
|
|
IN NetUpgradeInfo* pNetUpgradeInfo,
|
|
OUT VENDORINFO* pviVendorInfo,
|
|
OUT LPVOID pvReserved);
|
|
|
|
typedef LONG
|
|
(__stdcall *PostUpgradeInitializePrototype)
|
|
(IN LPCTSTR szWorkingDir,
|
|
IN NetUpgradeInfo* pNetUpgradeInfo,
|
|
OUT VENDORINFO* pviVendorInfo,
|
|
OUT LPVOID pvReserved);
|
|
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Function: DoPostUpgradeProcessing
|
|
//
|
|
// Purpose: Intialize OEM DLL
|
|
//
|
|
// Arguments:
|
|
// hParentWindow [in] window handle for showing UI
|
|
// hkeyParams [in] handle to parameters key in registry
|
|
// szPreNT5Instance [in] pre-NT5 instance name
|
|
// szNT5InfId [in] NT5 InfId
|
|
// hinfAnswerFile [in] handle to answer-file
|
|
// szSectionName [in] name of section having component parameters
|
|
// pviVendorInfo [out] information about OEM
|
|
// pvReserved [in] reserved
|
|
//
|
|
// Returns: ERROR_SUCCESS in case of success, win32 error otherwise
|
|
//
|
|
// Notes:
|
|
// This function is called once per component upgraded.
|
|
//
|
|
LONG __stdcall
|
|
DoPostUpgradeProcessing(IN HWND hParentWindow,
|
|
IN HKEY hkeyParams,
|
|
IN LPCTSTR szPreNT5Instance,
|
|
IN LPCTSTR szNT5InfId,
|
|
IN HINF hinfAnswerFile,
|
|
IN LPCTSTR szSectionName,
|
|
OUT VENDORINFO* pviVendorInfo,
|
|
IN LPVOID pvReserved);
|
|
|
|
typedef LONG
|
|
(__stdcall *DoPostUpgradeProcessingPrototype)
|
|
(IN HWND hParentWindow,
|
|
IN HKEY hkeyParams,
|
|
IN LPCTSTR szPreNT5Instance,
|
|
IN LPCTSTR szNT5InfId,
|
|
IN HINF hinfAnswerFile,
|
|
IN LPCTSTR szSectionName,
|
|
OUT VENDORINFO* pviVendorInfo,
|
|
IN LPVOID pvReserved);
|
|
|
|
|
|
//
|
|
// Prototypes for functions exported by netupgrd.dll
|
|
//
|
|
|
|
LONG __stdcall
|
|
NetUpgradeAddSection(IN LPCTSTR szSectionName);
|
|
|
|
typedef LONG
|
|
(__stdcall *NetUpgradeAddSectionPrototype) (IN LPCTSTR szSectionName);
|
|
|
|
|
|
LONG __stdcall
|
|
NetUpgradeAddLineToSection(IN LPCTSTR szSectionName,
|
|
IN LPCTSTR szLine);
|
|
|
|
typedef LONG
|
|
(__stdcall *NetUpgradeAddLineToSectionPrototype) (IN LPCTSTR szSectionName,
|
|
IN LPCTSTR szLine);
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // __OEMUPGEX_H__
|