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.
|
|
//#pragma title("TFile.hpp - Install File class")
/*---------------------------------------------------------------------------
File: TFile.hpp
Comments: This file contains file installation functions.
(c) Copyright 1995-1998, Mission Critical Software, Inc., All Rights Reserved Proprietary and confidential to Mission Critical SOftware, Inc.
REVISION LOG ENTRY Author: Juan Medrano Revision By: ... Revised on 7/9/97
Revision By: Christy Boles Converted to UNICODE, removed dependency on CString ---------------------------------------------------------------------------*/
#ifndef MCSINC_TFile_hpp
#define MCSINC_TFile_hpp
class TInstallFile { protected:
TCHAR m_szFileName[MAX_PATH]; // file name (not a full path)
TCHAR m_szFilePath[MAX_PATH]; // full path (including file name)
TCHAR m_szTargetPath[MAX_PATH]; // target path (full path)
TCHAR m_szFileVersion[MAX_PATH]; // file version string from version resource
TCHAR m_szFileSize[MAX_PATH]; // file size
TCHAR m_szFileDateTime[MAX_PATH]; // modification date/time
TCHAR * m_VersionInfo; // version info
DWORD m_dwLanguageCode; // language code for version info strings
VS_FIXEDFILEINFO m_FixedFileInfo; // file info structure from version resource
WIN32_FIND_DATA m_FileData; // structure for FindFirstFile()
BOOL m_bCopyNeeded; // does this file need to be copied?
BOOL m_bSilent;
public:
TInstallFile( TCHAR const * pszFileName = NULL, TCHAR const * pszFileDir = NULL, BOOL silent = FALSE); ~TInstallFile() { delete [] m_VersionInfo; }
DWORD OpenFileInfo( TCHAR const * pszFileDir ); TCHAR * GetFileName() { return m_szFileName; } TCHAR * GetFilePath() { return m_szFilePath; } TCHAR * GetTargetPath() { return m_szTargetPath; } void SetFileName( TCHAR const * pszFileName ) { safecopy(m_szFileName,pszFileName); } void SetFilePath( TCHAR const * pszFilePath ) { safecopy(m_szFilePath,pszFilePath); } void SetTargetPath( TCHAR const * pszTargetPath ) { safecopy(m_szTargetPath,pszTargetPath); } void SetCopyNeeded( BOOL bCopyNeeded ) { m_bCopyNeeded = bCopyNeeded; } BOOL IsCopyNeeded() { return m_bCopyNeeded; } DWORD CopyTo( TCHAR const * pszDestinationPath ); DWORD CopyToTarget() { return CopyTo( m_szTargetPath ); } int CompareFile( TInstallFile * pFileTrg ); int CompareFileSize( TInstallFile * pFileTrg ); int CompareFileDateTime( TInstallFile * pFileTrg ); int CompareFileVersion( TInstallFile * pFileTrg ); void GetFileVersion( UINT * uVerMaj, UINT * uVerMin, UINT * uVerRel, UINT * uVerMod ); DWORD GetFileSize() { return m_FileData.nFileSizeLow; } FILETIME GetFileDateTime() { return m_FileData.ftLastWriteTime; } TCHAR * GetFileVersionString(); TCHAR * GetFileSizeString(); TCHAR * GetFileDateTimeString( TCHAR const * szFormatString = TEXT("%#c") ); BOOL IsBusy(); };
class TDllFile : public TInstallFile { protected:
TCHAR m_szProgId[MAX_PATH]; // Prog ID (OCX's only)
TCHAR m_szRegPath[MAX_PATH]; // full path where file is currently registered
BOOL m_bSystemFile; // should this file be located in system32?
BOOL m_bRegistrationNeeded; // do we need to register this file?
BOOL m_bRegisterTarget; // do we need to register this file on the target path?
public:
TDllFile( TCHAR const * pszFileName = NULL, TCHAR const * pszFileDir = NULL, TCHAR const * pszProgId = NULL, BOOL bSystemFile = FALSE ); ~TDllFile() {};
BOOL SupportsSelfReg(); BOOL IsRegistered(); BOOL IsRegistrationNeeded() { return m_bRegistrationNeeded; } BOOL DoRegisterTarget() { return m_bRegisterTarget; } BOOL IsSystemFile() { return m_bSystemFile; } DWORD CallDllFunction( TCHAR const * pszFunctionName, TCHAR const * pszDllName = NULL ); DWORD Register(); DWORD Unregister(); TCHAR * GetProgId() { return m_szProgId; } TCHAR * GetRegPath() { return m_szRegPath; } void SetRegistrationNeeded( BOOL bRegistrationNeeded ) { m_bRegistrationNeeded = bRegistrationNeeded; } void SetRegisterTarget( BOOL bRegisterTarget ) { m_bRegisterTarget = bRegisterTarget; } void SetProgId( TCHAR const * pszProgId ) { safecopy(m_szProgId,pszProgId); } };
#endif // MCSINC_TFile_hpp
// TFile.hpp - end of file
|