CPackage::DeleteFile

The CPackage::DeleteFile function removes the specified file from the package.

BOOL DeleteFile(
DWORD dwFilePlatform, // file platform
DWORD dwFileChecksum, // file checksum
LPCTSTR lpszFileName // file name in package
);

Parameters

dwFilePlatform
[in] Specifies the target platform for the file.
 
This may be one of the following values:
Value Description
PACKAGE_FILE_PLATFORM_DEFAULT Remove the file which is targeted for the current platform.
PACKAGE_FILE_PLATFORM_WIN95 The file may be applied to a system running Windows 95.
PACKAGE_FILE_PLATFORM_WIN98 The file may be applied to a system running Windows 98 or Windows 98 SE.
PACKAGE_FILE_PLATFORM_WINME The file may be applied to a system running Windows ME.
PACKAGE_FILE_PLATFORM_WINNT40 The file may be applied to a system running Windows NT 4.0.
PACKAGE_FILE_PLATFORM_WIN2000 The file may be applied to a system running Windows 2000.
PACKAGE_FILE_PLATFORM_WINXP The file may be applied to a system running Windows XP.
PACKAGE_FILE_PLATFORM_WIN2003 The files may be applied to a system running Windows Server 2003.
In addition to the above platform-specific values, there are predefined values which specify platform groups:
 
Value Description
PACKAGE_FILE_PLATFORM_WIN32 The file may be applied to any 32-bit version of the Windows operating system.
PACKAGE_FILE_PLATFORM_WIN9X The file may be  applied to any system running Windows 95, Windows 98 or Windows ME. The file will not be applied on a system running Windows NT, Windows 2000 or Windows XP.
PACKAGE_FILE_PLATFORM_WINNT The file may be applied to any system running Windows NT, Windows 2000 or Windows XP. The file will not be applied on a system running Windows 95, Windows 98 or Windows ME.
PACKAGE_FILE_PLATFORM_WINDOWS The files may be applied to any system running any version of Microsoft Windows.
dwFileChecksum
[in] Specifies the 32-bit checksum for the file. If the package contains multiple file versions, this value is used to uniquely identify the file. This parameter is ignored if the PACKAGE_OPTION_MULTIPLE_VERSIONS package option has not been enabled or if the parameter value is zero.
 
lpszFileName
[in] A pointer to a null-terminated string which specifies the package file to be deleted.

Return Values

If the CPackage::DeleteFile function succeeds, it will return a non-zero value.

If the function fails, it will return a value of zero. To get extended error information, call GetLastError.

Remarks

The file name cannot contain wildcard characters. To delete multiple files, use this function with the CPackage::FindFirstFile and CPackage::FindNextFile functions.

An error will be returned if the package file has been opened for read-only access.

Example

// Delete all executable files from the package
PACKAGE_FILE_INFORMATION pfInfo;
DWORD dwError = ERROR_SUCCESS;
BOOL bResult;

pfInfo.cbStructure = sizeof(PACKAGE_FILE_INFORMATION);
bResult = FindFirstFile(hPackage, _T("*.exe"),
                        PACKAGE_FILE_PLATFORM_DEFAULT,
                        PACKAGE_FIND_RECURSIVE, &pfInfo);

while (bResult)
{
       bResult = DeletePackageFile(hPackage,
                                   PACKAGE_FILE_PLATFORM_DEFAULT,
                                   pfInfo.dwChecksum,
                                   pfInfo.szFileName);

       if (bResult == FALSE)
       {
           dwError = GetLastError();
           break;
       }

       bResult = FindNextFile(hPackage, &pfInfo);
}

Requirements

Windows NT/2000/XP: Requires Windows NT 4.0 SP3 or later.
Windows 95/98: Requires Windows 95 or later.
Header: Include apatch.h.
Library: Use apatch32.lib.
Unicode: Implemented as Unicode and ANSI versions on Windows NT/2000/XP.

See Also

CPackage::FindFirstFile, CPackage::FindNextFile