12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951 |
- {******************************************************************************}
- { }
- { 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 }
- { }
- {******************************************************************************}
- // $Id: JwaMsiQuery.pas,v 1.9 2005/09/06 16:36:50 marquardt Exp $
- unit JwaMsiQuery;
- {$WEAKPACKAGEUNIT}
- {$HPPEMIT ''}
- {$HPPEMIT '#include "msiquery.h"'}
- {$HPPEMIT ''}
- {$I jediapilib.inc}
- interface
- uses
- JwaMsi, JwaWindows;
- (*****************************************************************************\
- * *
- * 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
- uses
- JwaWinDLLNames;
- {$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.
|