⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jwapatchwiz.pas

📁 比较全面的win32api开发包
💻 PAS
📖 第 1 页 / 共 2 页
字号:
{******************************************************************************}
{                                                       	               }
{ MSI Patch Wizard API interface Unit for Object Pascal                        }
{                                                       	               }
{ Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft          }
{ Corporation. All Rights Reserved.                                            }
{ 								               }
{ The original file is: patchwiz.h, released August 2001. The original Pascal  }
{ code is: PatchWiz.pas, released December 2001. The initial developer of the  }
{ Pascal code is Marcel van Brakel (brakelm@chello.nl).                        }
{                                                                              }
{ Portions created by Marcel van Brakel are Copyright (C) 1999-2001            }
{ Marcel van Brakel. All Rights Reserved.                                      }
{ 								               }
{ Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI)        }
{								               }
{ You may retrieve the latest version of this file at the Project JEDI home    }
{ page, located at http://delphi-jedi.org or my personal homepage located at   }
{ http://members.chello.nl/m.vanbrakel2                                        }
{								               }
{ The contents of this file are used with permission, subject to the Mozilla   }
{ Public License Version 1.1 (the "License"); you may not use this file except }
{ in compliance with the License. You may obtain a copy of the License at      }
{ http://www.mozilla.org/MPL/MPL-1.1.html                                      }
{                                                                              }
{ Software distributed under the License is distributed on an "AS IS" basis,   }
{ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
{ the specific language governing rights and limitations under the License.    }
{                                                                              }
{ Alternatively, the contents of this file may be used under the terms of the  }
{ GNU Lesser General Public License (the  "LGPL License"), in which case the   }
{ provisions of the LGPL License are applicable instead of those above.        }
{ If you wish to allow use of your version of this file only under the terms   }
{ of the LGPL License and not to allow others to use your version of this file }
{ under the MPL, indicate your decision by deleting  the provisions above and  }
{ replace  them with the notice and other provisions required by the LGPL      }
{ License.  If you do not delete the provisions above, a recipient may use     }
{ your version of this file under either the MPL or the LGPL License.          }
{ 								               }
{ For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
{ 								               }
{******************************************************************************}

unit JwaPatchWiz;

{$WEAKPACKAGEUNIT}

{$HPPEMIT ''}
{$HPPEMIT '#include "PatchWiz.h"'}
{$HPPEMIT ''}

{$I WINDEFINES.INC}

interface

uses
  JwaWinType;

  (* PATCHWIZ.H - public header file for PATCHWIZ.DLL *)

(*
**	UINT WINAPI UiCreatePatchPackage ( LPTSTR szPcpPath,
**		LPTSTR szPatchPath, LPTSTR szLogPath, HWND hwndStatus,
**		LPTSTR szTempFolder, BOOL fRemoveTempFolderIfPresent );
**
**	Arguments:
**	  szPcpPath - full absolute path to Windows Installer database
**		(PCP file) that contains appropriate tables of input-data for
**		Patch creation process such as Properties and TargetImages.
**	  szPatchPath - optional, full absolute path to Patching Package
**		file (MSP file) to create and stuff with output.  If this
**		NULL or an empty string, the api will try to use
**		Properties.Value where Properties.Name = PatchOutputPath
**		from the PCP file.
**	  szLogPath - optional, full absolute path to text log file to
**		append to.  Caller should truncate file if wanted.
**	  hwndStatus - optional, window handle to display status text.
**		More details to come later.
**	  szTempFolder - optional location to use for temp files.
**		Default is %TEMP%\~pcw_tmp.tmp\.
**	  fRemoveTempFolderIfPresent - remove temp folder (and all its
**		contents) if present.  If FALSE and folder is present, api
**		will fail.
**		
**	Return Values: ERROR_SUCCESS, plus ERROR_PCW_* that follow.
*)

const
  ERROR_PCW_BASE = DWORD($C00E5101);
  {$EXTERNALSYM ERROR_PCW_BASE}

  ERROR_PCW_PCP_DOESNT_EXIST              = (ERROR_PCW_BASE + $00);
  {$EXTERNALSYM ERROR_PCW_PCP_DOESNT_EXIST}
  ERROR_PCW_PCP_BAD_FORMAT                = (ERROR_PCW_BASE + $01);
  {$EXTERNALSYM ERROR_PCW_PCP_BAD_FORMAT}
  ERROR_PCW_CANT_CREATE_TEMP_FOLDER       = (ERROR_PCW_BASE + $02);
  {$EXTERNALSYM ERROR_PCW_CANT_CREATE_TEMP_FOLDER}
  ERROR_PCW_MISSING_PATCH_PATH            = (ERROR_PCW_BASE + $03);
  {$EXTERNALSYM ERROR_PCW_MISSING_PATCH_PATH}
  ERROR_PCW_CANT_OVERWRITE_PATCH          = (ERROR_PCW_BASE + $04);
  {$EXTERNALSYM ERROR_PCW_CANT_OVERWRITE_PATCH}
  ERROR_PCW_CANT_CREATE_PATCH_FILE        = (ERROR_PCW_BASE + $05);
  {$EXTERNALSYM ERROR_PCW_CANT_CREATE_PATCH_FILE}
  ERROR_PCW_MISSING_PATCH_GUID            = (ERROR_PCW_BASE + $06);
  {$EXTERNALSYM ERROR_PCW_MISSING_PATCH_GUID}
  ERROR_PCW_BAD_PATCH_GUID                = (ERROR_PCW_BASE + $07);
  {$EXTERNALSYM ERROR_PCW_BAD_PATCH_GUID}
  ERROR_PCW_BAD_GUIDS_TO_REPLACE          = (ERROR_PCW_BASE + $08);
  {$EXTERNALSYM ERROR_PCW_BAD_GUIDS_TO_REPLACE}
  ERROR_PCW_BAD_TARGET_PRODUCT_CODE_LIST  = (ERROR_PCW_BASE + $09);
  {$EXTERNALSYM ERROR_PCW_BAD_TARGET_PRODUCT_CODE_LIST}
  ERROR_PCW_NO_UPGRADED_IMAGES_TO_PATCH   = (ERROR_PCW_BASE + $0a);
  {$EXTERNALSYM ERROR_PCW_NO_UPGRADED_IMAGES_TO_PATCH}
  //#define ERROR_PCW_BAD_API_PATCHING_OPTION_FLAGS  (ERROR_PCW_BASE + 0x0b) -- obsolete
  ERROR_PCW_BAD_API_PATCHING_SYMBOL_FLAGS = (ERROR_PCW_BASE + $0c);
  {$EXTERNALSYM ERROR_PCW_BAD_API_PATCHING_SYMBOL_FLAGS}
  ERROR_PCW_OODS_COPYING_MSI              = (ERROR_PCW_BASE + $0d);
  {$EXTERNALSYM ERROR_PCW_OODS_COPYING_MSI}
  ERROR_PCW_UPGRADED_IMAGE_NAME_TOO_LONG  = (ERROR_PCW_BASE + $0e);
  {$EXTERNALSYM ERROR_PCW_UPGRADED_IMAGE_NAME_TOO_LONG}
  ERROR_PCW_BAD_UPGRADED_IMAGE_NAME       = (ERROR_PCW_BASE + $0f);
  {$EXTERNALSYM ERROR_PCW_BAD_UPGRADED_IMAGE_NAME}

  ERROR_PCW_DUP_UPGRADED_IMAGE_NAME       = (ERROR_PCW_BASE + $10);
  {$EXTERNALSYM ERROR_PCW_DUP_UPGRADED_IMAGE_NAME}
  ERROR_PCW_UPGRADED_IMAGE_PATH_TOO_LONG  = (ERROR_PCW_BASE + $11);
  {$EXTERNALSYM ERROR_PCW_UPGRADED_IMAGE_PATH_TOO_LONG}
  ERROR_PCW_UPGRADED_IMAGE_PATH_EMPTY     = (ERROR_PCW_BASE + $12);
  {$EXTERNALSYM ERROR_PCW_UPGRADED_IMAGE_PATH_EMPTY}
  ERROR_PCW_UPGRADED_IMAGE_PATH_NOT_EXIST = (ERROR_PCW_BASE + $13);
  {$EXTERNALSYM ERROR_PCW_UPGRADED_IMAGE_PATH_NOT_EXIST}
  ERROR_PCW_UPGRADED_IMAGE_PATH_NOT_MSI   = (ERROR_PCW_BASE + $14);
  {$EXTERNALSYM ERROR_PCW_UPGRADED_IMAGE_PATH_NOT_MSI}
  ERROR_PCW_UPGRADED_IMAGE_COMPRESSED     = (ERROR_PCW_BASE + $15);
  {$EXTERNALSYM ERROR_PCW_UPGRADED_IMAGE_COMPRESSED}
  ERROR_PCW_TARGET_IMAGE_NAME_TOO_LONG    = (ERROR_PCW_BASE + $16);
  {$EXTERNALSYM ERROR_PCW_TARGET_IMAGE_NAME_TOO_LONG}
  ERROR_PCW_BAD_TARGET_IMAGE_NAME         = (ERROR_PCW_BASE + $17);
  {$EXTERNALSYM ERROR_PCW_BAD_TARGET_IMAGE_NAME}
  ERROR_PCW_DUP_TARGET_IMAGE_NAME         = (ERROR_PCW_BASE + $18);
  {$EXTERNALSYM ERROR_PCW_DUP_TARGET_IMAGE_NAME}
  ERROR_PCW_TARGET_IMAGE_PATH_TOO_LONG    = (ERROR_PCW_BASE + $19);
  {$EXTERNALSYM ERROR_PCW_TARGET_IMAGE_PATH_TOO_LONG}
  ERROR_PCW_TARGET_IMAGE_PATH_EMPTY       = (ERROR_PCW_BASE + $1a);
  {$EXTERNALSYM ERROR_PCW_TARGET_IMAGE_PATH_EMPTY}
  ERROR_PCW_TARGET_IMAGE_PATH_NOT_EXIST   = (ERROR_PCW_BASE + $1b);
  {$EXTERNALSYM ERROR_PCW_TARGET_IMAGE_PATH_NOT_EXIST}
  ERROR_PCW_TARGET_IMAGE_PATH_NOT_MSI     = (ERROR_PCW_BASE + $1c);
  {$EXTERNALSYM ERROR_PCW_TARGET_IMAGE_PATH_NOT_MSI}
  ERROR_PCW_TARGET_IMAGE_COMPRESSED       = (ERROR_PCW_BASE + $1d);
  {$EXTERNALSYM ERROR_PCW_TARGET_IMAGE_COMPRESSED}
  ERROR_PCW_TARGET_BAD_PROD_VALIDATE      = (ERROR_PCW_BASE + $1e);
  {$EXTERNALSYM ERROR_PCW_TARGET_BAD_PROD_VALIDATE}
  ERROR_PCW_TARGET_BAD_PROD_CODE_VAL      = (ERROR_PCW_BASE + $1f);
  {$EXTERNALSYM ERROR_PCW_TARGET_BAD_PROD_CODE_VAL}

  ERROR_PCW_UPGRADED_MISSING_SRC_FILES       = (ERROR_PCW_BASE + $20);
  {$EXTERNALSYM ERROR_PCW_UPGRADED_MISSING_SRC_FILES}
  ERROR_PCW_TARGET_MISSING_SRC_FILES         = (ERROR_PCW_BASE + $21);
  {$EXTERNALSYM ERROR_PCW_TARGET_MISSING_SRC_FILES}
  ERROR_PCW_IMAGE_FAMILY_NAME_TOO_LONG       = (ERROR_PCW_BASE + $22);
  {$EXTERNALSYM ERROR_PCW_IMAGE_FAMILY_NAME_TOO_LONG}
  ERROR_PCW_BAD_IMAGE_FAMILY_NAME            = (ERROR_PCW_BASE + $23);
  {$EXTERNALSYM ERROR_PCW_BAD_IMAGE_FAMILY_NAME}
  ERROR_PCW_DUP_IMAGE_FAMILY_NAME            = (ERROR_PCW_BASE + $24);
  {$EXTERNALSYM ERROR_PCW_DUP_IMAGE_FAMILY_NAME}
  ERROR_PCW_BAD_IMAGE_FAMILY_SRC_PROP        = (ERROR_PCW_BASE + $25);
  {$EXTERNALSYM ERROR_PCW_BAD_IMAGE_FAMILY_SRC_PROP}
  ERROR_PCW_UFILEDATA_LONG_FILE_TABLE_KEY    = (ERROR_PCW_BASE + $26);
  {$EXTERNALSYM ERROR_PCW_UFILEDATA_LONG_FILE_TABLE_KEY}
  ERROR_PCW_UFILEDATA_BLANK_FILE_TABLE_KEY   = (ERROR_PCW_BASE + $27);
  {$EXTERNALSYM ERROR_PCW_UFILEDATA_BLANK_FILE_TABLE_KEY}
  ERROR_PCW_UFILEDATA_MISSING_FILE_TABLE_KEY = (ERROR_PCW_BASE + $28);
  {$EXTERNALSYM ERROR_PCW_UFILEDATA_MISSING_FILE_TABLE_KEY}
  ERROR_PCW_EXTFILE_LONG_FILE_TABLE_KEY      = (ERROR_PCW_BASE + $29);
  {$EXTERNALSYM ERROR_PCW_EXTFILE_LONG_FILE_TABLE_KEY}
  ERROR_PCW_EXTFILE_BLANK_FILE_TABLE_KEY     = (ERROR_PCW_BASE + $2a);
  {$EXTERNALSYM ERROR_PCW_EXTFILE_BLANK_FILE_TABLE_KEY}
  ERROR_PCW_EXTFILE_BAD_FAMILY_FIELD         = (ERROR_PCW_BASE + $2b);
  {$EXTERNALSYM ERROR_PCW_EXTFILE_BAD_FAMILY_FIELD}
  ERROR_PCW_EXTFILE_LONG_PATH_TO_FILE        = (ERROR_PCW_BASE + $2c);
  {$EXTERNALSYM ERROR_PCW_EXTFILE_LONG_PATH_TO_FILE}
  ERROR_PCW_EXTFILE_BLANK_PATH_TO_FILE       = (ERROR_PCW_BASE + $2d);
  {$EXTERNALSYM ERROR_PCW_EXTFILE_BLANK_PATH_TO_FILE}
  ERROR_PCW_EXTFILE_MISSING_FILE             = (ERROR_PCW_BASE + $2e);
  {$EXTERNALSYM ERROR_PCW_EXTFILE_MISSING_FILE}
//#define ERROR_PCW_FILERANGE_LONG_FILE_TABLE_KEY       (ERROR_PCW_BASE + 0x2f) -- obsolete

//#define ERROR_PCW_FILERANGE_BLANK_FILE_TABLE_KEY      (ERROR_PCW_BASE + 0x30) -- obsolete
//#define ERROR_PCW_FILERANGE_MISSING_FILE_TABLE_KEY    (ERROR_PCW_BASE + 0x31) -- obsolete
//#define ERROR_PCW_FILERANGE_LONG_PATH_TO_FILE         (ERROR_PCW_BASE + 0x32) -- obsolete
//#define ERROR_PCW_FILERANGE_MISSING_FILE              (ERROR_PCW_BASE + 0x33) -- obsolete
//#define ERROR_PCW_FILERANGE_INVALID_OFFSET            (ERROR_PCW_BASE + 0x34) -- obsolete
//#define ERROR_PCW_FILERANGE_INVALID_SIZE              (ERROR_PCW_BASE + 0x35) -- obsolete
//#define ERROR_PCW_FILERANGE_INVALID_RETAIN            (ERROR_PCW_BASE + 0x36) -- obsolete
//#define ERROR_PCW_BAD_MEDIA_SRC_PROP_NAME             (ERROR_PCW_BASE + 0x37) -- obsolete
//#define ERROR_PCW_BAD_MEDIA_DISK_ID                   (ERROR_PCW_BASE + 0x38) -- obsolete
  ERROR_PCW_BAD_FILE_SEQUENCE_START       = (ERROR_PCW_BASE + $39);
  {$EXTERNALSYM ERROR_PCW_BAD_FILE_SEQUENCE_START}
  ERROR_PCW_CANT_COPY_FILE_TO_TEMP_FOLDER = (ERROR_PCW_BASE + $3a);
  {$EXTERNALSYM ERROR_PCW_CANT_COPY_FILE_TO_TEMP_FOLDER}
  ERROR_PCW_CANT_CREATE_ONE_PATCH_FILE    = (ERROR_PCW_BASE + $3b);
  {$EXTERNALSYM ERROR_PCW_CANT_CREATE_ONE_PATCH_FILE}
  ERROR_PCW_BAD_IMAGE_FAMILY_DISKID       = (ERROR_PCW_BASE + $3c);
  {$EXTERNALSYM ERROR_PCW_BAD_IMAGE_FAMILY_DISKID}
  ERROR_PCW_BAD_IMAGE_FAMILY_FILESEQSTART = (ERROR_PCW_BASE + $3d);
  {$EXTERNALSYM ERROR_PCW_BAD_IMAGE_FAMILY_FILESEQSTART}
  ERROR_PCW_BAD_UPGRADED_IMAGE_FAMILY     = (ERROR_PCW_BASE + $3e);
  {$EXTERNALSYM ERROR_PCW_BAD_UPGRADED_IMAGE_FAMILY}
  ERROR_PCW_BAD_TARGET_IMAGE_UPGRADED     = (ERROR_PCW_BASE + $3f);
  {$EXTERNALSYM ERROR_PCW_BAD_TARGET_IMAGE_UPGRADED}

  ERROR_PCW_DUP_TARGET_IMAGE_PACKCODE    = (ERROR_PCW_BASE + $40);
  {$EXTERNALSYM ERROR_PCW_DUP_TARGET_IMAGE_PACKCODE}
  ERROR_PCW_UFILEDATA_BAD_UPGRADED_FIELD = (ERROR_PCW_BASE + $41);
  {$EXTERNALSYM ERROR_PCW_UFILEDATA_BAD_UPGRADED_FIELD}
  ERROR_PCW_MISMATCHED_PRODUCT_CODES     = (ERROR_PCW_BASE + $42);
  {$EXTERNALSYM ERROR_PCW_MISMATCHED_PRODUCT_CODES}
  ERROR_PCW_MISMATCHED_PRODUCT_VERSIONS  = (ERROR_PCW_BASE + $43);
  {$EXTERNALSYM ERROR_PCW_MISMATCHED_PRODUCT_VERSIONS}
  ERROR_PCW_CANNOT_WRITE_DDF             = (ERROR_PCW_BASE + $44);
  {$EXTERNALSYM ERROR_PCW_CANNOT_WRITE_DDF}
  ERROR_PCW_CANNOT_RUN_MAKECAB           = (ERROR_PCW_BASE + $45);
  {$EXTERNALSYM ERROR_PCW_CANNOT_RUN_MAKECAB}
//#define ERROR_PCW_CANNOT_CREATE_STORAGE               (ERROR_PCW_BASE + 0x46) -- obsolete
//#define ERROR_PCW_CANNOT_CREATE_STREAM                (ERROR_PCW_BASE + 0x47) -- obsolete
//#define ERROR_PCW_CANNOT_WRITE_STREAM                 (ERROR_PCW_BASE + 0x48) -- obsolete
//#define ERROR_PCW_CANNOT_READ_CABINET                 (ERROR_PCW_BASE + 0x49) -- obsolete
  ERROR_PCW_WRITE_SUMMARY_PROPERTIES           = (ERROR_PCW_BASE + $4a);
  {$EXTERNALSYM ERROR_PCW_WRITE_SUMMARY_PROPERTIES}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -