123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955 |
- {******************************************************************************}
- { }
- { 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: msiquery.h, released June 2000. The original Pascal }
- { code is: MsiQuery.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. }
- { }
- { 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 }
- { }
- {******************************************************************************}
- unit JwaMsiQuery;
- {$WEAKPACKAGEUNIT}
- {$HPPEMIT ''}
- {$HPPEMIT '#include "msiquery.h"'}
- {$HPPEMIT ''}
- {$I jediapilib.inc}
- interface
- uses
- JwaMsi, JwaWinBase, JwaWinType;
- (*****************************************************************************\
- * *
- * MsiQuery.h - Interface to running installer for custom actions and tools *
- * *
- * 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 *
- * Returned handles of all types must be closed: MsiCloseHandle(h) *
- * Functions with UINT return type return a system error code *
- * Designated functions will set or clear the last error record, *
- * which is then accessible with MsiGetLastErrorRecord. However, *
- * the following argument errors do not register an error record: *
- * ERROR_INVALID_HANDLE, ERROR_INVALID_PARAMETER, ERROR_MORE_DATA. *
- * *
- * Copyright (c) 1999-2000, Microsoft Corp. All rights reserved. *
- * *
- \*****************************************************************************)
- const
- MSI_NULL_INTEGER = DWORD($80000000); // integer value reserved for null
- {$EXTERNALSYM MSI_NULL_INTEGER}
- // MsiOpenDatabase persist predefine values, otherwise output database path is used
- MSIDBOPEN_READONLY = LPCTSTR(0); // database open read-only, no persistent changes
- {$EXTERNALSYM MSIDBOPEN_READONLY}
- MSIDBOPEN_TRANSACT = LPCTSTR(1); // database read/write in transaction mode
- {$EXTERNALSYM MSIDBOPEN_TRANSACT}
- MSIDBOPEN_DIRECT = LPCTSTR(2); // database direct read/write without transaction
- {$EXTERNALSYM MSIDBOPEN_DIRECT}
- MSIDBOPEN_CREATE = LPCTSTR(3); // create new database, transact mode read/write
- {$EXTERNALSYM MSIDBOPEN_CREATE}
- MSIDBOPEN_CREATEDIRECT = LPCTSTR(4); // create new database, direct mode read/write
- {$EXTERNALSYM MSIDBOPEN_CREATEDIRECT}
- MSIDBOPEN_PATCHFILE = 32 div SizeOf(TCHAR); // add flag to indicate patch file
- MSIDBSTATE_ERROR = DWORD(-1); // invalid database handle
- {$EXTERNALSYM MSIDBSTATE_ERROR}
- MSIDBSTATE_READ = 0; // database open read-only, no persistent changes
- {$EXTERNALSYM MSIDBSTATE_READ}
- MSIDBSTATE_WRITE = 1; // database readable and updatable
- {$EXTERNALSYM MSIDBSTATE_WRITE}
- type
- MSIDBSTATE = DWORD;
- {$EXTERNALSYM MSIDBSTATE}
- TMsiDbState = MSIDBSTATE;
- const
- MSIMODIFY_SEEK = DWORD(-1); // reposition to current record primary key
- {$EXTERNALSYM MSIMODIFY_SEEK}
- MSIMODIFY_REFRESH = 0; // refetch current record data
- {$EXTERNALSYM MSIMODIFY_REFRESH}
- MSIMODIFY_INSERT = 1; // insert new record, fails if matching key exists
- {$EXTERNALSYM MSIMODIFY_INSERT}
- MSIMODIFY_UPDATE = 2; // update existing non-key data of fetched record
- {$EXTERNALSYM MSIMODIFY_UPDATE}
- MSIMODIFY_ASSIGN = 3; // insert record, replacing any existing record
- {$EXTERNALSYM MSIMODIFY_ASSIGN}
- MSIMODIFY_REPLACE = 4; // update record, delete old if primary key edit
- {$EXTERNALSYM MSIMODIFY_REPLACE}
- MSIMODIFY_MERGE = 5; // fails if record with duplicate key not identical
- {$EXTERNALSYM MSIMODIFY_MERGE}
- MSIMODIFY_DELETE = 6; // remove row referenced by this record from table
- {$EXTERNALSYM MSIMODIFY_DELETE}
- MSIMODIFY_INSERT_TEMPORARY = 7; // insert a temporary record
- {$EXTERNALSYM MSIMODIFY_INSERT_TEMPORARY}
- MSIMODIFY_VALIDATE = 8; // validate a fetched record
- {$EXTERNALSYM MSIMODIFY_VALIDATE}
- MSIMODIFY_VALIDATE_NEW = 9; // validate a new record
- {$EXTERNALSYM MSIMODIFY_VALIDATE_NEW}
- MSIMODIFY_VALIDATE_FIELD = 10; // validate field(s) of an incomplete record
- {$EXTERNALSYM MSIMODIFY_VALIDATE_FIELD}
- MSIMODIFY_VALIDATE_DELETE = 11; // validate before deleting record
- {$EXTERNALSYM MSIMODIFY_VALIDATE_DELETE}
- type
- MSIMODIFY = DWORD;
- {$EXTERNALSYM MSIMODIFY}
- TMsiModify = MSIMODIFY;
- const
- MSICOLINFO_NAMES = 0; // return column names
- {$EXTERNALSYM MSICOLINFO_NAMES}
- MSICOLINFO_TYPES = 1; // return column definitions, datatype code followed by width
- {$EXTERNALSYM MSICOLINFO_TYPES}
- type
- MSICOLINFO = DWORD;
- {$EXTERNALSYM MSICOLINFO}
- TMsiColInfo = MSICOLINFO;
- const
- MSICONDITION_FALSE = 0; // expression evaluates to False
- {$EXTERNALSYM MSICONDITION_FALSE}
- MSICONDITION_TRUE = 1; // expression evaluates to True
- {$EXTERNALSYM MSICONDITION_TRUE}
- MSICONDITION_NONE = 2; // no expression present
- {$EXTERNALSYM MSICONDITION_NONE}
- MSICONDITION_ERROR = 3; // syntax error in expression
- {$EXTERNALSYM MSICONDITION_ERROR}
- type
- MSICONDITION = DWORD;
- {$EXTERNALSYM MSICONDITION}
- TMsiCondition = MSICONDITION;
- const
- MSICOSTTREE_SELFONLY = 0;
- {$EXTERNALSYM MSICOSTTREE_SELFONLY}
- MSICOSTTREE_CHILDREN = 1;
- {$EXTERNALSYM MSICOSTTREE_CHILDREN}
- MSICOSTTREE_PARENTS = 2;
- {$EXTERNALSYM MSICOSTTREE_PARENTS}
- MSICOSTTREE_RESERVED = 3; // Reserved for future use
- {$EXTERNALSYM MSICOSTTREE_RESERVED}
- type
- MSICOSTTREE = DWORD;
- {$EXTERNALSYM MSICOSTTREE}
- TMsiCostTree = MSICOSTTREE;
- const
- MSIDBERROR_INVALIDARG = DWORD(-3); // invalid argument
- {$EXTERNALSYM MSIDBERROR_INVALIDARG}
- MSIDBERROR_MOREDATA = DWORD(-2); // buffer too small
- {$EXTERNALSYM MSIDBERROR_MOREDATA}
- MSIDBERROR_FUNCTIONERROR = DWORD(-1); // function error
- {$EXTERNALSYM MSIDBERROR_FUNCTIONERROR}
- MSIDBERROR_NOERROR = 0; // no error
- {$EXTERNALSYM MSIDBERROR_NOERROR}
- MSIDBERROR_DUPLICATEKEY = 1; // new record duplicates primary keys of existing record in table
- {$EXTERNALSYM MSIDBERROR_DUPLICATEKEY}
- MSIDBERROR_REQUIRED = 2; // non-nullable column, no null values allowed
- {$EXTERNALSYM MSIDBERROR_REQUIRED}
- MSIDBERROR_BADLINK = 3; // corresponding record in foreign table not found
- {$EXTERNALSYM MSIDBERROR_BADLINK}
- MSIDBERROR_OVERFLOW = 4; // data greater than maximum value allowed
- {$EXTERNALSYM MSIDBERROR_OVERFLOW}
- MSIDBERROR_UNDERFLOW = 5; // data less than minimum value allowed
- {$EXTERNALSYM MSIDBERROR_UNDERFLOW}
- MSIDBERROR_NOTINSET = 6; // data not a member of the values permitted in the set
- {$EXTERNALSYM MSIDBERROR_NOTINSET}
- MSIDBERROR_BADVERSION = 7; // invalid version string
- {$EXTERNALSYM MSIDBERROR_BADVERSION}
- MSIDBERROR_BADCASE = 8; // invalid case, must be all upper-case or all lower-case
- {$EXTERNALSYM MSIDBERROR_BADCASE}
- MSIDBERROR_BADGUID = 9; // invalid GUID
- {$EXTERNALSYM MSIDBERROR_BADGUID}
- MSIDBERROR_BADWILDCARD = 10; // invalid wildcardfilename or use of wildcards
- {$EXTERNALSYM MSIDBERROR_BADWILDCARD}
- MSIDBERROR_BADIDENTIFIER = 11; // bad identifier
- {$EXTERNALSYM MSIDBERROR_BADIDENTIFIER}
- MSIDBERROR_BADLANGUAGE = 12; // bad language Id(s)
- {$EXTERNALSYM MSIDBERROR_BADLANGUAGE}
- MSIDBERROR_BADFILENAME = 13; // bad filename
- {$EXTERNALSYM MSIDBERROR_BADFILENAME}
- MSIDBERROR_BADPATH = 14; // bad path
- {$EXTERNALSYM MSIDBERROR_BADPATH}
- MSIDBERROR_BADCONDITION = 15; // bad conditional statement
- {$EXTERNALSYM MSIDBERROR_BADCONDITION}
- MSIDBERROR_BADFORMATTED = 16; // bad format string
- {$EXTERNALSYM MSIDBERROR_BADFORMATTED}
- MSIDBERROR_BADTEMPLATE = 17; // bad template string
- {$EXTERNALSYM MSIDBERROR_BADTEMPLATE}
- MSIDBERROR_BADDEFAULTDIR = 18; // bad string in DefaultDir column of Directory table
- {$EXTERNALSYM MSIDBERROR_BADDEFAULTDIR}
- MSIDBERROR_BADREGPATH = 19; // bad registry path string
- {$EXTERNALSYM MSIDBERROR_BADREGPATH}
- MSIDBERROR_BADCUSTOMSOURCE = 20; // bad string in CustomSource column of CustomAction table
- {$EXTERNALSYM MSIDBERROR_BADCUSTOMSOURCE}
- MSIDBERROR_BADPROPERTY = 21; // bad property string
- {$EXTERNALSYM MSIDBERROR_BADPROPERTY}
- MSIDBERROR_MISSINGDATA = 22; // _Validation table missing reference to column
- {$EXTERNALSYM MSIDBERROR_MISSINGDATA}
- MSIDBERROR_BADCATEGORY = 23; // Category column of _Validation table for column is invalid
- {$EXTERNALSYM MSIDBERROR_BADCATEGORY}
- MSIDBERROR_BADKEYTABLE = 24; // table in KeyTable column of _Validation table could not be found/loaded
- {$EXTERNALSYM MSIDBERROR_BADKEYTABLE}
- MSIDBERROR_BADMAXMINVALUES = 25; // value in MaxValue column of _Validation table is less than value in MinValue column
- {$EXTERNALSYM MSIDBERROR_BADMAXMINVALUES}
- MSIDBERROR_BADCABINET = 26; // bad cabinet name
- {$EXTERNALSYM MSIDBERROR_BADCABINET}
- MSIDBERROR_BADSHORTCUT = 27; // bad shortcut target
- {$EXTERNALSYM MSIDBERROR_BADSHORTCUT}
- MSIDBERROR_STRINGOVERFLOW = 28; // string overflow (greater than length allowed in column def)
- {$EXTERNALSYM MSIDBERROR_STRINGOVERFLOW}
- MSIDBERROR_BADLOCALIZEATTRIB = 29; // invalid localization attribute (primary keys cannot be localized)
- {$EXTERNALSYM MSIDBERROR_BADLOCALIZEATTRIB}
- type
- MSIDBERROR = DWORD;
- {$EXTERNALSYM MSIDBERROR}
- TMsiDbError = MSIDBERROR;
- const
- MSIRUNMODE_ADMIN = 0; // admin mode install, else product install
- {$EXTERNALSYM MSIRUNMODE_ADMIN}
- MSIRUNMODE_ADVERTISE = 1; // installing advertisements, else installing or updating product
- {$EXTERNALSYM MSIRUNMODE_ADVERTISE}
- MSIRUNMODE_MAINTENANCE = 2; // modifying an existing installation, else new installation
- {$EXTERNALSYM MSIRUNMODE_MAINTENANCE}
- MSIRUNMODE_ROLLBACKENABLED = 3; // rollback is enabled
- {$EXTERNALSYM MSIRUNMODE_ROLLBACKENABLED}
- MSIRUNMODE_LOGENABLED = 4; // log file active, enabled prior to install session
- {$EXTERNALSYM MSIRUNMODE_LOGENABLED}
- MSIRUNMODE_OPERATIONS = 5; // spooling execute operations, else in determination phase
- {$EXTERNALSYM MSIRUNMODE_OPERATIONS}
- MSIRUNMODE_REBOOTATEND = 6; // reboot needed after successful installation (settable)
- {$EXTERNALSYM MSIRUNMODE_REBOOTATEND}
- MSIRUNMODE_REBOOTNOW = 7; // reboot needed to continue installation (settable)
- {$EXTERNALSYM MSIRUNMODE_REBOOTNOW}
- MSIRUNMODE_CABINET = 8; // installing files from cabinets and files using Media table
- {$EXTERNALSYM MSIRUNMODE_CABINET}
- MSIRUNMODE_SOURCESHORTNAMES= 9; // source LongFileNames suppressed via PID_MSISOURCE summary property
- {$EXTERNALSYM MSIRUNMODE_SOURCESHORTNAMES}
- MSIRUNMODE_TARGETSHORTNAMES= 10; // target LongFileNames suppressed via SHORTFILENAMES property
- {$EXTERNALSYM MSIRUNMODE_TARGETSHORTNAMES}
- MSIRUNMODE_RESERVED11 = 11; // future use
- {$EXTERNALSYM MSIRUNMODE_RESERVED11}
- MSIRUNMODE_WINDOWS9X = 12; // operating systems is Windows9?, else Windows NT
- {$EXTERNALSYM MSIRUNMODE_WINDOWS9X}
- MSIRUNMODE_ZAWENABLED = 13; // operating system supports demand installation
- {$EXTERNALSYM MSIRUNMODE_ZAWENABLED}
- MSIRUNMODE_RESERVED14 = 14; // future use
- {$EXTERNALSYM MSIRUNMODE_RESERVED14}
- MSIRUNMODE_RESERVED15 = 15; // future use
- {$EXTERNALSYM MSIRUNMODE_RESERVED15}
- MSIRUNMODE_SCHEDULED = 16; // custom action call from install script execution
- {$EXTERNALSYM MSIRUNMODE_SCHEDULED}
- MSIRUNMODE_ROLLBACK = 17; // custom action call from rollback execution script
- {$EXTERNALSYM MSIRUNMODE_ROLLBACK}
- MSIRUNMODE_COMMIT = 18; // custom action call from commit execution script
- {$EXTERNALSYM MSIRUNMODE_COMMIT}
- type
- MSIRUNMODE = DWORD;
- {$EXTERNALSYM MSIRUNMODE}
- TMsiRunMode = MSIRUNMODE;
- const
- INSTALLMESSAGE_TYPEMASK = DWORD($FF000000); // mask for type code
- {$EXTERNALSYM INSTALLMESSAGE_TYPEMASK}
- // Note: INSTALLMESSAGE_ERROR, INSTALLMESSAGE_WARNING, INSTALLMESSAGE_USER are to or'd
- // with a message box style to indicate the buttons to display and return:
- // MB_OK,MB_OKCANCEL,MB_ABORTRETRYIGNORE,MB_YESNOCANCEL,MB_YESNO,MB_RETRYCANCEL
- // the default button (MB_DEFBUTTON1 is normal default):
- // MB_DEFBUTTON1, MB_DEFBUTTON2, MB_DEFBUTTON3
- // and optionally an icon style:
- // MB_ICONERROR, MB_ICONQUESTION, MB_ICONWARNING, MB_ICONINFORMATION
- const
- MSITRANSFORM_ERROR_ADDEXISTINGROW = $00000001;
- {$EXTERNALSYM MSITRANSFORM_ERROR_ADDEXISTINGROW}
- MSITRANSFORM_ERROR_DELMISSINGROW = $00000002;
- {$EXTERNALSYM MSITRANSFORM_ERROR_DELMISSINGROW}
- MSITRANSFORM_ERROR_ADDEXISTINGTABLE = $00000004;
- {$EXTERNALSYM MSITRANSFORM_ERROR_ADDEXISTINGTABLE}
- MSITRANSFORM_ERROR_DELMISSINGTABLE = $00000008;
- {$EXTERNALSYM MSITRANSFORM_ERROR_DELMISSINGTABLE}
- MSITRANSFORM_ERROR_UPDATEMISSINGROW = $00000010;
- {$EXTERNALSYM MSITRANSFORM_ERROR_UPDATEMISSINGROW}
- MSITRANSFORM_ERROR_CHANGECODEPAGE = $00000020;
- {$EXTERNALSYM MSITRANSFORM_ERROR_CHANGECODEPAGE}
- MSITRANSFORM_ERROR_VIEWTRANSFORM = $00000100;
- {$EXTERNALSYM MSITRANSFORM_ERROR_VIEWTRANSFORM}
- type
- MSITRANSFORM_ERROR = DWORD;
- {$EXTERNALSYM MSITRANSFORM_ERROR}
- TMsiTransformError = MSITRANSFORM_ERROR;
- const
- MSITRANSFORM_VALIDATE_LANGUAGE = $00000001;
- {$EXTERNALSYM MSITRANSFORM_VALIDATE_LANGUAGE}
- MSITRANSFORM_VALIDATE_PRODUCT = $00000002;
- {$EXTERNALSYM MSITRANSFORM_VALIDATE_PRODUCT}
- MSITRANSFORM_VALIDATE_PLATFORM = $00000004;
- {$EXTERNALSYM MSITRANSFORM_VALIDATE_PLATFORM}
- MSITRANSFORM_VALIDATE_MAJORVERSION = $00000008;
- {$EXTERNALSYM MSITRANSFORM_VALIDATE_MAJORVERSION}
- MSITRANSFORM_VALIDATE_MINORVERSION = $00000010;
- {$EXTERNALSYM MSITRANSFORM_VALIDATE_MINORVERSION}
- MSITRANSFORM_VALIDATE_UPDATEVERSION = $00000020;
- {$EXTERNALSYM MSITRANSFORM_VALIDATE_UPDATEVERSION}
- MSITRANSFORM_VALIDATE_NEWLESSBASEVERSION = $00000040;
- {$EXTERNALSYM MSITRANSFORM_VALIDATE_NEWLESSBASEVERSION}
- MSITRANSFORM_VALIDATE_NEWLESSEQUALBASEVERSION = $00000080;
- {$EXTERNALSYM MSITRANSFORM_VALIDATE_NEWLESSEQUALBASEVERSION}
- MSITRANSFORM_VALIDATE_NEWEQUALBASEVERSION = $00000100;
- {$EXTERNALSYM MSITRANSFORM_VALIDATE_NEWEQUALBASEVERSION}
- MSITRANSFORM_VALIDATE_NEWGREATEREQUALBASEVERSION = $00000200;
- {$EXTERNALSYM MSITRANSFORM_VALIDATE_NEWGREATEREQUALBASEVERSION}
- MSITRANSFORM_VALIDATE_NEWGREATERBASEVERSION = $00000400;
- {$EXTERNALSYM MSITRANSFORM_VALIDATE_NEWGREATERBASEVERSION}
- MSITRANSFORM_VALIDATE_UPGRADECODE = $00000800;
- {$EXTERNALSYM MSITRANSFORM_VALIDATE_UPGRADECODE}
- type
- MSITRANSFORM_VALIDATE = DWORD;
- {$EXTERNALSYM MSITRANSFORM_VALIDATE}
- TMsiTransformValidate = MSITRANSFORM_VALIDATE;
- // -----------------------------------------------------------------------------
- // Installer database access functions
- // -----------------------------------------------------------------------------
- // Prepare a database query, creating a view object
- // Returns ERROR_SUCCESS if successful, and the view handle is returned,
- // else ERROR_INVALID_HANDLE, ERROR_INVALID_HANDLE_STATE, ERROR_BAD_QUERY_SYNTAX, ERROR_GEN_FAILURE
- // Execution of this function sets the error record, accessible via MsiGetLastErrorRecord
- function MsiDatabaseOpenViewA(hDatabase: MSIHANDLE; szQuery: LPCSTR; var phView: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiDatabaseOpenViewA}
- function MsiDatabaseOpenViewW(hDatabase: MSIHANDLE; szQuery: LPCWSTR; var phView: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiDatabaseOpenViewW}
- function MsiDatabaseOpenView(hDatabase: MSIHANDLE; szQuery: LPCTSTR; var phView: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiDatabaseOpenView}
- // Returns the MSIDBERROR enum and name of the column corresponding to the error
- // Similar to a GetLastError function, but for the view. NOT the same as MsiGetLastErrorRecord
- // Returns errors of MsiViewModify.
- function MsiViewGetErrorA(hView: MSIHANDLE; szColumnNameBuffer: LPSTR;
- var pcchBuf: DWORD): MSIDBERROR; stdcall;
- {$EXTERNALSYM MsiViewGetErrorA}
- function MsiViewGetErrorW(hView: MSIHANDLE; szColumnNameBuffer: LPWSTR;
- var pcchBuf: DWORD): MSIDBERROR; stdcall;
- {$EXTERNALSYM MsiViewGetErrorW}
- function MsiViewGetError(hView: MSIHANDLE; szColumnNameBuffer: LPTSTR;
- var pcchBuf: DWORD): MSIDBERROR; stdcall;
- {$EXTERNALSYM MsiViewGetError}
- // Exectute the view query, supplying parameters as required
- // Returns ERROR_SUCCESS, ERROR_INVALID_HANDLE, ERROR_INVALID_HANDLE_STATE, ERROR_GEN_FAILURE
- // Execution of this function sets the error record, accessible via MsiGetLastErrorRecord
- function MsiViewExecute(hView: MSIHANDLE; hRecord: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiViewExecute}
- // Fetch the next sequential record from the view
- // Result is ERROR_SUCCESS if a row is found, and its handle is returned
- // else ERROR_NO_MORE_ITEMS if no records remain, and a null handle is returned
- // else result is error: ERROR_INVALID_HANDLE_STATE, ERROR_INVALID_HANDLE, ERROR_GEN_FAILURE
- function MsiViewFetch(hView: MSIHANDLE; var phRecord: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiViewFetch}
- // Modify a database record, parameters must match types in query columns
- // Returns ERROR_SUCCESS, ERROR_INVALID_HANDLE, ERROR_INVALID_HANDLE_STATE, ERROR_GEN_FAILURE, ERROR_ACCESS_DENIED
- // Execution of this function sets the error record, accessible via MsiGetLastErrorRecord
- function MsiViewModify(hView: MSIHANDLE; eModifyMode: MSIMODIFY; hRecord: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiViewModify}
- // Return the column names or specifications for the current view
- // Returns ERROR_SUCCESS, ERROR_INVALID_HANDLE, ERROR_INVALID_PARAMETER, or ERROR_INVALID_HANDLE_STATE
- function MsiViewGetColumnInfo(hView: MSIHANDLE; eColumnInfo: MSICOLINFO;
- var phRecord: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiViewGetColumnInfo}
- // Release the result set for an executed view, to allow re-execution
- // Only needs to be called if not all records have been fetched
- // Returns ERROR_SUCCESS, ERROR_INVALID_HANDLE, ERROR_INVALID_HANDLE_STATE
- function MsiViewClose(hView: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiViewClose}
- // Return a record containing the names of all primary key columns for a given table
- // Returns an MSIHANDLE for a record containing the name of each column.
- // The field count of the record corresponds to the number of primary key columns.
- // Field [0] of the record contains the table name.
- // Returns ERROR_SUCCESS, ERROR_INVALID_HANDLE, ERROR_INVALID_TABLE
- function MsiDatabaseGetPrimaryKeysA(hDatabase: MSIHANDLE; szTableName: LPCSTR;
- var phRecord: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiDatabaseGetPrimaryKeysA}
- function MsiDatabaseGetPrimaryKeysW(hDatabase: MSIHANDLE; szTableName: LPCWSTR;
- var phRecord: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiDatabaseGetPrimaryKeysW}
- function MsiDatabaseGetPrimaryKeys(hDatabase: MSIHANDLE; szTableName: LPCTSTR;
- var phRecord: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiDatabaseGetPrimaryKeys}
- // Return an enum defining the state of the table (temporary, unknown, or persistent).
- // Returns MSICONDITION_ERROR, MSICONDITION_FALSE, MSICONDITION_TRUE, MSICONDITION_NONE
- function MsiDatabaseIsTablePersistentA(hDatabase: MSIHANDLE; szTableName: LPCSTR): MSICONDITION; stdcall;
- {$EXTERNALSYM MsiDatabaseIsTablePersistentA}
- function MsiDatabaseIsTablePersistentW(hDatabase: MSIHANDLE; szTableName: LPCWSTR): MSICONDITION; stdcall;
- {$EXTERNALSYM MsiDatabaseIsTablePersistentW}
- function MsiDatabaseIsTablePersistent(hDatabase: MSIHANDLE; szTableName: LPCTSTR): MSICONDITION; stdcall;
- {$EXTERNALSYM MsiDatabaseIsTablePersistent}
- // --------------------------------------------------------------------------
- // Summary information stream management functions
- // --------------------------------------------------------------------------
- // Integer Property IDs: 1, 14, 15, 16, 19
- // DateTime Property IDs: 10, 11, 12, 13
- // Text Property IDs: 2, 3, 4, 5, 6, 7, 8, 9, 18
- // Unsupported Propery IDs: 0 (PID_DICTIONARY), 17 (PID_THUMBNAIL)
- // Obtain a handle for the _SummaryInformation stream for an MSI database
- // Execution of this function sets the error record, accessible via MsiGetLastErrorRecord
- function MsiGetSummaryInformationA(hDatabase: MSIHANDLE; szDatabasePath: LPCSTR;
- uiUpdateCount: UINT; var phSummaryInfo: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiGetSummaryInformationA}
- function MsiGetSummaryInformationW(hDatabase: MSIHANDLE; szDatabasePath: LPCWSTR;
- uiUpdateCount: UINT; var phSummaryInfo: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiGetSummaryInformationW}
- function MsiGetSummaryInformation(hDatabase: MSIHANDLE; szDatabasePath: LPCTSTR;
- uiUpdateCount: UINT; var phSummaryInfo: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiGetSummaryInformation}
- // Obtain the number of existing properties in the SummaryInformation stream
- function MsiSummaryInfoGetPropertyCount(hSummaryInfo: MSIHANDLE; var puiPropertyCount: UINT): UINT; stdcall;
- {$EXTERNALSYM MsiSummaryInfoGetPropertyCount}
- // Set a single summary information property
- // Returns ERROR_SUCCESS, ERROR_INVALID_HANDLE, ERROR_UNKNOWN_PROPERTY
- function MsiSummaryInfoSetPropertyA(hSummaryInfo: MSIHANDLE; uiProperty: UINT;
- uiDataType: UINT; iValue: Integer; const pftValue: FILETIME; szValue: LPCSTR): UINT; stdcall;
- {$EXTERNALSYM MsiSummaryInfoSetPropertyA}
- function MsiSummaryInfoSetPropertyW(hSummaryInfo: MSIHANDLE; uiProperty: UINT;
- uiDataType: UINT; iValue: Integer; const pftValue: FILETIME; szValue: LPCWSTR): UINT; stdcall;
- {$EXTERNALSYM MsiSummaryInfoSetPropertyW}
- function MsiSummaryInfoSetProperty(hSummaryInfo: MSIHANDLE; uiProperty: UINT;
- uiDataType: UINT; iValue: Integer; const pftValue: FILETIME; szValue: LPCTSTR): UINT; stdcall;
- {$EXTERNALSYM MsiSummaryInfoSetProperty}
- // Get a single property from the summary information
- // Returns ERROR_SUCCESS, ERROR_INVALID_HANDLE, ERROR_UNKNOWN_PROPERTY
- function MsiSummaryInfoGetPropertyA(hSummaryInfo: MSIHANDLE; uiProperty: UINT;
- var puiDataType: UINT; var piValue: Integer; var pftValue: FILETIME; szValueBuf: LPSTR;
- var pcchValueBuf: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiSummaryInfoGetPropertyA}
- function MsiSummaryInfoGetPropertyW(hSummaryInfo: MSIHANDLE; uiProperty: UINT;
- var puiDataType: UINT; var piValue: Integer; var pftValue: FILETIME; szValueBuf: LPWSTR;
- var pcchValueBuf: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiSummaryInfoGetPropertyW}
- function MsiSummaryInfoGetProperty(hSummaryInfo: MSIHANDLE; uiProperty: UINT;
- var puiDataType: UINT; var piValue: Integer; var pftValue: FILETIME; szValueBuf: LPTSTR;
- var pcchValueBuf: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiSummaryInfoGetProperty}
- // Write back changed information to summary information stream
- function MsiSummaryInfoPersist(hSummaryInfo: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiSummaryInfoPersist}
- // --------------------------------------------------------------------------
- // Installer database management functions - not used by custom actions
- // --------------------------------------------------------------------------
- // Open an installer database, specifying the persistance mode, which is a pointer.
- // Predefined persist values are reserved pointer values, requiring pointer arithmetic.
- // Execution of this function sets the error record, accessible via MsiGetLastErrorRecord
- function MsiOpenDatabaseA(szDatabasePath: LPCSTR; szPersist: LPCSTR;
- var phDatabase: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiOpenDatabaseA}
- function MsiOpenDatabaseW(szDatabasePath: LPCWSTR; szPersist: LPCWSTR;
- var phDatabase: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiOpenDatabaseW}
- function MsiOpenDatabase(szDatabasePath: LPCTSTR; szPersist: LPCTSTR;
- var phDatabase: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiOpenDatabase}
- // Import an MSI text archive table into an open database
- // Execution of this function sets the error record, accessible via MsiGetLastErrorRecord
- function MsiDatabaseImportA(hDatabase: MSIHANDLE; szFolderPath: LPCSTR;
- szFileName: LPCSTR): UINT; stdcall;
- {$EXTERNALSYM MsiDatabaseImportA}
- function MsiDatabaseImportW(hDatabase: MSIHANDLE; szFolderPath: LPCWSTR;
- szFileName: LPCWSTR): UINT; stdcall;
- {$EXTERNALSYM MsiDatabaseImportW}
- function MsiDatabaseImport(hDatabase: MSIHANDLE; szFolderPath: LPCTSTR;
- szFileName: LPCTSTR): UINT; stdcall;
- {$EXTERNALSYM MsiDatabaseImport}
- // Export an MSI table from an open database to a text archive file
- // Execution of this function sets the error record, accessible via MsiGetLastErrorRecord
- function MsiDatabaseExportA(hDatabase: MSIHANDLE; szTableName: LPCSTR;
- szFolderPath: LPCSTR; szFileName: LPCSTR): UINT; stdcall;
- {$EXTERNALSYM MsiDatabaseExportA}
- function MsiDatabaseExportW(hDatabase: MSIHANDLE; szTableName: LPCWSTR;
- szFolderPath: LPCWSTR; szFileName: LPCWSTR): UINT; stdcall;
- {$EXTERNALSYM MsiDatabaseExportW}
- function MsiDatabaseExport(hDatabase: MSIHANDLE; szTableName: LPCTSTR;
- szFolderPath: LPCTSTR; szFileName: LPCTSTR): UINT; stdcall;
- {$EXTERNALSYM MsiDatabaseExport}
- // Merge two database together, allowing duplicate rows
- // Execution of this function sets the error record, accessible via MsiGetLastErrorRecord
- function MsiDatabaseMergeA(hDatabase: MSIHANDLE; hDatabaseMerge: MSIHANDLE;
- szTableName: LPCSTR): UINT; stdcall;
- {$EXTERNALSYM MsiDatabaseMergeA}
- function MsiDatabaseMergeW(hDatabase: MSIHANDLE; hDatabaseMerge: MSIHANDLE;
- szTableName: LPCWSTR): UINT; stdcall;
- {$EXTERNALSYM MsiDatabaseMergeW}
- function MsiDatabaseMerge(hDatabase: MSIHANDLE; hDatabaseMerge: MSIHANDLE;
- szTableName: LPCTSTR): UINT; stdcall;
- {$EXTERNALSYM MsiDatabaseMerge}
- // Generate a transform file of differences between two databases
- // Execution of this function sets the error record, accessible via MsiGetLastErrorRecord
- function MsiDatabaseGenerateTransformA(hDatabase: MSIHANDLE; hDatabaseReference: MSIHANDLE;
- szTransformFile: LPCSTR; iReserved1: Integer; iReserved2: Integer): UINT; stdcall;
- {$EXTERNALSYM MsiDatabaseGenerateTransformA}
- function MsiDatabaseGenerateTransformW(hDatabase: MSIHANDLE; hDatabaseReference: MSIHANDLE;
- szTransformFile: LPCWSTR; iReserved1: Integer; iReserved2: Integer): UINT; stdcall;
- {$EXTERNALSYM MsiDatabaseGenerateTransformW}
- function MsiDatabaseGenerateTransform(hDatabase: MSIHANDLE; hDatabaseReference: MSIHANDLE;
- szTransformFile: LPCTSTR; iReserved1: Integer; iReserved2: Integer): UINT; stdcall;
- {$EXTERNALSYM MsiDatabaseGenerateTransform}
- // Apply a transform file containing database difference
- // Execution of this function sets the error record, accessible via MsiGetLastErrorRecord
- function MsiDatabaseApplyTransformA(hDatabase: MSIHANDLE; szTransformFile: LPCSTR;
- iErrorConditions: Integer): UINT; stdcall;
- {$EXTERNALSYM MsiDatabaseApplyTransformA}
- function MsiDatabaseApplyTransformW(hDatabase: MSIHANDLE; szTransformFile: LPCWSTR;
- iErrorConditions: Integer): UINT; stdcall;
- {$EXTERNALSYM MsiDatabaseApplyTransformW}
- function MsiDatabaseApplyTransform(hDatabase: MSIHANDLE; szTransformFile: LPCTSTR;
- iErrorConditions: Integer): UINT; stdcall;
- {$EXTERNALSYM MsiDatabaseApplyTransform}
- // Create summary information of existing transform to include validation and error conditions
- // Execution of this function sets the error record, accessible via MsiGetLastErrorRecord
- function MsiCreateTransformSummaryInfoA(hDatabase: MSIHANDLE; hDatabaseReference: MSIHANDLE;
- szTransformFile: LPCSTR; iErrorConditions: Integer; iValidation: Integer): UINT; stdcall;
- {$EXTERNALSYM MsiCreateTransformSummaryInfoA}
- function MsiCreateTransformSummaryInfoW(hDatabase: MSIHANDLE; hDatabaseReference: MSIHANDLE;
- szTransformFile: LPCWSTR; iErrorConditions: Integer; iValidation: Integer): UINT; stdcall;
- {$EXTERNALSYM MsiCreateTransformSummaryInfoW}
- function MsiCreateTransformSummaryInfo(hDatabase: MSIHANDLE; hDatabaseReference: MSIHANDLE;
- szTransformFile: LPCTSTR; iErrorConditions: Integer; iValidation: Integer): UINT; stdcall;
- {$EXTERNALSYM MsiCreateTransformSummaryInfo}
- // Write out all persistent table data, ignored if database opened read-only
- // Execution of this function sets the error record, accessible via MsiGetLastErrorRecord
- function MsiDatabaseCommit(hDatabase: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiDatabaseCommit}
- // Return the update state of a database
- function MsiGetDatabaseState(hDatabase: MSIHANDLE): MSIDBSTATE; stdcall;
- {$EXTERNALSYM MsiGetDatabaseState}
- // --------------------------------------------------------------------------
- // Record object functions
- // --------------------------------------------------------------------------
- // Create a new record object with the requested number of fields
- // Field 0, not included in count, is used for format strings and op codes
- // All fields are initialized to null
- // Returns a handle to the created record, or 0 if memory could not be allocated
- function MsiCreateRecord(cParams: UINT): MSIHANDLE; stdcall;
- {$EXTERNALSYM MsiCreateRecord}
- // Report whether a record field is NULL
- // Returns TRUE if the field is null or does not exist
- // Returns FALSE if the field contains data, or the handle is invalid
- function MsiRecordIsNull(hRecord: MSIHANDLE; iField: UINT): BOOL; stdcall;
- {$EXTERNALSYM MsiRecordIsNull}
- // Return the length of a record field
- // Returns 0 if field is NULL or non-existent
- // Returns sizeof(Integer) if integer data
- // Returns character count if string data (not counting null terminator)
- // Returns bytes count if stream data
- function MsiRecordDataSize(hRecord: MSIHANDLE; iField: UINT): UINT; stdcall;
- {$EXTERNALSYM MsiRecordDataSize}
- // Set a record field to an integer value
- // Returns ERROR_SUCCESS, ERROR_INVALID_HANDLE, ERROR_INVALID_FIELD
- function MsiRecordSetInteger(hRecord: MSIHANDLE; iField: UINT; iValue: Integer): UINT; stdcall;
- {$EXTERNALSYM MsiRecordSetInteger}
- // Copy a string into the designated field
- // A null string pointer and an empty string both set the field to null
- // Returns ERROR_SUCCESS, ERROR_INVALID_HANDLE, ERROR_INVALID_FIELD
- function MsiRecordSetStringA(hRecord: MSIHANDLE; iField: UINT; szValue: LPCSTR): UINT; stdcall;
- {$EXTERNALSYM MsiRecordSetStringA}
- function MsiRecordSetStringW(hRecord: MSIHANDLE; iField: UINT; szValue: LPCWSTR): UINT; stdcall;
- {$EXTERNALSYM MsiRecordSetStringW}
- function MsiRecordSetString(hRecord: MSIHANDLE; iField: UINT; szValue: LPCTSTR): UINT; stdcall;
- {$EXTERNALSYM MsiRecordSetString}
- // Return the integer value from a record field
- // Returns the value MSI_NULL_INTEGER if the field is null
- // or if the field is a string that cannot be converted to an integer
- function MsiRecordGetInteger(hRecord: MSIHANDLE; iField: UINT): Integer; stdcall;
- {$EXTERNALSYM MsiRecordGetInteger}
- // Return the string value of a record field
- // Integer fields will be converted to a string
- // Null and non-existent fields will report a value of 0
- // Fields containing stream data will return ERROR_INVALID_DATATYPE
- // Returns ERROR_SUCCESS, ERROR_MORE_DATA,
- // ERROR_INVALID_HANDLE, ERROR_INVALID_FIELD, ERROR_BAD_ARGUMENTS
- function MsiRecordGetStringA(hRecord: MSIHANDLE; iField: UINT; szValueBuf: LPSTR;
- var pcchValueBuf: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiRecordGetStringA}
- function MsiRecordGetStringW(hRecord: MSIHANDLE; iField: UINT; szValueBuf: LPWSTR;
- var pcchValueBuf: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiRecordGetStringW}
- function MsiRecordGetString(hRecord: MSIHANDLE; iField: UINT; szValueBuf: LPTSTR;
- var pcchValueBuf: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiRecordGetString}
- // Returns the number of fields allocated in the record
- // Does not count field 0, used for formatting and op codes
- function MsiRecordGetFieldCount(hRecord: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiRecordGetFieldCount}
- // Set a record stream field from a file
- // The contents of the specified file will be read into a stream object
- // The stream will be persisted if the record is inserted into the database
- // Execution of this function sets the error record, accessible via MsiGetLastErrorRecord
- function MsiRecordSetStreamA(hRecord: MSIHANDLE; iField: UINT; szFilePath: LPCSTR): UINT; stdcall;
- {$EXTERNALSYM MsiRecordSetStreamA}
- function MsiRecordSetStreamW(hRecord: MSIHANDLE; iField: UINT; szFilePath: LPCWSTR): UINT; stdcall;
- {$EXTERNALSYM MsiRecordSetStreamW}
- function MsiRecordSetStream(hRecord: MSIHANDLE; iField: UINT; szFilePath: LPCTSTR): UINT; stdcall;
- {$EXTERNALSYM MsiRecordSetStream}
- // Read bytes from a record stream field into a buffer
- // Must set the in/out argument to the requested byte count to read
- // The number of bytes transferred is returned through the argument
- // If no more bytes are available, ERROR_SUCCESS is still returned
- function MsiRecordReadStream(hRecord: MSIHANDLE; iField: UINT; szDataBuf: PChar;
- var pcbDataBuf: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiRecordReadStream}
- // Clears all data fields in a record to NULL
- function MsiRecordClearData(hRecord: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiRecordClearData}
- // --------------------------------------------------------------------------
- // Functions to access a running installation, called from custom actions
- // The install handle is the single argument passed to custom actions
- // --------------------------------------------------------------------------
- // Return a handle to the database currently in use by this installer instance
- function MsiGetActiveDatabase(hInstall: MSIHANDLE): MSIHANDLE; stdcall;
- {$EXTERNALSYM MsiGetActiveDatabase}
- // Set the value for an installer property
- // If the property is not defined, it will be created
- // If the value is null or an empty string, the property will be removed
- // Returns ERROR_SUCCESS, ERROR_INVALID_HANDLE, ERROR_BAD_ARGUMENTS
- function MsiSetPropertyA(hInstall: MSIHANDLE; szName: LPCSTR; szValue: LPCSTR): UINT; stdcall;
- {$EXTERNALSYM MsiSetPropertyA}
- function MsiSetPropertyW(hInstall: MSIHANDLE; szName: LPCWSTR; szValue: LPCWSTR): UINT; stdcall;
- {$EXTERNALSYM MsiSetPropertyW}
- function MsiSetProperty(hInstall: MSIHANDLE; szName: LPCTSTR; szValue: LPCTSTR): UINT; stdcall;
- {$EXTERNALSYM MsiSetProperty}
- // Get the value for an installer property
- // If the property is not defined, it is equivalent to a 0-length value, not error
- // Returns ERROR_SUCCESS, ERROR_MORE_DATA, ERROR_INVALID_HANDLE, ERROR_BAD_ARGUMENTS
- function MsiGetPropertyA(hInstall: MSIHANDLE; szName: LPCSTR; szValueBuf: LPSTR;
- var pcchValueBuf: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetPropertyA}
- function MsiGetPropertyW(hInstall: MSIHANDLE; szName: LPCWSTR; szValueBuf: LPWSTR;
- var pcchValueBuf: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetPropertyW}
- function MsiGetProperty(hInstall: MSIHANDLE; szName: LPCTSTR; szValueBuf: LPTSTR;
- var pcchValueBuf: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetProperty}
- // Return the numeric language for the currently running install
- // Returns 0 if an install not running
- function MsiGetLanguage(hInstall: MSIHANDLE): LANGID; stdcall;
- {$EXTERNALSYM MsiGetLanguage}
- // Return one of the boolean internal installer states
- // Returns FALSE if the handle is not active or if the mode is not implemented
- function MsiGetMode(hInstall: MSIHANDLE; eRunMode: MSIRUNMODE): BOOL; stdcall;
- {$EXTERNALSYM MsiGetMode}
- // Set an internal install session boolean mode - Note: most modes are read-only
- // Returns ERROR_SUCCESS if the mode can be set to the desired state
- // Returns ERROR_ACCESS_DENIED if the mode is not settable
- // Returns ERROR_INVALID_HANDLE if the handle is not an active install session
- function MsiSetMode(hInstall: MSIHANDLE; eRunMode: MSIRUNMODE; fState: BOOL): UINT; stdcall;
- {$EXTERNALSYM MsiSetMode}
- // Format record data using a format string containing field markers and/or properties
- // Record field 0 must contain the format string
- // Other fields must contain data that may be referenced by the format string.
- function MsiFormatRecordA(hInstall: MSIHANDLE; hRecord: MSIHANDLE; szResultBuf: LPSTR;
- var pcchResultBuf: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiFormatRecordA}
- function MsiFormatRecordW(hInstall: MSIHANDLE; hRecord: MSIHANDLE; szResultBuf: LPWSTR;
- var pcchResultBuf: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiFormatRecordW}
- function MsiFormatRecord(hInstall: MSIHANDLE; hRecord: MSIHANDLE; szResultBuf: LPTSTR;
- var pcchResultBuf: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiFormatRecord}
- // Execute another action, either built-in, custom, or UI wizard
- // Returns ERROR_FUNCTION_NOT_CALLED if action not found
- // Returns ERROR_SUCCESS if action completed succesfully
- // Returns ERROR_INSTALL_USEREXIT if user cancelled during action
- // Returns ERROR_INSTALL_FAILURE if action failed
- // Returns ERROR_INSTALL_SUSPEND if user suspended installation
- // Returns ERROR_MORE_DATA if action wishes to skip remaining actions
- // Returns ERROR_INVALID_HANDLE_STATE if install session not active
- // Returns ERROR_INVALID_DATA if failure calling custom action
- // Returns ERROR_INVALID_HANDLE or ERROR_INVALID_PARAMETER if arguments invalid
- function MsiDoActionA(hInstall: MSIHANDLE; szAction: LPCSTR): UINT; stdcall;
- {$EXTERNALSYM MsiDoActionA}
- function MsiDoActionW(hInstall: MSIHANDLE; szAction: LPCWSTR): UINT; stdcall;
- {$EXTERNALSYM MsiDoActionW}
- function MsiDoAction(hInstall: MSIHANDLE; szAction: LPCTSTR): UINT; stdcall;
- {$EXTERNALSYM MsiDoAction}
- // Execute another action sequence, as descibed in the specified table
- // Returns the same error codes as MsiDoAction
- function MsiSequenceA(hInstall: MSIHANDLE; szTable: LPCSTR; iSequenceMode: Integer): UINT; stdcall;
- {$EXTERNALSYM MsiSequenceA}
- function MsiSequenceW(hInstall: MSIHANDLE; szTable: LPCWSTR; iSequenceMode: Integer): UINT; stdcall;
- {$EXTERNALSYM MsiSequenceW}
- function MsiSequence(hInstall: MSIHANDLE; szTable: LPCTSTR; iSequenceMode: Integer): UINT; stdcall;
- {$EXTERNALSYM MsiSequence}
- // Send an error record to the installer for processing.
- // If field 0 (template) is not set, field 1 must be set to the error code,
- // corresponding the the error message in the Error database table,
- // and the message will be formatted using the template from the Error table
- // before passing it to the UI handler for display.
- // Returns Win32 button codes: IDOK IDCANCEL IDABORT IDRETRY IDIGNORE IDYES IDNO
- // or 0 if no action taken, or -1 if invalid argument or handle
- function MsiProcessMessage(hInstall: MSIHANDLE; eMessageType: INSTALLMESSAGE;
- hRecord: MSIHANDLE): Integer; stdcall;
- {$EXTERNALSYM MsiProcessMessage}
- // Evaluate a conditional expression containing property names and values
- function MsiEvaluateConditionA(hInstall: MSIHANDLE; szCondition: LPCSTR): MSICONDITION; stdcall;
- {$EXTERNALSYM MsiEvaluateConditionA}
- function MsiEvaluateConditionW(hInstall: MSIHANDLE; szCondition: LPCWSTR): MSICONDITION; stdcall;
- {$EXTERNALSYM MsiEvaluateConditionW}
- function MsiEvaluateCondition(hInstall: MSIHANDLE; szCondition: LPCTSTR): MSICONDITION; stdcall;
- {$EXTERNALSYM MsiEvaluateCondition}
- // Get the installed state and requested action state of a feature
- // Execution of this function sets the error record, accessible via MsiGetLastErrorRecord
- function MsiGetFeatureStateA(hInstall: MSIHANDLE; szFeature: LPCSTR;
- var piInstalled: INSTALLSTATE; var piAction: INSTALLSTATE): UINT; stdcall;
- {$EXTERNALSYM MsiGetFeatureStateA}
- function MsiGetFeatureStateW(hInstall: MSIHANDLE; szFeature: LPCWSTR;
- var piInstalled: INSTALLSTATE; var piAction: INSTALLSTATE): UINT; stdcall;
- {$EXTERNALSYM MsiGetFeatureStateW}
- function MsiGetFeatureState(hInstall: MSIHANDLE; szFeature: LPCTSTR;
- var piInstalled: INSTALLSTATE; var piAction: INSTALLSTATE): UINT; stdcall;
- {$EXTERNALSYM MsiGetFeatureState}
- // Request a feature to be set to a specified state
- // Execution of this function sets the error record, accessible via MsiGetLastErrorRecord
- function MsiSetFeatureStateA(hInstall: MSIHANDLE; szFeature: LPCSTR;
- iState: INSTALLSTATE): UINT; stdcall;
- {$EXTERNALSYM MsiSetFeatureStateA}
- function MsiSetFeatureStateW(hInstall: MSIHANDLE; szFeature: LPCWSTR;
- iState: INSTALLSTATE): UINT; stdcall;
- {$EXTERNALSYM MsiSetFeatureStateW}
- function MsiSetFeatureState(hInstall: MSIHANDLE; szFeature: LPCTSTR;
- iState: INSTALLSTATE): UINT; stdcall;
- {$EXTERNALSYM MsiSetFeatureState}
- // Set the attribute bits of a specified feature at runtime.
- // Execution of this function sets the error record, accessible via MsiGetLastErrorRecord
- function MsiSetFeatureAttributesA(hInstall: MSIHANDLE; szFeature: LPCSTR;
- dwAttributes: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiSetFeatureAttributesA}
- function MsiSetFeatureAttributesW(hInstall: MSIHANDLE; szFeature: LPCWSTR;
- dwAttributes: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiSetFeatureAttributesW}
- function MsiSetFeatureAttributes(hInstall: MSIHANDLE; szFeature: LPCTSTR;
- dwAttributes: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiSetFeatureAttributes}
- // Get the installed state and requested action state of a component
- // Execution of this function sets the error record, accessible via MsiGetLastErrorRecord
- function MsiGetComponentStateA(hInstall: MSIHANDLE; szComponent: LPCSTR;
- var piInstalled: INSTALLSTATE; var piAction: INSTALLSTATE): UINT; stdcall;
- {$EXTERNALSYM MsiGetComponentStateA}
- function MsiGetComponentStateW(hInstall: MSIHANDLE; szComponent: LPCWSTR;
- var piInstalled: INSTALLSTATE; var piAction: INSTALLSTATE): UINT; stdcall;
- {$EXTERNALSYM MsiGetComponentStateW}
- function MsiGetComponentState(hInstall: MSIHANDLE; szComponent: LPCTSTR;
- var piInstalled: INSTALLSTATE; var piAction: INSTALLSTATE): UINT; stdcall;
- {$EXTERNALSYM MsiGetComponentState}
- // Request a component to be set to a specified state
- // Execution of this function sets the error record, accessible via MsiGetLastErrorRecord
- function MsiSetComponentStateA(hInstall: MSIHANDLE; szComponent: LPCSTR;
- iState: INSTALLSTATE): UINT; stdcall;
- {$EXTERNALSYM MsiSetComponentStateA}
- function MsiSetComponentStateW(hInstall: MSIHANDLE; szComponent: LPCWSTR;
- iState: INSTALLSTATE): UINT; stdcall;
- {$EXTERNALSYM MsiSetComponentStateW}
- function MsiSetComponentState(hInstall: MSIHANDLE; szComponent: LPCTSTR;
- iState: INSTALLSTATE): UINT; stdcall;
- {$EXTERNALSYM MsiSetComponentState}
- // Return the disk cost for a feature and related features
- // Can specify either current feature state or proposed state
- // Can specify extent of related features to cost
- // Note that adding costs for several features may produce an
- // excessively large cost due to shared components and parents.
- // Execution of this function sets the error record, accessible via MsiGetLastErrorRecord
- function MsiGetFeatureCostA(hInstall: MSIHANDLE; szFeature: LPCSTR;
- iCostTree: MSICOSTTREE; iState: INSTALLSTATE; var piCost: Integer): UINT; stdcall;
- {$EXTERNALSYM MsiGetFeatureCostA}
- function MsiGetFeatureCostW(hInstall: MSIHANDLE; szFeature: LPCWSTR;
- iCostTree: MSICOSTTREE; iState: INSTALLSTATE; var piCost: Integer): UINT; stdcall;
- {$EXTERNALSYM MsiGetFeatureCostW}
- function MsiGetFeatureCost(hInstall: MSIHANDLE; szFeature: LPCTSTR;
- iCostTree: MSICOSTTREE; iState: INSTALLSTATE; var piCost: Integer): UINT; stdcall;
- {$EXTERNALSYM MsiGetFeatureCost}
- // Enumerates the costs and temporary costs per drives for
- // szComponent. If szComponent is set to NULL, it enumerates
- // the above costs for the engine, per drives.
- //
- // The enumeration is 0-based, i.e. it returns the data for
- // the first drive when called w/ dwIndex set to 0.
- //
- // Can specify either current feature state or proposed state.
- //
- // Execution of this function sets the error record, accessible
- // via MsiGetLastErrorRecord.
- function MsiEnumComponentCostsA(hInstall: MSIHANDLE; szComponent: LPCSTR; dwIndex: DWORD; iState: INSTALLSTATE;
- szDriveBuf: LPSTR; var pcchDriveBuf: DWORD; var piCost: INT; piTempCost: INT): UINT; stdcall;
- {$EXTERNALSYM MsiEnumComponentCostsA}
- function MsiEnumComponentCostsW(hInstall: MSIHANDLE; szComponent: LPCWSTR; dwIndex: DWORD; iState: INSTALLSTATE;
- szDriveBuf: LPWSTR; var pcchDriveBuf: DWORD; var piCost: INT; var piTempCost: INT): UINT; stdcall;
- {$EXTERNALSYM MsiEnumComponentCostsW}
- function MsiEnumComponentCosts(hInstall: MSIHANDLE; szComponent: LPCTSTR; dwIndex: DWORD; iState: INSTALLSTATE;
- szDriveBuf: LPTSTR; var pcchDriveBuf: DWORD; var piCost: INT; var piTempCost: INT): UINT; stdcall;
- {$EXTERNALSYM MsiEnumComponentCosts}
- // Set the install level for a full product installation (not a feature request)
- // Setting the value to 0 initialized components and features to the default level
- // Execution of this function sets the error record, accessible via MsiGetLastErrorRecord
- function MsiSetInstallLevel(hInstall: MSIHANDLE; iInstallLevel: Integer): UINT; stdcall;
- {$EXTERNALSYM MsiSetInstallLevel}
- // Get the valid install states for a feature, represented by bit flags
- // For each valid install state, a bit is set of value: (1 << INSTALLSTATE)
- // Execution of this function sets the error record, accessible via MsiGetLastErrorRecord
- function MsiGetFeatureValidStatesA(hInstall: MSIHANDLE; szFeature: LPCSTR;
- var dwInstallStates: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetFeatureValidStatesA}
- function MsiGetFeatureValidStatesW(hInstall: MSIHANDLE; szFeature: LPCWSTR;
- var dwInstallStates: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetFeatureValidStatesW}
- function MsiGetFeatureValidStates(hInstall: MSIHANDLE; szFeature: LPCTSTR;
- var dwInstallStates: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetFeatureValidStates}
- // Return the full source path for a folder in the Directory table
- // Execution of this function sets the error record, accessible via MsiGetLastErrorRecord
- function MsiGetSourcePathA(hInstall: MSIHANDLE; szFolder: LPCSTR; szPathBuf: LPSTR;
- var pcchPathBuf: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetSourcePathA}
- function MsiGetSourcePathW(hInstall: MSIHANDLE; szFolder: LPCWSTR; szPathBuf: LPWSTR;
- var pcchPathBuf: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetSourcePathW}
- function MsiGetSourcePath(hInstall: MSIHANDLE; szFolder: LPCTSTR; szPathBuf: LPTSTR;
- var pcchPathBuf: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetSourcePath}
- // Return the full target path for a folder in the Directory table
- // Execution of this function sets the error record, accessible via MsiGetLastErrorRecord
- function MsiGetTargetPathA(hInstall: MSIHANDLE; szFolder: LPCSTR;
- szPathBuf: LPSTR; var pcchPathBuf: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetTargetPathA}
- function MsiGetTargetPathW(hInstall: MSIHANDLE; szFolder: LPCWSTR;
- szPathBuf: LPWSTR; var pcchPathBuf: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetTargetPathW}
- function MsiGetTargetPath(hInstall: MSIHANDLE; szFolder: LPCTSTR;
- szPathBuf: LPTSTR; var pcchPathBuf: DWORD): UINT; stdcall;
- {$EXTERNALSYM MsiGetTargetPath}
- // Set the full target path for a folder in the Directory table
- // Execution of this function sets the error record, accessible via MsiGetLastErrorRecord
- function MsiSetTargetPathA(hInstall: MSIHANDLE; szFolder: LPCSTR;
- szFolderPath: LPCSTR): UINT; stdcall;
- {$EXTERNALSYM MsiSetTargetPathA}
- function MsiSetTargetPathW(hInstall: MSIHANDLE; szFolder: LPCWSTR;
- szFolderPath: LPCWSTR): UINT; stdcall;
- {$EXTERNALSYM MsiSetTargetPathW}
- function MsiSetTargetPath(hInstall: MSIHANDLE; szFolder: LPCTSTR;
- szFolderPath: LPCTSTR): UINT; stdcall;
- {$EXTERNALSYM MsiSetTargetPath}
- // Check to see if sufficent disk space is present for the current installation
- // Returns ERROR_SUCCESS, ERROR_DISK_FULL, ERROR_INVALID_HANDLE_STATE, or ERROR_INVALID_HANDLE
- function MsiVerifyDiskSpace(hInstall: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiVerifyDiskSpace}
- // --------------------------------------------------------------------------
- // Functions for rendering UI dialogs from the database representations.
- // Purpose is for product development, not for use during installation.
- // --------------------------------------------------------------------------
- // Enable UI in preview mode to facilitate authoring of UI dialogs.
- // The preview mode will end when the handle is closed.
- function MsiEnableUIPreview(hDatabase: MSIHANDLE; var phPreview: MSIHANDLE): UINT; stdcall;
- {$EXTERNALSYM MsiEnableUIPreview}
- // Display any UI dialog as modeless and inactive.
- // Supplying a null name will remove any current dialog.
- function MsiPreviewDialogA(hPreview: MSIHANDLE; szDialogName: LPCSTR): UINT; stdcall;
- {$EXTERNALSYM MsiPreviewDialogA}
- function MsiPreviewDialogW(hPreview: MSIHANDLE; szDialogName: LPCWSTR): UINT; stdcall;
- {$EXTERNALSYM MsiPreviewDialogW}
- function MsiPreviewDialog(hPreview: MSIHANDLE; szDialogName: LPCTSTR): UINT; stdcall;
- {$EXTERNALSYM MsiPreviewDialog}
- // Display a billboard within a host control in the displayed dialog.
- // Supplying a null billboard name will remove any billboard displayed.
- function MsiPreviewBillboardA(hPreview: MSIHANDLE; szControlName: LPCSTR;
- szBillboard: LPCSTR): UINT; stdcall;
- {$EXTERNALSYM MsiPreviewBillboardA}
- function MsiPreviewBillboardW(hPreview: MSIHANDLE; szControlName: LPCWSTR;
- szBillboard: LPCWSTR): UINT; stdcall;
- {$EXTERNALSYM MsiPreviewBillboardW}
- function MsiPreviewBillboard(hPreview: MSIHANDLE; szControlName: LPCTSTR;
- szBillboard: LPCTSTR): UINT; stdcall;
- {$EXTERNALSYM MsiPreviewBillboard}
- // --------------------------------------------------------------------------
- // Error handling not associated with any particular object
- // --------------------------------------------------------------------------
- // Return a record handle to the last function that generated an error record
- // Only specified functions will set the error record, or clear it if success
- // Field 1 of the record will contain the internal MSI error code
- // Other fields will contain data specific to the particular error
- // The error record is released internally after this function is executed
- function MsiGetLastErrorRecord: MSIHANDLE; stdcall;
- {$EXTERNALSYM MsiGetLastErrorRecord}
- implementation
- const
- msilib = 'msi.dll';
- {$IFDEF UNICODE}
- AWSuffix = 'W';
- {$ELSE}
- AWSuffix = 'A';
- {$ENDIF UNICODE}
- {$IFDEF DYNAMIC_LINK}
- var
- _MsiDatabaseOpenViewA: Pointer;
- function MsiDatabaseOpenViewA;
- begin
- GetProcedureAddress(_MsiDatabaseOpenViewA, msilib, 'MsiDatabaseOpenViewA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiDatabaseOpenViewA]
- end;
- end;
- var
- _MsiDatabaseOpenViewW: Pointer;
- function MsiDatabaseOpenViewW;
- begin
- GetProcedureAddress(_MsiDatabaseOpenViewW, msilib, 'MsiDatabaseOpenViewW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiDatabaseOpenViewW]
- end;
- end;
- var
- _MsiDatabaseOpenView: Pointer;
- function MsiDatabaseOpenView;
- begin
- GetProcedureAddress(_MsiDatabaseOpenView, msilib, 'MsiDatabaseOpenView' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiDatabaseOpenView]
- end;
- end;
- var
- _MsiViewGetErrorA: Pointer;
- function MsiViewGetErrorA;
- begin
- GetProcedureAddress(_MsiViewGetErrorA, msilib, 'MsiViewGetErrorA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiViewGetErrorA]
- end;
- end;
- var
- _MsiViewGetErrorW: Pointer;
- function MsiViewGetErrorW;
- begin
- GetProcedureAddress(_MsiViewGetErrorW, msilib, 'MsiViewGetErrorW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiViewGetErrorW]
- end;
- end;
- var
- _MsiViewGetError: Pointer;
- function MsiViewGetError;
- begin
- GetProcedureAddress(_MsiViewGetError, msilib, 'MsiViewGetError' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiViewGetError]
- end;
- end;
- var
- _MsiViewExecute: Pointer;
- function MsiViewExecute;
- begin
- GetProcedureAddress(_MsiViewExecute, msilib, 'MsiViewExecute');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiViewExecute]
- end;
- end;
- var
- _MsiViewFetch: Pointer;
- function MsiViewFetch;
- begin
- GetProcedureAddress(_MsiViewFetch, msilib, 'MsiViewFetch');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiViewFetch]
- end;
- end;
- var
- _MsiViewModify: Pointer;
- function MsiViewModify;
- begin
- GetProcedureAddress(_MsiViewModify, msilib, 'MsiViewModify');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiViewModify]
- end;
- end;
- var
- _MsiViewGetColumnInfo: Pointer;
- function MsiViewGetColumnInfo;
- begin
- GetProcedureAddress(_MsiViewGetColumnInfo, msilib, 'MsiViewGetColumnInfo');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiViewGetColumnInfo]
- end;
- end;
- var
- _MsiViewClose: Pointer;
- function MsiViewClose;
- begin
- GetProcedureAddress(_MsiViewClose, msilib, 'MsiViewClose');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiViewClose]
- end;
- end;
- var
- _MsiDatabaseGetPrimaryKeysA: Pointer;
- function MsiDatabaseGetPrimaryKeysA;
- begin
- GetProcedureAddress(_MsiDatabaseGetPrimaryKeysA, msilib, 'MsiDatabaseGetPrimaryKeysA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiDatabaseGetPrimaryKeysA]
- end;
- end;
- var
- _MsiDatabaseGetPrimaryKeysW: Pointer;
- function MsiDatabaseGetPrimaryKeysW;
- begin
- GetProcedureAddress(_MsiDatabaseGetPrimaryKeysW, msilib, 'MsiDatabaseGetPrimaryKeysW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiDatabaseGetPrimaryKeysW]
- end;
- end;
- var
- _MsiDatabaseGetPrimaryKeys: Pointer;
- function MsiDatabaseGetPrimaryKeys;
- begin
- GetProcedureAddress(_MsiDatabaseGetPrimaryKeys, msilib, 'MsiDatabaseGetPrimaryKeys' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiDatabaseGetPrimaryKeys]
- end;
- end;
- var
- _MsiDatabaseIsTablePersistentA: Pointer;
- function MsiDatabaseIsTablePersistentA;
- begin
- GetProcedureAddress(_MsiDatabaseIsTablePersistentA, msilib, 'MsiDatabaseIsTablePersistentA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiDatabaseIsTablePersistentA]
- end;
- end;
- var
- _MsiDatabaseIsTablePersistentW: Pointer;
- function MsiDatabaseIsTablePersistentW;
- begin
- GetProcedureAddress(_MsiDatabaseIsTablePersistentW, msilib, 'MsiDatabaseIsTablePersistentW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiDatabaseIsTablePersistentW]
- end;
- end;
- var
- _MsiDatabaseIsTablePersistent: Pointer;
- function MsiDatabaseIsTablePersistent;
- begin
- GetProcedureAddress(_MsiDatabaseIsTablePersistent, msilib, 'MsiDatabaseIsTablePersistent' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiDatabaseIsTablePersistent]
- end;
- end;
- var
- _MsiGetSummaryInformationA: Pointer;
- function MsiGetSummaryInformationA;
- begin
- GetProcedureAddress(_MsiGetSummaryInformationA, msilib, 'MsiGetSummaryInformationA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetSummaryInformationA]
- end;
- end;
- var
- _MsiGetSummaryInformationW: Pointer;
- function MsiGetSummaryInformationW;
- begin
- GetProcedureAddress(_MsiGetSummaryInformationW, msilib, 'MsiGetSummaryInformationW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetSummaryInformationW]
- end;
- end;
- var
- _MsiGetSummaryInformation: Pointer;
- function MsiGetSummaryInformation;
- begin
- GetProcedureAddress(_MsiGetSummaryInformation, msilib, 'MsiGetSummaryInformation' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetSummaryInformation]
- end;
- end;
- var
- _MsiSummaryInfoGetPropertyCount: Pointer;
- function MsiSummaryInfoGetPropertyCount;
- begin
- GetProcedureAddress(_MsiSummaryInfoGetPropertyCount, msilib, 'MsiSummaryInfoGetPropertyCount');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSummaryInfoGetPropertyCount]
- end;
- end;
- var
- _MsiSummaryInfoSetPropertyA: Pointer;
- function MsiSummaryInfoSetPropertyA;
- begin
- GetProcedureAddress(_MsiSummaryInfoSetPropertyA, msilib, 'MsiSummaryInfoSetPropertyA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSummaryInfoSetPropertyA]
- end;
- end;
- var
- _MsiSummaryInfoSetPropertyW: Pointer;
- function MsiSummaryInfoSetPropertyW;
- begin
- GetProcedureAddress(_MsiSummaryInfoSetPropertyW, msilib, 'MsiSummaryInfoSetPropertyW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSummaryInfoSetPropertyW]
- end;
- end;
- var
- _MsiSummaryInfoSetProperty: Pointer;
- function MsiSummaryInfoSetProperty;
- begin
- GetProcedureAddress(_MsiSummaryInfoSetProperty, msilib, 'MsiSummaryInfoSetProperty' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSummaryInfoSetProperty]
- end;
- end;
- var
- _MsiSummaryInfoGetPropertyA: Pointer;
- function MsiSummaryInfoGetPropertyA;
- begin
- GetProcedureAddress(_MsiSummaryInfoGetPropertyA, msilib, 'MsiSummaryInfoGetPropertyA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSummaryInfoGetPropertyA]
- end;
- end;
- var
- _MsiSummaryInfoGetPropertyW: Pointer;
- function MsiSummaryInfoGetPropertyW;
- begin
- GetProcedureAddress(_MsiSummaryInfoGetPropertyW, msilib, 'MsiSummaryInfoGetPropertyW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSummaryInfoGetPropertyW]
- end;
- end;
- var
- _MsiSummaryInfoGetProperty: Pointer;
- function MsiSummaryInfoGetProperty;
- begin
- GetProcedureAddress(_MsiSummaryInfoGetProperty, msilib, 'MsiSummaryInfoGetProperty' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSummaryInfoGetProperty]
- end;
- end;
- var
- _MsiSummaryInfoPersist: Pointer;
- function MsiSummaryInfoPersist;
- begin
- GetProcedureAddress(_MsiSummaryInfoPersist, msilib, 'MsiSummaryInfoPersist');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSummaryInfoPersist]
- end;
- end;
- var
- _MsiOpenDatabaseA: Pointer;
- function MsiOpenDatabaseA;
- begin
- GetProcedureAddress(_MsiOpenDatabaseA, msilib, 'MsiOpenDatabaseA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiOpenDatabaseA]
- end;
- end;
- var
- _MsiOpenDatabaseW: Pointer;
- function MsiOpenDatabaseW;
- begin
- GetProcedureAddress(_MsiOpenDatabaseW, msilib, 'MsiOpenDatabaseW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiOpenDatabaseW]
- end;
- end;
- var
- _MsiOpenDatabase: Pointer;
- function MsiOpenDatabase;
- begin
- GetProcedureAddress(_MsiOpenDatabase, msilib, 'MsiOpenDatabase' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiOpenDatabase]
- end;
- end;
- var
- _MsiDatabaseImportA: Pointer;
- function MsiDatabaseImportA;
- begin
- GetProcedureAddress(_MsiDatabaseImportA, msilib, 'MsiDatabaseImportA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiDatabaseImportA]
- end;
- end;
- var
- _MsiDatabaseImportW: Pointer;
- function MsiDatabaseImportW;
- begin
- GetProcedureAddress(_MsiDatabaseImportW, msilib, 'MsiDatabaseImportW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiDatabaseImportW]
- end;
- end;
- var
- _MsiDatabaseImport: Pointer;
- function MsiDatabaseImport;
- begin
- GetProcedureAddress(_MsiDatabaseImport, msilib, 'MsiDatabaseImport' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiDatabaseImport]
- end;
- end;
- var
- _MsiDatabaseExportA: Pointer;
- function MsiDatabaseExportA;
- begin
- GetProcedureAddress(_MsiDatabaseExportA, msilib, 'MsiDatabaseExportA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiDatabaseExportA]
- end;
- end;
- var
- _MsiDatabaseExportW: Pointer;
- function MsiDatabaseExportW;
- begin
- GetProcedureAddress(_MsiDatabaseExportW, msilib, 'MsiDatabaseExportW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiDatabaseExportW]
- end;
- end;
- var
- _MsiDatabaseExport: Pointer;
- function MsiDatabaseExport;
- begin
- GetProcedureAddress(_MsiDatabaseExport, msilib, 'MsiDatabaseExport' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiDatabaseExport]
- end;
- end;
- var
- _MsiDatabaseMergeA: Pointer;
- function MsiDatabaseMergeA;
- begin
- GetProcedureAddress(_MsiDatabaseMergeA, msilib, 'MsiDatabaseMergeA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiDatabaseMergeA]
- end;
- end;
- var
- _MsiDatabaseMergeW: Pointer;
- function MsiDatabaseMergeW;
- begin
- GetProcedureAddress(_MsiDatabaseMergeW, msilib, 'MsiDatabaseMergeW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiDatabaseMergeW]
- end;
- end;
- var
- _MsiDatabaseMerge: Pointer;
- function MsiDatabaseMerge;
- begin
- GetProcedureAddress(_MsiDatabaseMerge, msilib, 'MsiDatabaseMerge' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiDatabaseMerge]
- end;
- end;
- var
- _MsiDatabaseGenerateTransformA: Pointer;
- function MsiDatabaseGenerateTransformA;
- begin
- GetProcedureAddress(_MsiDatabaseGenerateTransformA, msilib, 'MsiDatabaseGenerateTransformA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiDatabaseGenerateTransformA]
- end;
- end;
- var
- _MsiDatabaseGenerateTransformW: Pointer;
- function MsiDatabaseGenerateTransformW;
- begin
- GetProcedureAddress(_MsiDatabaseGenerateTransformW, msilib, 'MsiDatabaseGenerateTransformW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiDatabaseGenerateTransformW]
- end;
- end;
- var
- _MsiDatabaseGenerateTransform: Pointer;
- function MsiDatabaseGenerateTransform;
- begin
- GetProcedureAddress(_MsiDatabaseGenerateTransform, msilib, 'MsiDatabaseGenerateTransform' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiDatabaseGenerateTransform]
- end;
- end;
- var
- _MsiDatabaseApplyTransformA: Pointer;
- function MsiDatabaseApplyTransformA;
- begin
- GetProcedureAddress(_MsiDatabaseApplyTransformA, msilib, 'MsiDatabaseApplyTransformA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiDatabaseApplyTransformA]
- end;
- end;
- var
- _MsiDatabaseApplyTransformW: Pointer;
- function MsiDatabaseApplyTransformW;
- begin
- GetProcedureAddress(_MsiDatabaseApplyTransformW, msilib, 'MsiDatabaseApplyTransformW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiDatabaseApplyTransformW]
- end;
- end;
- var
- _MsiDatabaseApplyTransform: Pointer;
- function MsiDatabaseApplyTransform;
- begin
- GetProcedureAddress(_MsiDatabaseApplyTransform, msilib, 'MsiDatabaseApplyTransform' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiDatabaseApplyTransform]
- end;
- end;
- var
- _MsiCreateTransformSummaryInfoA: Pointer;
- function MsiCreateTransformSummaryInfoA;
- begin
- GetProcedureAddress(_MsiCreateTransformSummaryInfoA, msilib, 'MsiCreateTransformSummaryInfoA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiCreateTransformSummaryInfoA]
- end;
- end;
- var
- _MsiCreateTransformSummaryInfoW: Pointer;
- function MsiCreateTransformSummaryInfoW;
- begin
- GetProcedureAddress(_MsiCreateTransformSummaryInfoW, msilib, 'MsiCreateTransformSummaryInfoW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiCreateTransformSummaryInfoW]
- end;
- end;
- var
- _MsiCreateTransformSummaryInfo: Pointer;
- function MsiCreateTransformSummaryInfo;
- begin
- GetProcedureAddress(_MsiCreateTransformSummaryInfo, msilib, 'MsiCreateTransformSummaryInfo' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiCreateTransformSummaryInfo]
- end;
- end;
- var
- _MsiDatabaseCommit: Pointer;
- function MsiDatabaseCommit;
- begin
- GetProcedureAddress(_MsiDatabaseCommit, msilib, 'MsiDatabaseCommit');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiDatabaseCommit]
- end;
- end;
- var
- _MsiGetDatabaseState: Pointer;
- function MsiGetDatabaseState;
- begin
- GetProcedureAddress(_MsiGetDatabaseState, msilib, 'MsiGetDatabaseState');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetDatabaseState]
- end;
- end;
- var
- _MsiCreateRecord: Pointer;
- function MsiCreateRecord;
- begin
- GetProcedureAddress(_MsiCreateRecord, msilib, 'MsiCreateRecord');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiCreateRecord]
- end;
- end;
- var
- _MsiRecordIsNull: Pointer;
- function MsiRecordIsNull;
- begin
- GetProcedureAddress(_MsiRecordIsNull, msilib, 'MsiRecordIsNull');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiRecordIsNull]
- end;
- end;
- var
- _MsiRecordDataSize: Pointer;
- function MsiRecordDataSize;
- begin
- GetProcedureAddress(_MsiRecordDataSize, msilib, 'MsiRecordDataSize');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiRecordDataSize]
- end;
- end;
- var
- _MsiRecordSetInteger: Pointer;
- function MsiRecordSetInteger;
- begin
- GetProcedureAddress(_MsiRecordSetInteger, msilib, 'MsiRecordSetInteger');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiRecordSetInteger]
- end;
- end;
- var
- _MsiRecordSetStringA: Pointer;
- function MsiRecordSetStringA;
- begin
- GetProcedureAddress(_MsiRecordSetStringA, msilib, 'MsiRecordSetStringA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiRecordSetStringA]
- end;
- end;
- var
- _MsiRecordSetStringW: Pointer;
- function MsiRecordSetStringW;
- begin
- GetProcedureAddress(_MsiRecordSetStringW, msilib, 'MsiRecordSetStringW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiRecordSetStringW]
- end;
- end;
- var
- _MsiRecordSetString: Pointer;
- function MsiRecordSetString;
- begin
- GetProcedureAddress(_MsiRecordSetString, msilib, 'MsiRecordSetString' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiRecordSetString]
- end;
- end;
- var
- _MsiRecordGetInteger: Pointer;
- function MsiRecordGetInteger;
- begin
- GetProcedureAddress(_MsiRecordGetInteger, msilib, 'MsiRecordGetInteger');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiRecordGetInteger]
- end;
- end;
- var
- _MsiRecordGetStringA: Pointer;
- function MsiRecordGetStringA;
- begin
- GetProcedureAddress(_MsiRecordGetStringA, msilib, 'MsiRecordGetStringA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiRecordGetStringA]
- end;
- end;
- var
- _MsiRecordGetStringW: Pointer;
- function MsiRecordGetStringW;
- begin
- GetProcedureAddress(_MsiRecordGetStringW, msilib, 'MsiRecordGetStringW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiRecordGetStringW]
- end;
- end;
- var
- _MsiRecordGetString: Pointer;
- function MsiRecordGetString;
- begin
- GetProcedureAddress(_MsiRecordGetString, msilib, 'MsiRecordGetString' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiRecordGetString]
- end;
- end;
- var
- _MsiRecordGetFieldCount: Pointer;
- function MsiRecordGetFieldCount;
- begin
- GetProcedureAddress(_MsiRecordGetFieldCount, msilib, 'MsiRecordGetFieldCount');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiRecordGetFieldCount]
- end;
- end;
- var
- _MsiRecordSetStreamA: Pointer;
- function MsiRecordSetStreamA;
- begin
- GetProcedureAddress(_MsiRecordSetStreamA, msilib, 'MsiRecordSetStreamA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiRecordSetStreamA]
- end;
- end;
- var
- _MsiRecordSetStreamW: Pointer;
- function MsiRecordSetStreamW;
- begin
- GetProcedureAddress(_MsiRecordSetStreamW, msilib, 'MsiRecordSetStreamW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiRecordSetStreamW]
- end;
- end;
- var
- _MsiRecordSetStream: Pointer;
- function MsiRecordSetStream;
- begin
- GetProcedureAddress(_MsiRecordSetStream, msilib, 'MsiRecordSetStream' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiRecordSetStream]
- end;
- end;
- var
- _MsiRecordReadStream: Pointer;
- function MsiRecordReadStream;
- begin
- GetProcedureAddress(_MsiRecordReadStream, msilib, 'MsiRecordReadStream');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiRecordReadStream]
- end;
- end;
- var
- _MsiRecordClearData: Pointer;
- function MsiRecordClearData;
- begin
- GetProcedureAddress(_MsiRecordClearData, msilib, 'MsiRecordClearData');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiRecordClearData]
- end;
- end;
- var
- _MsiGetActiveDatabase: Pointer;
- function MsiGetActiveDatabase;
- begin
- GetProcedureAddress(_MsiGetActiveDatabase, msilib, 'MsiGetActiveDatabase');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetActiveDatabase]
- end;
- end;
- var
- _MsiSetPropertyA: Pointer;
- function MsiSetPropertyA;
- begin
- GetProcedureAddress(_MsiSetPropertyA, msilib, 'MsiSetPropertyA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSetPropertyA]
- end;
- end;
- var
- _MsiSetPropertyW: Pointer;
- function MsiSetPropertyW;
- begin
- GetProcedureAddress(_MsiSetPropertyW, msilib, 'MsiSetPropertyW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSetPropertyW]
- end;
- end;
- var
- _MsiSetProperty: Pointer;
- function MsiSetProperty;
- begin
- GetProcedureAddress(_MsiSetProperty, msilib, 'MsiSetProperty' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSetProperty]
- end;
- end;
- var
- _MsiGetPropertyA: Pointer;
- function MsiGetPropertyA;
- begin
- GetProcedureAddress(_MsiGetPropertyA, msilib, 'MsiGetPropertyA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetPropertyA]
- end;
- end;
- var
- _MsiGetPropertyW: Pointer;
- function MsiGetPropertyW;
- begin
- GetProcedureAddress(_MsiGetPropertyW, msilib, 'MsiGetPropertyW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetPropertyW]
- end;
- end;
- var
- _MsiGetProperty: Pointer;
- function MsiGetProperty;
- begin
- GetProcedureAddress(_MsiGetProperty, msilib, 'MsiGetProperty' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetProperty]
- end;
- end;
- var
- _MsiGetLanguage: Pointer;
- function MsiGetLanguage;
- begin
- GetProcedureAddress(_MsiGetLanguage, msilib, 'MsiGetLanguage');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetLanguage]
- end;
- end;
- var
- _MsiGetMode: Pointer;
- function MsiGetMode;
- begin
- GetProcedureAddress(_MsiGetMode, msilib, 'MsiGetMode');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetMode]
- end;
- end;
- var
- _MsiSetMode: Pointer;
- function MsiSetMode;
- begin
- GetProcedureAddress(_MsiSetMode, msilib, 'MsiSetMode');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSetMode]
- end;
- end;
- var
- _MsiFormatRecordA: Pointer;
- function MsiFormatRecordA;
- begin
- GetProcedureAddress(_MsiFormatRecordA, msilib, 'MsiFormatRecordA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiFormatRecordA]
- end;
- end;
- var
- _MsiFormatRecordW: Pointer;
- function MsiFormatRecordW;
- begin
- GetProcedureAddress(_MsiFormatRecordW, msilib, 'MsiFormatRecordW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiFormatRecordW]
- end;
- end;
- var
- _MsiFormatRecord: Pointer;
- function MsiFormatRecord;
- begin
- GetProcedureAddress(_MsiFormatRecord, msilib, 'MsiFormatRecord' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiFormatRecord]
- end;
- end;
- var
- _MsiDoActionA: Pointer;
- function MsiDoActionA;
- begin
- GetProcedureAddress(_MsiDoActionA, msilib, 'MsiDoActionA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiDoActionA]
- end;
- end;
- var
- _MsiDoActionW: Pointer;
- function MsiDoActionW;
- begin
- GetProcedureAddress(_MsiDoActionW, msilib, 'MsiDoActionW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiDoActionW]
- end;
- end;
- var
- _MsiDoAction: Pointer;
- function MsiDoAction;
- begin
- GetProcedureAddress(_MsiDoAction, msilib, 'MsiDoAction' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiDoAction]
- end;
- end;
- var
- _MsiSequenceA: Pointer;
- function MsiSequenceA;
- begin
- GetProcedureAddress(_MsiSequenceA, msilib, 'MsiSequenceA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSequenceA]
- end;
- end;
- var
- _MsiSequenceW: Pointer;
- function MsiSequenceW;
- begin
- GetProcedureAddress(_MsiSequenceW, msilib, 'MsiSequenceW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSequenceW]
- end;
- end;
- var
- _MsiSequence: Pointer;
- function MsiSequence;
- begin
- GetProcedureAddress(_MsiSequence, msilib, 'MsiSequence' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSequence]
- end;
- end;
- var
- _MsiProcessMessage: Pointer;
- function MsiProcessMessage;
- begin
- GetProcedureAddress(_MsiProcessMessage, msilib, 'MsiProcessMessage');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiProcessMessage]
- end;
- end;
- var
- _MsiEvaluateConditionA: Pointer;
- function MsiEvaluateConditionA;
- begin
- GetProcedureAddress(_MsiEvaluateConditionA, msilib, 'MsiEvaluateConditionA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEvaluateConditionA]
- end;
- end;
- var
- _MsiEvaluateConditionW: Pointer;
- function MsiEvaluateConditionW;
- begin
- GetProcedureAddress(_MsiEvaluateConditionW, msilib, 'MsiEvaluateConditionW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEvaluateConditionW]
- end;
- end;
- var
- _MsiEvaluateCondition: Pointer;
- function MsiEvaluateCondition;
- begin
- GetProcedureAddress(_MsiEvaluateCondition, msilib, 'MsiEvaluateCondition' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEvaluateCondition]
- end;
- end;
- var
- _MsiGetFeatureStateA: Pointer;
- function MsiGetFeatureStateA;
- begin
- GetProcedureAddress(_MsiGetFeatureStateA, msilib, 'MsiGetFeatureStateA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetFeatureStateA]
- end;
- end;
- var
- _MsiGetFeatureStateW: Pointer;
- function MsiGetFeatureStateW;
- begin
- GetProcedureAddress(_MsiGetFeatureStateW, msilib, 'MsiGetFeatureStateW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetFeatureStateW]
- end;
- end;
- var
- _MsiGetFeatureState: Pointer;
- function MsiGetFeatureState;
- begin
- GetProcedureAddress(_MsiGetFeatureState, msilib, 'MsiGetFeatureState' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetFeatureState]
- end;
- end;
- var
- _MsiSetFeatureStateA: Pointer;
- function MsiSetFeatureStateA;
- begin
- GetProcedureAddress(_MsiSetFeatureStateA, msilib, 'MsiSetFeatureStateA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSetFeatureStateA]
- end;
- end;
- var
- _MsiSetFeatureStateW: Pointer;
- function MsiSetFeatureStateW;
- begin
- GetProcedureAddress(_MsiSetFeatureStateW, msilib, 'MsiSetFeatureStateW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSetFeatureStateW]
- end;
- end;
- var
- _MsiSetFeatureState: Pointer;
- function MsiSetFeatureState;
- begin
- GetProcedureAddress(_MsiSetFeatureState, msilib, 'MsiSetFeatureState' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSetFeatureState]
- end;
- end;
- var
- _MsiSetFeatureAttributesA: Pointer;
- function MsiSetFeatureAttributesA;
- begin
- GetProcedureAddress(_MsiSetFeatureAttributesA, msilib, 'MsiSetFeatureAttributesA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSetFeatureAttributesA]
- end;
- end;
- var
- _MsiSetFeatureAttributesW: Pointer;
- function MsiSetFeatureAttributesW;
- begin
- GetProcedureAddress(_MsiSetFeatureAttributesW, msilib, 'MsiSetFeatureAttributesW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSetFeatureAttributesW]
- end;
- end;
- var
- _MsiSetFeatureAttributes: Pointer;
- function MsiSetFeatureAttributes;
- begin
- GetProcedureAddress(_MsiSetFeatureAttributes, msilib, 'MsiSetFeatureAttributes' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSetFeatureAttributes]
- end;
- end;
- var
- _MsiGetComponentStateA: Pointer;
- function MsiGetComponentStateA;
- begin
- GetProcedureAddress(_MsiGetComponentStateA, msilib, 'MsiGetComponentStateA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetComponentStateA]
- end;
- end;
- var
- _MsiGetComponentStateW: Pointer;
- function MsiGetComponentStateW;
- begin
- GetProcedureAddress(_MsiGetComponentStateW, msilib, 'MsiGetComponentStateW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetComponentStateW]
- end;
- end;
- var
- _MsiGetComponentState: Pointer;
- function MsiGetComponentState;
- begin
- GetProcedureAddress(_MsiGetComponentState, msilib, 'MsiGetComponentState' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetComponentState]
- end;
- end;
- var
- _MsiSetComponentStateA: Pointer;
- function MsiSetComponentStateA;
- begin
- GetProcedureAddress(_MsiSetComponentStateA, msilib, 'MsiSetComponentStateA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSetComponentStateA]
- end;
- end;
- var
- _MsiSetComponentStateW: Pointer;
- function MsiSetComponentStateW;
- begin
- GetProcedureAddress(_MsiSetComponentStateW, msilib, 'MsiSetComponentStateW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSetComponentStateW]
- end;
- end;
- var
- _MsiSetComponentState: Pointer;
- function MsiSetComponentState;
- begin
- GetProcedureAddress(_MsiSetComponentState, msilib, 'MsiSetComponentState' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSetComponentState]
- end;
- end;
- var
- _MsiGetFeatureCostA: Pointer;
- function MsiGetFeatureCostA;
- begin
- GetProcedureAddress(_MsiGetFeatureCostA, msilib, 'MsiGetFeatureCostA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetFeatureCostA]
- end;
- end;
- var
- _MsiGetFeatureCostW: Pointer;
- function MsiGetFeatureCostW;
- begin
- GetProcedureAddress(_MsiGetFeatureCostW, msilib, 'MsiGetFeatureCostW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetFeatureCostW]
- end;
- end;
- var
- _MsiGetFeatureCost: Pointer;
- function MsiGetFeatureCost;
- begin
- GetProcedureAddress(_MsiGetFeatureCost, msilib, 'MsiGetFeatureCost' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetFeatureCost]
- end;
- end;
- var
- _MsiEnumComponentCostsA: Pointer;
- function MsiEnumComponentCostsA;
- begin
- GetProcedureAddress(_MsiEnumComponentCostsA, msilib, 'MsiEnumComponentCostsA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEnumComponentCostsA]
- end;
- end;
- var
- _MsiEnumComponentCostsW: Pointer;
- function MsiEnumComponentCostsW;
- begin
- GetProcedureAddress(_MsiEnumComponentCostsW, msilib, 'MsiEnumComponentCostsW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEnumComponentCostsW]
- end;
- end;
- var
- _MsiEnumComponentCosts: Pointer;
- function MsiEnumComponentCosts;
- begin
- GetProcedureAddress(_MsiEnumComponentCosts, msilib, 'MsiEnumComponentCosts' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEnumComponentCosts]
- end;
- end;
- var
- _MsiSetInstallLevel: Pointer;
- function MsiSetInstallLevel;
- begin
- GetProcedureAddress(_MsiSetInstallLevel, msilib, 'MsiSetInstallLevel');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSetInstallLevel]
- end;
- end;
- var
- _MsiGetFeatureValidStatesA: Pointer;
- function MsiGetFeatureValidStatesA;
- begin
- GetProcedureAddress(_MsiGetFeatureValidStatesA, msilib, 'MsiGetFeatureValidStatesA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetFeatureValidStatesA]
- end;
- end;
- var
- _MsiGetFeatureValidStatesW: Pointer;
- function MsiGetFeatureValidStatesW;
- begin
- GetProcedureAddress(_MsiGetFeatureValidStatesW, msilib, 'MsiGetFeatureValidStatesW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetFeatureValidStatesW]
- end;
- end;
- var
- _MsiGetFeatureValidStates: Pointer;
- function MsiGetFeatureValidStates;
- begin
- GetProcedureAddress(_MsiGetFeatureValidStates, msilib, 'MsiGetFeatureValidStates' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetFeatureValidStates]
- end;
- end;
- var
- _MsiGetSourcePathA: Pointer;
- function MsiGetSourcePathA;
- begin
- GetProcedureAddress(_MsiGetSourcePathA, msilib, 'MsiGetSourcePathA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetSourcePathA]
- end;
- end;
- var
- _MsiGetSourcePathW: Pointer;
- function MsiGetSourcePathW;
- begin
- GetProcedureAddress(_MsiGetSourcePathW, msilib, 'MsiGetSourcePathW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetSourcePathW]
- end;
- end;
- var
- _MsiGetSourcePath: Pointer;
- function MsiGetSourcePath;
- begin
- GetProcedureAddress(_MsiGetSourcePath, msilib, 'MsiGetSourcePath' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetSourcePath]
- end;
- end;
- var
- _MsiGetTargetPathA: Pointer;
- function MsiGetTargetPathA;
- begin
- GetProcedureAddress(_MsiGetTargetPathA, msilib, 'MsiGetTargetPathA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetTargetPathA]
- end;
- end;
- var
- _MsiGetTargetPathW: Pointer;
- function MsiGetTargetPathW;
- begin
- GetProcedureAddress(_MsiGetTargetPathW, msilib, 'MsiGetTargetPathW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetTargetPathW]
- end;
- end;
- var
- _MsiGetTargetPath: Pointer;
- function MsiGetTargetPath;
- begin
- GetProcedureAddress(_MsiGetTargetPath, msilib, 'MsiGetTargetPath' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetTargetPath]
- end;
- end;
- var
- _MsiSetTargetPathA: Pointer;
- function MsiSetTargetPathA;
- begin
- GetProcedureAddress(_MsiSetTargetPathA, msilib, 'MsiSetTargetPathA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSetTargetPathA]
- end;
- end;
- var
- _MsiSetTargetPathW: Pointer;
- function MsiSetTargetPathW;
- begin
- GetProcedureAddress(_MsiSetTargetPathW, msilib, 'MsiSetTargetPathW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSetTargetPathW]
- end;
- end;
- var
- _MsiSetTargetPath: Pointer;
- function MsiSetTargetPath;
- begin
- GetProcedureAddress(_MsiSetTargetPath, msilib, 'MsiSetTargetPath' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiSetTargetPath]
- end;
- end;
- var
- _MsiVerifyDiskSpace: Pointer;
- function MsiVerifyDiskSpace;
- begin
- GetProcedureAddress(_MsiVerifyDiskSpace, msilib, 'MsiVerifyDiskSpace');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiVerifyDiskSpace]
- end;
- end;
- var
- _MsiEnableUIPreview: Pointer;
- function MsiEnableUIPreview;
- begin
- GetProcedureAddress(_MsiEnableUIPreview, msilib, 'MsiEnableUIPreview');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiEnableUIPreview]
- end;
- end;
- var
- _MsiPreviewDialogA: Pointer;
- function MsiPreviewDialogA;
- begin
- GetProcedureAddress(_MsiPreviewDialogA, msilib, 'MsiPreviewDialogA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiPreviewDialogA]
- end;
- end;
- var
- _MsiPreviewDialogW: Pointer;
- function MsiPreviewDialogW;
- begin
- GetProcedureAddress(_MsiPreviewDialogW, msilib, 'MsiPreviewDialogW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiPreviewDialogW]
- end;
- end;
- var
- _MsiPreviewDialog: Pointer;
- function MsiPreviewDialog;
- begin
- GetProcedureAddress(_MsiPreviewDialog, msilib, 'MsiPreviewDialog' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiPreviewDialog]
- end;
- end;
- var
- _MsiPreviewBillboardA: Pointer;
- function MsiPreviewBillboardA;
- begin
- GetProcedureAddress(_MsiPreviewBillboardA, msilib, 'MsiPreviewBillboardA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiPreviewBillboardA]
- end;
- end;
- var
- _MsiPreviewBillboardW: Pointer;
- function MsiPreviewBillboardW;
- begin
- GetProcedureAddress(_MsiPreviewBillboardW, msilib, 'MsiPreviewBillboardW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiPreviewBillboardW]
- end;
- end;
- var
- _MsiPreviewBillboard: Pointer;
- function MsiPreviewBillboard;
- begin
- GetProcedureAddress(_MsiPreviewBillboard, msilib, 'MsiPreviewBillboard' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiPreviewBillboard]
- end;
- end;
- var
- _MsiGetLastErrorRecord: Pointer;
- function MsiGetLastErrorRecord;
- begin
- GetProcedureAddress(_MsiGetLastErrorRecord, msilib, 'MsiGetLastErrorRecord');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_MsiGetLastErrorRecord]
- end;
- end;
- {$ELSE}
- function MsiDatabaseOpenViewA; external msilib name 'MsiDatabaseOpenViewA';
- function MsiDatabaseOpenViewW; external msilib name 'MsiDatabaseOpenViewW';
- function MsiDatabaseOpenView; external msilib name 'MsiDatabaseOpenView' + AWSuffix;
- function MsiViewGetErrorA; external msilib name 'MsiViewGetErrorA';
- function MsiViewGetErrorW; external msilib name 'MsiViewGetErrorW';
- function MsiViewGetError; external msilib name 'MsiViewGetError' + AWSuffix;
- function MsiViewExecute; external msilib name 'MsiViewExecute';
- function MsiViewFetch; external msilib name 'MsiViewFetch';
- function MsiViewModify; external msilib name 'MsiViewModify';
- function MsiViewGetColumnInfo; external msilib name 'MsiViewGetColumnInfo';
- function MsiViewClose; external msilib name 'MsiViewClose';
- function MsiDatabaseGetPrimaryKeysA; external msilib name 'MsiDatabaseGetPrimaryKeysA';
- function MsiDatabaseGetPrimaryKeysW; external msilib name 'MsiDatabaseGetPrimaryKeysW';
- function MsiDatabaseGetPrimaryKeys; external msilib name 'MsiDatabaseGetPrimaryKeys' + AWSuffix;
- function MsiDatabaseIsTablePersistentA; external msilib name 'MsiDatabaseIsTablePersistentA';
- function MsiDatabaseIsTablePersistentW; external msilib name 'MsiDatabaseIsTablePersistentW';
- function MsiDatabaseIsTablePersistent; external msilib name 'MsiDatabaseIsTablePersistent' + AWSuffix;
- function MsiGetSummaryInformationA; external msilib name 'MsiGetSummaryInformationA';
- function MsiGetSummaryInformationW; external msilib name 'MsiGetSummaryInformationW';
- function MsiGetSummaryInformation; external msilib name 'MsiGetSummaryInformation' + AWSuffix;
- function MsiSummaryInfoGetPropertyCount; external msilib name 'MsiSummaryInfoGetPropertyCount';
- function MsiSummaryInfoSetPropertyA; external msilib name 'MsiSummaryInfoSetPropertyA';
- function MsiSummaryInfoSetPropertyW; external msilib name 'MsiSummaryInfoSetPropertyW';
- function MsiSummaryInfoSetProperty; external msilib name 'MsiSummaryInfoSetProperty' + AWSuffix;
- function MsiSummaryInfoGetPropertyA; external msilib name 'MsiSummaryInfoGetPropertyA';
- function MsiSummaryInfoGetPropertyW; external msilib name 'MsiSummaryInfoGetPropertyW';
- function MsiSummaryInfoGetProperty; external msilib name 'MsiSummaryInfoGetProperty' + AWSuffix;
- function MsiSummaryInfoPersist; external msilib name 'MsiSummaryInfoPersist';
- function MsiOpenDatabaseA; external msilib name 'MsiOpenDatabaseA';
- function MsiOpenDatabaseW; external msilib name 'MsiOpenDatabaseW';
- function MsiOpenDatabase; external msilib name 'MsiOpenDatabase' + AWSuffix;
- function MsiDatabaseImportA; external msilib name 'MsiDatabaseImportA';
- function MsiDatabaseImportW; external msilib name 'MsiDatabaseImportW';
- function MsiDatabaseImport; external msilib name 'MsiDatabaseImport' + AWSuffix;
- function MsiDatabaseExportA; external msilib name 'MsiDatabaseExportA';
- function MsiDatabaseExportW; external msilib name 'MsiDatabaseExportW';
- function MsiDatabaseExport; external msilib name 'MsiDatabaseExport' + AWSuffix;
- function MsiDatabaseMergeA; external msilib name 'MsiDatabaseMergeA';
- function MsiDatabaseMergeW; external msilib name 'MsiDatabaseMergeW';
- function MsiDatabaseMerge; external msilib name 'MsiDatabaseMerge' + AWSuffix;
- function MsiDatabaseGenerateTransformA; external msilib name 'MsiDatabaseGenerateTransformA';
- function MsiDatabaseGenerateTransformW; external msilib name 'MsiDatabaseGenerateTransformW';
- function MsiDatabaseGenerateTransform; external msilib name 'MsiDatabaseGenerateTransform' + AWSuffix;
- function MsiDatabaseApplyTransformA; external msilib name 'MsiDatabaseApplyTransformA';
- function MsiDatabaseApplyTransformW; external msilib name 'MsiDatabaseApplyTransformW';
- function MsiDatabaseApplyTransform; external msilib name 'MsiDatabaseApplyTransform' + AWSuffix;
- function MsiCreateTransformSummaryInfoA; external msilib name 'MsiCreateTransformSummaryInfoA';
- function MsiCreateTransformSummaryInfoW; external msilib name 'MsiCreateTransformSummaryInfoW';
- function MsiCreateTransformSummaryInfo; external msilib name 'MsiCreateTransformSummaryInfo' + AWSuffix;
- function MsiDatabaseCommit; external msilib name 'MsiDatabaseCommit';
- function MsiGetDatabaseState; external msilib name 'MsiGetDatabaseState';
- function MsiCreateRecord; external msilib name 'MsiCreateRecord';
- function MsiRecordIsNull; external msilib name 'MsiRecordIsNull';
- function MsiRecordDataSize; external msilib name 'MsiRecordDataSize';
- function MsiRecordSetInteger; external msilib name 'MsiRecordSetInteger';
- function MsiRecordSetStringA; external msilib name 'MsiRecordSetStringA';
- function MsiRecordSetStringW; external msilib name 'MsiRecordSetStringW';
- function MsiRecordSetString; external msilib name 'MsiRecordSetString' + AWSuffix;
- function MsiRecordGetInteger; external msilib name 'MsiRecordGetInteger';
- function MsiRecordGetStringA; external msilib name 'MsiRecordGetStringA';
- function MsiRecordGetStringW; external msilib name 'MsiRecordGetStringW';
- function MsiRecordGetString; external msilib name 'MsiRecordGetString' + AWSuffix;
- function MsiRecordGetFieldCount; external msilib name 'MsiRecordGetFieldCount';
- function MsiRecordSetStreamA; external msilib name 'MsiRecordSetStreamA';
- function MsiRecordSetStreamW; external msilib name 'MsiRecordSetStreamW';
- function MsiRecordSetStream; external msilib name 'MsiRecordSetStream' + AWSuffix;
- function MsiRecordReadStream; external msilib name 'MsiRecordReadStream';
- function MsiRecordClearData; external msilib name 'MsiRecordClearData';
- function MsiGetActiveDatabase; external msilib name 'MsiGetActiveDatabase';
- function MsiSetPropertyA; external msilib name 'MsiSetPropertyA';
- function MsiSetPropertyW; external msilib name 'MsiSetPropertyW';
- function MsiSetProperty; external msilib name 'MsiSetProperty' + AWSuffix;
- function MsiGetPropertyA; external msilib name 'MsiGetPropertyA';
- function MsiGetPropertyW; external msilib name 'MsiGetPropertyW';
- function MsiGetProperty; external msilib name 'MsiGetProperty' + AWSuffix;
- function MsiGetLanguage; external msilib name 'MsiGetLanguage';
- function MsiGetMode; external msilib name 'MsiGetMode';
- function MsiSetMode; external msilib name 'MsiSetMode';
- function MsiFormatRecordA; external msilib name 'MsiFormatRecordA';
- function MsiFormatRecordW; external msilib name 'MsiFormatRecordW';
- function MsiFormatRecord; external msilib name 'MsiFormatRecord' + AWSuffix;
- function MsiDoActionA; external msilib name 'MsiDoActionA';
- function MsiDoActionW; external msilib name 'MsiDoActionW';
- function MsiDoAction; external msilib name 'MsiDoAction' + AWSuffix;
- function MsiSequenceA; external msilib name 'MsiSequenceA';
- function MsiSequenceW; external msilib name 'MsiSequenceW';
- function MsiSequence; external msilib name 'MsiSequence' + AWSuffix;
- function MsiProcessMessage; external msilib name 'MsiProcessMessage';
- function MsiEvaluateConditionA; external msilib name 'MsiEvaluateConditionA';
- function MsiEvaluateConditionW; external msilib name 'MsiEvaluateConditionW';
- function MsiEvaluateCondition; external msilib name 'MsiEvaluateCondition' + AWSuffix;
- function MsiGetFeatureStateA; external msilib name 'MsiGetFeatureStateA';
- function MsiGetFeatureStateW; external msilib name 'MsiGetFeatureStateW';
- function MsiGetFeatureState; external msilib name 'MsiGetFeatureState' + AWSuffix;
- function MsiSetFeatureStateA; external msilib name 'MsiSetFeatureStateA';
- function MsiSetFeatureStateW; external msilib name 'MsiSetFeatureStateW';
- function MsiSetFeatureState; external msilib name 'MsiSetFeatureState' + AWSuffix;
- function MsiSetFeatureAttributesA; external msilib name 'MsiSetFeatureAttributesA';
- function MsiSetFeatureAttributesW; external msilib name 'MsiSetFeatureAttributesW';
- function MsiSetFeatureAttributes; external msilib name 'MsiSetFeatureAttributes' + AWSuffix;
- function MsiGetComponentStateA; external msilib name 'MsiGetComponentStateA';
- function MsiGetComponentStateW; external msilib name 'MsiGetComponentStateW';
- function MsiGetComponentState; external msilib name 'MsiGetComponentState' + AWSuffix;
- function MsiSetComponentStateA; external msilib name 'MsiSetComponentStateA';
- function MsiSetComponentStateW; external msilib name 'MsiSetComponentStateW';
- function MsiSetComponentState; external msilib name 'MsiSetComponentState' + AWSuffix;
- function MsiGetFeatureCostA; external msilib name 'MsiGetFeatureCostA';
- function MsiGetFeatureCostW; external msilib name 'MsiGetFeatureCostW';
- function MsiGetFeatureCost; external msilib name 'MsiGetFeatureCost' + AWSuffix;
- function MsiEnumComponentCostsA; external msilib name 'MsiEnumComponentCostsA';
- function MsiEnumComponentCostsW; external msilib name 'MsiEnumComponentCostsW';
- function MsiEnumComponentCosts; external msilib name 'MsiEnumComponentCosts' + AWSuffix;
- function MsiSetInstallLevel; external msilib name 'MsiSetInstallLevel';
- function MsiGetFeatureValidStatesA; external msilib name 'MsiGetFeatureValidStatesA';
- function MsiGetFeatureValidStatesW; external msilib name 'MsiGetFeatureValidStatesW';
- function MsiGetFeatureValidStates; external msilib name 'MsiGetFeatureValidStates' + AWSuffix;
- function MsiGetSourcePathA; external msilib name 'MsiGetSourcePathA';
- function MsiGetSourcePathW; external msilib name 'MsiGetSourcePathW';
- function MsiGetSourcePath; external msilib name 'MsiGetSourcePath' + AWSuffix;
- function MsiGetTargetPathA; external msilib name 'MsiGetTargetPathA';
- function MsiGetTargetPathW; external msilib name 'MsiGetTargetPathW';
- function MsiGetTargetPath; external msilib name 'MsiGetTargetPath' + AWSuffix;
- function MsiSetTargetPathA; external msilib name 'MsiSetTargetPathA';
- function MsiSetTargetPathW; external msilib name 'MsiSetTargetPathW';
- function MsiSetTargetPath; external msilib name 'MsiSetTargetPath' + AWSuffix;
- function MsiVerifyDiskSpace; external msilib name 'MsiVerifyDiskSpace';
- function MsiEnableUIPreview; external msilib name 'MsiEnableUIPreview';
- function MsiPreviewDialogA; external msilib name 'MsiPreviewDialogA';
- function MsiPreviewDialogW; external msilib name 'MsiPreviewDialogW';
- function MsiPreviewDialog; external msilib name 'MsiPreviewDialog' + AWSuffix;
- function MsiPreviewBillboardA; external msilib name 'MsiPreviewBillboardA';
- function MsiPreviewBillboardW; external msilib name 'MsiPreviewBillboardW';
- function MsiPreviewBillboard; external msilib name 'MsiPreviewBillboard' + AWSuffix;
- function MsiGetLastErrorRecord; external msilib name 'MsiGetLastErrorRecord';
- {$ENDIF DYNAMIC_LINK}
- end.
|