|
|
/*++
Copyright (c) 2000 Microsoft Corporation All rights reserved.
Module Name:
local.h
Abstract:
Local header file for migration DLL of WIA class.
Author:
Keisuke Tsuchida (KeisukeT) 10-Oct-2000
Revision History:
--*/
#ifndef LOCAL_H
#define LOCAL_H
//
// Define
//
#define NAME_WIN9X_SETTING_FILE_A "sti9x.txt"
#define NAME_WIN9X_SETTING_FILE_W L"sti9x.txt"
#define NAME_MIGRATE_INF_A "migrate.inf"
#define NAME_MIGRATE_INF_W L"migrate.inf"
#define NAME_STILLIMAGE_A "StillImage"
#define NAME_STILLIMAGE_W L"StillImage"
#define NAME_FRIENDLYNAME_A "FriendlyName"
#define NAME_FRIENDLYNAME_W L"FriendlyName"
#define NAME_CREATEFILENAME_A "CreateFileName"
#define NAME_CREATEFILENAME_W L"CreateFileName"
#define NAME_INF_PATH_A "InfPath"
#define NAME_INF_PATH_W L"InfPath"
#define NAME_INF_SECTION_A "InfSection"
#define NAME_INF_SECTION_W L"InfSection"
#define NAME_INSTALLER_A "sti_ci.dll"
#define NAME_INSTALLER_W L"sti_ci.dll"
#define NAME_PROC_MIGRATEDEVICE_A "MigrateDevice"
#define NAME_PROC_MIGRATEDEVICE_W L"MigrateDevice"
#define NAME_DEVICE_A "Device"
#define NAME_DEVICE_W L"Device"
#define NAME_BEGIN_A "BEGIN"
#define NAME_BEGIN_W L"BEGIN"
#define NAME_END_A "END"
#define NAME_END_W L"END"
#define REGKEY_DEVICEDATA_A "DeviceData"
#define REGKEY_DEVICEDATA_W L"DeviceData"
#define REGVAL_SUBCLASS_A "SubClass"
#define REGVAL_SUBCLASS_W L"SubClass"
#define REGVAL_USDCLASS_A "USDClass"
#define REGVAL_USDCLASS_W L"USDClass"
#define REGVAL_NTMPDRIVER_A "NTMPDriver"
#define REGVAL_NTMPDRIVER_W L"NTMPDriver"
// Kodak related.
#define FILEVER_KODAKIMAGING_WIN98_MS 0x4000a
#define FILEVER_KODAKIMAGING_WIN98_LS 0x7ce
#define PRODVER_KODAKIMAGING_WIN98_MS 0x10000
#define PRODVER_KODAKIMAGING_WIN98_LS 0x51f
#define FILEVER_KODAKIMAGING_WINME_MS 0x4005a
#define FILEVER_KODAKIMAGING_WINME_LS 0xbb8
#define PRODVER_KODAKIMAGING_WINME_MS 0x10000
#define PRODVER_KODAKIMAGING_WINME_LS 0x520
#define NAME_KODAKIMAGING_A "kodakimg.exe"
#define NAME_KODAKIMAGING_W L"kodakimg.exe"
#define REGSTR_PATH_KODAKEVENT_A "System\\CurrentControlSet\\Control\\StillImage\\Events\\STIProxyEvent\\{5F89FC93-A94E-4C0B-A1F2-DB6E97AA0B38}"
#define REGSTR_PATH_KODAKEVENT_W L"System\\CurrentControlSet\\Control\\StillImage\\Events\\STIProxyEvent\\{5F89FC93-A94E-4C0B-A1F2-DB6E97AA0B38}"
#define REGSTR_KEY_KODAKGUID_A "{5F89FC93-A94E-4C0B-A1F2-DB6E97AA0B38}"
#define REGSTR_KEY_KODAKGUID_W L"{5F89FC93-A94E-4C0B-A1F2-DB6E97AA0B38}"
#ifdef UNICODE
#define NAME_KODAKIMAGING NAME_KODAKIMAGING_W
#define REGSTR_PATH_KODAKEVENT REGSTR_PATH_KODAKEVENT_W
#define REGSTR_KEY_KODAKGUID REGSTR_KEY_KODAKGUID_W
#else // #ifdef UNICODE
#define NAME_KODAKIMAGING NAME_KODAKIMAGING_A
#define REGSTR_PATH_KODAKEVENT REGSTR_PATH_KODAKEVENT_A
#define REGSTR_KEY_KODAKGUID REGSTR_KEY_KODAKGUID_A
#endif // #ifdef UNICODE
//
// Typedef
//
typedef struct _PARAM_LIST { PVOID pNext; LPSTR pParam1; LPSTR pParam2; } PARAM_LIST, *PPARAM_LIST;
typedef struct _DEVICE_INFO {
LPSTR pszFriendlyName; LPSTR pszCreateFileName; LPSTR pszInfPath; LPSTR pszInfSection;
DWORD dwNumberOfDeviceDataKey; PPARAM_LIST pDeviceDataParam; } DEVICE_INFO, *PDEVICE_INFO;
//
// Extern
//
extern HINSTANCE g_hInst;
//
// Proto-type
//
//
// Migrate function
//
LONG CALLBACK Mig9xGetGlobalInfo( IN HANDLE hFile );
LONG CALLBACK Mig9xGetDeviceInfo( IN HANDLE hFile );
//
// Debug functions
//
VOID DebugMsg( LPCSTR pszFormat, ... );
//
// Heap management
//
PVOID AllocMem( IN UINT cbSize );
VOID FreeMem( IN PVOID pMem );
LPSTR AllocStrA( IN LPCSTR pszStr );
LPWSTR AllocStrW( IN LPCWSTR pszStr );
LPWSTR AllocStrWFromStrA( LPCSTR pszStr );
LPSTR AllocStrAFromStrW( LPCWSTR pszStr );
VOID FreePrinterInfo2Strings( PPRINTER_INFO_2A pPrinterInfo2 );
//
// Functions to write print config to the text file
//
BOOL WriteToFile( HANDLE hFile, LPCSTR pszFormat, ... );
VOID WriteString( IN HANDLE hFile, IN OUT LPBOOL pbFail, IN LPCSTR pszStr );
//
// Functions to parse the text file having printing config info
//
LPSTR GetLine( IN HANDLE hFile, IN OUT LPBOOL pbFail );
VOID ReadString( IN HANDLE hFile, OUT LPSTR *ppszParam1, OUT LPSTR *ppszParam2 );
VOID ReadDword( IN HANDLE hFile, IN LPSTR pszLine, IN DWORD dwLineSize, IN LPSTR pszPrefix, OUT LPDWORD pdwValue, IN OUT LPBOOL pbFail );
//
// Misc stuff
//
LPSTR ErrorMsg( VOID );
VOID LogError( IN LogSeverity Severity, IN UINT MessageId, ... );
LPSTR GetStringFromRcFileA( IN UINT uId );
VOID SetupNetworkPrinterUpgrade( IN LPCSTR pszWorkingDir );
BOOL ProcessNetPrnUpgradeForUser( HKEY hKeyUser );
DWORD MySetDefaultPrinter( IN HKEY hUserRegKey, IN LPSTR pszDefaultPrinterString );
VOID WriteRunOnceCount( );
LPSTR GetDefPrnString( IN LPCSTR pszPrinterName );
CHAR My_fgetc( HANDLE hFile );
LPSTR My_fgets( LPSTR pszBuf, DWORD dwSize, HANDLE hFile );
DWORD My_fread( LPBYTE pBuf, DWORD dwSize, HANDLE hFile );
BOOL My_ungetc( HANDLE hFile );
LONG WriteRegistryToFile( IN HANDLE hFile, IN HKEY hKey, IN LPCSTR pszPath );
LONG WriteRegistryValueToFile( HANDLE hFile, LPSTR pszValue, DWORD dwType, PCHAR pDataBuffer, DWORD dwSize );
LONG GetRegData( HKEY hKey, LPSTR pszValue, PCHAR *ppDataBuffer, PDWORD pdwType, PDWORD pdwSize );
BOOL IsSti( HKEY hKeyDevice );
BOOL IsKernelDriverRequired( HKEY hKeyDevice );
LONG WriteDeviceToFile( HANDLE hFile, HKEY hKey );
LONG MigNtProcessMigrationInfo( HANDLE hFile );
LONG MigNtGetDevice( HANDLE hFile, PDEVICE_INFO pMigrateDevice );
VOID MigNtFreeDeviceInfo( PDEVICE_INFO pMigrateDevice );
VOID MyLogError( LPCSTR pszFormat, ... );
BOOL MigNtIsWin9xImagingExisting( VOID );
VOID MigNtRemoveKodakImagingKey( VOID );
#endif // LOCAL_H
|