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.
 
 
 
 
 
 

117 lines
2.7 KiB

/*****************************************************************************\
* MODULE: gencdf.h
*
* This is the main header for the CDF generation module.
*
* Copyright (C) 1996-1997 Microsoft Corporation
* Copyright (C) 1996-1997 Hewlett Packard
*
* History:
* 22-Nov-1996 HWP-Guys Created.
*
\*****************************************************************************/
#define STD_CDF_BUFFER 256
#define MIN_CDF_BUFFER 16
#define CDF_SECTION_BLOCK 4096
#define CDF_SRCFILE_BLOCK 1024
#define CDF_SECTION_LIMIT 8
// Source-Files Structure. This is used to track files
// by section.
//
typedef struct _SRCFILES {
LPTSTR lpszPath;
LPTSTR lpszFiles;
DWORD cbMax;
DWORD cbSize;
struct _SRCFILES *pNext;
} SRCFILES;
typedef SRCFILES *PSRCFILES;
typedef SRCFILES NEAR *NPSRCFILES;
typedef SRCFILES FAR *LPSRCFILES;
// Element-Array idenifiers for FILEITEM
//
#define FI_MAX_ITEMS 2
#define FI_COL_FILENAME 0
#define FI_COL_PATH 1
#define FI_COL_LAST 1
// File-Item Structure.
//
typedef struct _FILEITEM {
LPTSTR aszCols[FI_MAX_ITEMS]; // Filename and Path.
FILETIME ftLastModify; // Filetime stamp.
struct _FILEITEM *pNext; // Pointer to next File-Item.
} FILEITEM;
typedef FILEITEM *PFILEITEM;
typedef FILEITEM NEAR *NPFILEITEM;
typedef FILEITEM FAR *LPFILEITEM;
// CDF Object Structure.
//
typedef struct _CDFINFO {
HANDLE hInf; // Handle to current inf object
DWORD dwError; // Error if CDF processing fails
LPTSTR lpszCdfFile; // Full path-name to cdf-file.
PFILEITEM pTop; // List of files to include in the .cdf
HCATADMIN hCatAdmin; // Context handle for catalog admin APIs
BOOL bSecure;
} CDFINFO;
typedef CDFINFO *PCDFINFO;
typedef CDFINFO NEAR *NPCDFINFO;
typedef CDFINFO FAR *LPCDFINFO;
// Interface Objects to CDF.
//
HANDLE cdfCreate(
HANDLE hinf,
BOOL bSecure);
VOID cdfCleanUpSourceFiles(
HANDLE hInf);
BOOL cdfProcess(
HANDLE hcdf);
BOOL cdfDestroy(
HANDLE hcdf);
LPCTSTR cdfGetName(
HANDLE hcdf);
BOOL cdfGetModTime(
HANDLE hcdf,
LPFILETIME lpftMod);
/***************************************\
* cdfGetError
\***************************************/
__inline DWORD cdfGetError(
HANDLE hsed)
{
return (hsed ? (DWORD)((PCDFINFO)hsed)->dwError : ERROR_SUCCESS);
}
/***************************************\
* cdfSetError
\***************************************/
__inline VOID cdfSetError(
PCDFINFO hsed,
DWORD dwError )
{
hsed->dwError = dwError;
}