# ICodeInstall::OnCodeInstallProblem

Provides an opportunity to resolve a problem with the download operation. Calling this method provides information about a problem with the code installation by displaying a UI message. If the problem cannot be understood, E_ABORT should be returned by default to stop the code installation process. Otherwise, a return of S_OK would imply retrying the operation.

HRESULT OnCodeInstallProblem(

ULONG ulStatusCode, | //Describes the problem that has occurred
LPCWSTR szDestination, | //Name of the existing file causing the problem
LPCWSTR szSource, | //Name of the new file to replace the existing file
DWORD dwReserved | //Reserved
); |

Parameters

ulStatusCode
  [in] The status code describing the problem that has occurred.
szDestination
  [in] The name of the existing file causing the problem. This can be the name of an existing file that needs to be overwritten, the name of a directory causing access problems, or the name of a drive that is full.
szSource
  [in] If applicable, the name of the new file to replace the existing file.
dwReserved
  [in] Reserved for future use.

Return Values

S_OK
  Continue the installation process. If there was an access denied or full disk problem, retry the installation. If there was an existing file (newer or older version), overwrite it.
S_FALSE
  Omit this particular file, but continue with the rest of the code installation process. This is the typical response for the CIP_NEWER_VERSION_EXISTS status code.
E_ABORT
  Stop the code installation process.
E_INVALIDARG
  One or more arguments are incorrect.

Remarks

The ulStatusCode parameter contains one of the following values:

CIP_DRIVE_FULL
  The drive specified in szDestination is full.
CIP_ACCESS_DENIED
  Access to the file specified in szDestination is denied.
CIP_OLDER_VERSION_EXISTS
  An existing file (older version) specified in szDestination needs to be overwritten by the file specified in szSource.
CIP_NEWER_VERSION_EXISTS
  A file exists (specified in szDestination) that is a newer version of a file to be installed (specified in szSource).
CIP_NAME_CONFLICT
  A file exists (specified in szDestination) that has a naming conflict with a file to be installed (specified in szSource). The existing file is neither a new or an older version of the file; rather, they are mismatched but have the same filename.
CIP_TRUST_VERIFICATION_COMPONENT_MISSING
  The code installation process cannot find the necessary component (WinVerifyTrust) for verifying trust in downloaded code. szSource specifies the name of the file that cannot be certified. The client should display a UI message asking the user whether or not to install the untrusted code, and should then return E_ABORT to stop the downloading, S_OK to continue the downloading, or S_FALSE to omit this file but continue.

Note Use caution when returning S_FALSE to omit the file but continue the downloading operation.

See Also

ICodeInstall::GetWindow