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