GetPatchFileInformation

The GetPatchFileInformation function returns information about the specified patch file.

BOOL GetPatchFileInformation(
LPCTSTR lpszPatchFile, // name of patch file
LPCTSTR lpszPassword, // password
DWORD dwOptions, // information options
LPPATCH_FILE_INFORMATION pfInfo // file information
);

Parameters

lpszPatchFile
[in] A pointer to a null-terminated string which specifies the name of the patch file to return information on.
 
lpszPassword
[in] A pointer to a null-terminated string which specifies the password that was used to secure the patch. Information about a patch file created with a password cannot be accessed unless it matches the password that was provided to the CreatePatchFile function. Note that the password is case sensitive. If no password was specified, this parameter may be NULL or point to an empty string.
 
dwOptions
[in] Specifies what information is returned by the function. The following options are defined:
Value Description
PATCH_INFO_REFERENCE_FILE Return information about the reference file that was used to create the patch. This option cannot be combined with PATCH_INFO_UPDATE_FILE.
PATCH_INFO_UPDATE_FILE Return information about the update file that was used to create the patch. This option cannot be combined with PATCH_INFO_REFERENCE_FILE.
pfInfo
[in/out] A pointer to a PATCH_FILE_INFORMATION structure that will contain information about the specified patch file when the function returns.
 
Before calling the GetPatchFileInformation function, you must initialize the cbStructure member of the PATCH_FILE_INFORMATION data structure to sizeof(PATCH_FILE_INFORMATION).

Return Values

If the GetPatchFileInformation 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 GetPatchFileInformation function is used to obtain information about the reference or updated file at the time the patch was created. This allows you to perform your own preliminary checks against a target file or display information about the patch file to a user.

To determine if a patch file is secured by a password, call the function with NULL as the password parameter. If the function fails, check the last error code to determine if it was because of an invalid password.

Example

// Determines if a patch file requires a password

PATCH_FILE_INFORMATION patchInfo;
BOOL bPasswordRequired = FALSE;
BOOL bResult;

patchInfo.cbStructure = sizeof(PATCH_FILE_INFORMATION);

bResult = GetPatchFileInformation(lpszPatchFile,
                                  NULL,
                                  PATCH_INFO_REFERENCE_FILE,
                                  &patchInfo);

if (bResult == FALSE)
{
    DWORD dwError = GetLastError();

    if (dwError == AP_ERROR_INVALID_PASSWORD)
        bPasswordRequired = TRUE;
    else
    {
          // This is not a patch file, or the file could
          // not be accessed for some other reason
    }
}

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

ApplyPatchFile, CreatePatchFile