Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

280 lines
8.3 KiB

//+---------------------------------------------------------------------------
//
// 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__