Leaked source code of windows server 2003
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.
 
 
 
 
 
 

394 lines
7.2 KiB

/*++
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 MAX_FRIENDLYNAME 64
#define MAX_LINELENGTH 2048
#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
);
int
MyStrCmpiA(
LPCSTR str1,
LPCSTR str2
);
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