123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642 |
- {******************************************************************************}
- { }
- { Windows Installer API interface Unit for Object Pascal }
- { }
- { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft }
- { Corporation. All Rights Reserved. }
- { }
- { The original file is: msi.h, released June 2000. The original Pascal }
- { code is: Msi.pas, released June 2001. The initial developer of the }
- { Pascal code is Marcel van Brakel (brakelm att chello dott nl). }
- { }
- { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 }
- { Marcel van Brakel. All Rights Reserved. }
- { }
- { Contributors: Steve Moss (spm att coco dott co dott uk) }
- { }
- { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) }
- { }
- { You may retrieve the latest version of this file at the Project JEDI }
- { APILIB home page, located at http://jedi-apilib.sourceforge.net }
- { }
- { 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 }
- { }
- {******************************************************************************}
- // $Id: JwaMsi.pas,v 1.15 2005/09/06 16:36:50 marquardt Exp $
- unit JwaMsi;
- {$WEAKPACKAGEUNIT}
- {$I jediapilib.inc}
- interface
- uses
- JwaWindows;
- {$HPPEMIT ''}
- {$HPPEMIT '#include "msi.h"'}
- {$HPPEMIT ''}
- // (rom) MSI version IFDEFs now declared in jediapilib.inc
- (*****************************************************************************\
- * *
- * msi.h - - Interface for external access to Installer Service *
- * *
- * Version 1.0 - 1.2 *
- * *
- * NOTES: All buffers sizes are TCHAR count, null included only on input *
- * Return argument pointers may be null if not interested in value *
- * *
- * Copyright (c) 1999-2000, Microsoft Corp. All rights reserved. *
- * *
- \*****************************************************************************)
- // --------------------------------------------------------------------------
- // Installer generic handle definitions
- // --------------------------------------------------------------------------
- type
- MSIHANDLE = DWORD; // abstract generic handle, 0 == no handle
- {$EXTERNALSYM MSIHANDLE}
- TMsiHandle = MSIHANDLE;
- // Close a open handle of any type
- // All handles obtained from API calls must be closed when no longer needed
- // Normally succeeds, returning TRUE.
- function MsiCloseHandle(hAny: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiCloseHandle}
- // Close all handles open in the process, a diagnostic call
- // This should NOT be used as a cleanup mechanism -- use PMSIHANDLE class
- // Can be called at termination to assure that all handles have been closed
- // Returns 0 if all handles have been close, else number of open handles
- function MsiCloseAllHandles: UINT; stdcall;
- {$EXTERNALSYM MsiCloseAllHandles}
- // Install message type for callback is a combination of the following:
- // A message box style: MB_*, where MB_OK is the default
- // A message box icon type: MB_ICON*, where no icon is the default
- // A default button: MB_DEFBUTTON?, where MB_DEFBUTTON1 is the default
- // One of the following install message types, no default
- const
- INSTALLMESSAGE_FATALEXIT = $00000000; // premature termination, possibly fatal OOM
- {$EXTERNALSYM INSTALLMESSAGE_FATALEXIT}
- INSTALLMESSAGE_ERROR = $01000000; // formatted error message
- {$EXTERNALSYM INSTALLMESSAGE_ERROR}
- INSTALLMESSAGE_WARNING = $02000000; // formatted warning message
- {$EXTERNALSYM INSTALLMESSAGE_WARNING}
- INSTALLMESSAGE_USER = $03000000; // user request message
- {$EXTERNALSYM INSTALLMESSAGE_USER}
- INSTALLMESSAGE_INFO = $04000000; // informative message for log
- {$EXTERNALSYM INSTALLMESSAGE_INFO}
- INSTALLMESSAGE_FILESINUSE = $05000000; // list of files in use that need to be replaced
- {$EXTERNALSYM INSTALLMESSAGE_FILESINUSE}
- INSTALLMESSAGE_RESOLVESOURCE = $06000000; // request to determine a valid source location
- {$EXTERNALSYM INSTALLMESSAGE_RESOLVESOURCE}
- INSTALLMESSAGE_OUTOFDISKSPACE = $07000000; // insufficient disk space message
- {$EXTERNALSYM INSTALLMESSAGE_OUTOFDISKSPACE}
- INSTALLMESSAGE_ACTIONSTART = $08000000; // start of action: action name & description
- {$EXTERNALSYM INSTALLMESSAGE_ACTIONSTART}
- INSTALLMESSAGE_ACTIONDATA = $09000000; // formatted data associated with individual action item
- {$EXTERNALSYM INSTALLMESSAGE_ACTIONDATA}
- INSTALLMESSAGE_PROGRESS = $0A000000; // progress gauge info: units so far, total
- {$EXTERNALSYM INSTALLMESSAGE_PROGRESS}
- INSTALLMESSAGE_COMMONDATA = $0B000000; // product info for dialog: language Id, dialog caption
- {$EXTERNALSYM INSTALLMESSAGE_COMMONDATA}
- INSTALLMESSAGE_INITIALIZE = $0C000000; // sent prior to UI initialization, no string data
- {$EXTERNALSYM INSTALLMESSAGE_INITIALIZE}
- INSTALLMESSAGE_TERMINATE = $0D000000; // sent after UI termination, no string data
- {$EXTERNALSYM INSTALLMESSAGE_TERMINATE}
- INSTALLMESSAGE_SHOWDIALOG = $0E000000; // sent prior to display or authored dialog or wizard
- {$EXTERNALSYM INSTALLMESSAGE_SHOWDIALOG}
- type
- INSTALLMESSAGE = Longint;
- {$EXTERNALSYM INSTALLMESSAGE}
- TInstallMessage = INSTALLMESSAGE;
- // external error handler supplied to installation API functions
- type
- INSTALLUI_HANDLERA = function(pvContext: LPVOID; iMessageType: UINT; szMessage: LPCSTR): Integer; stdcall;
- {$EXTERNALSYM INSTALLUI_HANDLERA}
- TInstallUIHandlerA = INSTALLUI_HANDLERA;
- INSTALLUI_HANDLERW = function(pvContext: LPVOID; iMessageType: UINT; szMessage: LPCWSTR): Integer; stdcall;
- {$EXTERNALSYM INSTALLUI_HANDLERW}
- TInstallUIHandlerW = INSTALLUI_HANDLERW;
- {$IFDEF UNICODE}
- INSTALLUI_HANDLER = INSTALLUI_HANDLERW;
- {$EXTERNALSYM INSTALLUI_HANDLER}
- TInstallUIHandler = TInstallUIHandlerW;
- {$ELSE}
- INSTALLUI_HANDLER = INSTALLUI_HANDLERA;
- {$EXTERNALSYM INSTALLUI_HANDLER}
- TInstallUIHandler = TInstallUIHandlerA;
- {$ENDIF UNICODE}
- const
- INSTALLUILEVEL_NOCHANGE = 0; // UI level is unchanged
- {$EXTERNALSYM INSTALLUILEVEL_NOCHANGE}
- INSTALLUILEVEL_DEFAULT = 1; // default UI is used
- {$EXTERNALSYM INSTALLUILEVEL_DEFAULT}
- INSTALLUILEVEL_NONE = 2; // completely silent installation
- {$EXTERNALSYM INSTALLUILEVEL_NONE}
- INSTALLUILEVEL_BASIC = 3; // simple progress and error handling
- {$EXTERNALSYM INSTALLUILEVEL_BASIC}
- INSTALLUILEVEL_REDUCED = 4; // authored UI, wizard dialogs suppressed
- {$EXTERNALSYM INSTALLUILEVEL_REDUCED}
- INSTALLUILEVEL_FULL = 5; // authored UI with wizards, progress, errors
- {$EXTERNALSYM INSTALLUILEVEL_FULL}
- INSTALLUILEVEL_ENDDIALOG = $80; // display success/failure dialog at end of install
- {$EXTERNALSYM INSTALLUILEVEL_ENDDIALOG}
- INSTALLUILEVEL_PROGRESSONLY = $40; // display only progress dialog
- {$EXTERNALSYM INSTALLUILEVEL_PROGRESSONLY}
- INSTALLUILEVEL_HIDECANCEL = $20; // do not display the cancel button in basic UI
- {$EXTERNALSYM INSTALLUILEVEL_HIDECANCEL}
- INSTALLUILEVEL_SOURCERESONLY = $100; // force display of source resolution even if quiet
- {$EXTERNALSYM INSTALLUILEVEL_SOURCERESONLY}
- type
- INSTALLUILEVEL = Longint;
- {$EXTERNALSYM INSTALLUILEVEL}
- TInstallUILevel = INSTALLUILEVEL;
- const
- INSTALLSTATE_NOTUSED = -7; // component disabled
- {$EXTERNALSYM INSTALLSTATE_NOTUSED}
- INSTALLSTATE_BADCONFIG = -6; // configuration data corrupt
- {$EXTERNALSYM INSTALLSTATE_BADCONFIG}
- INSTALLSTATE_INCOMPLETE = -5; // installation suspended or in progress
- {$EXTERNALSYM INSTALLSTATE_INCOMPLETE}
- INSTALLSTATE_SOURCEABSENT = -4; // run from source, source is unavailable
- {$EXTERNALSYM INSTALLSTATE_SOURCEABSENT}
- INSTALLSTATE_MOREDATA = -3; // return buffer overflow
- {$EXTERNALSYM INSTALLSTATE_MOREDATA}
- INSTALLSTATE_INVALIDARG = -2; // invalid function argument
- {$EXTERNALSYM INSTALLSTATE_INVALIDARG}
- INSTALLSTATE_UNKNOWN = -1; // unrecognized product or feature
- {$EXTERNALSYM INSTALLSTATE_UNKNOWN}
- INSTALLSTATE_BROKEN = 0; // broken
- {$EXTERNALSYM INSTALLSTATE_BROKEN}
- INSTALLSTATE_ADVERTISED = 1; // advertised feature
- {$EXTERNALSYM INSTALLSTATE_ADVERTISED}
- INSTALLSTATE_REMOVED = 1; // component being removed (action state, not settable)
- {$EXTERNALSYM INSTALLSTATE_REMOVED}
- INSTALLSTATE_ABSENT = 2; // uninstalled (or action state absent but clients remain)
- {$EXTERNALSYM INSTALLSTATE_ABSENT}
- INSTALLSTATE_LOCAL = 3; // installed on local drive
- {$EXTERNALSYM INSTALLSTATE_LOCAL}
- INSTALLSTATE_SOURCE = 4; // run from source, CD or net
- {$EXTERNALSYM INSTALLSTATE_SOURCE}
- INSTALLSTATE_DEFAULT = 5; // use default, local or source
- {$EXTERNALSYM INSTALLSTATE_DEFAULT}
- type
- INSTALLSTATE = Longint;
- {$EXTERNALSYM INSTALLSTATE}
- TInstallState = INSTALLSTATE;
- const
- USERINFOSTATE_MOREDATA = -3; // return buffer overflow
- {$EXTERNALSYM USERINFOSTATE_MOREDATA}
- USERINFOSTATE_INVALIDARG = -2; // invalid function argument
- {$EXTERNALSYM USERINFOSTATE_INVALIDARG}
- USERINFOSTATE_UNKNOWN = -1; // unrecognized product
- {$EXTERNALSYM USERINFOSTATE_UNKNOWN}
- USERINFOSTATE_ABSENT = 0; // user info and PID not initialized
- {$EXTERNALSYM USERINFOSTATE_ABSENT}
- USERINFOSTATE_PRESENT = 1; // user info and PID initialized
- {$EXTERNALSYM USERINFOSTATE_PRESENT}
- type
- USERINFOSTATE = DWORD;
- {$EXTERNALSYM USERINFOSTATE}
- TUserInfoState = USERINFOSTATE;
- const
- INSTALLLEVEL_DEFAULT = 0; // install authored default
- {$EXTERNALSYM INSTALLLEVEL_DEFAULT}
- INSTALLLEVEL_MINIMUM = 1; // install only required features
- {$EXTERNALSYM INSTALLLEVEL_MINIMUM}
- INSTALLLEVEL_MAXIMUM = $FFFF; // install all features
- {$EXTERNALSYM INSTALLLEVEL_MAXIMUM}
- type
- INSTALLLEVEL = DWORD; // intermediate levels dependent on authoring
- {$EXTERNALSYM INSTALLLEVEL}
- TInstallLevel = INSTALLLEVEL;
- const
- REINSTALLMODE_REPAIR = $00000001; // Reserved bit - currently ignored
- {$EXTERNALSYM REINSTALLMODE_REPAIR}
- REINSTALLMODE_FILEMISSING = $00000002; // Reinstall only if file is missing
- {$EXTERNALSYM REINSTALLMODE_FILEMISSING}
- REINSTALLMODE_FILEOLDERVERSION = $00000004; // Reinstall if file is missing, or older version
- {$EXTERNALSYM REINSTALLMODE_FILEOLDERVERSION}
- REINSTALLMODE_FILEEQUALVERSION = $00000008; // Reinstall if file is missing, or equal or older version
- {$EXTERNALSYM REINSTALLMODE_FILEEQUALVERSION}
- REINSTALLMODE_FILEEXACT = $00000010; // Reinstall if file is missing, or not exact version
- {$EXTERNALSYM REINSTALLMODE_FILEEXACT}
- REINSTALLMODE_FILEVERIFY = $00000020; // checksum executables, reinstall if missing or corrupt
- {$EXTERNALSYM REINSTALLMODE_FILEVERIFY}
- REINSTALLMODE_FILEREPLACE = $00000040; // Reinstall all files, regardless of version
- {$EXTERNALSYM REINSTALLMODE_FILEREPLACE}
- REINSTALLMODE_MACHINEDATA = $00000080; // insure required machine reg entries
- {$EXTERNALSYM REINSTALLMODE_MACHINEDATA}
- REINSTALLMODE_USERDATA = $00000100; // insure required user reg entries
- {$EXTERNALSYM REINSTALLMODE_USERDATA}
- REINSTALLMODE_SHORTCUT = $00000200; // validate shortcuts items
- {$EXTERNALSYM REINSTALLMODE_SHORTCUT}
- REINSTALLMODE_PACKAGE = $00000400; // use re-cache source install package
- {$EXTERNALSYM REINSTALLMODE_PACKAGE}
- type
- REINSTALLMODE = DWORD;
- {$EXTERNALSYM REINSTALLMODE}
- TReinstallMode = REINSTALLMODE;
- // bit flags for use with MsiEnableLog and MsiSetExternalUI
- const
- INSTALLLOGMODE_FATALEXIT = 1 shl (INSTALLMESSAGE_FATALEXIT shr 24);
- {$EXTERNALSYM INSTALLLOGMODE_FATALEXIT}
- INSTALLLOGMODE_ERROR = 1 shl (INSTALLMESSAGE_ERROR shr 24);
- {$EXTERNALSYM INSTALLLOGMODE_ERROR}
- INSTALLLOGMODE_WARNING = 1 shl (INSTALLMESSAGE_WARNING shr 24);
- {$EXTERNALSYM INSTALLLOGMODE_WARNING}
- INSTALLLOGMODE_USER = 1 shl (INSTALLMESSAGE_USER shr 24);
- {$EXTERNALSYM INSTALLLOGMODE_USER}
- INSTALLLOGMODE_INFO = 1 shl (INSTALLMESSAGE_INFO shr 24);
- {$EXTERNALSYM INSTALLLOGMODE_INFO}
- INSTALLLOGMODE_RESOLVESOURCE = 1 shl (INSTALLMESSAGE_RESOLVESOURCE shr 24);
- {$EXTERNALSYM INSTALLLOGMODE_RESOLVESOURCE}
- INSTALLLOGMODE_OUTOFDISKSPACE = 1 shl (INSTALLMESSAGE_OUTOFDISKSPACE shr 24);
- {$EXTERNALSYM INSTALLLOGMODE_OUTOFDISKSPACE}
- INSTALLLOGMODE_ACTIONSTART = 1 shl (INSTALLMESSAGE_ACTIONSTART shr 24);
- {$EXTERNALSYM INSTALLLOGMODE_ACTIONSTART}
- INSTALLLOGMODE_ACTIONDATA = 1 shl (INSTALLMESSAGE_ACTIONDATA shr 24);
- {$EXTERNALSYM INSTALLLOGMODE_ACTIONDATA}
- INSTALLLOGMODE_COMMONDATA = 1 shl (INSTALLMESSAGE_COMMONDATA shr 24);
- {$EXTERNALSYM INSTALLLOGMODE_COMMONDATA}
- INSTALLLOGMODE_PROPERTYDUMP = 1 shl (INSTALLMESSAGE_PROGRESS shr 24); // log only
- {$EXTERNALSYM INSTALLLOGMODE_PROPERTYDUMP}
- INSTALLLOGMODE_VERBOSE = 1 shl (INSTALLMESSAGE_INITIALIZE shr 24); // log only
- {$EXTERNALSYM INSTALLLOGMODE_VERBOSE}
- INSTALLLOGMODE_EXTRADEBUG = 1 shl (INSTALLMESSAGE_TERMINATE shr 24); // log only
- {$EXTERNALSYM INSTALLLOGMODE_EXTRADEBUG}
- INSTALLLOGMODE_PROGRESS = 1 shl (INSTALLMESSAGE_PROGRESS shr 24); // external handler only
- {$EXTERNALSYM INSTALLLOGMODE_PROGRESS}
- INSTALLLOGMODE_INITIALIZE = 1 shl (INSTALLMESSAGE_INITIALIZE shr 24); // external handler only
- {$EXTERNALSYM INSTALLLOGMODE_INITIALIZE}
- INSTALLLOGMODE_TERMINATE = 1 shl (INSTALLMESSAGE_TERMINATE shr 24); // external handler only
- {$EXTERNALSYM INSTALLLOGMODE_TERMINATE}
- INSTALLLOGMODE_SHOWDIALOG = 1 shl (INSTALLMESSAGE_SHOWDIALOG shr 24); // external handler only
- {$EXTERNALSYM INSTALLLOGMODE_SHOWDIALOG}
- type
- INSTALLLOGMODE = DWORD;
- {$EXTERNALSYM INSTALLLOGMODE}
- TInstallLogMode = INSTALLLOGMODE;
- const
- INSTALLLOGATTRIBUTES_APPEND = 1 shl 0;
- {$EXTERNALSYM INSTALLLOGATTRIBUTES_APPEND}
- INSTALLLOGATTRIBUTES_FLUSHEACHLINE = 1 shl 1;
- {$EXTERNALSYM INSTALLLOGATTRIBUTES_FLUSHEACHLINE}
- type
- INSTALLLOGATTRIBUTES = DWORD;
- {$EXTERNALSYM INSTALLLOGATTRIBUTES}
- TInstallLogAttributes = INSTALLLOGATTRIBUTES;
- const
- INSTALLFEATUREATTRIBUTE_FAVORLOCAL = 1 shl 0;
- {$EXTERNALSYM INSTALLFEATUREATTRIBUTE_FAVORLOCAL}
- INSTALLFEATUREATTRIBUTE_FAVORSOURCE = 1 shl 1;
- {$EXTERNALSYM INSTALLFEATUREATTRIBUTE_FAVORSOURCE}
- INSTALLFEATUREATTRIBUTE_FOLLOWPARENT = 1 shl 2;
- {$EXTERNALSYM INSTALLFEATUREATTRIBUTE_FOLLOWPARENT}
- INSTALLFEATUREATTRIBUTE_FAVORADVERTISE = 1 shl 3;
- {$EXTERNALSYM INSTALLFEATUREATTRIBUTE_FAVORADVERTISE}
- INSTALLFEATUREATTRIBUTE_DISALLOWADVERTISE = 1 shl 4;
- {$EXTERNALSYM INSTALLFEATUREATTRIBUTE_DISALLOWADVERTISE}
- INSTALLFEATUREATTRIBUTE_NOUNSUPPORTEDADVERTISE = 1 shl 5;
- {$EXTERNALSYM INSTALLFEATUREATTRIBUTE_NOUNSUPPORTEDADVERTISE}
- type
- INSTALLFEATUREATTRIBUTE = DWORD;
- {$EXTERNALSYM INSTALLFEATUREATTRIBUTE}
- TInstallFeatureAttribute = INSTALLFEATUREATTRIBUTE;
- const
- INSTALLMODE_NOSOURCERESOLUTION = -3; // skip source resolution
- {$EXTERNALSYM INSTALLMODE_NOSOURCERESOLUTION}
- INSTALLMODE_NODETECTION = -2; // skip detection
- {$EXTERNALSYM INSTALLMODE_NODETECTION}
- INSTALLMODE_EXISTING = -1; // provide, if available
- {$EXTERNALSYM INSTALLMODE_EXISTING}
- INSTALLMODE_DEFAULT = 0; // install, if absent
- {$EXTERNALSYM INSTALLMODE_DEFAULT}
- type
- INSTALLMODE = DWORD;
- {$EXTERNALSYM INSTALLMODE}
- TInstallMode = INSTALLMODE;
- const
- MAX_FEATURE_CHARS = 38; // maximum chars in feature name (same as string GUID)
- {$EXTERNALSYM MAX_FEATURE_CHARS}
- // Product info attributes: advertised information
- INSTALLPROPERTY_PACKAGENAME = __TEXT('PackageName');
- {$EXTERNALSYM INSTALLPROPERTY_PACKAGENAME}
- INSTALLPROPERTY_TRANSFORMS = __TEXT('Transforms');
- {$EXTERNALSYM INSTALLPROPERTY_TRANSFORMS}
- INSTALLPROPERTY_LANGUAGE = __TEXT('Language');
- {$EXTERNALSYM INSTALLPROPERTY_LANGUAGE}
- INSTALLPROPERTY_PRODUCTNAME = __TEXT('ProductName');
- {$EXTERNALSYM INSTALLPROPERTY_PRODUCTNAME}
- INSTALLPROPERTY_ASSIGNMENTTYPE = __TEXT('AssignmentType');
- {$EXTERNALSYM INSTALLPROPERTY_ASSIGNMENTTYPE}
- //#if (_WIN32_MSI >= 150)
- INSTALLPROPERTY_INSTANCETYPE = __TEXT('InstanceType');
- {$EXTERNALSYM INSTALLPROPERTY_INSTANCETYPE}
- //#endif //(_WIN32_MSI >= 150)
- INSTALLPROPERTY_PACKAGECODE = __TEXT('PackageCode');
- {$EXTERNALSYM INSTALLPROPERTY_PACKAGECODE}
- INSTALLPROPERTY_VERSION = __TEXT('Version');
- {$EXTERNALSYM INSTALLPROPERTY_VERSION}
- INSTALLPROPERTY_PRODUCTICON = __TEXT('ProductIcon');
- {$EXTERNALSYM INSTALLPROPERTY_PRODUCTICON}
- // Product info attributes: installed information
- INSTALLPROPERTY_INSTALLEDPRODUCTNAME = __TEXT('InstalledProductName');
- {$EXTERNALSYM INSTALLPROPERTY_INSTALLEDPRODUCTNAME}
- INSTALLPROPERTY_VERSIONSTRING = __TEXT('VersionString');
- {$EXTERNALSYM INSTALLPROPERTY_VERSIONSTRING}
- INSTALLPROPERTY_HELPLINK = __TEXT('HelpLink');
- {$EXTERNALSYM INSTALLPROPERTY_HELPLINK}
- INSTALLPROPERTY_HELPTELEPHONE = __TEXT('HelpTelephone');
- {$EXTERNALSYM INSTALLPROPERTY_HELPTELEPHONE}
- INSTALLPROPERTY_INSTALLLOCATION = __TEXT('InstallLocation');
- {$EXTERNALSYM INSTALLPROPERTY_INSTALLLOCATION}
- INSTALLPROPERTY_INSTALLSOURCE = __TEXT('InstallSource');
- {$EXTERNALSYM INSTALLPROPERTY_INSTALLSOURCE}
- INSTALLPROPERTY_INSTALLDATE = __TEXT('InstallDate');
- {$EXTERNALSYM INSTALLPROPERTY_INSTALLDATE}
- INSTALLPROPERTY_PUBLISHER = __TEXT('Publisher');
- {$EXTERNALSYM INSTALLPROPERTY_PUBLISHER}
- INSTALLPROPERTY_LOCALPACKAGE = __TEXT('LocalPackage');
- {$EXTERNALSYM INSTALLPROPERTY_LOCALPACKAGE}
- INSTALLPROPERTY_URLINFOABOUT = __TEXT('URLInfoAbout');
- {$EXTERNALSYM INSTALLPROPERTY_URLINFOABOUT}
- INSTALLPROPERTY_URLUPDATEINFO = __TEXT('URLUpdateInfo');
- {$EXTERNALSYM INSTALLPROPERTY_URLUPDATEINFO}
- INSTALLPROPERTY_VERSIONMINOR = __TEXT('VersionMinor');
- {$EXTERNALSYM INSTALLPROPERTY_VERSIONMINOR}
- INSTALLPROPERTY_VERSIONMAJOR = __TEXT('VersionMajor');
- {$EXTERNALSYM INSTALLPROPERTY_VERSIONMAJOR}
- const
- SCRIPTFLAGS_CACHEINFO = $00000001; // set if the icons need to be created/ removed
- {$EXTERNALSYM SCRIPTFLAGS_CACHEINFO}
- SCRIPTFLAGS_SHORTCUTS = $00000004; // set if the shortcuts needs to be created/ deleted
- {$EXTERNALSYM SCRIPTFLAGS_SHORTCUTS}
- SCRIPTFLAGS_MACHINEASSIGN = $00000008; // set if product to be assigned to machine
- {$EXTERNALSYM SCRIPTFLAGS_MACHINEASSIGN}
- SCRIPTFLAGS_REGDATA_CNFGINFO = $00000020; // set if the product cnfg mgmt. registry data needs to be written/ removed
- {$EXTERNALSYM SCRIPTFLAGS_REGDATA_CNFGINFO}
- SCRIPTFLAGS_VALIDATE_TRANSFORMS_LIST = $00000040;
- {$EXTERNALSYM SCRIPTFLAGS_VALIDATE_TRANSFORMS_LIST}
- {$IFDEF MSI200_UP}
- SCRIPTFLAGS_REGDATA_CLASSINFO = $00000080; // set if COM classes related app info needs to be created/ deleted
- {$EXTERNALSYM SCRIPTFLAGS_REGDATA_CLASSINFO}
- SCRIPTFLAGS_REGDATA_EXTENSIONINFO = $00000100; // set if extension related app info needs to be created/ deleted
- {$EXTERNALSYM SCRIPTFLAGS_REGDATA_EXTENSIONINFO}
- SCRIPTFLAGS_REGDATA_APPINFO = SCRIPTFLAGS_REGDATA_CLASSINFO or SCRIPTFLAGS_REGDATA_EXTENSIONINFO; // for source level backward compatibility
- {$EXTERNALSYM SCRIPTFLAGS_REGDATA_APPINFO}
- {$ELSE} // _WIN32_MSI >= 110
- SCRIPTFLAGS_REGDATA_APPINFO = $00000010;
- {$EXTERNALSYM SCRIPTFLAGS_REGDATA_APPINFO}
- {$ENDIF MSI200_UP}
- SCRIPTFLAGS_REGDATA = SCRIPTFLAGS_REGDATA_APPINFO or SCRIPTFLAGS_REGDATA_CNFGINFO;// for source level backward compatibility
- {$EXTERNALSYM SCRIPTFLAGS_REGDATA}
- type
- SCRIPTFLAGS = Longint;
- {$EXTERNALSYM SCRIPTFLAGS}
- TScriptFlags = SCRIPTFLAGS;
- const
- ADVERTISEFLAGS_MACHINEASSIGN = 0; // set if the product is to be machine assigned
- {$EXTERNALSYM ADVERTISEFLAGS_MACHINEASSIGN}
- ADVERTISEFLAGS_USERASSIGN = 1; // set if the product is to be user assigned
- {$EXTERNALSYM ADVERTISEFLAGS_USERASSIGN}
- type
- ADVERTISEFLAGS = Longint;
- {$EXTERNALSYM ADVERTISEFLAGS}
- TAdvertiseFlags = ADVERTISEFLAGS;
- const
- INSTALLTYPE_DEFAULT = 0; // set to indicate default behavior
- {$EXTERNALSYM INSTALLTYPE_DEFAULT}
- INSTALLTYPE_NETWORK_IMAGE = 1; // set to indicate network install
- {$EXTERNALSYM INSTALLTYPE_NETWORK_IMAGE}
- INSTALLTYPE_SINGLE_INSTANCE = 2; // set to indicate a particular instance
- {$EXTERNALSYM INSTALLTYPE_SINGLE_INSTANCE}
- type
- INSTALLTYPE = DWORD;
- {$EXTERNALSYM INSTALLTYPE}
- TInstallType = INSTALLTYPE;
- type
- _MSIFILEHASHINFO = record
- dwFileHashInfoSize: ULONG;
- dwData: array [0..3] of ULONG;
- end;
- {$EXTERNALSYM _MSIFILEHASHINFO}
- MSIFILEHASHINFO = _MSIFILEHASHINFO;
- {$EXTERNALSYM MSIFILEHASHINFO}
- PMSIFILEHASHINFO = ^MSIFILEHASHINFO;
- {$EXTERNALSYM PMSIFILEHASHINFO}
- TMsiFileHashInfo = MSIFILEHASHINFO;
- const
- MSIARCHITECTUREFLAGS_X86 = $00000001; // set if creating the script for i386 platform
- {$EXTERNALSYM MSIARCHITECTUREFLAGS_X86}
- MSIARCHITECTUREFLAGS_IA64 = $00000002; // set if creating the script for IA64 platform
- {$EXTERNALSYM MSIARCHITECTUREFLAGS_IA64}
- MSIARCHITECTUREFLAGS_AMD64 = $00000004; // set if creating the script for AMD64 platform
- {$EXTERNALSYM MSIARCHITECTUREFLAGS_AMD64}
- type
- MSIARCHITECTUREFLAGS = DWORD;
- {$EXTERNALSYM MSIARCHITECTUREFLAGS}
- TMsiArchitectureFlags = MSIARCHITECTUREFLAGS;
- const
- MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE = $00000001; // ignore the machine state when creating the engine
- {$EXTERNALSYM MSIOPENPACKAGEFLAGS_IGNOREMACHINESTATE}
- type
- MSIOPENPACKAGEFLAGS = DWORD;
- {$EXTERNALSYM MSIOPENPACKAGEFLAGS}
- TMsiOpenPackageFlags = MSIOPENPACKAGEFLAGS;
- const
- MSIADVERTISEOPTIONFLAGS_INSTANCE = $00000001; // set if advertising a new instance
- {$EXTERNALSYM MSIADVERTISEOPTIONFLAGS_INSTANCE}
- type
- tagMSIADVERTISEOPTIONFLAGS = DWORD;
- {$EXTERNALSYM tagMSIADVERTISEOPTIONFLAGS}
- MSIADVERTISEOPTIONFLAGS = tagMSIADVERTISEOPTIONFLAGS;
- {$EXTERNALSYM MSIADVERTISEOPTIONFLAGS}
- TMsiAdvertiseOptionFlags = MSIADVERTISEOPTIONFLAGS;
- // --------------------------------------------------------------------------
- // Functions to set the UI handling and logging. The UI will be used for error,
- // progress, and log messages for all subsequent calls to Installer Service
- // API functions that require UI.
- // --------------------------------------------------------------------------
- // Enable internal UI
- function MsiSetInternalUI(dwUILevel: INSTALLUILEVEL; phWnd: LPHWND): INSTALLUILEVEL; stdcall;
- {$EXTERNALSYM MsiSetInternalUI}
- // Enable external UI handling, returns any previous handler or NULL if none.
- // Messages are designated with a combination of bits from INSTALLLOGMODE enum.
- function MsiSetExternalUIA(puiHandler: INSTALLUI_HANDLERA; dwMessageFilter: DWORD;
- pvContext: LPVOID): INSTALLUI_HANDLERA; stdcall;
- {$EXTERNALSYM MsiSetExternalUIA}
- function MsiSetExternalUIW(puiHandler: INSTALLUI_HANDLERW; dwMessageFilter: DWORD;
- pvContext: LPVOID): INSTALLUI_HANDLERW; stdcall;
- {$EXTERNALSYM MsiSetExternalUIW}
- function MsiSetExternalUI(puiHandler: INSTALLUI_HANDLER; dwMessageFilter: DWORD;
- pvContext: LPVOID): INSTALLUI_HANDLER; stdcall;
- {$EXTERNALSYM MsiSetExternalUI}
- // Enable logging to a file for all install sessions for the client process,
- // with control over which log messages are passed to the specified log file.
- // Messages are designated with a combination of bits from INSTALLLOGMODE enum.
- function MsiEnableLogA(dwLogMode: DWORD; szLogFile: LPCSTR; dwLogAttributes: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiEnableLogA}
- function MsiEnableLogW(dwLogMode: DWORD; szLogFile: LPCWSTR; dwLogAttributes: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiEnableLogW}
- function MsiEnableLog(dwLogMode: DWORD; szLogFile: LPCTSTR; dwLogAttributes: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiEnableLog}
- // --------------------------------------------------------------------------
- // Functions to query and configure a product as a whole.
- // --------------------------------------------------------------------------
- // Return the installed state for a product
- function MsiQueryProductStateA(szProduct: LPCSTR): INSTALLSTATE; stdcall;
- {$EXTERNALSYM MsiQueryProductStateA}
- function MsiQueryProductStateW(szProduct: LPCWSTR): INSTALLSTATE; stdcall;
- {$EXTERNALSYM MsiQueryProductStateW}
- function MsiQueryProductState(szProduct: LPCTSTR): INSTALLSTATE; stdcall;
- {$EXTERNALSYM MsiQueryProductState}
- // Return product info
- function MsiGetProductInfoA(szProduct: LPCSTR; szAttribute: LPCSTR;
- lpValueBuf: LPSTR; pcchValueBuf: LPDWORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetProductInfoA}
- function MsiGetProductInfoW(szProduct: LPCWSTR; szAttribute: LPCWSTR;
- lpValueBuf: LPWSTR; pcchValueBuf: LPDWORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetProductInfoW}
- function MsiGetProductInfo(szProduct: LPCTSTR; szAttribute: LPCTSTR;
- lpValueBuf: LPTSTR; pcchValueBuf: LPDWORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetProductInfo}
- // Install a new product.
- // Either may be NULL, but the DATABASE property must be specfied
- function MsiInstallProductA(szPackagePath: LPCSTR; szCommandLine: LPCSTR): UINT; stdcall;
- {$EXTERNALSYM MsiInstallProductA}
- function MsiInstallProductW(szPackagePath: LPCWSTR; szCommandLine: LPCWSTR): UINT; stdcall;
- {$EXTERNALSYM MsiInstallProductW}
- function MsiInstallProduct(szPackagePath: LPCTSTR; szCommandLine: LPCTSTR): UINT; stdcall;
- {$EXTERNALSYM MsiInstallProduct}
- // Install/uninstall an advertised or installed product
- // No action if installed and INSTALLSTATE_DEFAULT specified
- function MsiConfigureProductA(szProduct: LPCSTR; iInstallLevel: Integer;
- eInstallState: INSTALLSTATE): UINT; stdcall;
- {$EXTERNALSYM MsiConfigureProductA}
- function MsiConfigureProductW(szProduct: LPCWSTR; iInstallLevel: Integer;
- eInstallState: INSTALLSTATE): UINT; stdcall;
- {$EXTERNALSYM MsiConfigureProductW}
- function MsiConfigureProduct(szProduct: LPCTSTR; iInstallLevel: Integer;
- eInstallState: INSTALLSTATE): UINT; stdcall;
- {$EXTERNALSYM MsiConfigureProduct}
- // Install/uninstall an advertised or installed product
- // No action if installed and INSTALLSTATE_DEFAULT specified
- function MsiConfigureProductExA(szProduct: LPCSTR; iInstallLevel: Integer;
- eInstallState: INSTALLSTATE; szCommandLine: LPCSTR): UINT; stdcall;
- {$EXTERNALSYM MsiConfigureProductExA}
- function MsiConfigureProductExW(szProduct: LPCWSTR; iInstallLevel: Integer;
- eInstallState: INSTALLSTATE; szCommandLine: LPCWSTR): UINT; stdcall;
- {$EXTERNALSYM MsiConfigureProductExW}
- function MsiConfigureProductEx(szProduct: LPCTSTR; iInstallLevel: Integer;
- eInstallState: INSTALLSTATE; szCommandLine: LPCTSTR): UINT; stdcall;
- {$EXTERNALSYM MsiConfigureProductEx}
- // Reinstall product, used to validate or correct problems
- function MsiReinstallProductA(szProduct: LPCSTR; szReinstallMode: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiReinstallProductA}
- function MsiReinstallProductW(szProduct: LPCWSTR; szReinstallMode: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiReinstallProductW}
- function MsiReinstallProduct(szProduct: LPCTSTR; szReinstallMode: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiReinstallProduct}
- // Output reg and shortcut info to script file for specified architecture for Assign or Publish
- // If dwPlatform is 0, then the script is created based on the current platform (behavior of MsiAdvertiseProduct)
- // If dwOptions includes MSIADVERTISEOPTIONFLAGS_INSTANCE, then a new instance is advertised. Use of
- // this option requires that szTransforms include the instance transform that changes the product code
- function MsiAdvertiseProductExA(szPackagePath, szScriptfilePath, szTransforms: LPCSTR; lgidLanguage: LANGID;
- dwPlatform, dwOptions: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiAdvertiseProductExA}
- function MsiAdvertiseProductExW(szPackagePath, szScriptfilePath, szTransforms: LPCWSTR; lgidLanguage: LANGID;
- dwPlatform, dwOptions: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiAdvertiseProductExW}
- function MsiAdvertiseProductEx(szPackagePath, szScriptfilePath, szTransforms: LPCTSTR; lgidLanguage: LANGID;
- dwPlatform, dwOptions: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiAdvertiseProductEx}
- // Output reg and shortcut info to script file for Assign or Publish
- function MsiAdvertiseProductA(szPackagePath, szScriptfilePath, szTransforms: LPCSTR; lgidLanguage: LANGID): UINT; stdcall;
- {$EXTERNALSYM MsiAdvertiseProductA}
- function MsiAdvertiseProductW(szPackagePath, szScriptfilePath, szTransforms: LPCWSTR; lgidLanguage: LANGID): UINT; stdcall;
- {$EXTERNALSYM MsiAdvertiseProductW}
- function MsiAdvertiseProduct(szPackagePath, szScriptfilePath, szTransforms: LPCTSTR; lgidLanguage: LANGID): UINT; stdcall;
- {$EXTERNALSYM MsiAdvertiseProduct}
- // Process advertise script file into supplied locations
- // If an icon folder is specified, icon files will be placed there
- // If an registry key is specified, registry data will be mapped under it
- // If fShortcuts is TRUE, shortcuts will be created. If a special folder is
- // returned by SHGetSpecialFolderLocation(?), it will hold the shortcuts.
- // if fRemoveItems is TRUE, items that are present will be removed
- function MsiProcessAdvertiseScriptA(szScriptFile, szIconFolder: LPCSTR; hRegData: HKEY; fShortcuts, fRemoveItems: BOOL): UINT; stdcall;
- {$EXTERNALSYM MsiProcessAdvertiseScriptA}
- function MsiProcessAdvertiseScriptW(szScriptFile, szIconFolder: LPCWSTR; hRegData: HKEY; fShortcuts, fRemoveItems: BOOL): UINT; stdcall;
- {$EXTERNALSYM MsiProcessAdvertiseScriptW}
- function MsiProcessAdvertiseScript(szScriptFile, szIconFolder: LPCTSTR; hRegData: HKEY; fShortcuts, fRemoveItems: BOOL): UINT; stdcall;
- {$EXTERNALSYM MsiProcessAdvertiseScript}
- // Process advertise script file using the supplied dwFlags control flags
- // if fRemoveItems is TRUE, items that are present will be removed
- function MsiAdvertiseScriptA(szScriptFile: LPCSTR; dwFlags: DWORD; phRegData: PHKEY; fRemoveItems: BOOL): UINT; stdcall;
- {$EXTERNALSYM MsiAdvertiseScriptA}
- function MsiAdvertiseScriptW(szScriptFile: LPCWSTR; dwFlags: DWORD; phRegData: PHKEY; fRemoveItems: BOOL): UINT; stdcall;
- {$EXTERNALSYM MsiAdvertiseScriptW}
- function MsiAdvertiseScript(szScriptFile: LPCTSTR; dwFlags: DWORD; phRegData: PHKEY; fRemoveItems: BOOL): UINT; stdcall;
- {$EXTERNALSYM MsiAdvertiseScript}
- // Return product info from an installer script file:
- // product code, language, version, readable name, path to package
- // Returns TRUE is success, FALSE if szScriptFile is not a valid script file
- function MsiGetProductInfoFromScriptA(szScriptFile: LPCSTR; lpProductBuf39: LPSTR; plgidLanguage: PLANGID; pdwVersion: LPDWORD;
- lpNameBuf: LPSTR; pcchNameBuf: LPDWORD; lpPackageBuf: LPSTR; pcchPackageBuf: LPDWORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetProductInfoFromScriptA}
- function MsiGetProductInfoFromScriptW(szScriptFile: LPCWSTR; lpProductBuf39: LPWSTR; plgidLanguage: PLANGID; pdwVersion: LPDWORD;
- lpNameBuf: LPWSTR; pcchNameBuf: LPDWORD; lpPackageBuf: LPWSTR; pcchPackageBuf: LPDWORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetProductInfoFromScriptW}
- function MsiGetProductInfoFromScript(szScriptFile: LPCTSTR; lpProductBuf39: LPTSTR; plgidLanguage: PLANGID; pdwVersion: LPDWORD;
- lpNameBuf: LPTSTR; pcchNameBuf: LPDWORD; lpPackageBuf: LPTSTR; pcchPackageBuf: LPDWORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetProductInfoFromScript}
- // Return the product code for a registered component, called once by apps
- function MsiGetProductCodeA(szComponent: LPCSTR; lpBuf39: LPSTR): UINT; stdcall;
- {$EXTERNALSYM MsiGetProductCodeA}
- function MsiGetProductCodeW(szComponent: LPCWSTR; lpBuf39: LPWSTR): UINT; stdcall;
- {$EXTERNALSYM MsiGetProductCodeW}
- function MsiGetProductCode(szComponent: LPCTSTR; lpBuf39: LPTSTR): UINT; stdcall;
- {$EXTERNALSYM MsiGetProductCode}
- // Return the registered user information for an installed product
- function MsiGetUserInfoA(szProduct: LPCSTR; lpUserNameBuf: LPSTR;
- var pcchUserNameBuf: DWORD; lpOrgNameBuf: LPSTR; var pcchOrgNameBuf: DWORD;
- lpSerialBuf: LPSTR; var pcchSerialBuf: DWORD): USERINFOSTATE; stdcall;
- {$EXTERNALSYM MsiGetUserInfoA}
- function MsiGetUserInfoW(szProduct: LPCWSTR; lpUserNameBuf: LPWSTR;
- var pcchUserNameBuf: DWORD; lpOrgNameBuf: LPWSTR; var pcchOrgNameBuf: DWORD;
- lpSerialBuf: LPWSTR; var pcchSerialBuf: DWORD): USERINFOSTATE; stdcall;
- {$EXTERNALSYM MsiGetUserInfoW}
- function MsiGetUserInfo(szProduct: LPCTSTR; lpUserNameBuf: LPTSTR;
- var pcchUserNameBuf: DWORD; lpOrgNameBuf: LPTSTR; var pcchOrgNameBuf: DWORD;
- lpSerialBuf: LPTSTR; var pcchSerialBuf: DWORD): USERINFOSTATE; stdcall;
- {$EXTERNALSYM MsiGetUserInfo}
- // Obtain and store user info and PID from installation wizard (first run)
- function MsiCollectUserInfoA(szProduct: LPCSTR): UINT; stdcall;
- {$EXTERNALSYM MsiCollectUserInfoA}
- function MsiCollectUserInfoW(szProduct: LPCWSTR): UINT; stdcall;
- {$EXTERNALSYM MsiCollectUserInfoW}
- function MsiCollectUserInfo(szProduct: LPCTSTR): UINT; stdcall;
- {$EXTERNALSYM MsiCollectUserInfo}
- // --------------------------------------------------------------------------
- // Functions to patch existing products
- // --------------------------------------------------------------------------
- // Patch all possible installed products.
- function MsiApplyPatchA(szPatchPackage: LPCSTR; szInstallPackage: LPCSTR;
- eInstallType: INSTALLTYPE; szCommandLine: LPCSTR): UINT; stdcall;
- {$EXTERNALSYM MsiApplyPatchA}
- function MsiApplyPatchW(szPatchPackage: LPCWSTR; szInstallPackage: LPCWSTR;
- eInstallType: INSTALLTYPE; szCommandLine: LPCWSTR): UINT; stdcall;
- {$EXTERNALSYM MsiApplyPatchW}
- function MsiApplyPatch(szPatchPackage: LPCTSTR; szInstallPackage: LPCTSTR;
- eInstallType: INSTALLTYPE; szCommandLine: LPCTSTR): UINT; stdcall;
- {$EXTERNALSYM MsiApplyPatch}
- // Return patch info
- function MsiGetPatchInfoA(szPatch: LPCSTR; szAttribute: LPCSTR;
- lpValueBuf: LPSTR; pcchValueBuf: LPDWORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetPatchInfoA}
- function MsiGetPatchInfoW(szPatch: LPCWSTR; szAttribute: LPCWSTR;
- lpValueBuf: LPWSTR; pcchValueBuf: LPDWORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetPatchInfoW}
- function MsiGetPatchInfo(szPatch: LPCTSTR; szAttribute: LPCTSTR;
- lpValueBuf: LPTSTR; pcchValueBuf: LPDWORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetPatchInfo}
- // Enumerate all patches for a product
- function MsiEnumPatchesA(szProduct: LPCSTR; iPatchIndex: DWORD; lpPatchBuf: LPSTR;
- lpTransformsBuf: LPSTR; var pcchTransformsBuf: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiEnumPatchesA}
- function MsiEnumPatchesW(szProduct: LPCWSTR; iPatchIndex: DWORD; lpPatchBuf: LPWSTR;
- lpTransformsBuf: LPWSTR; var pcchTransformsBuf: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiEnumPatchesW}
- function MsiEnumPatches(szProduct: LPCTSTR; iPatchIndex: DWORD; lpPatchBuf: LPTSTR;
- lpTransformsBuf: LPTSTR; var pcchTransformsBuf: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiEnumPatches}
- // --------------------------------------------------------------------------
- // Functions to query and configure a feature within a product.
- // --------------------------------------------------------------------------
- // Return the installed state for a product feature
- function MsiQueryFeatureStateA(szProduct: LPCSTR; szFeature: LPCSTR): INSTALLSTATE; stdcall;
- {$EXTERNALSYM MsiQueryFeatureStateA}
- function MsiQueryFeatureStateW(szProduct: LPCWSTR; szFeature: LPCWSTR): INSTALLSTATE; stdcall;
- {$EXTERNALSYM MsiQueryFeatureStateW}
- function MsiQueryFeatureState(szProduct: LPCTSTR; szFeature: LPCTSTR): INSTALLSTATE; stdcall;
- {$EXTERNALSYM MsiQueryFeatureState}
- // Indicate intent to use a product feature, increments usage count
- // Prompts for CD if not loaded, does not install feature
- function MsiUseFeatureA(szProduct: LPCSTR; szFeature: LPCSTR): INSTALLSTATE; stdcall;
- {$EXTERNALSYM MsiUseFeatureA}
- function MsiUseFeatureW(szProduct: LPCWSTR; szFeature: LPCWSTR): INSTALLSTATE; stdcall;
- {$EXTERNALSYM MsiUseFeatureW}
- function MsiUseFeature(szProduct: LPCTSTR; szFeature: LPCTSTR): INSTALLSTATE; stdcall;
- {$EXTERNALSYM MsiUseFeature}
- // Indicate intent to use a product feature, increments usage count
- // Prompts for CD if not loaded, does not install feature
- // Allows for bypassing component detection where performance is critical
- function MsiUseFeatureExA(szProduct: LPCSTR; szFeature: LPCSTR;
- dwInstallMode: DWORD; dwReserved: DWORD): INSTALLSTATE; stdcall;
- {$EXTERNALSYM MsiUseFeatureExA}
- function MsiUseFeatureExW(szProduct: LPCWSTR; szFeature: LPCWSTR; dwInstallMode: DWORD;
- dwReserved: DWORD): INSTALLSTATE; stdcall;
- {$EXTERNALSYM MsiUseFeatureExW}
- function MsiUseFeatureEx(szProduct: LPCTSTR; szFeature: LPCTSTR;
- dwInstallMode: DWORD; dwReserved: DWORD): INSTALLSTATE; stdcall;
- {$EXTERNALSYM MsiUseFeatureEx}
- // Return the usage metrics for a product feature
- function MsiGetFeatureUsageA(szProduct: LPCSTR; szFeature: LPCSTR;
- var pdwUseCount, pwDateUsed: WORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetFeatureUsageA}
- function MsiGetFeatureUsageW(szProduct: LPCWSTR; szFeature: LPCWSTR;
- var pdwUseCount, pwDateUsed: WORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetFeatureUsageW}
- function MsiGetFeatureUsage(szProduct: LPCTSTR; szFeature: LPCTSTR;
- var pdwUseCount, pwDateUsed: WORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetFeatureUsage}
- // Force the installed state for a product feature
- function MsiConfigureFeatureA(szProduct, szFeature: LPCSTR; eInstallState: INSTALLSTATE): UINT; stdcall;
- {$EXTERNALSYM MsiConfigureFeatureA}
- function MsiConfigureFeatureW(szProduct, szFeature: LPCWSTR; eInstallState: INSTALLSTATE): UINT; stdcall;
- {$EXTERNALSYM MsiConfigureFeatureW}
- function MsiConfigureFeature(szProduct, szFeature: LPCTSTR; eInstallState: INSTALLSTATE): UINT; stdcall;
- {$EXTERNALSYM MsiConfigureFeature}
- // Reinstall feature, used to validate or correct problems
- function MsiReinstallFeatureA(szProduct, szFeature: LPCSTR; dwReinstallMode: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiReinstallFeatureA}
- function MsiReinstallFeatureW(szProduct, szFeature: LPCWSTR; dwReinstallMode: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiReinstallFeatureW}
- function MsiReinstallFeature(szProduct, szFeature: LPCTSTR; dwReinstallMode: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiReinstallFeature}
- // --------------------------------------------------------------------------
- // Functions to return a path to a particular component.
- // The state of the feature being used should have been checked previously.
- // --------------------------------------------------------------------------
- // Return full component path, performing any necessary installation
- // calls MsiQueryFeatureState to detect that all components are installed
- // then calls MsiConfigureFeature if any of its components are uninstalled
- // then calls MsiLocateComponent to obtain the path the its key file
- function MsiProvideComponentA(szProduct: LPCSTR; szFeature: LPCSTR; szComponent: LPCSTR;
- dwInstallMode: DWORD; lpPathBuf: LPSTR; pcchPathBuf: LPDWORD): UINT; stdcall;
- {$EXTERNALSYM MsiProvideComponentA}
- function MsiProvideComponentW(szProduct: LPCWSTR; szFeature: LPCWSTR; szComponent: LPCWSTR;
- dwInstallMode: DWORD; lpPathBuf: LPWSTR; pcchPathBuf: LPDWORD): UINT; stdcall;
- {$EXTERNALSYM MsiProvideComponentW}
- function MsiProvideComponent(szProduct: LPCTSTR; szFeature: LPCTSTR; szComponent: LPCTSTR;
- dwInstallMode: DWORD; lpPathBuf: LPTSTR; pcchPathBuf: LPDWORD): UINT; stdcall;
- {$EXTERNALSYM MsiProvideComponent}
- // Return full component path for a qualified component, performing any necessary installation.
- // Prompts for source if necessary and increments the usage count for the feature.
- function MsiProvideQualifiedComponentA(szCategory: LPCSTR; szQualifier: LPCSTR;
- dwInstallMode: DWORD; lpPathBuf: LPSTR; pcchPathBuf: LPDWORD): UINT; stdcall;
- {$EXTERNALSYM MsiProvideQualifiedComponentA}
- function MsiProvideQualifiedComponentW(szCategory: LPCWSTR; szQualifier: LPCWSTR;
- dwInstallMode: DWORD; lpPathBuf: LPWSTR; pcchPathBuf: LPDWORD): UINT; stdcall;
- {$EXTERNALSYM MsiProvideQualifiedComponentW}
- function MsiProvideQualifiedComponent(szCategory: LPCTSTR; szQualifier: LPCTSTR;
- dwInstallMode: DWORD; lpPathBuf: LPTSTR; pcchPathBuf: LPDWORD): UINT; stdcall;
- {$EXTERNALSYM MsiProvideQualifiedComponent}
- // Return full component path for a qualified component, performing any necessary installation.
- // Prompts for source if necessary and increments the usage count for the feature.
- // The szProduct parameter specifies the product to match that has published the qualified
- // component. If null, this API works the same as MsiProvideQualifiedComponent.
- function MsiProvideQualifiedComponentExA(szCategory: LPCSTR; szQualifier: LPCSTR;
- dwInstallMode: DWORD; szProduct: LPCSTR; dwUnused1: DWORD; dwUnused2: DWORD;
- lpPathBuf: LPSTR; pcchPathBuf: LPDWORD): UINT; stdcall;
- {$EXTERNALSYM MsiProvideQualifiedComponentExA}
- function MsiProvideQualifiedComponentExW(szCategory: LPCWSTR; szQualifier: LPCWSTR;
- dwInstallMode: DWORD; szProduct: LPCWSTR; dwUnused1: DWORD; dwUnused2: DWORD;
- lpPathBuf: LPWSTR; pcchPathBuf: LPDWORD): UINT; stdcall;
- {$EXTERNALSYM MsiProvideQualifiedComponentExW}
- function MsiProvideQualifiedComponentEx(szCategory: LPCTSTR; szQualifier: LPCTSTR;
- dwInstallMode: DWORD; szProduct: LPCTSTR; dwUnused1: DWORD; dwUnused2: DWORD;
- lpPathBuf: LPTSTR; pcchPathBuf: LPDWORD): UINT; stdcall;
- {$EXTERNALSYM MsiProvideQualifiedComponentEx}
- // Return full path to an installed component
- function MsiGetComponentPathA(szProduct: LPCSTR; szComponent: LPCSTR;
- lpPathBuf: LPSTR; pcchBuf: LPDWORD): INSTALLSTATE; stdcall;
- {$EXTERNALSYM MsiGetComponentPathA}
- function MsiGetComponentPathW(szProduct: LPCWSTR; szComponent: LPCWSTR;
- lpPathBuf: LPWSTR; pcchBuf: LPDWORD): INSTALLSTATE; stdcall;
- {$EXTERNALSYM MsiGetComponentPathW}
- function MsiGetComponentPath(szProduct: LPCTSTR; szComponent: LPCTSTR;
- lpPathBuf: LPTSTR; pcchBuf: LPDWORD): INSTALLSTATE; stdcall;
- {$EXTERNALSYM MsiGetComponentPath}
- const
- MSIASSEMBLYINFO_NETASSEMBLY = 0; // Net assemblies
- {$EXTERNALSYM MSIASSEMBLYINFO_NETASSEMBLY}
- MSIASSEMBLYINFO_WIN32ASSEMBLY = 1; // Win32 assemblies
- {$EXTERNALSYM MSIASSEMBLYINFO_WIN32ASSEMBLY}
- // Return full component path for an assembly installed via the WI, performing any necessary installation.
- // Prompts for source if necessary and increments the usage count for the feature.
- // The szAssemblyName parameter specifies the stringized assembly name.
- // The szAppContext is the full path to the .cfg file or the app exe to which the assembly being requested
- // has been privatised to, which is null for global assemblies
- function MsiProvideAssemblyA(szAssemblyName, szAppContext: LPCSTR; dwInstallMode, dwAssemblyInfo: DWORD;
- lpPathBuf: LPSTR; pcchPathBuf: LPDWORD): UINT; stdcall;
- {$EXTERNALSYM MsiProvideAssemblyA}
- function MsiProvideAssemblyW(szAssemblyName, szAppContext: LPCWSTR; dwInstallMode, dwAssemblyInfo: DWORD;
- lpPathBuf: LPWSTR; pcchPathBuf: LPDWORD): UINT; stdcall;
- {$EXTERNALSYM MsiProvideAssemblyW}
- function MsiProvideAssembly(szAssemblyName, szAppContext: LPCTSTR; dwInstallMode, dwAssemblyInfo: DWORD;
- lpPathBuf: LPTSTR; pcchPathBuf: LPDWORD): UINT; stdcall;
- {$EXTERNALSYM MsiProvideAssembly}
- // --------------------------------------------------------------------------
- // Functions to iterate registered products, features, and components.
- // As with reg keys, they accept a 0-based index into the enumeration.
- // --------------------------------------------------------------------------
- // Enumerate the registered products, either installed or advertised
- function MsiEnumProductsA(iProductIndex: DWORD; lpProductBuf: LPSTR): UINT; stdcall;
- {$EXTERNALSYM MsiEnumProductsA}
- function MsiEnumProductsW(iProductIndex: DWORD; lpProductBuf: LPWSTR): UINT; stdcall;
- {$EXTERNALSYM MsiEnumProductsW}
- function MsiEnumProducts(iProductIndex: DWORD; lpProductBuf: LPTSTR): UINT; stdcall;
- {$EXTERNALSYM MsiEnumProducts}
- {$IFDEF MSI110}
- // Enumerate products with given upgrade code
- function MsiEnumRelatedProductsA(lpUpgradeCode: LPCSTR; dwReserved: DWORD;
- iProductIndex: DWORD; lpProductBuf: LPSTR): UINT; stdcall;
- {$EXTERNALSYM MsiEnumRelatedProductsA}
- function MsiEnumRelatedProductsW(lpUpgradeCode: LPCWSTR; dwReserved: DWORD;
- iProductIndex: DWORD; lpProductBuf: LPWSTR): UINT; stdcall;
- {$EXTERNALSYM MsiEnumRelatedProductsW}
- function MsiEnumRelatedProducts(lpUpgradeCode: LPCTSTR; dwReserved: DWORD;
- iProductIndex: DWORD; lpProductBuf: LPTSTR): UINT; stdcall;
- {$EXTERNALSYM MsiEnumRelatedProducts}
- {$ENDIF MSI110}
- // Enumerate the advertised features for a given product.
- // If parent is not required, supplying NULL will improve performance.
- function MsiEnumFeaturesA(szProduct: LPCSTR; iFeatureIndex: DWORD;
- lpFeatureBuf: LPSTR; lpParentBuf: LPSTR): UINT; stdcall;
- {$EXTERNALSYM MsiEnumFeaturesA}
- function MsiEnumFeaturesW(szProduct: LPCWSTR; iFeatureIndex: DWORD;
- lpFeatureBuf: LPWSTR; lpParentBuf: LPWSTR): UINT; stdcall;
- {$EXTERNALSYM MsiEnumFeaturesW}
- function MsiEnumFeatures(szProduct: LPCTSTR; iFeatureIndex: DWORD;
- lpFeatureBuf: LPTSTR; lpParentBuf: LPTSTR): UINT; stdcall;
- {$EXTERNALSYM MsiEnumFeatures}
- // Enumerate the installed components for all products
- function MsiEnumComponentsA(iComponentIndex: DWORD; lpComponentBuf: LPSTR): UINT; stdcall;
- {$EXTERNALSYM MsiEnumComponentsA}
- function MsiEnumComponentsW(iComponentIndex: DWORD; lpComponentBuf: LPWSTR): UINT; stdcall;
- {$EXTERNALSYM MsiEnumComponentsW}
- function MsiEnumComponents(iComponentIndex: DWORD; lpComponentBuf: LPTSTR): UINT; stdcall;
- {$EXTERNALSYM MsiEnumComponents}
- // Enumerate the client products for a component
- function MsiEnumClientsA(szComponent: LPCSTR; iProductIndex: DWORD; lpProductBuf: LPSTR): UINT; stdcall;
- {$EXTERNALSYM MsiEnumClientsA}
- function MsiEnumClientsW(szComponent: LPCWSTR; iProductIndex: DWORD; lpProductBuf: LPWSTR): UINT; stdcall;
- {$EXTERNALSYM MsiEnumClientsW}
- function MsiEnumClients(szComponent: LPCTSTR; iProductIndex: DWORD; lpProductBuf: LPTSTR): UINT; stdcall;
- {$EXTERNALSYM MsiEnumClients}
- // Enumerate the qualifiers for an advertised component.
- function MsiEnumComponentQualifiersA(szComponent: LPCSTR; iIndex: DWORD;
- lpQualifierBuf: LPSTR; var pcchQualifierBuf: DWORD; lpApplicationDataBuf: LPSTR;
- pcchApplicationDataBuf: LPDWORD): UINT; stdcall;
- {$EXTERNALSYM MsiEnumComponentQualifiersA}
- function MsiEnumComponentQualifiersW(szComponent: LPCWSTR; iIndex: DWORD;
- lpQualifierBuf: LPWSTR; var pcchQualifierBuf: DWORD; lpApplicationDataBuf: LPWSTR;
- pcchApplicationDataBuf: LPDWORD): UINT; stdcall;
- {$EXTERNALSYM MsiEnumComponentQualifiersW}
- function MsiEnumComponentQualifiers(szComponent: LPCTSTR; iIndex: DWORD;
- lpQualifierBuf: LPTSTR; var pcchQualifierBuf: DWORD; lpApplicationDataBuf: LPTSTR;
- pcchApplicationDataBuf: LPDWORD): UINT; stdcall;
- {$EXTERNALSYM MsiEnumComponentQualifiers}
- // --------------------------------------------------------------------------
- // Functions to obtain product or package information.
- // --------------------------------------------------------------------------
- // Open the installation for a product to obtain detailed information
- function MsiOpenProductA(szProduct: LPCSTR; var hProduct: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiOpenProductA}
- function MsiOpenProductW(szProduct: LPCWSTR; var hProduct: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiOpenProductW}
- function MsiOpenProduct(szProduct: LPCTSTR; var hProduct: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiOpenProduct}
- // Open a product package in order to access product properties
- function MsiOpenPackageA(szPackagePath: LPCSTR; var hProduct: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiOpenPackageA}
- function MsiOpenPackageW(szPackagePath: LPCWSTR; var hProduct: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiOpenPackageW}
- function MsiOpenPackage(szPackagePath: LPCTSTR; var hProduct: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiOpenPackage}
- // Open a product package in order to access product properties
- // Option to create a "safe" engine that does not look at machine state
- // and does not allow for modification of machine state
- function MsiOpenPackageExA(szPackagePath: LPCSTR; dwOptions: DWORD; var hProduct: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiOpenPackageExA}
- function MsiOpenPackageExW(szPackagePath: LPCWSTR; dwOptions: DWORD; var hProduct: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiOpenPackageExW}
- function MsiOpenPackageEx(szPackagePath: LPCTSTR; dwOptions: DWORD; var hProduct: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiOpenPackageEx}
- // Provide the value for an installation property.
- function MsiGetProductPropertyA(hProduct: MSIHANDLE; szProperty: LPCSTR;
- lpValueBuf: LPSTR; pcchValueBuf: LPDWORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetProductPropertyA}
- function MsiGetProductPropertyW(hProduct: MSIHANDLE; szProperty: LPCWSTR;
- lpValueBuf: LPWSTR; pcchValueBuf: LPDWORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetProductPropertyW}
- function MsiGetProductProperty(hProduct: MSIHANDLE; szProperty: LPCTSTR;
- lpValueBuf: LPTSTR; pcchValueBuf: LPDWORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetProductProperty}
- // Determine whether a file is a package
- // Returns ERROR_SUCCESS if file is a package.
- function MsiVerifyPackageA(szPackagePath: LPCSTR): UINT; stdcall;
- {$EXTERNALSYM MsiVerifyPackageA}
- function MsiVerifyPackageW(szPackagePath: LPCWSTR): UINT; stdcall;
- {$EXTERNALSYM MsiVerifyPackageW}
- function MsiVerifyPackage(szPackagePath: LPCTSTR): UINT; stdcall;
- {$EXTERNALSYM MsiVerifyPackage}
- // Provide descriptive information for product feature: title and description.
- // Returns the install level for the feature, or -1 if feature is unknown.
- // 0 = feature is not available on this machine
- // 1 = highest priority, feature installed if parent is installed
- // >1 = decreasing priority, feature installation based on InstallLevel property
- function MsiGetFeatureInfoA(hProduct: MSIHANDLE; szFeature: LPCSTR; var lpAttributes: DWORD;
- lpTitleBuf: LPSTR; var pcchTitleBuf: DWORD; lpHelpBuf: LPSTR; var pcchHelpBuf: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetFeatureInfoA}
- function MsiGetFeatureInfoW(hProduct: MSIHANDLE; szFeature: LPCWSTR; var lpAttributes: DWORD;
- lpTitleBuf: LPWSTR; var pcchTitleBuf: DWORD; lpHelpBuf: LPWSTR; var pcchHelpBuf: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetFeatureInfoW}
- function MsiGetFeatureInfo(hProduct: MSIHANDLE; szFeature: LPCTSTR; var lpAttributes: DWORD;
- lpTitleBuf: LPTSTR; var pcchTitleBuf: DWORD; lpHelpBuf: LPTSTR; var pcchHelpBuf: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetFeatureInfo}
- // --------------------------------------------------------------------------
- // Functions to access or install missing components and files.
- // These should be used as a last resort.
- // --------------------------------------------------------------------------
- // Install a component unexpectedly missing, provided only for error recovery
- // This would typically occur due to failue to establish feature availability
- // The product feature having the smallest incremental cost is installed
- function MsiInstallMissingComponentA(szProduct: LPCSTR; szComponent: LPCSTR;
- eInstallState: INSTALLSTATE): UINT; stdcall;
- {$EXTERNALSYM MsiInstallMissingComponentA}
- function MsiInstallMissingComponentW(szProduct: LPCWSTR; szComponent: LPCWSTR;
- eInstallState: INSTALLSTATE): UINT; stdcall;
- {$EXTERNALSYM MsiInstallMissingComponentW}
- function MsiInstallMissingComponent(szProduct: LPCTSTR; szComponent: LPCTSTR;
- eInstallState: INSTALLSTATE): UINT; stdcall;
- {$EXTERNALSYM MsiInstallMissingComponent}
- // Install a file unexpectedly missing, provided only for error recovery
- // This would typically occur due to failue to establish feature availability
- // The missing component is determined from the product's File table, then
- // the product feature having the smallest incremental cost is installed
- function MsiInstallMissingFileA(szProduct: LPCSTR; szFile: LPCSTR): UINT; stdcall;
- {$EXTERNALSYM MsiInstallMissingFileA}
- function MsiInstallMissingFileW(szProduct: LPCWSTR; szFile: LPCWSTR): UINT; stdcall;
- {$EXTERNALSYM MsiInstallMissingFileW}
- function MsiInstallMissingFile(szProduct: LPCTSTR; szFile: LPCTSTR): UINT; stdcall;
- {$EXTERNALSYM MsiInstallMissingFile}
- // Return full path to an installed component without a product code
- // This function attempts to determine the product using MsiGetProductCode
- // but is not guaranteed to find the correct product for the caller.
- // MsiGetComponentPath should always be called when possible.
- function MsiLocateComponentA(szComponent: LPCSTR; lpPathBuf: LPSTR; pcchBuf: LPDWORD): INSTALLSTATE; stdcall;
- {$EXTERNALSYM MsiLocateComponentA}
- function MsiLocateComponentW(szComponent: LPCWSTR; lpPathBuf: LPWSTR; pcchBuf: LPDWORD): INSTALLSTATE; stdcall;
- {$EXTERNALSYM MsiLocateComponentW}
- function MsiLocateComponent(szComponent: LPCTSTR; lpPathBuf: LPTSTR; pcchBuf: LPDWORD): INSTALLSTATE; stdcall;
- {$EXTERNALSYM MsiLocateComponent}
- {$IFDEF MSI110}
- // --------------------------------------------------------------------------
- // Functions used to manage the list of valid sources.
- // --------------------------------------------------------------------------
- // Opens the list of sources for the specified user's install of the product
- // and removes all network sources from the list. A NULL or empty value for
- // the user name indicates the per-machine install.
- function MsiSourceListClearAllA(szProduct: LPCSTR; szUserName: LPCSTR; dwReserved: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiSourceListClearAllA}
- function MsiSourceListClearAllW(szProduct: LPCWSTR; szUserName: LPCWSTR; dwReserved: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiSourceListClearAllW}
- function MsiSourceListClearAll(szProduct: LPCTSTR; szUserName: LPCTSTR; dwReserved: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiSourceListClearAll}
- // Opens the list of sources for the specified user's install of the product
- // and adds the provided source as a new network source. A NULL or empty
- // value for the user name indicates the per-machine install.
- function MsiSourceListAddSourceA(szProduct: LPCSTR; szUserName: LPCSTR;
- dwReserved: DWORD; szSource: LPCSTR): UINT; stdcall;
- {$EXTERNALSYM MsiSourceListAddSourceA}
- function MsiSourceListAddSourceW(szProduct: LPCWSTR; szUserName: LPCWSTR;
- dwReserved: DWORD; szSource: LPCWSTR): UINT; stdcall;
- {$EXTERNALSYM MsiSourceListAddSourceW}
- function MsiSourceListAddSource(szProduct: LPCTSTR; szUserName: LPCTSTR;
- dwReserved: DWORD; szSource: LPCTSTR): UINT; stdcall;
- {$EXTERNALSYM MsiSourceListAddSource}
- // Forces the installer to reevaluate the list of sources the next time that
- // the specified product needs a source.
- function MsiSourceListForceResolutionA(szProduct, szUserName: LPCSTR; dwReserved: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiSourceListForceResolutionA}
- function MsiSourceListForceResolutionW(szProduct, szUserName: LPCWSTR; dwReserved: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiSourceListForceResolutionW}
- function MsiSourceListForceResolution(szProduct, szUserName: LPCTSTR; dwReserved: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiSourceListForceResolution}
- {$ENDIF MSI110}
- // --------------------------------------------------------------------------
- // Utility functions
- // --------------------------------------------------------------------------
- // Give the version string and language for a specified file
- function MsiGetFileVersionA(szFilePath: LPCSTR; lpVersionBuf: LPSTR;
- var pcchVersionBuf: DWORD; lpLangBuf: LPSTR; var pcchLangBuf: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetFileVersionA}
- function MsiGetFileVersionW(szFilePath: LPCWSTR; lpVersionBuf: LPWSTR;
- var pcchVersionBuf: DWORD; lpLangBuf: LPWSTR; var pcchLangBuf: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetFileVersionW}
- function MsiGetFileVersion(szFilePath: LPCTSTR; lpVersionBuf: LPTSTR;
- var pcchVersionBuf: DWORD; lpLangBuf: LPTSTR; var pcchLangBuf: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetFileVersion}
- function MsiGetFileHashA(szFilePath: LPCSTR; dwOptions: DWORD; pHash: PMSIFILEHASHINFO): UINT; stdcall;
- {$EXTERNALSYM MsiGetFileHashA}
- function MsiGetFileHashW(szFilePath: LPCWSTR; dwOptions: DWORD; pHash: PMSIFILEHASHINFO): UINT; stdcall;
- {$EXTERNALSYM MsiGetFileHashW}
- function MsiGetFileHash(szFilePath: LPCTSTR; dwOptions: DWORD; pHash: PMSIFILEHASHINFO): UINT; stdcall;
- {$EXTERNALSYM MsiGetFileHash}
- function MsiGetFileSignatureInformationA(szSignedObjectPath: LPCSTR; dwFlags: DWORD; var ppcCertContext: PCCERT_CONTEXT;
- pbHashData: LPBYTE; pcbHashData: LPDWORD): HRESULT; stdcall;
- {$EXTERNALSYM MsiGetFileSignatureInformationA}
- function MsiGetFileSignatureInformationW(szSignedObjectPath: LPCWSTR; dwFlags: DWORD; var ppcCertContext: PCCERT_CONTEXT;
- pbHashData: LPBYTE; pcbHashData: LPDWORD): HRESULT; stdcall;
- {$EXTERNALSYM MsiGetFileSignatureInformationW}
- function MsiGetFileSignatureInformation(szSignedObjectPath: LPCTSTR; dwFlags: DWORD; var ppcCertContext: PCCERT_CONTEXT;
- pbHashData: LPBYTE; pcbHashData: LPDWORD): HRESULT; stdcall;
- {$EXTERNALSYM MsiGetFileSignatureInformation}
- // By default, when only requesting the certificate context, an invalid hash
- // in the digital signature is not a fatal error. Set this flag in the dwFlags
- // parameter to make the TRUST_E_BAD_DIGEST error fatal.
- const
- MSI_INVALID_HASH_IS_FATAL = $1;
- {$EXTERNALSYM MSI_INVALID_HASH_IS_FATAL}
- {$IFDEF MSI110}
- // examine a shortcut, and retrieve its descriptor information
- // if available.
- function MsiGetShortcutTargetA(szShortcutPath: LPCSTR; szProductCode: LPSTR;
- szFeatureId: LPSTR; szComponentCode: LPSTR): UINT; stdcall;
- {$EXTERNALSYM MsiGetShortcutTargetA}
- function MsiGetShortcutTargetW(szShortcutPath: LPCWSTR; szProductCode: LPWSTR;
- szFeatureId: LPWSTR; szComponentCode: LPWSTR): UINT; stdcall;
- {$EXTERNALSYM MsiGetShortcutTargetW}
- function MsiGetShortcutTarget(szShortcutPath: LPCTSTR; szProductCode: LPTSTR;
- szFeatureId: LPTSTR; szComponentCode: LPTSTR): UINT; stdcall;
- {$EXTERNALSYM MsiGetShortcutTarget}
- {$ENDIF MSI110}
- // checks to see if a product is managed
- // checks per-machine if called from system context, per-user if from
- // user context
- function MsiIsProductElevatedA(szProduct: LPCSTR; var pfElevated: BOOL): UINT; stdcall;
- {$EXTERNALSYM MsiIsProductElevatedA}
- function MsiIsProductElevatedW(szProduct: LPCWSTR; var pfElevated: BOOL): UINT; stdcall;
- {$EXTERNALSYM MsiIsProductElevatedW}
- function MsiIsProductElevated(szProduct: LPCTSTR; var pfElevated: BOOL): UINT; stdcall;
- {$EXTERNALSYM MsiIsProductElevated}
- // --------------------------------------------------------------------------
- // Error codes for installer access functions - until merged to winerr.h
- // --------------------------------------------------------------------------
- const
- ERROR_INSTALL_USEREXIT = 1602; // User cancel installation.
- {$EXTERNALSYM ERROR_INSTALL_USEREXIT}
- ERROR_INSTALL_FAILURE = 1603; // Fatal error during installation.
- {$EXTERNALSYM ERROR_INSTALL_FAILURE}
- ERROR_INSTALL_SUSPEND = 1604; // Installation suspended, incomplete.
- {$EXTERNALSYM ERROR_INSTALL_SUSPEND}
- ERROR_UNKNOWN_PRODUCT = 1605; // This action is only valid for products that are currently installed.
- {$EXTERNALSYM ERROR_UNKNOWN_PRODUCT}
- ERROR_UNKNOWN_FEATURE = 1606; // Feature ID not registered.
- {$EXTERNALSYM ERROR_UNKNOWN_FEATURE}
- ERROR_UNKNOWN_COMPONENT = 1607; // Component ID not registered.
- {$EXTERNALSYM ERROR_UNKNOWN_COMPONENT}
- ERROR_UNKNOWN_PROPERTY = 1608; // Unknown property.
- {$EXTERNALSYM ERROR_UNKNOWN_PROPERTY}
- ERROR_INVALID_HANDLE_STATE = 1609; // Handle is in an invalid state.
- {$EXTERNALSYM ERROR_INVALID_HANDLE_STATE}
- ERROR_BAD_CONFIGURATION = 1610; // The configuration data for this product is corrupt. Contact your support personnel.
- {$EXTERNALSYM ERROR_BAD_CONFIGURATION}
- ERROR_INDEX_ABSENT = 1611; // Component qualifier not present.
- {$EXTERNALSYM ERROR_INDEX_ABSENT}
- ERROR_INSTALL_SOURCE_ABSENT = 1612; // The installation source for this product is not available. Verify that the source exists and that you can access it.
- {$EXTERNALSYM ERROR_INSTALL_SOURCE_ABSENT}
- ERROR_PRODUCT_UNINSTALLED = 1614; // Product is uninstalled.
- {$EXTERNALSYM ERROR_PRODUCT_UNINSTALLED}
- ERROR_BAD_QUERY_SYNTAX = 1615; // SQL query syntax invalid or unsupported.
- {$EXTERNALSYM ERROR_BAD_QUERY_SYNTAX}
- ERROR_INVALID_FIELD = 1616; // Record field does not exist.
- {$EXTERNALSYM ERROR_INVALID_FIELD}
- ERROR_INSTALL_SERVICE_FAILURE = 1601; // The Windows Installer service could not be accessed. Contact your support personnel to verify that the Windows Installer service is properly registered.
- {$EXTERNALSYM ERROR_INSTALL_SERVICE_FAILURE}
- ERROR_INSTALL_PACKAGE_VERSION = 1613; // This installation package cannot be installed by the Windows Installer service. You must install a Windows service pack that contains a newer version of the Windows Installer service.
- {$EXTERNALSYM ERROR_INSTALL_PACKAGE_VERSION}
- ERROR_INSTALL_ALREADY_RUNNING = 1618; // Another installation is already in progress. Complete that installation before proceeding with this install.
- {$EXTERNALSYM ERROR_INSTALL_ALREADY_RUNNING}
- ERROR_INSTALL_PACKAGE_OPEN_FAILED = 1619; // This installation package could not be opened. Verify that the package exists and that you can access it, or contact the application vendor to verify that this is a valid Windows Installer package.
- {$EXTERNALSYM ERROR_INSTALL_PACKAGE_OPEN_FAILED}
- ERROR_INSTALL_PACKAGE_INVALID = 1620; // This installation package could not be opened. Contact the application vendor to verify that this is a valid Windows Installer package.
- {$EXTERNALSYM ERROR_INSTALL_PACKAGE_INVALID}
- ERROR_INSTALL_UI_FAILURE = 1621; // There was an error starting the Windows Installer service user interface. Contact your support personnel.
- {$EXTERNALSYM ERROR_INSTALL_UI_FAILURE}
- ERROR_INSTALL_LOG_FAILURE = 1622; // Error opening installation log file. Verify that the specified log file location exists and is writable.
- {$EXTERNALSYM ERROR_INSTALL_LOG_FAILURE}
- ERROR_INSTALL_LANGUAGE_UNSUPPORTED = 1623; // This language of this installation package is not supported by your system.
- {$EXTERNALSYM ERROR_INSTALL_LANGUAGE_UNSUPPORTED}
- ERROR_INSTALL_PACKAGE_REJECTED = 1625; // The system administrator has set policies to prevent this installation.
- {$EXTERNALSYM ERROR_INSTALL_PACKAGE_REJECTED}
- ERROR_FUNCTION_NOT_CALLED = 1626; // Function could not be executed.
- {$EXTERNALSYM ERROR_FUNCTION_NOT_CALLED}
- ERROR_FUNCTION_FAILED = 1627; // Function failed during execution.
- {$EXTERNALSYM ERROR_FUNCTION_FAILED}
- ERROR_INVALID_TABLE = 1628; // Invalid or unknown table specified.
- {$EXTERNALSYM ERROR_INVALID_TABLE}
- ERROR_DATATYPE_MISMATCH = 1629; // Data supplied is of wrong type.
- {$EXTERNALSYM ERROR_DATATYPE_MISMATCH}
- ERROR_UNSUPPORTED_TYPE = 1630; // Data of this type is not supported.
- {$EXTERNALSYM ERROR_UNSUPPORTED_TYPE}
- ERROR_CREATE_FAILED = 1631; // The Windows Installer service failed to start. Contact your support personnel.
- {$EXTERNALSYM ERROR_CREATE_FAILED}
- ERROR_INSTALL_TEMP_UNWRITABLE = 1632; // The Temp folder is on a drive that is full or is inaccessible. Free up space on the drive or verify that you have write permission on the Temp folder.
- {$EXTERNALSYM ERROR_INSTALL_TEMP_UNWRITABLE}
- ERROR_INSTALL_PLATFORM_UNSUPPORTED = 1633; // This installation package is not supported by this processor type. Contact your product vendor.
- {$EXTERNALSYM ERROR_INSTALL_PLATFORM_UNSUPPORTED}
- ERROR_INSTALL_NOTUSED = 1634; // Component not used on this machine
- {$EXTERNALSYM ERROR_INSTALL_NOTUSED}
- ERROR_INSTALL_TRANSFORM_FAILURE = 1624; // Error applying transforms. Verify that the specified transform paths are valid.
- {$EXTERNALSYM ERROR_INSTALL_TRANSFORM_FAILURE}
- ERROR_PATCH_PACKAGE_OPEN_FAILED = 1635; // This patch package could not be opened. Verify that the patch package exists and that you can access it, or contact the application vendor to verify that this is a valid Windows Installer patch package.
- {$EXTERNALSYM ERROR_PATCH_PACKAGE_OPEN_FAILED}
- ERROR_PATCH_PACKAGE_INVALID = 1636; // This patch package could not be opened. Contact the application vendor to verify that this is a valid Windows Installer patch package.
- {$EXTERNALSYM ERROR_PATCH_PACKAGE_INVALID}
- ERROR_PATCH_PACKAGE_UNSUPPORTED = 1637; // This patch package cannot be processed by the Windows Installer service. You must install a Windows service pack that contains a newer version of the Windows Installer service.
- {$EXTERNALSYM ERROR_PATCH_PACKAGE_UNSUPPORTED}
- ERROR_PRODUCT_VERSION = 1638; // Another version of this product is already installed. Installation of this version cannot continue. To configure or remove the existing version of this product, use Add/Remove Programs on the Control Panel.
- {$EXTERNALSYM ERROR_PRODUCT_VERSION}
- ERROR_INVALID_COMMAND_LINE = 1639; // Invalid command line argument. Consult the Windows Installer SDK for detailed command line help.
- {$EXTERNALSYM ERROR_INVALID_COMMAND_LINE}
- // The following three error codes are not returned from MSI version 1.0
- ERROR_INSTALL_REMOTE_DISALLOWED = 1640; // Configuration of this product is not permitted from remote sessions. Contact your administrator.
- {$EXTERNALSYM ERROR_INSTALL_REMOTE_DISALLOWED}
- ERROR_SUCCESS_REBOOT_INITIATED = 1641; // The requested operation completed successfully. The system will be restarted so the changes can take effect.
- {$EXTERNALSYM ERROR_SUCCESS_REBOOT_INITIATED}
- ERROR_PATCH_TARGET_NOT_FOUND = 1642; // The upgrade patch cannot be installed by the Windows Installer service because the program to be upgraded may be missing, or the upgrade patch may update a different version of the program. Verify that the program to be upgraded exists on your computer and that you have the correct upgrade patch.
- {$EXTERNALSYM ERROR_PATCH_TARGET_NOT_FOUND}
- // The following two error codes are not returned from MSI version 1.0, 1.1. or 1.2
- ERROR_PATCH_PACKAGE_REJECTED = 1643; // The patch package is not permitted by software restriction policy.
- {$EXTERNALSYM ERROR_PATCH_PACKAGE_REJECTED}
- ERROR_INSTALL_TRANSFORM_REJECTED = 1644; // One or more customizations are not permitted by software restriction policy.
- {$EXTERNALSYM ERROR_INSTALL_TRANSFORM_REJECTED}
- // The following error code is returned only from MSI post version 2.0
- // LOCALIZE BEGIN:
- //#ifndef ERROR_INSTALL_REMOTE_PROHIBITED
- ERROR_INSTALL_REMOTE_PROHIBITED = 1645; // The Windows Installer does not permit installation from a Remote Desktop Connection.
- {$EXTERNALSYM ERROR_INSTALL_REMOTE_PROHIBITED}
- //#endif
- // LOCALIZE END
- implementation
- uses
- JwaWinDLLNames;
- {$IFDEF DYNAMIC_LINK}
- var
- _MsiCloseHandle: Pointer;
- function MsiCloseHandle;
- begin
- GetProcedureAddress(_MsiCloseHandle, msilib, 'MsiCloseHandle');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiCloseHandle]
- end;
- end;
- var
- _MsiCloseAllHandles: Pointer;
- function MsiCloseAllHandles;
- begin
- GetProcedureAddress(_MsiCloseAllHandles, msilib, 'MsiCloseAllHandles');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiCloseAllHandles]
- end;
- end;
- var
- _MsiSetInternalUI: Pointer;
- function MsiSetInternalUI;
- begin
- GetProcedureAddress(_MsiSetInternalUI, msilib, 'MsiSetInternalUI');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSetInternalUI]
- end;
- end;
- var
- _MsiSetExternalUIA: Pointer;
- function MsiSetExternalUIA;
- begin
- GetProcedureAddress(_MsiSetExternalUIA, msilib, 'MsiSetExternalUIA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSetExternalUIA]
- end;
- end;
- var
- _MsiSetExternalUIW: Pointer;
- function MsiSetExternalUIW;
- begin
- GetProcedureAddress(_MsiSetExternalUIW, msilib, 'MsiSetExternalUIW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSetExternalUIW]
- end;
- end;
- var
- _MsiSetExternalUI: Pointer;
- function MsiSetExternalUI;
- begin
- GetProcedureAddress(_MsiSetExternalUI, msilib, 'MsiSetExternalUI' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSetExternalUI]
- end;
- end;
- var
- _MsiEnableLogA: Pointer;
- function MsiEnableLogA;
- begin
- GetProcedureAddress(_MsiEnableLogA, msilib, 'MsiEnableLogA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEnableLogA]
- end;
- end;
- var
- _MsiEnableLogW: Pointer;
- function MsiEnableLogW;
- begin
- GetProcedureAddress(_MsiEnableLogW, msilib, 'MsiEnableLogW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEnableLogW]
- end;
- end;
- var
- _MsiEnableLog: Pointer;
- function MsiEnableLog;
- begin
- GetProcedureAddress(_MsiEnableLog, msilib, 'MsiEnableLog' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEnableLog]
- end;
- end;
- var
- _MsiQueryProductStateA: Pointer;
- function MsiQueryProductStateA;
- begin
- GetProcedureAddress(_MsiQueryProductStateA, msilib, 'MsiQueryProductStateA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiQueryProductStateA]
- end;
- end;
- var
- _MsiQueryProductStateW: Pointer;
- function MsiQueryProductStateW;
- begin
- GetProcedureAddress(_MsiQueryProductStateW, msilib, 'MsiQueryProductStateW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiQueryProductStateW]
- end;
- end;
- var
- _MsiQueryProductState: Pointer;
- function MsiQueryProductState;
- begin
- GetProcedureAddress(_MsiQueryProductState, msilib, 'MsiQueryProductState' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiQueryProductState]
- end;
- end;
- var
- _MsiGetProductInfoA: Pointer;
- function MsiGetProductInfoA;
- begin
- GetProcedureAddress(_MsiGetProductInfoA, msilib, 'MsiGetProductInfoA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetProductInfoA]
- end;
- end;
- var
- _MsiGetProductInfoW: Pointer;
- function MsiGetProductInfoW;
- begin
- GetProcedureAddress(_MsiGetProductInfoW, msilib, 'MsiGetProductInfoW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetProductInfoW]
- end;
- end;
- var
- _MsiGetProductInfo: Pointer;
- function MsiGetProductInfo;
- begin
- GetProcedureAddress(_MsiGetProductInfo, msilib, 'MsiGetProductInfo' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetProductInfo]
- end;
- end;
- var
- _MsiInstallProductA: Pointer;
- function MsiInstallProductA;
- begin
- GetProcedureAddress(_MsiInstallProductA, msilib, 'MsiInstallProductA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiInstallProductA]
- end;
- end;
- var
- _MsiInstallProductW: Pointer;
- function MsiInstallProductW;
- begin
- GetProcedureAddress(_MsiInstallProductW, msilib, 'MsiInstallProductW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiInstallProductW]
- end;
- end;
- var
- _MsiInstallProduct: Pointer;
- function MsiInstallProduct;
- begin
- GetProcedureAddress(_MsiInstallProduct, msilib, 'MsiInstallProduct' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiInstallProduct]
- end;
- end;
- var
- _MsiConfigureProductA: Pointer;
- function MsiConfigureProductA;
- begin
- GetProcedureAddress(_MsiConfigureProductA, msilib, 'MsiConfigureProductA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiConfigureProductA]
- end;
- end;
- var
- _MsiConfigureProductW: Pointer;
- function MsiConfigureProductW;
- begin
- GetProcedureAddress(_MsiConfigureProductW, msilib, 'MsiConfigureProductW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiConfigureProductW]
- end;
- end;
- var
- _MsiConfigureProduct: Pointer;
- function MsiConfigureProduct;
- begin
- GetProcedureAddress(_MsiConfigureProduct, msilib, 'MsiConfigureProduct' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiConfigureProduct]
- end;
- end;
- var
- _MsiConfigureProductExA: Pointer;
- function MsiConfigureProductExA;
- begin
- GetProcedureAddress(_MsiConfigureProductExA, msilib, 'MsiConfigureProductExA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiConfigureProductExA]
- end;
- end;
- var
- _MsiConfigureProductExW: Pointer;
- function MsiConfigureProductExW;
- begin
- GetProcedureAddress(_MsiConfigureProductExW, msilib, 'MsiConfigureProductExW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiConfigureProductExW]
- end;
- end;
- var
- _MsiConfigureProductEx: Pointer;
- function MsiConfigureProductEx;
- begin
- GetProcedureAddress(_MsiConfigureProductEx, msilib, 'MsiConfigureProductEx' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiConfigureProductEx]
- end;
- end;
- var
- _MsiReinstallProductA: Pointer;
- function MsiReinstallProductA;
- begin
- GetProcedureAddress(_MsiReinstallProductA, msilib, 'MsiReinstallProductA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiReinstallProductA]
- end;
- end;
- var
- _MsiReinstallProductW: Pointer;
- function MsiReinstallProductW;
- begin
- GetProcedureAddress(_MsiReinstallProductW, msilib, 'MsiReinstallProductW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiReinstallProductW]
- end;
- end;
- var
- _MsiReinstallProduct: Pointer;
- function MsiReinstallProduct;
- begin
- GetProcedureAddress(_MsiReinstallProduct, msilib, 'MsiReinstallProduct' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiReinstallProduct]
- end;
- end;
- var
- _MsiAdvertiseProductExA: Pointer;
- function MsiAdvertiseProductExA;
- begin
- GetProcedureAddress(_MsiAdvertiseProductExA, msilib, 'MsiAdvertiseProductExA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiAdvertiseProductExA]
- end;
- end;
- var
- _MsiAdvertiseProductExW: Pointer;
- function MsiAdvertiseProductExW;
- begin
- GetProcedureAddress(_MsiAdvertiseProductExW, msilib, 'MsiAdvertiseProductExW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiAdvertiseProductExW]
- end;
- end;
- var
- _MsiAdvertiseProductEx: Pointer;
- function MsiAdvertiseProductEx;
- begin
- GetProcedureAddress(_MsiAdvertiseProductEx, msilib, 'MsiAdvertiseProductEx' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiAdvertiseProductEx]
- end;
- end;
- var
- _MsiAdvertiseProductA: Pointer;
- function MsiAdvertiseProductA;
- begin
- GetProcedureAddress(_MsiAdvertiseProductA, msilib, 'MsiAdvertiseProductA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiAdvertiseProductA]
- end;
- end;
- var
- _MsiAdvertiseProductW: Pointer;
- function MsiAdvertiseProductW;
- begin
- GetProcedureAddress(_MsiAdvertiseProductW, msilib, 'MsiAdvertiseProductW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiAdvertiseProductW]
- end;
- end;
- var
- _MsiAdvertiseProduct: Pointer;
- function MsiAdvertiseProduct;
- begin
- GetProcedureAddress(_MsiAdvertiseProduct, msilib, 'MsiAdvertiseProduct' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiAdvertiseProduct]
- end;
- end;
- var
- _MsiProcessAdvertiseScriptA: Pointer;
- function MsiProcessAdvertiseScriptA;
- begin
- GetProcedureAddress(_MsiProcessAdvertiseScriptA, msilib, 'MsiProcessAdvertiseScriptA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiProcessAdvertiseScriptA]
- end;
- end;
- var
- _MsiProcessAdvertiseScriptW: Pointer;
- function MsiProcessAdvertiseScriptW;
- begin
- GetProcedureAddress(_MsiProcessAdvertiseScriptW, msilib, 'MsiProcessAdvertiseScriptW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiProcessAdvertiseScriptW]
- end;
- end;
- var
- _MsiProcessAdvertiseScript: Pointer;
- function MsiProcessAdvertiseScript;
- begin
- GetProcedureAddress(_MsiProcessAdvertiseScript, msilib, 'MsiProcessAdvertiseScript' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiProcessAdvertiseScript]
- end;
- end;
- var
- _MsiAdvertiseScriptA: Pointer;
- function MsiAdvertiseScriptA;
- begin
- GetProcedureAddress(_MsiAdvertiseScriptA, msilib, 'MsiAdvertiseScriptA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiAdvertiseScriptA]
- end;
- end;
- var
- _MsiAdvertiseScriptW: Pointer;
- function MsiAdvertiseScriptW;
- begin
- GetProcedureAddress(_MsiAdvertiseScriptW, msilib, 'MsiAdvertiseScriptW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiAdvertiseScriptW]
- end;
- end;
- var
- _MsiAdvertiseScript: Pointer;
- function MsiAdvertiseScript;
- begin
- GetProcedureAddress(_MsiAdvertiseScript, msilib, 'MsiAdvertiseScript' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiAdvertiseScript]
- end;
- end;
- var
- _MsiGetProductInfoFromScriptA: Pointer;
- function MsiGetProductInfoFromScriptA;
- begin
- GetProcedureAddress(_MsiGetProductInfoFromScriptA, msilib, 'MsiGetProductInfoFromScriptA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetProductInfoFromScriptA]
- end;
- end;
- var
- _MsiGetProductInfoFromScriptW: Pointer;
- function MsiGetProductInfoFromScriptW;
- begin
- GetProcedureAddress(_MsiGetProductInfoFromScriptW, msilib, 'MsiGetProductInfoFromScriptW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetProductInfoFromScriptW]
- end;
- end;
- var
- _MsiGetProductInfoFromScript: Pointer;
- function MsiGetProductInfoFromScript;
- begin
- GetProcedureAddress(_MsiGetProductInfoFromScript, msilib, 'MsiGetProductInfoFromScript' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetProductInfoFromScript]
- end;
- end;
- var
- _MsiGetProductCodeA: Pointer;
- function MsiGetProductCodeA;
- begin
- GetProcedureAddress(_MsiGetProductCodeA, msilib, 'MsiGetProductCodeA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetProductCodeA]
- end;
- end;
- var
- _MsiGetProductCodeW: Pointer;
- function MsiGetProductCodeW;
- begin
- GetProcedureAddress(_MsiGetProductCodeW, msilib, 'MsiGetProductCodeW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetProductCodeW]
- end;
- end;
- var
- _MsiGetProductCode: Pointer;
- function MsiGetProductCode;
- begin
- GetProcedureAddress(_MsiGetProductCode, msilib, 'MsiGetProductCode' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetProductCode]
- end;
- end;
- var
- _MsiGetUserInfoA: Pointer;
- function MsiGetUserInfoA;
- begin
- GetProcedureAddress(_MsiGetUserInfoA, msilib, 'MsiGetUserInfoA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetUserInfoA]
- end;
- end;
- var
- _MsiGetUserInfoW: Pointer;
- function MsiGetUserInfoW;
- begin
- GetProcedureAddress(_MsiGetUserInfoW, msilib, 'MsiGetUserInfoW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetUserInfoW]
- end;
- end;
- var
- _MsiGetUserInfo: Pointer;
- function MsiGetUserInfo;
- begin
- GetProcedureAddress(_MsiGetUserInfo, msilib, 'MsiGetUserInfo' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetUserInfo]
- end;
- end;
- var
- _MsiCollectUserInfoA: Pointer;
- function MsiCollectUserInfoA;
- begin
- GetProcedureAddress(_MsiCollectUserInfoA, msilib, 'MsiCollectUserInfoA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiCollectUserInfoA]
- end;
- end;
- var
- _MsiCollectUserInfoW: Pointer;
- function MsiCollectUserInfoW;
- begin
- GetProcedureAddress(_MsiCollectUserInfoW, msilib, 'MsiCollectUserInfoW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiCollectUserInfoW]
- end;
- end;
- var
- _MsiCollectUserInfo: Pointer;
- function MsiCollectUserInfo;
- begin
- GetProcedureAddress(_MsiCollectUserInfo, msilib, 'MsiCollectUserInfo' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiCollectUserInfo]
- end;
- end;
- var
- _MsiApplyPatchA: Pointer;
- function MsiApplyPatchA;
- begin
- GetProcedureAddress(_MsiApplyPatchA, msilib, 'MsiApplyPatchA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiApplyPatchA]
- end;
- end;
- var
- _MsiApplyPatchW: Pointer;
- function MsiApplyPatchW;
- begin
- GetProcedureAddress(_MsiApplyPatchW, msilib, 'MsiApplyPatchW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiApplyPatchW]
- end;
- end;
- var
- _MsiApplyPatch: Pointer;
- function MsiApplyPatch;
- begin
- GetProcedureAddress(_MsiApplyPatch, msilib, 'MsiApplyPatch' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiApplyPatch]
- end;
- end;
- var
- _MsiGetPatchInfoA: Pointer;
- function MsiGetPatchInfoA;
- begin
- GetProcedureAddress(_MsiGetPatchInfoA, msilib, 'MsiGetPatchInfoA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetPatchInfoA]
- end;
- end;
- var
- _MsiGetPatchInfoW: Pointer;
- function MsiGetPatchInfoW;
- begin
- GetProcedureAddress(_MsiGetPatchInfoW, msilib, 'MsiGetPatchInfoW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetPatchInfoW]
- end;
- end;
- var
- _MsiGetPatchInfo: Pointer;
- function MsiGetPatchInfo;
- begin
- GetProcedureAddress(_MsiGetPatchInfo, msilib, 'MsiGetPatchInfo' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetPatchInfo]
- end;
- end;
- var
- _MsiEnumPatchesA: Pointer;
- function MsiEnumPatchesA;
- begin
- GetProcedureAddress(_MsiEnumPatchesA, msilib, 'MsiEnumPatchesA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEnumPatchesA]
- end;
- end;
- var
- _MsiEnumPatchesW: Pointer;
- function MsiEnumPatchesW;
- begin
- GetProcedureAddress(_MsiEnumPatchesW, msilib, 'MsiEnumPatchesW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEnumPatchesW]
- end;
- end;
- var
- _MsiEnumPatches: Pointer;
- function MsiEnumPatches;
- begin
- GetProcedureAddress(_MsiEnumPatches, msilib, 'MsiEnumPatches' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEnumPatches]
- end;
- end;
- var
- _MsiQueryFeatureStateA: Pointer;
- function MsiQueryFeatureStateA;
- begin
- GetProcedureAddress(_MsiQueryFeatureStateA, msilib, 'MsiQueryFeatureStateA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiQueryFeatureStateA]
- end;
- end;
- var
- _MsiQueryFeatureStateW: Pointer;
- function MsiQueryFeatureStateW;
- begin
- GetProcedureAddress(_MsiQueryFeatureStateW, msilib, 'MsiQueryFeatureStateW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiQueryFeatureStateW]
- end;
- end;
- var
- _MsiQueryFeatureState: Pointer;
- function MsiQueryFeatureState;
- begin
- GetProcedureAddress(_MsiQueryFeatureState, msilib, 'MsiQueryFeatureState' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiQueryFeatureState]
- end;
- end;
- var
- _MsiUseFeatureA: Pointer;
- function MsiUseFeatureA;
- begin
- GetProcedureAddress(_MsiUseFeatureA, msilib, 'MsiUseFeatureA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiUseFeatureA]
- end;
- end;
- var
- _MsiUseFeatureW: Pointer;
- function MsiUseFeatureW;
- begin
- GetProcedureAddress(_MsiUseFeatureW, msilib, 'MsiUseFeatureW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiUseFeatureW]
- end;
- end;
- var
- _MsiUseFeature: Pointer;
- function MsiUseFeature;
- begin
- GetProcedureAddress(_MsiUseFeature, msilib, 'MsiUseFeature' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiUseFeature]
- end;
- end;
- var
- _MsiUseFeatureExA: Pointer;
- function MsiUseFeatureExA;
- begin
- GetProcedureAddress(_MsiUseFeatureExA, msilib, 'MsiUseFeatureExA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiUseFeatureExA]
- end;
- end;
- var
- _MsiUseFeatureExW: Pointer;
- function MsiUseFeatureExW;
- begin
- GetProcedureAddress(_MsiUseFeatureExW, msilib, 'MsiUseFeatureExW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiUseFeatureExW]
- end;
- end;
- var
- _MsiUseFeatureEx: Pointer;
- function MsiUseFeatureEx;
- begin
- GetProcedureAddress(_MsiUseFeatureEx, msilib, 'MsiUseFeatureEx' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiUseFeatureEx]
- end;
- end;
- var
- _MsiGetFeatureUsageA: Pointer;
- function MsiGetFeatureUsageA;
- begin
- GetProcedureAddress(_MsiGetFeatureUsageA, msilib, 'MsiGetFeatureUsageA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetFeatureUsageA]
- end;
- end;
- var
- _MsiGetFeatureUsageW: Pointer;
- function MsiGetFeatureUsageW;
- begin
- GetProcedureAddress(_MsiGetFeatureUsageW, msilib, 'MsiGetFeatureUsageW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetFeatureUsageW]
- end;
- end;
- var
- _MsiGetFeatureUsage: Pointer;
- function MsiGetFeatureUsage;
- begin
- GetProcedureAddress(_MsiGetFeatureUsage, msilib, 'MsiGetFeatureUsage' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetFeatureUsage]
- end;
- end;
- var
- _MsiConfigureFeatureA: Pointer;
- function MsiConfigureFeatureA;
- begin
- GetProcedureAddress(_MsiConfigureFeatureA, msilib, 'MsiConfigureFeatureA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiConfigureFeatureA]
- end;
- end;
- var
- _MsiConfigureFeatureW: Pointer;
- function MsiConfigureFeatureW;
- begin
- GetProcedureAddress(_MsiConfigureFeatureW, msilib, 'MsiConfigureFeatureW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiConfigureFeatureW]
- end;
- end;
- var
- _MsiConfigureFeature: Pointer;
- function MsiConfigureFeature;
- begin
- GetProcedureAddress(_MsiConfigureFeature, msilib, 'MsiConfigureFeature' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiConfigureFeature]
- end;
- end;
- var
- _MsiReinstallFeatureA: Pointer;
- function MsiReinstallFeatureA;
- begin
- GetProcedureAddress(_MsiReinstallFeatureA, msilib, 'MsiReinstallFeatureA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiReinstallFeatureA]
- end;
- end;
- var
- _MsiReinstallFeatureW: Pointer;
- function MsiReinstallFeatureW;
- begin
- GetProcedureAddress(_MsiReinstallFeatureW, msilib, 'MsiReinstallFeatureW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiReinstallFeatureW]
- end;
- end;
- var
- _MsiReinstallFeature: Pointer;
- function MsiReinstallFeature;
- begin
- GetProcedureAddress(_MsiReinstallFeature, msilib, 'MsiReinstallFeature' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiReinstallFeature]
- end;
- end;
- var
- _MsiProvideComponentA: Pointer;
- function MsiProvideComponentA;
- begin
- GetProcedureAddress(_MsiProvideComponentA, msilib, 'MsiProvideComponentA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiProvideComponentA]
- end;
- end;
- var
- _MsiProvideComponentW: Pointer;
- function MsiProvideComponentW;
- begin
- GetProcedureAddress(_MsiProvideComponentW, msilib, 'MsiProvideComponentW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiProvideComponentW]
- end;
- end;
- var
- _MsiProvideComponent: Pointer;
- function MsiProvideComponent;
- begin
- GetProcedureAddress(_MsiProvideComponent, msilib, 'MsiProvideComponent' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiProvideComponent]
- end;
- end;
- var
- _MsiProvideQualifiedComponentA: Pointer;
- function MsiProvideQualifiedComponentA;
- begin
- GetProcedureAddress(_MsiProvideQualifiedComponentA, msilib, 'MsiProvideQualifiedComponentA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiProvideQualifiedComponentA]
- end;
- end;
- var
- _MsiProvideQualifiedComponentW: Pointer;
- function MsiProvideQualifiedComponentW;
- begin
- GetProcedureAddress(_MsiProvideQualifiedComponentW, msilib, 'MsiProvideQualifiedComponentW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiProvideQualifiedComponentW]
- end;
- end;
- var
- _MsiProvideQualifiedComponent: Pointer;
- function MsiProvideQualifiedComponent;
- begin
- GetProcedureAddress(_MsiProvideQualifiedComponent, msilib, 'MsiProvideQualifiedComponent' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiProvideQualifiedComponent]
- end;
- end;
- var
- _MsiProvideQualifiedComponentExA: Pointer;
- function MsiProvideQualifiedComponentExA;
- begin
- GetProcedureAddress(_MsiProvideQualifiedComponentExA, msilib, 'MsiProvideQualifiedComponentExA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiProvideQualifiedComponentExA]
- end;
- end;
- var
- _MsiProvideQualifiedComponentExW: Pointer;
- function MsiProvideQualifiedComponentExW;
- begin
- GetProcedureAddress(_MsiProvideQualifiedComponentExW, msilib, 'MsiProvideQualifiedComponentExW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiProvideQualifiedComponentExW]
- end;
- end;
- var
- _MsiProvideQualifiedComponentEx: Pointer;
- function MsiProvideQualifiedComponentEx;
- begin
- GetProcedureAddress(_MsiProvideQualifiedComponentEx, msilib, 'MsiProvideQualifiedComponentEx' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiProvideQualifiedComponentEx]
- end;
- end;
- var
- _MsiGetComponentPathA: Pointer;
- function MsiGetComponentPathA;
- begin
- GetProcedureAddress(_MsiGetComponentPathA, msilib, 'MsiGetComponentPathA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetComponentPathA]
- end;
- end;
- var
- _MsiGetComponentPathW: Pointer;
- function MsiGetComponentPathW;
- begin
- GetProcedureAddress(_MsiGetComponentPathW, msilib, 'MsiGetComponentPathW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetComponentPathW]
- end;
- end;
- var
- _MsiGetComponentPath: Pointer;
- function MsiGetComponentPath;
- begin
- GetProcedureAddress(_MsiGetComponentPath, msilib, 'MsiGetComponentPath' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetComponentPath]
- end;
- end;
- var
- _MsiProvideAssemblyA: Pointer;
- function MsiProvideAssemblyA;
- begin
- GetProcedureAddress(_MsiProvideAssemblyA, msilib, 'MsiProvideAssemblyA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiProvideAssemblyA]
- end;
- end;
- var
- _MsiProvideAssemblyW: Pointer;
- function MsiProvideAssemblyW;
- begin
- GetProcedureAddress(_MsiProvideAssemblyW, msilib, 'MsiProvideAssemblyW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiProvideAssemblyW]
- end;
- end;
- var
- _MsiProvideAssembly: Pointer;
- function MsiProvideAssembly;
- begin
- GetProcedureAddress(_MsiProvideAssembly, msilib, 'MsiProvideAssembly' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiProvideAssembly]
- end;
- end;
- var
- _MsiEnumProductsA: Pointer;
- function MsiEnumProductsA;
- begin
- GetProcedureAddress(_MsiEnumProductsA, msilib, 'MsiEnumProductsA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEnumProductsA]
- end;
- end;
- var
- _MsiEnumProductsW: Pointer;
- function MsiEnumProductsW;
- begin
- GetProcedureAddress(_MsiEnumProductsW, msilib, 'MsiEnumProductsW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEnumProductsW]
- end;
- end;
- var
- _MsiEnumProducts: Pointer;
- function MsiEnumProducts;
- begin
- GetProcedureAddress(_MsiEnumProducts, msilib, 'MsiEnumProducts' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEnumProducts]
- end;
- end;
- {$IFDEF MSI110}
- var
- _MsiEnumRelatedProductsA: Pointer;
- function MsiEnumRelatedProductsA;
- begin
- GetProcedureAddress(_MsiEnumRelatedProductsA, msilib, 'MsiEnumRelatedProductsA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEnumRelatedProductsA]
- end;
- end;
- var
- _MsiEnumRelatedProductsW: Pointer;
- function MsiEnumRelatedProductsW;
- begin
- GetProcedureAddress(_MsiEnumRelatedProductsW, msilib, 'MsiEnumRelatedProductsW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEnumRelatedProductsW]
- end;
- end;
- var
- _MsiEnumRelatedProducts: Pointer;
- function MsiEnumRelatedProducts;
- begin
- GetProcedureAddress(_MsiEnumRelatedProducts, msilib, 'MsiEnumRelatedProducts' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEnumRelatedProducts]
- end;
- end;
- {$ENDIF MSI110}
- var
- _MsiEnumFeaturesA: Pointer;
- function MsiEnumFeaturesA;
- begin
- GetProcedureAddress(_MsiEnumFeaturesA, msilib, 'MsiEnumFeaturesA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEnumFeaturesA]
- end;
- end;
- var
- _MsiEnumFeaturesW: Pointer;
- function MsiEnumFeaturesW;
- begin
- GetProcedureAddress(_MsiEnumFeaturesW, msilib, 'MsiEnumFeaturesW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEnumFeaturesW]
- end;
- end;
- var
- _MsiEnumFeatures: Pointer;
- function MsiEnumFeatures;
- begin
- GetProcedureAddress(_MsiEnumFeatures, msilib, 'MsiEnumFeatures' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEnumFeatures]
- end;
- end;
- var
- _MsiEnumComponentsA: Pointer;
- function MsiEnumComponentsA;
- begin
- GetProcedureAddress(_MsiEnumComponentsA, msilib, 'MsiEnumComponentsA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEnumComponentsA]
- end;
- end;
- var
- _MsiEnumComponentsW: Pointer;
- function MsiEnumComponentsW;
- begin
- GetProcedureAddress(_MsiEnumComponentsW, msilib, 'MsiEnumComponentsW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEnumComponentsW]
- end;
- end;
- var
- _MsiEnumComponents: Pointer;
- function MsiEnumComponents;
- begin
- GetProcedureAddress(_MsiEnumComponents, msilib, 'MsiEnumComponents' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEnumComponents]
- end;
- end;
- var
- _MsiEnumClientsA: Pointer;
- function MsiEnumClientsA;
- begin
- GetProcedureAddress(_MsiEnumClientsA, msilib, 'MsiEnumClientsA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEnumClientsA]
- end;
- end;
- var
- _MsiEnumClientsW: Pointer;
- function MsiEnumClientsW;
- begin
- GetProcedureAddress(_MsiEnumClientsW, msilib, 'MsiEnumClientsW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEnumClientsW]
- end;
- end;
- var
- _MsiEnumClients: Pointer;
- function MsiEnumClients;
- begin
- GetProcedureAddress(_MsiEnumClients, msilib, 'MsiEnumClients' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEnumClients]
- end;
- end;
- var
- _MsiEnumComponentQualifiersA: Pointer;
- function MsiEnumComponentQualifiersA;
- begin
- GetProcedureAddress(_MsiEnumComponentQualifiersA, msilib, 'MsiEnumComponentQualifiersA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEnumComponentQualifiersA]
- end;
- end;
- var
- _MsiEnumComponentQualifiersW: Pointer;
- function MsiEnumComponentQualifiersW;
- begin
- GetProcedureAddress(_MsiEnumComponentQualifiersW, msilib, 'MsiEnumComponentQualifiersW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEnumComponentQualifiersW]
- end;
- end;
- var
- _MsiEnumComponentQualifiers: Pointer;
- function MsiEnumComponentQualifiers;
- begin
- GetProcedureAddress(_MsiEnumComponentQualifiers, msilib, 'MsiEnumComponentQualifiers' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEnumComponentQualifiers]
- end;
- end;
- var
- _MsiOpenProductA: Pointer;
- function MsiOpenProductA;
- begin
- GetProcedureAddress(_MsiOpenProductA, msilib, 'MsiOpenProductA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiOpenProductA]
- end;
- end;
- var
- _MsiOpenProductW: Pointer;
- function MsiOpenProductW;
- begin
- GetProcedureAddress(_MsiOpenProductW, msilib, 'MsiOpenProductW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiOpenProductW]
- end;
- end;
- var
- _MsiOpenProduct: Pointer;
- function MsiOpenProduct;
- begin
- GetProcedureAddress(_MsiOpenProduct, msilib, 'MsiOpenProduct' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiOpenProduct]
- end;
- end;
- var
- _MsiOpenPackageA: Pointer;
- function MsiOpenPackageA;
- begin
- GetProcedureAddress(_MsiOpenPackageA, msilib, 'MsiOpenPackageA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiOpenPackageA]
- end;
- end;
- var
- _MsiOpenPackageW: Pointer;
- function MsiOpenPackageW;
- begin
- GetProcedureAddress(_MsiOpenPackageW, msilib, 'MsiOpenPackageW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiOpenPackageW]
- end;
- end;
- var
- _MsiOpenPackage: Pointer;
- function MsiOpenPackage;
- begin
- GetProcedureAddress(_MsiOpenPackage, msilib, 'MsiOpenPackage' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiOpenPackage]
- end;
- end;
- var
- _MsiOpenPackageExA: Pointer;
- function MsiOpenPackageExA;
- begin
- GetProcedureAddress(_MsiOpenPackageExA, msilib, 'MsiOpenPackageExA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiOpenPackageExA]
- end;
- end;
- var
- _MsiOpenPackageExW: Pointer;
- function MsiOpenPackageExW;
- begin
- GetProcedureAddress(_MsiOpenPackageExW, msilib, 'MsiOpenPackageExW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiOpenPackageExW]
- end;
- end;
- var
- _MsiOpenPackageEx: Pointer;
- function MsiOpenPackageEx;
- begin
- GetProcedureAddress(_MsiOpenPackageEx, msilib, 'MsiOpenPackageEx' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiOpenPackageEx]
- end;
- end;
- var
- _MsiGetProductPropertyA: Pointer;
- function MsiGetProductPropertyA;
- begin
- GetProcedureAddress(_MsiGetProductPropertyA, msilib, 'MsiGetProductPropertyA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetProductPropertyA]
- end;
- end;
- var
- _MsiGetProductPropertyW: Pointer;
- function MsiGetProductPropertyW;
- begin
- GetProcedureAddress(_MsiGetProductPropertyW, msilib, 'MsiGetProductPropertyW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetProductPropertyW]
- end;
- end;
- var
- _MsiGetProductProperty: Pointer;
- function MsiGetProductProperty;
- begin
- GetProcedureAddress(_MsiGetProductProperty, msilib, 'MsiGetProductProperty' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetProductProperty]
- end;
- end;
- var
- _MsiVerifyPackageA: Pointer;
- function MsiVerifyPackageA;
- begin
- GetProcedureAddress(_MsiVerifyPackageA, msilib, 'MsiVerifyPackageA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiVerifyPackageA]
- end;
- end;
- var
- _MsiVerifyPackageW: Pointer;
- function MsiVerifyPackageW;
- begin
- GetProcedureAddress(_MsiVerifyPackageW, msilib, 'MsiVerifyPackageW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiVerifyPackageW]
- end;
- end;
- var
- _MsiVerifyPackage: Pointer;
- function MsiVerifyPackage;
- begin
- GetProcedureAddress(_MsiVerifyPackage, msilib, 'MsiVerifyPackage' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiVerifyPackage]
- end;
- end;
- var
- _MsiGetFeatureInfoA: Pointer;
- function MsiGetFeatureInfoA;
- begin
- GetProcedureAddress(_MsiGetFeatureInfoA, msilib, 'MsiGetFeatureInfoA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetFeatureInfoA]
- end;
- end;
- var
- _MsiGetFeatureInfoW: Pointer;
- function MsiGetFeatureInfoW;
- begin
- GetProcedureAddress(_MsiGetFeatureInfoW, msilib, 'MsiGetFeatureInfoW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetFeatureInfoW]
- end;
- end;
- var
- _MsiGetFeatureInfo: Pointer;
- function MsiGetFeatureInfo;
- begin
- GetProcedureAddress(_MsiGetFeatureInfo, msilib, 'MsiGetFeatureInfo' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetFeatureInfo]
- end;
- end;
- var
- _MsiInstallMissingComponentA: Pointer;
- function MsiInstallMissingComponentA;
- begin
- GetProcedureAddress(_MsiInstallMissingComponentA, msilib, 'MsiInstallMissingComponentA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiInstallMissingComponentA]
- end;
- end;
- var
- _MsiInstallMissingComponentW: Pointer;
- function MsiInstallMissingComponentW;
- begin
- GetProcedureAddress(_MsiInstallMissingComponentW, msilib, 'MsiInstallMissingComponentW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiInstallMissingComponentW]
- end;
- end;
- var
- _MsiInstallMissingComponent: Pointer;
- function MsiInstallMissingComponent;
- begin
- GetProcedureAddress(_MsiInstallMissingComponent, msilib, 'MsiInstallMissingComponent' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiInstallMissingComponent]
- end;
- end;
- var
- _MsiInstallMissingFileA: Pointer;
- function MsiInstallMissingFileA;
- begin
- GetProcedureAddress(_MsiInstallMissingFileA, msilib, 'MsiInstallMissingFileA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiInstallMissingFileA]
- end;
- end;
- var
- _MsiInstallMissingFileW: Pointer;
- function MsiInstallMissingFileW;
- begin
- GetProcedureAddress(_MsiInstallMissingFileW, msilib, 'MsiInstallMissingFileW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiInstallMissingFileW]
- end;
- end;
- var
- _MsiInstallMissingFile: Pointer;
- function MsiInstallMissingFile;
- begin
- GetProcedureAddress(_MsiInstallMissingFile, msilib, 'MsiInstallMissingFile' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiInstallMissingFile]
- end;
- end;
- var
- _MsiLocateComponentA: Pointer;
- function MsiLocateComponentA;
- begin
- GetProcedureAddress(_MsiLocateComponentA, msilib, 'MsiLocateComponentA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiLocateComponentA]
- end;
- end;
- var
- _MsiLocateComponentW: Pointer;
- function MsiLocateComponentW;
- begin
- GetProcedureAddress(_MsiLocateComponentW, msilib, 'MsiLocateComponentW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiLocateComponentW]
- end;
- end;
- var
- _MsiLocateComponent: Pointer;
- function MsiLocateComponent;
- begin
- GetProcedureAddress(_MsiLocateComponent, msilib, 'MsiLocateComponent' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiLocateComponent]
- end;
- end;
- {$IFDEF MSI110}
- var
- _MsiSourceListClearAllA: Pointer;
- function MsiSourceListClearAllA;
- begin
- GetProcedureAddress(_MsiSourceListClearAllA, msilib, 'MsiSourceListClearAllA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSourceListClearAllA]
- end;
- end;
- var
- _MsiSourceListClearAllW: Pointer;
- function MsiSourceListClearAllW;
- begin
- GetProcedureAddress(_MsiSourceListClearAllW, msilib, 'MsiSourceListClearAllW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSourceListClearAllW]
- end;
- end;
- var
- _MsiSourceListClearAll: Pointer;
- function MsiSourceListClearAll;
- begin
- GetProcedureAddress(_MsiSourceListClearAll, msilib, 'MsiSourceListClearAll' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSourceListClearAll]
- end;
- end;
- var
- _MsiSourceListAddSourceA: Pointer;
- function MsiSourceListAddSourceA;
- begin
- GetProcedureAddress(_MsiSourceListAddSourceA, msilib, 'MsiSourceListAddSourceA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSourceListAddSourceA]
- end;
- end;
- var
- _MsiSourceListAddSourceW: Pointer;
- function MsiSourceListAddSourceW;
- begin
- GetProcedureAddress(_MsiSourceListAddSourceW, msilib, 'MsiSourceListAddSourceW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSourceListAddSourceW]
- end;
- end;
- var
- _MsiSourceListAddSource: Pointer;
- function MsiSourceListAddSource;
- begin
- GetProcedureAddress(_MsiSourceListAddSource, msilib, 'MsiSourceListAddSource' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSourceListAddSource]
- end;
- end;
- var
- _MsiSourceListForceResolutionA: Pointer;
- function MsiSourceListForceResolutionA;
- begin
- GetProcedureAddress(_MsiSourceListForceResolutionA, msilib, 'MsiSourceListForceResolutionA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSourceListForceResolutionA]
- end;
- end;
- var
- _MsiSourceListForceResolutionW: Pointer;
- function MsiSourceListForceResolutionW;
- begin
- GetProcedureAddress(_MsiSourceListForceResolutionW, msilib, 'MsiSourceListForceResolutionW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSourceListForceResolutionW]
- end;
- end;
- var
- _MsiSourceListForceResolution: Pointer;
- function MsiSourceListForceResolution;
- begin
- GetProcedureAddress(_MsiSourceListForceResolution, msilib, 'MsiSourceListForceResolution' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSourceListForceResolution]
- end;
- end;
- {$ENDIF MSI110}
- var
- _MsiGetFileVersionA: Pointer;
- function MsiGetFileVersionA;
- begin
- GetProcedureAddress(_MsiGetFileVersionA, msilib, 'MsiGetFileVersionA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetFileVersionA]
- end;
- end;
- var
- _MsiGetFileVersionW: Pointer;
- function MsiGetFileVersionW;
- begin
- GetProcedureAddress(_MsiGetFileVersionW, msilib, 'MsiGetFileVersionW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetFileVersionW]
- end;
- end;
- var
- _MsiGetFileVersion: Pointer;
- function MsiGetFileVersion;
- begin
- GetProcedureAddress(_MsiGetFileVersion, msilib, 'MsiGetFileVersion' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetFileVersion]
- end;
- end;
- var
- _MsiGetFileHashA: Pointer;
- function MsiGetFileHashA;
- begin
- GetProcedureAddress(_MsiGetFileHashA, msilib, 'MsiGetFileHashA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetFileHashA]
- end;
- end;
- var
- _MsiGetFileHashW: Pointer;
- function MsiGetFileHashW;
- begin
- GetProcedureAddress(_MsiGetFileHashW, msilib, 'MsiGetFileHashW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetFileHashW]
- end;
- end;
- var
- _MsiGetFileHash: Pointer;
- function MsiGetFileHash;
- begin
- GetProcedureAddress(_MsiGetFileHash, msilib, 'MsiGetFileHash' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetFileHash]
- end;
- end;
- var
- _MsiGetFileSignatureInformationA: Pointer;
- function MsiGetFileSignatureInformationA;
- begin
- GetProcedureAddress(_MsiGetFileSignatureInformationA, msilib, 'MsiGetFileSignatureInformationA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetFileSignatureInformationA]
- end;
- end;
- var
- _MsiGetFileSignatureInformationW: Pointer;
- function MsiGetFileSignatureInformationW;
- begin
- GetProcedureAddress(_MsiGetFileSignatureInformationW, msilib, 'MsiGetFileSignatureInformationW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetFileSignatureInformationW]
- end;
- end;
- var
- _MsiGetFileSignatureInformation: Pointer;
- function MsiGetFileSignatureInformation;
- begin
- GetProcedureAddress(_MsiGetFileSignatureInformation, msilib, 'MsiGetFileSignatureInformation' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetFileSignatureInformation]
- end;
- end;
- {$IFDEF MSI110}
- var
- _MsiGetShortcutTargetA: Pointer;
- function MsiGetShortcutTargetA;
- begin
- GetProcedureAddress(_MsiGetShortcutTargetA, msilib, 'MsiGetShortcutTargetA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetShortcutTargetA]
- end;
- end;
- var
- _MsiGetShortcutTargetW: Pointer;
- function MsiGetShortcutTargetW;
- begin
- GetProcedureAddress(_MsiGetShortcutTargetW, msilib, 'MsiGetShortcutTargetW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetShortcutTargetW]
- end;
- end;
- var
- _MsiGetShortcutTarget: Pointer;
- function MsiGetShortcutTarget;
- begin
- GetProcedureAddress(_MsiGetShortcutTarget, msilib, 'MsiGetShortcutTarget' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetShortcutTarget]
- end;
- end;
- {$ENDIF MSI110}
- var
- _MsiIsProductElevatedA: Pointer;
- function MsiIsProductElevatedA;
- begin
- GetProcedureAddress(_MsiIsProductElevatedA, msilib, 'MsiIsProductElevatedA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiIsProductElevatedA]
- end;
- end;
- var
- _MsiIsProductElevatedW: Pointer;
- function MsiIsProductElevatedW;
- begin
- GetProcedureAddress(_MsiIsProductElevatedW, msilib, 'MsiIsProductElevatedW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiIsProductElevatedW]
- end;
- end;
- var
- _MsiIsProductElevated: Pointer;
- function MsiIsProductElevated;
- begin
- GetProcedureAddress(_MsiIsProductElevated, msilib, 'MsiIsProductElevated' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiIsProductElevated]
- end;
- end;
- {$ELSE}
- function MsiCloseHandle; external msilib name 'MsiCloseHandle';
- function MsiCloseAllHandles; external msilib name 'MsiCloseAllHandles';
- function MsiSetInternalUI; external msilib name 'MsiSetInternalUI';
- function MsiSetExternalUIA; external msilib name 'MsiSetExternalUIA';
- function MsiSetExternalUIW; external msilib name 'MsiSetExternalUIW';
- function MsiSetExternalUI; external msilib name 'MsiSetExternalUI' + AWSuffix;
- function MsiEnableLogA; external msilib name 'MsiEnableLogA';
- function MsiEnableLogW; external msilib name 'MsiEnableLogW';
- function MsiEnableLog; external msilib name 'MsiEnableLog' + AWSuffix;
- function MsiQueryProductStateA; external msilib name 'MsiQueryProductStateA';
- function MsiQueryProductStateW; external msilib name 'MsiQueryProductStateW';
- function MsiQueryProductState; external msilib name 'MsiQueryProductState' + AWSuffix;
- function MsiGetProductInfoA; external msilib name 'MsiGetProductInfoA';
- function MsiGetProductInfoW; external msilib name 'MsiGetProductInfoW';
- function MsiGetProductInfo; external msilib name 'MsiGetProductInfo' + AWSuffix;
- function MsiInstallProductA; external msilib name 'MsiInstallProductA';
- function MsiInstallProductW; external msilib name 'MsiInstallProductW';
- function MsiInstallProduct; external msilib name 'MsiInstallProduct' + AWSuffix;
- function MsiConfigureProductA; external msilib name 'MsiConfigureProductA';
- function MsiConfigureProductW; external msilib name 'MsiConfigureProductW';
- function MsiConfigureProduct; external msilib name 'MsiConfigureProduct' + AWSuffix;
- function MsiConfigureProductExA; external msilib name 'MsiConfigureProductExA';
- function MsiConfigureProductExW; external msilib name 'MsiConfigureProductExW';
- function MsiConfigureProductEx; external msilib name 'MsiConfigureProductEx' + AWSuffix;
- function MsiReinstallProductA; external msilib name 'MsiReinstallProductA';
- function MsiReinstallProductW; external msilib name 'MsiReinstallProductW';
- function MsiReinstallProduct; external msilib name 'MsiReinstallProduct' + AWSuffix;
- function MsiAdvertiseProductExA; external msilib name 'MsiAdvertiseProductExA';
- function MsiAdvertiseProductExW; external msilib name 'MsiAdvertiseProductExW';
- function MsiAdvertiseProductEx; external msilib name 'MsiAdvertiseProductEx' + AWSuffix;
- function MsiAdvertiseProductA; external msilib name 'MsiAdvertiseProductA';
- function MsiAdvertiseProductW; external msilib name 'MsiAdvertiseProductW';
- function MsiAdvertiseProduct; external msilib name 'MsiAdvertiseProduct' + AWSuffix;
- function MsiProcessAdvertiseScriptA; external msilib name 'MsiProcessAdvertiseScriptA';
- function MsiProcessAdvertiseScriptW; external msilib name 'MsiProcessAdvertiseScriptW';
- function MsiProcessAdvertiseScript; external msilib name 'MsiProcessAdvertiseScript' + AWSuffix;
- function MsiAdvertiseScriptA; external msilib name 'MsiAdvertiseScriptA';
- function MsiAdvertiseScriptW; external msilib name 'MsiAdvertiseScriptW';
- function MsiAdvertiseScript; external msilib name 'MsiAdvertiseScript' + AWSuffix;
- function MsiGetProductInfoFromScriptA; external msilib name 'MsiGetProductInfoFromScriptA';
- function MsiGetProductInfoFromScriptW; external msilib name 'MsiGetProductInfoFromScriptW';
- function MsiGetProductInfoFromScript; external msilib name 'MsiGetProductInfoFromScript' + AWSuffix;
- function MsiGetProductCodeA; external msilib name 'MsiGetProductCodeA';
- function MsiGetProductCodeW; external msilib name 'MsiGetProductCodeW';
- function MsiGetProductCode; external msilib name 'MsiGetProductCode' + AWSuffix;
- function MsiGetUserInfoA; external msilib name 'MsiGetUserInfoA';
- function MsiGetUserInfoW; external msilib name 'MsiGetUserInfoW';
- function MsiGetUserInfo; external msilib name 'MsiGetUserInfo' + AWSuffix;
- function MsiCollectUserInfoA; external msilib name 'MsiCollectUserInfoA';
- function MsiCollectUserInfoW; external msilib name 'MsiCollectUserInfoW';
- function MsiCollectUserInfo; external msilib name 'MsiCollectUserInfo' + AWSuffix;
- function MsiApplyPatchA; external msilib name 'MsiApplyPatchA';
- function MsiApplyPatchW; external msilib name 'MsiApplyPatchW';
- function MsiApplyPatch; external msilib name 'MsiApplyPatch' + AWSuffix;
- function MsiGetPatchInfoA; external msilib name 'MsiGetPatchInfoA';
- function MsiGetPatchInfoW; external msilib name 'MsiGetPatchInfoW';
- function MsiGetPatchInfo; external msilib name 'MsiGetPatchInfo' + AWSuffix;
- function MsiEnumPatchesA; external msilib name 'MsiEnumPatchesA';
- function MsiEnumPatchesW; external msilib name 'MsiEnumPatchesW';
- function MsiEnumPatches; external msilib name 'MsiEnumPatches' + AWSuffix;
- function MsiQueryFeatureStateA; external msilib name 'MsiQueryFeatureStateA';
- function MsiQueryFeatureStateW; external msilib name 'MsiQueryFeatureStateW';
- function MsiQueryFeatureState; external msilib name 'MsiQueryFeatureState' + AWSuffix;
- function MsiUseFeatureA; external msilib name 'MsiUseFeatureA';
- function MsiUseFeatureW; external msilib name 'MsiUseFeatureW';
- function MsiUseFeature; external msilib name 'MsiUseFeature' + AWSuffix;
- function MsiUseFeatureExA; external msilib name 'MsiUseFeatureExA';
- function MsiUseFeatureExW; external msilib name 'MsiUseFeatureExW';
- function MsiUseFeatureEx; external msilib name 'MsiUseFeatureEx' + AWSuffix;
- function MsiGetFeatureUsageA; external msilib name 'MsiGetFeatureUsageA';
- function MsiGetFeatureUsageW; external msilib name 'MsiGetFeatureUsageW';
- function MsiGetFeatureUsage; external msilib name 'MsiGetFeatureUsage' + AWSuffix;
- function MsiConfigureFeatureA; external msilib name 'MsiConfigureFeatureA';
- function MsiConfigureFeatureW; external msilib name 'MsiConfigureFeatureW';
- function MsiConfigureFeature; external msilib name 'MsiConfigureFeature' + AWSuffix;
- function MsiReinstallFeatureA; external msilib name 'MsiReinstallFeatureA';
- function MsiReinstallFeatureW; external msilib name 'MsiReinstallFeatureW';
- function MsiReinstallFeature; external msilib name 'MsiReinstallFeature' + AWSuffix;
- function MsiProvideComponentA; external msilib name 'MsiProvideComponentA';
- function MsiProvideComponentW; external msilib name 'MsiProvideComponentW';
- function MsiProvideComponent; external msilib name 'MsiProvideComponent' + AWSuffix;
- function MsiProvideQualifiedComponentA; external msilib name 'MsiProvideQualifiedComponentA';
- function MsiProvideQualifiedComponentW; external msilib name 'MsiProvideQualifiedComponentW';
- function MsiProvideQualifiedComponent; external msilib name 'MsiProvideQualifiedComponent' + AWSuffix;
- function MsiProvideQualifiedComponentExA; external msilib name 'MsiProvideQualifiedComponentExA';
- function MsiProvideQualifiedComponentExW; external msilib name 'MsiProvideQualifiedComponentExW';
- function MsiProvideQualifiedComponentEx; external msilib name 'MsiProvideQualifiedComponentEx' + AWSuffix;
- function MsiGetComponentPathA; external msilib name 'MsiGetComponentPathA';
- function MsiGetComponentPathW; external msilib name 'MsiGetComponentPathW';
- function MsiGetComponentPath; external msilib name 'MsiGetComponentPath' + AWSuffix;
- function MsiProvideAssemblyA; external msilib name 'MsiProvideAssemblyA';
- function MsiProvideAssemblyW; external msilib name 'MsiProvideAssemblyW';
- function MsiProvideAssembly; external msilib name 'MsiProvideAssembly' + AWSuffix;
- function MsiEnumProductsA; external msilib name 'MsiEnumProductsA';
- function MsiEnumProductsW; external msilib name 'MsiEnumProductsW';
- function MsiEnumProducts; external msilib name 'MsiEnumProducts' + AWSuffix;
- {$IFDEF MSI110}
- function MsiEnumRelatedProductsA; external msilib name 'MsiEnumRelatedProductsA';
- function MsiEnumRelatedProductsW; external msilib name 'MsiEnumRelatedProductsW';
- function MsiEnumRelatedProducts; external msilib name 'MsiEnumRelatedProducts' + AWSuffix;
- {$ENDIF MSI110}
- function MsiEnumFeaturesA; external msilib name 'MsiEnumFeaturesA';
- function MsiEnumFeaturesW; external msilib name 'MsiEnumFeaturesW';
- function MsiEnumFeatures; external msilib name 'MsiEnumFeatures' + AWSuffix;
- function MsiEnumComponentsA; external msilib name 'MsiEnumComponentsA';
- function MsiEnumComponentsW; external msilib name 'MsiEnumComponentsW';
- function MsiEnumComponents; external msilib name 'MsiEnumComponents' + AWSuffix;
- function MsiEnumClientsA; external msilib name 'MsiEnumClientsA';
- function MsiEnumClientsW; external msilib name 'MsiEnumClientsW';
- function MsiEnumClients; external msilib name 'MsiEnumClients' + AWSuffix;
- function MsiEnumComponentQualifiersA; external msilib name 'MsiEnumComponentQualifiersA';
- function MsiEnumComponentQualifiersW; external msilib name 'MsiEnumComponentQualifiersW';
- function MsiEnumComponentQualifiers; external msilib name 'MsiEnumComponentQualifiers' + AWSuffix;
- function MsiOpenProductA; external msilib name 'MsiOpenProductA';
- function MsiOpenProductW; external msilib name 'MsiOpenProductW';
- function MsiOpenProduct; external msilib name 'MsiOpenProduct' + AWSuffix;
- function MsiOpenPackageA; external msilib name 'MsiOpenPackageA';
- function MsiOpenPackageW; external msilib name 'MsiOpenPackageW';
- function MsiOpenPackage; external msilib name 'MsiOpenPackage' + AWSuffix;
- function MsiOpenPackageExA; external msilib name 'MsiOpenPackageExA';
- function MsiOpenPackageExW; external msilib name 'MsiOpenPackageExW';
- function MsiOpenPackageEx; external msilib name 'MsiOpenPackageEx' + AWSuffix;
- function MsiGetProductPropertyA; external msilib name 'MsiGetProductPropertyA';
- function MsiGetProductPropertyW; external msilib name 'MsiGetProductPropertyW';
- function MsiGetProductProperty; external msilib name 'MsiGetProductProperty' + AWSuffix;
- function MsiVerifyPackageA; external msilib name 'MsiVerifyPackageA';
- function MsiVerifyPackageW; external msilib name 'MsiVerifyPackageW';
- function MsiVerifyPackage; external msilib name 'MsiVerifyPackage' + AWSuffix;
- function MsiGetFeatureInfoA; external msilib name 'MsiGetFeatureInfoA';
- function MsiGetFeatureInfoW; external msilib name 'MsiGetFeatureInfoW';
- function MsiGetFeatureInfo; external msilib name 'MsiGetFeatureInfo' + AWSuffix;
- function MsiInstallMissingComponentA; external msilib name 'MsiInstallMissingComponentA';
- function MsiInstallMissingComponentW; external msilib name 'MsiInstallMissingComponentW';
- function MsiInstallMissingComponent; external msilib name 'MsiInstallMissingComponent' + AWSuffix;
- function MsiInstallMissingFileA; external msilib name 'MsiInstallMissingFileA';
- function MsiInstallMissingFileW; external msilib name 'MsiInstallMissingFileW';
- function MsiInstallMissingFile; external msilib name 'MsiInstallMissingFile' + AWSuffix;
- function MsiLocateComponentA; external msilib name 'MsiLocateComponentA';
- function MsiLocateComponentW; external msilib name 'MsiLocateComponentW';
- function MsiLocateComponent; external msilib name 'MsiLocateComponent' + AWSuffix;
- {$IFDEF MSI110}
- function MsiSourceListClearAllA; external msilib name 'MsiSourceListClearAllA';
- function MsiSourceListClearAllW; external msilib name 'MsiSourceListClearAllW';
- function MsiSourceListClearAll; external msilib name 'MsiSourceListClearAll' + AWSuffix;
- function MsiSourceListAddSourceA; external msilib name 'MsiSourceListAddSourceA';
- function MsiSourceListAddSourceW; external msilib name 'MsiSourceListAddSourceW';
- function MsiSourceListAddSource; external msilib name 'MsiSourceListAddSource' + AWSuffix;
- function MsiSourceListForceResolutionA; external msilib name 'MsiSourceListForceResolutionA';
- function MsiSourceListForceResolutionW; external msilib name 'MsiSourceListForceResolutionW';
- function MsiSourceListForceResolution; external msilib name 'MsiSourceListForceResolution' + AWSuffix;
- {$ENDIF MSI110}
- function MsiGetFileVersionA; external msilib name 'MsiGetFileVersionA';
- function MsiGetFileVersionW; external msilib name 'MsiGetFileVersionW';
- function MsiGetFileVersion; external msilib name 'MsiGetFileVersion' + AWSuffix;
- function MsiGetFileHashA; external msilib name 'MsiGetFileHashA';
- function MsiGetFileHashW; external msilib name 'MsiGetFileHashW';
- function MsiGetFileHash; external msilib name 'MsiGetFileHash' + AWSuffix;
- function MsiGetFileSignatureInformationA; external msilib name 'MsiGetFileSignatureInformationA';
- function MsiGetFileSignatureInformationW; external msilib name 'MsiGetFileSignatureInformationW';
- function MsiGetFileSignatureInformation; external msilib name 'MsiGetFileSignatureInformation' + AWSuffix;
- {$IFDEF MSI110}
- function MsiGetShortcutTargetA; external msilib name 'MsiGetShortcutTargetA';
- function MsiGetShortcutTargetW; external msilib name 'MsiGetShortcutTargetW';
- function MsiGetShortcutTarget; external msilib name 'MsiGetShortcutTarget' + AWSuffix;
- {$ENDIF MSI110}
- function MsiIsProductElevatedA; external msilib name 'MsiIsProductElevatedA';
- function MsiIsProductElevatedW; external msilib name 'MsiIsProductElevatedW';
- function MsiIsProductElevated; external msilib name 'MsiIsProductElevated' + AWSuffix;
- {$ENDIF DYNAMIC_LINK}
- end.
|