activex.pp 212 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237
  1. Unit ActiveX;
  2. //+-------------------------------------------------------------------------
  3. //
  4. // Microsoft Windows
  5. // Copyright (c) Microsoft Corporation. All rights reserved.
  6. //
  7. // File: objidl.idl
  8. //
  9. // Header translation by Marco van de Voort for Free Pascal Platform
  10. // SDK dl'ed January 2002
  11. //
  12. //--------------------------------------------------------------------------
  13. {$Mode objfpc}
  14. {$ifndef NO_SMART_LINK}
  15. {$smartlink on}
  16. {$endif}
  17. Interface
  18. Uses variants,Windows,ctypes,types;
  19. type
  20. { extra types }
  21. TOleChar = Types.TOleChar;
  22. POleStr = Types.POleStr;
  23. PPOleStr = Types.PPOleStr;
  24. TBStr = POleStr;
  25. TBStrList = array[0..(high(integer) div sizeof(TBSTR))-1] of TBstr;
  26. PBStrList = ^TBStrList;
  27. POleStrList = ^TOleStrList;
  28. TOleStrList = array[0..(high(integer) div sizeof(POleStr))-1] of POleStr;
  29. PBStr = ^TBStr;
  30. TOleEnum = type LongWord;
  31. LargeInt = Types.LargeInt;
  32. LargeUInt = Types.LargeUInt;
  33. PLargeInt = Types.PLargeInt;
  34. PLargeUInt = Types.PLargeUInt;
  35. FMTID = TGUID;
  36. pFMTID = pGUID;
  37. { Glue types, should be linked to the proper windows unit types}
  38. Size_t = DWord; {??, probably, like Unix, typecastable to pointer?!?}
  39. OleChar = WChar;
  40. LPOLESTR = ^OLECHAR;
  41. POLECHAR = LPOLESTR;
  42. PLPOLESTR = ^LPOLESTR;
  43. PROPID = ULONG;
  44. TPROPID= PROPID;
  45. PPROPID= ^PROPID;
  46. VARIANT_BOOL = wordbool;
  47. _VARIANT_BOOL = VARIANT_BOOL;
  48. PVARIANT_BOOL = ^VARIANT_BOOL;
  49. CY = CURRENCY;
  50. DATE = DOUBLE;
  51. BSTR = POLESTR;
  52. TOleDate = DATE;
  53. POleDate = ^TOleDate;
  54. OLE_HANDLE = UINT;
  55. LPOLE_HANDLE = ^OLE_HANDLE;
  56. OLE_COLOR = DWORD;
  57. LPOLE_COLOR = ^OLE_COLOR;
  58. TOleHandle = OLE_HANDLE;
  59. POleHandle = LPOLE_HANDLE;
  60. TOleColor = OLE_COLOR;
  61. POleColor = LPOle_Color;
  62. CONST
  63. GUID_NULL : TGUID = '{00000000-0000-0000-0000-000000000000}';
  64. // bit flags for IExternalConnection
  65. CONST
  66. EXTCONN_STRONG = $0001; // strong connection
  67. EXTCONN_WEAK = $0002; // weak connection (table, container)
  68. EXTCONN_CALLABLE = $0004; // table .vs. callable
  69. {Bind Flags}
  70. BIND_MAYBOTHERUSER = 1;
  71. BIND_JUSTTESTEXISTENCE = 2;
  72. MKSYS_NONE = 0;
  73. MKSYS_GENERICCOMPOSITE = 1;
  74. MKSYS_FILEMONIKER = 2;
  75. MKSYS_ANTIMONIKER = 3;
  76. MKSYS_ITEMMONIKER = 4;
  77. MKSYS_POINTERMONIKER = 5;
  78. // MKSYS_URLMONIKER = 6;
  79. MKSYS_CLASSMONIKER = 7;
  80. MKSYS_OBJREFMONIKER = 8;
  81. MKSYS_SESSIONMONIKER = 9;
  82. // system moniker types; returned from IsSystemMoniker.
  83. MKRREDUCE_ONE = 3 SHL 16;
  84. MKRREDUCE_TOUSER = 2 SHL 16;
  85. MKRREDUCE_THROUGHUSER = 1 SHL 16;
  86. MKRREDUCE_ALL = 0;
  87. // Storage element types
  88. STGTY_STORAGE = 1;
  89. STGTY_STREAM = 2;
  90. STGTY_LOCKBYTES = 3;
  91. STGTY_PROPERTY = 4;
  92. STREAM_SEEK_SET = 0;
  93. STREAM_SEEK_CUR = 1;
  94. STREAM_SEEK_END = 2;
  95. LOCK_WRITE = 1;
  96. LOCK_EXCLUSIVE = 2;
  97. LOCK_ONLYONCE = 4;
  98. //Advise Flags
  99. ADVF_NODATA = 1;
  100. ADVF_PRIMEFIRST = 2;
  101. ADVF_ONLYONCE = 4;
  102. ADVF_DATAONSTOP = 64;
  103. ADVFCACHE_NOHANDLER = 8;
  104. ADVFCACHE_FORCEBUILTIN = 16;
  105. ADVFCACHE_ONSAVE = 32;
  106. //****************************************************************************
  107. //* Notification Interfaces
  108. //****************************************************************************/
  109. TYMED_HGLOBAL = 1;
  110. TYMED_FILE = 2;
  111. TYMED_ISTREAM = 4;
  112. TYMED_ISTORAGE = 8;
  113. TYMED_GDI = 16;
  114. TYMED_MFPICT = 32;
  115. TYMED_ENHMF = 64;
  116. TYMED_NULL = 0;
  117. // Object Definitions for EnumObjects()
  118. OBJ_PEN = 1;
  119. OBJ_BRUSH = 2;
  120. OBJ_DC = 3;
  121. OBJ_METADC = 4;
  122. OBJ_PAL = 5;
  123. OBJ_FONT = 6;
  124. OBJ_BITMAP = 7;
  125. OBJ_REGION = 8;
  126. OBJ_METAFILE = 9;
  127. OBJ_MEMDC = 10;
  128. OBJ_EXTPEN = 11;
  129. OBJ_ENHMETADC = 12;
  130. OBJ_ENHMETAFILE = 13;
  131. DATADIR_GET = 1;
  132. DATADIR_SET = 2;
  133. // call type used by IMessageFilter::HandleIncomingMessage
  134. CALLTYPE_TOPLEVEL = 1; // toplevel call - no outgoing call
  135. CALLTYPE_NESTED = 2; // callback on behalf of previous outgoing call - should always handle
  136. CALLTYPE_ASYNC = 3; // aysnchronous call - can NOT be rejected
  137. CALLTYPE_TOPLEVEL_CALLPENDING = 4; // new toplevel call with new LID
  138. CALLTYPE_ASYNC_CALLPENDING = 5; // async call - can NOT be rejected
  139. // status of server call - returned by IMessageFilter::HandleIncomingCall
  140. // and passed to IMessageFilter::RetryRejectedCall
  141. SERVERCALL_ISHANDLED = 0;
  142. SERVERCALL_REJECTED = 1;
  143. SERVERCALL_RETRYLATER = 2;
  144. // Pending type indicates the level of nesting
  145. PENDINGTYPE_TOPLEVEL = 1; // toplevel call
  146. PENDINGTYPE_NESTED = 2; // nested call
  147. // return values of MessagePending
  148. PENDINGMSG_CANCELCALL = 0; // cancel the outgoing call
  149. PENDINGMSG_WAITNOPROCESS = 1; // wait for the return and don't dispatch the message
  150. PENDINGMSG_WAITDEFPROCESS = 2; // wait and dispatch the message
  151. EOAC_NONE = $0;
  152. EOAC_MUTUAL_AUTH = $1;
  153. EOAC_STATIC_CLOAKING = $20;
  154. EOAC_DYNAMIC_CLOAKING = $40;
  155. EOAC_ANY_AUTHORITY = $80;
  156. EOAC_MAKE_FULLSIC = $100;
  157. EOAC_DEFAULT = $800;
  158. // These are only valid for CoInitializeSecurity
  159. EOAC_SECURE_REFS = $2;
  160. EOAC_ACCESS_CONTROL = $4;
  161. EOAC_APPID = $8;
  162. EOAC_DYNAMIC = $10;
  163. EOAC_REQUIRE_FULLSIC = $200;
  164. EOAC_AUTO_IMPERSONATE = $400;
  165. EOAC_NO_CUSTOM_MARSHAL = $2000;
  166. EOAC_DISABLE_AAA = $1000;
  167. //****************************************************************************
  168. //* ICOMThreadingInfo and enums
  169. //****************************************************************************/
  170. APTTYPE_CURRENT = -1;
  171. APTTYPE_STA = 0;
  172. APTTYPE_MTA = 1;
  173. APTTYPE_NA = 2;
  174. APTTYPE_MAINSTA = 3;
  175. THDTYPE_BLOCKMESSAGES = 0;
  176. THDTYPE_PROCESSMESSAGES = 1;
  177. DCOM_NONE = $0;
  178. DCOM_CALL_COMPLETE = $1;
  179. DCOM_CALL_CANCELED = $2;
  180. COMBND_RPCTIMEOUT = $1; // Rpc transport-specific timeout.
  181. //************************* Misc Enums wtypes.h ***********************************/
  182. // Common typdefs used in API paramaters, gleamed from compobj.h
  183. // memory context values; passed to CoGetMalloc
  184. Const
  185. MEMCTX_TASK = 1; // task (private) memory
  186. MEMCTX_SHARED = 2; // shared memory (between processes)
  187. MEMCTX_MACSYSTEM = 3; // on the mac, the system heap
  188. // these are mostly for internal use...
  189. MEMCTX_UNKNOWN = -1; // unknown context (when asked about it)
  190. MEMCTX_SAME = -2; // same context (as some other pointer)
  191. // For IRunningObjectTable::Register
  192. ROTFLAGS_REGISTRATIONKEEPSALIVE = $1;
  193. ROTFLAGS_ALLOWANYCLIENT = $2;
  194. // Maximum size of comparison buffer for IROTData::GetComparisonData
  195. ROT_COMPARE_MAX = 2048;
  196. // class context: used to determine what scope and kind of class object to use
  197. // NOTE: this is a bitwise enum
  198. CLSCTX_INPROC_SERVER = $0001; // server dll (runs in same process as caller)
  199. CLSCTX_INPROC_HANDLER = $0002; // handler dll (runs in same process as caller)
  200. CLSCTX_LOCAL_SERVER = $0004; // server exe (runs on same machine; diff proc)
  201. CLSCTX_INPROC_SERVER16 = $0008; // 16-bit server dll (runs in same process as caller)
  202. CLSCTX_REMOTE_SERVER = $0010; // remote server exe (runs on different machine)
  203. CLSCTX_INPROC_HANDLER16 = $0020; // 16-bit handler dll (runs in same process as caller)
  204. CLSCTX_INPROC_SERVERX86 = $0040; // Wx86 server dll (runs in same process as caller)
  205. CLSCTX_INPROC_HANDLERX86 = $0080; // Wx86 handler dll (runs in same process as caller)
  206. CLSCTX_ESERVER_HANDLER = $0100; // handler dll (runs in the server process)
  207. CLSCTX_RESERVED =$0200; // reserved
  208. CLSCTX_NO_CODE_DOWNLOAD = $0400; // disallow code download from the Directory Service (if any) or the internet -rahulth
  209. CLSCTX_NO_WX86_TRANSLATION = $0800;
  210. CLSCTX_NO_CUSTOM_MARSHAL = $1000;
  211. CLSCTX_ENABLE_CODE_DOWNLOAD = $2000; // allow code download from the Directory Service (if any) or the internet
  212. CLSCTX_NO_FAILURE_LOG = $04000; // do not log messages about activation failure (should one occur) to Event Log
  213. CLSCTX_DISABLE_AAA = $08000; // Disable EOAC_DISABLE_AAA capability for this activation only
  214. CLSCTX_ENABLE_AAA = $10000; // Enable EOAC_DISABLE_AAA capability for this activation only
  215. CLSCTX_FROM_DEFAULT_CONTEXT = $20000; // Begin this activation from the default context of the current apartment
  216. CLSCTX_INPROC = (CLSCTX_INPROC_SERVER OR CLSCTX_INPROC_HANDLER);
  217. // With DCOM, CLSCTX_REMOTE_SERVER should be included
  218. CLSCTX_ALL = (CLSCTX_INPROC_SERVER OR CLSCTX_INPROC_HANDLER OR CLSCTX_LOCAL_SERVER {$ifdef Remote} OR CLSCTX_REMOTE_SERVER {$endif});
  219. CLSCTX_SERVER = (CLSCTX_INPROC_SERVER OR CLSCTX_LOCAL_SERVER {$ifdef Remote} OR CLSCTX_REMOTE_SERVER {$endif});
  220. // marshaling flags; passed to CoMarshalInterface
  221. MSHLFLAGS_NORMAL = 0; // normal marshaling via proxy/stub
  222. MSHLFLAGS_TABLESTRONG = 1; // keep object alive; must explicitly release
  223. MSHLFLAGS_TABLEWEAK = 2; // doesn't hold object alive; still must release
  224. MSHLFLAGS_NOPING = 4; // remote clients dont 'ping' to keep objects alive
  225. MSHLFLAGS_RESERVED1 = 8; // reserved
  226. MSHLFLAGS_RESERVED2 = 16; // reserved
  227. MSHLFLAGS_RESERVED3 = 32; // reserved
  228. MSHLFLAGS_RESERVED4 = 64; // reserved
  229. // marshal context: determines the destination context of the marshal operation
  230. MSHCTX_LOCAL = 0; // unmarshal context is local (eg.shared memory)
  231. MSHCTX_NOSHAREDMEM = 1; // unmarshal context has no shared memory access
  232. MSHCTX_DIFFERENTMACHINE = 2; // unmarshal context is on a different machine
  233. MSHCTX_INPROC = 3; // unmarshal context is on different thread
  234. MSHCTX_CROSSCTX = 4; // unmarshal context is on different context
  235. // #########################################################################
  236. //
  237. // VARTYPE
  238. //
  239. // #########################################################################
  240. {
  241. VARENUM usage key,
  242. * [V] - may appear in a VARIANT
  243. * [T] - may appear in a TYPEDESC
  244. * [P] - may appear in an OLE property set
  245. * [S] - may appear in a Safe Array
  246. VT_EMPTY [V] [P] nothing
  247. VT_NULL [V] [P] SQL style Null
  248. VT_I2 [V][T][P][S] 2 byte signed int
  249. VT_I4 [V][T][P][S] 4 byte signed int
  250. VT_R4 [V][T][P][S] 4 byte real
  251. VT_R8 [V][T][P][S] 8 byte real
  252. VT_CY [V][T][P][S] currency
  253. VT_DATE [V][T][P][S] date
  254. VT_BSTR [V][T][P][S] OLE Automation string
  255. VT_DISPATCH [V][T] [S] IDispatch *
  256. VT_ERROR [V][T][P][S] SCODE
  257. VT_BOOL [V][T][P][S] True=-1, False=0
  258. VT_VARIANT [V][T][P][S] VARIANT *
  259. VT_UNKNOWN [V][T] [S] IUnknown *
  260. VT_DECIMAL [V][T] [S] 16 byte fixed point
  261. VT_RECORD [V] [P][S] user defined type
  262. VT_I1 [V][T][P][s] signed char
  263. VT_UI1 [V][T][P][S] unsigned char
  264. VT_UI2 [V][T][P][S] unsigned short
  265. VT_UI4 [V][T][P][S] unsigned long
  266. VT_I8 [T][P] signed 64-bit int
  267. VT_UI8 [T][P] unsigned 64-bit int
  268. VT_INT [V][T][P][S] signed machine int
  269. VT_UINT [V][T] [S] unsigned machine int
  270. VT_INT_PTR [T] signed machine register size width
  271. VT_UINT_PTR [T] unsigned machine register size width
  272. VT_VOID [T] C style void
  273. VT_HRESULT [T] Standard return type
  274. VT_PTR [T] pointer type
  275. VT_SAFEARRAY [T] (use VT_ARRAY in VARIANT)
  276. VT_CARRAY [T] C style array
  277. VT_USERDEFINED [T] user defined type
  278. VT_LPSTR [T][P] null terminated string
  279. VT_LPWSTR [T][P] wide null terminated string
  280. VT_FILETIME [P] FILETIME
  281. VT_BLOB [P] Length prefixed bytes
  282. VT_STREAM [P] Name of the stream follows
  283. VT_STORAGE [P] Name of the storage follows
  284. VT_STREAMED_OBJECT [P] Stream contains an object
  285. VT_STORED_OBJECT [P] Storage contains an object
  286. VT_VERSIONED_STREAM [P] Stream with a GUID version
  287. VT_BLOB_OBJECT [P] Blob contains an object
  288. VT_CF [P] Clipboard format
  289. VT_CLSID [P] A Class ID
  290. VT_VECTOR [P] simple counted array
  291. VT_ARRAY [V] SAFEARRAY*
  292. VT_BYREF [V] void* for local use
  293. VT_BSTR_BLOB Reserved for system use
  294. }
  295. // VARENUM's
  296. VT_EMPTY = 0;
  297. VT_NULL = 1;
  298. VT_I2 = 2;
  299. VT_I4 = 3;
  300. VT_R4 = 4;
  301. VT_R8 = 5;
  302. VT_CY = 6;
  303. VT_DATE = 7;
  304. VT_BSTR = 8;
  305. VT_DISPATCH = 9;
  306. VT_ERROR = 10;
  307. VT_BOOL = 11;
  308. VT_VARIANT = 12;
  309. VT_UNKNOWN = 13;
  310. VT_DECIMAL = 14;
  311. // VBA reserves 15 for future use
  312. VT_I1 = 16;
  313. VT_UI1 = 17;
  314. VT_UI2 = 18;
  315. VT_UI4 = 19;
  316. VT_I8 = 20;
  317. VT_UI8 = 21;
  318. VT_INT = 22;
  319. VT_UINT = 23;
  320. VT_VOID = 24;
  321. VT_HRESULT = 25;
  322. VT_PTR = 26;
  323. VT_SAFEARRAY = 27;
  324. VT_CARRAY = 28;
  325. VT_USERDEFINED = 29;
  326. VT_LPSTR = 30;
  327. VT_LPWSTR = 31;
  328. // VBA reserves 32-35 for future use
  329. VT_RECORD = 36;
  330. VT_INT_PTR = 37;
  331. VT_UINT_PTR = 38;
  332. VT_FILETIME = 64;
  333. VT_BLOB = 65;
  334. VT_STREAM = 66;
  335. VT_STORAGE = 67;
  336. VT_STREAMED_OBJECT = 68;
  337. VT_STORED_OBJECT = 69;
  338. VT_BLOB_OBJECT = 70;
  339. VT_CF = 71;
  340. VT_CLSID = 72;
  341. VT_VERSIONED_STREAM = 73;
  342. VT_BSTR_BLOB = $0fff;
  343. VT_VECTOR = $1000;
  344. VT_ARRAY = $2000;
  345. VT_BYREF = $4000;
  346. VT_RESERVED = $8000;
  347. VT_ILLEGAL = $ffff;
  348. VT_ILLEGALMASKED = $0fff;
  349. VT_TYPEMASK = $0fff;
  350. //
  351. // Common typedefs for paramaters used in data view API's, gleamed
  352. // from dvobj.h
  353. //
  354. // Data/View aspect; specifies the desired aspect of the object when
  355. // drawing or getting data.
  356. DVASPECT_CONTENT = 1;
  357. DVASPECT_THUMBNAIL = 2;
  358. DVASPECT_ICON = 4;
  359. DVASPECT_DOCPRINT = 8;
  360. //****** Storage types *************************************************
  361. // Storage commit types
  362. STGC_DEFAULT = 0;
  363. STGC_OVERWRITE = 1;
  364. STGC_ONLYIFCURRENT = 2;
  365. STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4;
  366. STGC_CONSOLIDATE = 8;
  367. STGMOVE_MOVE = 0;
  368. STGMOVE_COPY = 1;
  369. STGMOVE_SHALLOWCOPY = 2;
  370. STATFLAG_DEFAULT = 0;
  371. STATFLAG_NONAME = 1;
  372. STATFLAG_NOOPEN = 2;
  373. // #########################################################################
  374. //
  375. // Constants for the call context
  376. //
  377. WDT_INPROC_CALL = ULONG($48746457);
  378. WDT_REMOTE_CALL = ULONG($52746457);
  379. WDT_INPROC64_CALL = ULONG($50746457);
  380. COLE_DEFAULT_PRINCIPAL {: pOleStr?} = pOleStr(-1);
  381. COLE_DEFAULT_AUTHINFO {: pointer?} = pointer(-1);
  382. // DISPID reserved to indicate an \"unknown\" name
  383. // only reserved for data members (properties); reused as a method dispid below
  384. DISPID_UNKNOWN = -1;
  385. // DISPID reserved for the \"value\" property
  386. DISPID_VALUE = 0;
  387. // The following DISPID is reserved to indicate the param")
  388. // that is the right-hand-side (or \"put\" value) of a PropertyPut")
  389. DISPID_PROPERTYPUT = -3;
  390. // DISPID reserved for the standard \"NewEnum\" method
  391. DISPID_NEWENUM = -4;
  392. // DISPID reserved for the standard \"Evaluate\" method
  393. DISPID_EVALUATE = -5;
  394. DISPID_CONSTRUCTOR = -6;
  395. DISPID_DESTRUCTOR = -7;
  396. DISPID_COLLECT = -8;
  397. DISPATCH_METHOD = $1;
  398. DISPATCH_PROPERTYGET = $2;
  399. DISPATCH_PROPERTYPUT = $4;
  400. DISPATCH_PROPERTYPUTREF = $8;
  401. USERCLASSTYPE_FULL = 1;
  402. USERCLASSTYPE_SHORT = 2;
  403. USERCLASSTYPE_APPNAME = 3;
  404. // The range -500 through -999 is reserved for Controls
  405. // The range 0x80010000 through 0x8001FFFF is reserved for Controls
  406. // The range -5000 through -5499 is reserved for ActiveX Accessability
  407. // The range -2000 through -2499 is reserved for VB5
  408. // The range -3900 through -3999 is reserved for Forms
  409. // The range -5500 through -5550 is reserved for Forms
  410. // The remainder of the negative DISPIDs are reserved for future use
  411. DESCKIND_NONE = 0;
  412. DESCKIND_FUNCDESC = 1;
  413. DESCKIND_VARDESC = 2;
  414. DESCKIND_TYPECOMP = 3;
  415. DESCKIND_IMPLICITAPPOBJ = 4;
  416. DESCKIND_MAX = 5;
  417. SYS_WIN16 = 0;
  418. SYS_WIN32 = 1;
  419. SYS_MAC = 2;
  420. SYS_WIN64 = 3;
  421. REGKIND_DEFAULT = 0;
  422. REGKIND_REGISTER = 1;
  423. REGKIND_NONE = 2;
  424. INTERFACESAFE_FOR_UNTRUSTED_CALLER = $00000001; // Caller of interface may be untrusted
  425. INTERFACESAFE_FOR_UNTRUSTED_DATA = $00000002; // Data passed into interface may be untrusted
  426. INTERFACE_USES_DISPEX = $00000004; // Object knows to use IDispatchEx
  427. INTERFACE_USES_SECURITY_MANAGER = $00000008; // Object knows to use IInternetHostSecurityManager
  428. LIBFLAG_FRESTRICTED = $01;
  429. LIBFLAG_FCONTROL = $02;
  430. LIBFLAG_FHIDDEN = $04;
  431. LIBFLAG_FHASDISKIMAGE = $08;
  432. TYPEFLAG_FAPPOBJECT = $01;
  433. TYPEFLAG_FCANCREATE = $02;
  434. TYPEFLAG_FLICENSED = $04;
  435. TYPEFLAG_FPREDECLID = $08;
  436. TYPEFLAG_FHIDDEN = $10;
  437. TYPEFLAG_FCONTROL = $20;
  438. TYPEFLAG_FDUAL = $40;
  439. TYPEFLAG_FNONEXTENSIBLE = $80;
  440. TYPEFLAG_FOLEAUTOMATION = $100;
  441. TYPEFLAG_FRESTRICTED = $200;
  442. TYPEFLAG_FAGGREGATABLE = $400;
  443. TYPEFLAG_FREPLACEABLE = $800;
  444. TYPEFLAG_FDISPATCHABLE = $1000;
  445. TYPEFLAG_FREVERSEBIND = $2000;
  446. TYPEFLAG_FPROXY = $4000;
  447. FUNCFLAG_FRESTRICTED = $1;
  448. FUNCFLAG_FSOURCE = $2;
  449. FUNCFLAG_FBINDABLE = $4;
  450. FUNCFLAG_FREQUESTEDIT = $8;
  451. FUNCFLAG_FDISPLAYBIND = $10;
  452. FUNCFLAG_FDEFAULTBIND = $20;
  453. FUNCFLAG_FHIDDEN = $40;
  454. FUNCFLAG_FUSESGETLASTERROR = $80;
  455. FUNCFLAG_FDEFAULTCOLLELEM = $100;
  456. FUNCFLAG_FUIDEFAULT = $200;
  457. FUNCFLAG_FNONBROWSABLE = $400;
  458. FUNCFLAG_FREPLACEABLE = $800;
  459. FUNCFLAG_FIMMEDIATEBIND = $1000;
  460. VARFLAG_FREADONLY = $1;
  461. VARFLAG_FSOURCE = $2;
  462. VARFLAG_FBINDABLE = $4;
  463. VARFLAG_FREQUESTEDIT = $8;
  464. VARFLAG_FDISPLAYBIND = $10;
  465. VARFLAG_FDEFAULTBIND = $20;
  466. VARFLAG_FHIDDEN = $40;
  467. VARFLAG_FRESTRICTED = $80;
  468. VARFLAG_FDEFAULTCOLLELEM = $100;
  469. VARFLAG_FUIDEFAULT = $200;
  470. VARFLAG_FNONBROWSABLE = $400;
  471. VARFLAG_FREPLACEABLE = $800;
  472. VARFLAG_FIMMEDIATEBIND = $1000;
  473. FADF_AUTO = USHORT($0001); // array is allocated on the stack
  474. FADF_STATIC = USHORT($0002); // array is staticly allocated
  475. FADF_EMBEDDED = USHORT($0004); // array is embedded in a structure
  476. FADF_FIXEDSIZE = USHORT($0010); // may not be resized or reallocated
  477. FADF_RECORD = USHORT($0020); // an array of records
  478. FADF_HAVEIID = USHORT($0040); // with FADF_DISPATCH, FADF_UNKNOWN
  479. // array has an IID for interfaces
  480. FADF_HAVEVARTYPE = USHORT($0080); // array has a VT type
  481. FADF_BSTR = USHORT($0100); // an array of BSTRs
  482. FADF_UNKNOWN = USHORT($0200); // an array of IUnknown*
  483. FADF_DISPATCH = USHORT($0400); // an array of IDispatch*
  484. FADF_VARIANT = USHORT($0800); // an array of VARIANTs
  485. FADF_RESERVED = USHORT($F008); // reserved bits
  486. // IMPLTYPE Flags
  487. IMPLTYPEFLAG_FDEFAULT = USHORT($1);
  488. IMPLTYPEFLAG_FSOURCE = USHORT($2);
  489. IMPLTYPEFLAG_FRESTRICTED = USHORT($4);
  490. IMPLTYPEFLAG_FDEFAULTVTABLE = USHORT($8);
  491. PARAMFLAG_NONE = USHORT($00);
  492. PARAMFLAG_FIN = USHORT($01);
  493. PARAMFLAG_FOUT = USHORT($02);
  494. PARAMFLAG_FLCID = USHORT($04);
  495. PARAMFLAG_FRETVAL = USHORT($08);
  496. PARAMFLAG_FOPT = USHORT($10);
  497. PARAMFLAG_FHASDEFAULT = USHORT($20);
  498. PARAMFLAG_FHASCUSTDATA = USHORT($40);
  499. VAR_PERINSTANCE = 0;
  500. VAR_STATIC = 1;
  501. VAR_CONST = 2;
  502. VAR_DISPATCH = 3;
  503. // notification messages used by the dynamic typeinfo protocol.
  504. CHANGEKIND_ADDMEMBER = 0;
  505. CHANGEKIND_DELETEMEMBER = 1;
  506. CHANGEKIND_SETNAMES = 2;
  507. CHANGEKIND_SETDOCUMENTATION = 3;
  508. CHANGEKIND_GENERAL = 4;
  509. CHANGEKIND_INVALIDATE = 5;
  510. CHANGEKIND_CHANGEFAILED = 6;
  511. CHANGEKIND_MAX = 7;
  512. INVOKE_FUNC = 1;
  513. INVOKE_PROPERTYGET = 2;
  514. INVOKE_PROPERTYPUT = 4;
  515. INVOKE_PROPERTYPUTREF = 8;
  516. TKIND_ENUM = 0;
  517. TKIND_RECORD = 1;
  518. TKIND_MODULE = 2;
  519. TKIND_INTERFACE = 3;
  520. TKIND_DISPATCH = 4;
  521. TKIND_COCLASS = 5;
  522. TKIND_ALIAS = 6;
  523. TKIND_UNION = 7;
  524. TKIND_MAX = 8; // end of enum marker
  525. SF_ERROR = VT_ERROR;
  526. SF_I1 = VT_I1;
  527. SF_I2 = VT_I2;
  528. SF_I4 = VT_I4;
  529. SF_I8 = VT_I8;
  530. SF_BSTR = VT_BSTR;
  531. SF_UNKNOWN = VT_UNKNOWN;
  532. SF_DISPATCH = VT_DISPATCH;
  533. SF_VARIANT = VT_VARIANT;
  534. SF_RECORD = VT_RECORD;
  535. SF_HAVEIID = VT_UNKNOWN OR VT_RESERVED;
  536. IDLFLAG_NONE = PARAMFLAG_NONE;
  537. IDLFLAG_FIN = PARAMFLAG_FIN;
  538. IDLFLAG_FOUT = PARAMFLAG_FOUT;
  539. IDLFLAG_FLCID = PARAMFLAG_FLCID;
  540. IDLFLAG_FRETVAL = PARAMFLAG_FRETVAL;
  541. CC_FASTCALL = 0;
  542. CC_CDECL = 1;
  543. CC_MSCPASCAL = 2;
  544. CC_PASCAL = CC_MSCPASCAL;
  545. CC_MACPASCAL = 3;
  546. CC_STDCALL = 4;
  547. CC_FPFASTCALL = 5;
  548. CC_SYSCALL = 6;
  549. CC_MPWCDECL = 7;
  550. CC_MPWPASCAL = 8;
  551. CC_MAX = 9; // end of enum marker
  552. FUNC_VIRTUAL = 0;
  553. FUNC_PUREVIRTUAL = 1;
  554. FUNC_NONVIRTUAL = 2;
  555. FUNC_STATIC = 3;
  556. FUNC_DISPATCH = 4;
  557. // objbase.h
  558. MARSHALINTERFACE_MIN = 500; // minimum number of bytes for interface marshl
  559. //
  560. // Common typedefs for paramaters used in Storage API's, gleamed from storage.h
  561. // Also contains Storage error codes, which should be moved into the storage
  562. // idl files.
  563. //
  564. CWCSTORAGENAME = 32;
  565. // Storage instantiation modes
  566. STGM_DIRECT = $00000000;
  567. STGM_TRANSACTED = $00010000;
  568. STGM_SIMPLE = $08000000;
  569. STGM_READ = $00000000;
  570. STGM_WRITE = $00000001;
  571. STGM_READWRITE = $00000002;
  572. STGM_SHARE_DENY_NONE = $00000040;
  573. STGM_SHARE_DENY_READ = $00000030;
  574. STGM_SHARE_DENY_WRITE = $00000020;
  575. STGM_SHARE_EXCLUSIVE = $00000010;
  576. STGM_PRIORITY = $00040000;
  577. STGM_DELETEONRELEASE = $04000000;
  578. STGM_NOSCRATCH = $00100000; {WINNT+}
  579. STGM_CREATE = $00001000;
  580. STGM_CONVERT = $00020000;
  581. STGM_FAILIFTHERE = $00000000;
  582. STGM_NOSNAPSHOT = $00200000;
  583. STGM_DIRECT_SWMR = $00400000; { Win2000+}
  584. // flags for internet asyncronous and layout docfile
  585. ASYNC_MODE_COMPATIBILITY = $00000001;
  586. ASYNC_MODE_DEFAULT = $00000000;
  587. STGTY_REPEAT = $00000100;
  588. STG_TOEND = $FFFFFFFF;
  589. STG_LAYOUT_SEQUENTIAL = $00000000;
  590. STG_LAYOUT_INTERLEAVED = $00000001;
  591. STGFMT_STORAGE = 0;
  592. STGFMT_NATIVE = 1;
  593. STGFMT_FILE = 3;
  594. STGFMT_ANY = 4;
  595. STGFMT_DOCFILE = 5;
  596. // This is a legacy define to allow old component to builds
  597. STGFMT_DOCUMENT = 0;
  598. // COM initialization flags; passed to CoInitialize.
  599. COINIT_APARTMENTTHREADED = $2; // Apartment model
  600. // These constants are only valid on Windows NT 4.0
  601. COINIT_MULTITHREADED = $0; // OLE calls objects on any thread.
  602. COINIT_DISABLE_OLE1DDE = $4; // Don't use DDE for Ole1 support.
  603. COINIT_SPEED_OVER_MEMORY = $8; // Trade memory for speed.
  604. SMEXF_SERVER = $01; // server side aggregated std marshaler
  605. SMEXF_HANDLER = $02; // client side (handler) agg std marshaler
  606. COWAIT_WAITALL = 1;
  607. COWAIT_ALERTABLE = 2;
  608. DOCMISC_CANCREATEMULTIPLEVIEWS = 1;
  609. DOCMISC_SUPPORTCOMPLEXRECTANGLES = 2;
  610. DOCMISC_CANTOPENEDIT = 4; // fails the IOleDocumentView::Open method
  611. DOCMISC_NOFILESUPPORT = 8; // does not support read/writing to a file
  612. PID_DICTIONARY = PROPID($00000000);
  613. PID_CODEPAGE = PROPID($00000001);
  614. PID_FIRST_USABLE = PROPID($00000002);
  615. PID_FIRST_NAME_DEFAULT = PROPID($00000fff);
  616. PID_LOCALE = PROPID($80000000);
  617. PID_MODIFY_TIME = PROPID($80000001);
  618. PID_SECURITY = PROPID($80000002);
  619. PID_BEHAVIOR = PROPID($80000003);
  620. PID_ILLEGAL = PROPID($ffffffff);
  621. PID_MIN_READONLY = PROPID($80000000);
  622. PID_MAX_READONLY = PROPID($bfffffff);
  623. PIDDI_THUMBNAIL = DWORD($00000002);// VT_BLOB
  624. PIDSI_TITLE = DWORD($00000002); // VT_LPSTR
  625. PIDSI_SUBJECT = DWORD($00000003); // VT_LPSTR
  626. PIDSI_AUTHOR = DWORD($00000004); // VT_LPSTR
  627. PIDSI_KEYWORDS = DWORD($00000005); // VT_LPSTR
  628. PIDSI_COMMENTS = DWORD($00000006); // VT_LPSTR
  629. PIDSI_TEMPLATE = DWORD($00000007); // VT_LPSTR
  630. PIDSI_LASTAUTHOR = DWORD($00000008); // VT_LPSTR
  631. PIDSI_REVNUMBER = DWORD($00000009); // VT_LPSTR
  632. PIDSI_EDITTIME = DWORD($0000000a); // VT_FILETIME
  633. PIDSI_LASTPRINTED = DWORD($0000000b); // VT_FILETIME
  634. PIDSI_CREATE_DTM = DWORD($0000000c); // VT_FILETIME
  635. PIDSI_LASTSAVE_DTM = DWORD($0000000d); // VT_FILETIME
  636. PIDSI_PAGECOUNT = DWORD($0000000e); // VT_I4
  637. PIDSI_WORDCOUNT = DWORD($0000000f); // VT_I4
  638. PIDSI_CHARCOUNT = DWORD($00000010); // VT_I4
  639. PIDSI_THUMBNAIL = DWORD($00000011); // VT_CF
  640. PIDSI_APPNAME = DWORD($00000012); // VT_LPSTR
  641. PIDSI_DOC_SECURITY = DWORD($00000013); // VT_I4
  642. PIDDSI_CATEGORY = $00000002; // VT_LPSTR
  643. PIDDSI_PRESFORMAT = $00000003; // VT_LPSTR
  644. PIDDSI_BYTECOUNT = $00000004; // VT_I4
  645. PIDDSI_LINECOUNT = $00000005; // VT_I4
  646. PIDDSI_PARCOUNT = $00000006; // VT_I4
  647. PIDDSI_SLIDECOUNT = $00000007; // VT_I4
  648. PIDDSI_NOTECOUNT = $00000008; // VT_I4
  649. PIDDSI_HIDDENCOUNT = $00000009; // VT_I4
  650. PIDDSI_MMCLIPCOUNT = $0000000A; // VT_I4
  651. PIDDSI_SCALE = $0000000B; // VT_BOOL
  652. PIDDSI_HEADINGPAIR = $0000000C; // VT_VARIANT |VT_VECTOR
  653. PIDDSI_DOCPARTS = $0000000D; // VT_LPSTR |VT_VECTOR
  654. PIDDSI_MANAGER = $0000000E; // VT_LPSTR
  655. PIDDSI_COMPANY = $0000000F; // VT_LPSTR
  656. PIDDSI_LINKSDIRTY = $00000010; // VT_BOOL
  657. // FMTID_MediaFileSummaryInfo - Property IDs
  658. PIDMSI_EDITOR = DWord($00000002); // VT_LPWSTR
  659. PIDMSI_SUPPLIER = DWord($00000003); // VT_LPWSTR
  660. PIDMSI_SOURCE = DWord($00000004); // VT_LPWSTR
  661. PIDMSI_SEQUENCE_NO = DWord($00000005); // VT_LPWSTR
  662. PIDMSI_PROJECT = DWord($00000006); // VT_LPWSTR
  663. PIDMSI_STATUS = DWord($00000007); // VT_UI4
  664. PIDMSI_OWNER = DWord($00000008); // VT_LPWSTR
  665. PIDMSI_RATING = DWord($00000009); // VT_LPWSTR
  666. PIDMSI_PRODUCTION = DWord($0000000A); // VT_FILETIME (UTC)
  667. PIDMSI_COPYRIGHT = DWord($0000000B); // VT_LPWSTR
  668. PRSPEC_INVALID = ULONG($ffffffff);
  669. PRSPEC_LPWSTR = ULONG(0);
  670. PRSPEC_PROPID = ULONG(1);
  671. PROPSETFLAG_DEFAULT = DWORD(0);
  672. PROPSETFLAG_NONSIMPLE = DWORD(1);
  673. PROPSETFLAG_ANSI = DWORD(2);
  674. TYPE
  675. TVarType = USHORT;
  676. VARTYPE = TVarType deprecated; // not in Delphi, and clashes with VarType function
  677. //TypeInfo stuff.
  678. TDispID = Long;
  679. DISPID = TDispID deprecated; // not in Delphi and clashes with property modifier
  680. SCODE = Long;
  681. pSCODE = ^SCODE;
  682. lpDISPID = ^TDispID;
  683. MEMBERID = TDispID;
  684. HREFTYPE = DWord;
  685. TResultList = array[0..high(integer) div 4-50] of HResult;
  686. PResultList = ^TResultList;
  687. PSYSINT = ^SYSINT;
  688. SYSINT = LongInt;
  689. PSYSUINT = ^SYSUINT;
  690. SYSUINT = LongWord;
  691. // Enums
  692. VARKIND = DWord;
  693. DESCKIND = DWord;
  694. SYSKIND = DWord;
  695. TSYSKIND = SYSKIND;
  696. REGKIND = DWord;
  697. TREGKIND = REGKIND;
  698. FUNCKIND = DWord;
  699. CHANGEKIND = DWord;
  700. CALLCONV = DWord;
  701. PIDMSI_STATUS_VALUE = (
  702. PIDMSI_STATUS_NORMAL = 0,
  703. PIDMSI_STATUS_NEW,
  704. PIDMSI_STATUS_PRELIM,
  705. PIDMSI_STATUS_DRAFT,
  706. PIDMSI_STATUS_INPROGRESS,
  707. PIDMSI_STATUS_EDIT,
  708. PIDMSI_STATUS_REVIEW,
  709. PIDMSI_STATUS_PROOF,
  710. PIDMSI_STATUS_FINAL,
  711. PIDMSI_STATUS_OTHER = $7FFF
  712. );
  713. TPIDMSI_STATUS_VALUE= PIDMSI_STATUS_Value;
  714. PCOAUTHIDENTITY = ^TCOAUTHIDENTITY;
  715. _COAUTHIDENTITY = Record
  716. User : PUSHORT;
  717. UserLength : ULONG;
  718. Domain : PUSHORT;
  719. DomainLength : ULong;
  720. Password : PUSHORT;
  721. PassWordLength : ULong;
  722. Flags : ULong;
  723. End;
  724. COAUTHIDENTITY = _COAUTHIDENTITY;
  725. TCOAUTHIDENTITY = _COAUTHIDENTITY;
  726. PCOAUTHINFO = ^TCOAUTHINFO;
  727. COAuthInfo = Record
  728. AuthnSvc : DWord;
  729. AuthzSvc : DWord;
  730. ServerPrincName : LPWSTR;
  731. AuthnLevel : DWord;
  732. ImpersonationLevel : DWord;
  733. AuthIdentityData : PCOAUTHIDENTITY;
  734. Capabilities : DWord;
  735. END;
  736. TCOAUTHINFO = COAUTHINFO;
  737. PCOSERVERINFO = ^TCOSERVERINFO;
  738. _COSERVERINFO = Record
  739. dwReserved1 : DWord;
  740. pwszName : LPWSTR;
  741. pAuthInfo : PCoAuthInfo;
  742. dwReserved2 : DWord;
  743. end;
  744. TCOSERVERINFO = _COSERVERINFO;
  745. PMultiQI = ^Multi_QI;
  746. tagMULTI_QI = Record
  747. iid: piid; // pass this one in
  748. itf: IUnknown; // get these out (you must set to NULL before calling)
  749. hr : HResult;
  750. END;
  751. MULTI_QI = TagMULTI_QI;
  752. PMulti_QI = PMultiQI;
  753. TMultiQI = tagMULTI_QI;
  754. PMultiQIArray = ^TMultiQIArray;
  755. TMultiQIArray = array[0..65535] of TMultiQI;
  756. HContext = Pointer;
  757. ApartmentID = DWord;
  758. //****** Critical Section Wrappers ***********************************
  759. // LCID = WORD;
  760. // LANGID = USHORT;
  761. // #######################################################################
  762. //
  763. // User marshal support for Windows data types.
  764. //
  765. // Frequently used helpers: sized blobs
  766. //
  767. // Never put [user_marshal] or [wire_marshal] on the helpers directly.
  768. //
  769. // Flagged blobs.
  770. _FLAGGED_BYTE_BLOB = Record
  771. fFlags : ULong;
  772. clSize : ULong;
  773. abdata : array[0..0] of byte;
  774. End;
  775. FLAGGED_BYTE_BLOB = _FLAGGED_BYTE_BLOB;
  776. UP_FLAGGED_BYTE_BLOB = ^FLAGGED_BYTE_BLOB;
  777. _FLAGGED_WORD_BLOB = Record
  778. fFlags : ULong;
  779. clSize : ULong;
  780. abdata : array[0..0] of USHORT;
  781. End;
  782. FLAGGED_WORD_BLOB = _FLAGGED_WORD_BLOB;
  783. UP_FLAGGED_WORD_BLOB = ^FLAGGED_WORD_BLOB;
  784. _FLAGGED_DWORD_BLOB = Record
  785. fFlags : ULong;
  786. clSize : ULong;
  787. abdata : array[0..0] of ULONG;
  788. End;
  789. FLAGGED_DWORD_BLOB = _FLAGGED_DWORD_BLOB;
  790. FLAGGED_UP_DWORD_BLOB = ^FLAGGED_DWORD_BLOB;
  791. // Simple blobs.
  792. _BYTE_BLOB = Record
  793. clSize : ULong;
  794. abdata : array[0..0] of byte;
  795. End;
  796. BYTE_BLOB = _BYTE_BLOB;
  797. UP_BYTE_BLOB = ^BYTE_BLOB;
  798. _WORD_BLOB = Record
  799. clSize : ULong;
  800. abdata : array[0..0] of USHORT;
  801. End;
  802. WORD_BLOB = _WORD_BLOB;
  803. UP_WORD_BLOB = ^WORD_BLOB;
  804. _DWORD_BLOB = Record
  805. clSize : ULong;
  806. abdata : array[0..0] of ULONG;
  807. End;
  808. DWORD_BLOB = _DWORD_BLOB;
  809. UP_DWORD_BLOB = ^DWORD_BLOB;
  810. // Frequently used helpers with sized pointers.
  811. _BYTE_SIZEDARR = Record
  812. clsize : ULong;
  813. Data : PByte;
  814. End;
  815. BYTE_SIZEDARR = _BYTE_SIZEDARR;
  816. _SHORT_SIZEDARR = Record
  817. clsize : ULong;
  818. Data : PSHORT;
  819. End;
  820. SHORT_SIZEDARR = _SHORT_SIZEDARR;
  821. _LONG_SIZEDARR = Record
  822. clsize : ULong;
  823. Data : PLONG;
  824. End;
  825. LONG_SIZEDARR = _LONG_SIZEDARR;
  826. HYPER = LONGLONG;
  827. PHYPER = ^HYPER;
  828. _HYPER_SIZEDARR = Record
  829. clsize : ULong;
  830. Data : PHYPER;
  831. End;
  832. HYPER_SIZEDARR = _HYPER_SIZEDARR;
  833. // #########################################################################
  834. //
  835. // CLIPFORMAT
  836. //
  837. userCLIPFORMAT = Record
  838. FContext : Long;
  839. CASE INTEGER OF
  840. 0 : (dwvalue : DWORD);
  841. 1 : (szName : poleStr);
  842. End;
  843. wireCLIPFORMAT = ^userCLIPFORMAT;
  844. // #########################################################################
  845. //
  846. // Good for most of the gdi handles.
  847. _GDI_NONREMOTE = Record
  848. FContext : Long;
  849. Case Integer Of
  850. 0 : (HInProc : Long);
  851. 1 : (HRemote : DWORD_BLOB);
  852. END;
  853. GDI_NONREMOTE = _GDI_NONREMOTE;
  854. // #########################################################################
  855. //
  856. // HGLOBAL
  857. //
  858. // A global may be Null or may be non-NULL with 0 length.
  859. _userHGLOBAL = Record
  860. FContext : Long;
  861. CASE Integer OF
  862. 0 : (hInproc : Long);
  863. 1 : (hRemote : UP_FLAGGED_BYTE_BLOB);
  864. 2 : (hInproc64: int64);
  865. End;
  866. userHGlobal = _userHGLOBAL;
  867. wireHGLOBAL = ^userHGLOBAL;
  868. // #########################################################################
  869. //
  870. // HMETAFILE
  871. //
  872. _userHMETAFILE = Record
  873. fContext : Long;
  874. Case Integer OF
  875. 0 : (hInproc : Long);
  876. 1 : (hRemote : up_byte_blob);
  877. 2 : (hInProc64 : Int64);
  878. End;
  879. userHMETAFILE = _userHMETAFILE;
  880. puserHMETAFILE = ^userHMETAFILE;
  881. // #########################################################################
  882. //
  883. // HMETAFILEPICT
  884. //
  885. _remoteMETAFILEPICT = Record
  886. mm : Long;
  887. xExt : Long;
  888. yExt : Long;
  889. mgf : puserHMETAFILE;
  890. End;
  891. remoteMETAFILEPICT = _remoteMETAFILEPICT;
  892. premoteMETAFILEPICT = ^remoteMETAFILEPICT;
  893. _userHMETAFILEPICT = Record
  894. fContext : Long;
  895. Case Integer OF
  896. 0 : (hInproc : Long);
  897. 1 : (hRemote : premoteMETAFILEPICT);
  898. 2 : (hInProc64 : Int64);
  899. End;
  900. userHMETAFILEPICT = _userHMETAFILEPICT;
  901. // #########################################################################
  902. //
  903. // HENHMETAFILE
  904. //
  905. _userHENHMETAFILE = Record
  906. fContext : Long;
  907. Case Integer OF
  908. 0 : (hInproc : Long);
  909. 1 : (hRemote : up_byte_blob);
  910. 2 : (hInProc64 : Int64);
  911. End;
  912. userHENHMETAFILE = _userHENHMETAFILE;
  913. puserHENHMETAFILE = ^userHENHMETAFILE;
  914. // #########################################################################
  915. //
  916. // HBITMAP
  917. //
  918. // RemHBITMAP was just a byte blob, but the whole bitmap structure was copied
  919. // at the beginning of the buffer.
  920. // So, we take BITMAP fields from wingdi.x
  921. _userBITMAP = Record
  922. bmType,
  923. bmWidth,
  924. bmHeight,
  925. bmWidthBytes : Long;
  926. bmPlanes,
  927. bmBitsPixel : Word;
  928. cvsize : ULONG;
  929. buffer : pbyte;
  930. End;
  931. userBITMAP = _userBITMAP;
  932. puserBITMAP = ^userBITMAP;
  933. _userHBITMAP = Record
  934. fContext : Long;
  935. Case Integer OF
  936. 0 : (hInproc : Long);
  937. 1 : (hRemote : puserBITMAP);
  938. 2 : (hInProc64 : Int64);
  939. End;
  940. userHBITMAP = _userHBITMAP;
  941. puserHBITMAP = ^userHBITMAP;
  942. // #########################################################################
  943. //
  944. // HPALETTE
  945. //
  946. // PALETTEENTRY is in wingdi.x, it is a struct with 4 bytes.
  947. // LOGPALETTE is in wingdi.x, it is a conf struct with paletteentries and
  948. // a version field
  949. _userHpalette = Record
  950. fContext : Long;
  951. Case Integer OF
  952. 0 : (hInproc : Long);
  953. 1 : (hRemote : logpalette);
  954. 2 : (hInProc64 : Int64);
  955. End;
  956. userHpalette = _userHpalette;
  957. puserHpalette = ^userHpalette;
  958. // #########################################################################
  959. //
  960. // Handles passed locally as longs.
  961. //
  962. _RemotableHandle = Record
  963. fContext : Long;
  964. Case Integer OF
  965. 0 : (hInproc : Long);
  966. 1 : (hRemote : Long);
  967. End;
  968. RemotableHandle = _RemotableHandle;
  969. wireHWND = ^RemotableHandle;
  970. wireHMENU = ^RemotableHandle;
  971. wireHACCEL = ^RemotableHandle;
  972. wireHBRUSH = ^RemotableHandle;
  973. wireHFONT = ^RemotableHandle;
  974. wireHDC = ^RemotableHandle;
  975. wireHICON = ^RemotableHandle;
  976. HCursor = HICON;
  977. tagTEXTMETRICW = Record
  978. tmHeight,
  979. tmAscent,
  980. tmDescent,
  981. tmInternalLeading,
  982. tmExternalLeading,
  983. tmAveCharWidth,
  984. tmMaxCharWidth,
  985. tmWeight,
  986. tmOverhang,
  987. tmDigitizedAspectX,
  988. tmDigitizedAspectY : Long;
  989. tmFirstChar,
  990. tmLastChar,
  991. tmDefaultChar,
  992. tmBreakChar : WCHAR;
  993. tmItalic,
  994. tmUnderlined,
  995. tmStruckOut,
  996. tmPitchAndFamily,
  997. tmCharSet : BYTE;
  998. End;
  999. TEXTMETRICW = tagTEXTMETRICW;
  1000. PTEXTMETRICW = ^TEXTMETRICW;
  1001. LPTEXTMETRICW = PTEXTMETRICW;
  1002. wireHBITMAP = ^userHBITMAP;
  1003. wireHPALETTE = ^userHPALETTE;
  1004. wireHENHMETAFILE = ^userHENHMETAFILE;
  1005. wireHMETAFILE = ^userHMETAFILE;
  1006. wireHMETAFILEPICT = ^userHMETAFILEPICT;
  1007. HMetaFilePict = Pointer;
  1008. HLOCAL = HGLOBAL;
  1009. // Date = Double;
  1010. {****************************************************************************
  1011. * Binding Interfaces
  1012. ****************************************************************************}
  1013. tagBIND_OPTS = Record
  1014. cvStruct, // sizeof(BIND_OPTS)
  1015. grfFlags,
  1016. grfMode,
  1017. dwTickCountDeadline : DWord;
  1018. End;
  1019. TBind_Opts = tagBIND_OPTS;
  1020. PBind_Opts = ^TBind_Opts;
  1021. TBindOpts = tagBIND_OPTS;
  1022. PBindOpts = ^TBindOpts;
  1023. Bind_Opts = tagBind_opts;
  1024. tagBIND_OPTS2_CPP = Record
  1025. dwTrackFlags,
  1026. dwClassContext : Dword;
  1027. Locale : LCID;
  1028. ServerInfo : pCoServerInfo;
  1029. End;
  1030. TBind_Opts2_CPP = tagBIND_OPTS2_CPP;
  1031. PBind_Opts2_CPP = ^TBind_Opts2_CPP;
  1032. tagBind_OPTS2 = Record
  1033. cvStruct, // sizeof(BIND_OPTS)
  1034. grfFlags,
  1035. grfMode,
  1036. dwTickCountDeadline : DWord;
  1037. dwTrackFlags,
  1038. dwClassContext : DWord;
  1039. Locale : LCID;
  1040. ServerInfo : pCoServerInfo;
  1041. End;
  1042. TBind_Opts2 = tagBIND_OPTS2;
  1043. PBind_Opts2 = ^TBind_Opts2;
  1044. // ****************************************************************************
  1045. // * Structured Storage Interfaces
  1046. // ****************************************************************************
  1047. tagSTATSTG = types.tagSTATSTG;
  1048. TStatStg = tagSTATSTG;
  1049. PStatStg = types.PStatStg;
  1050. STATSTG = TStatStg;
  1051. { TagRemSNB = Record
  1052. ulCntStr : ULong;
  1053. ulCntChar : ULong;
  1054. [size_is(ulCntChar)] OLECHAR rgString[];
  1055. End;
  1056. RemSNB=TagRemSNB
  1057. WireSNB=^RemSNB}
  1058. SNB = ^PoleStr;
  1059. tagDVTARGETDEVICE = Record
  1060. tdSize : DWord;
  1061. tdDriverNameOffset,
  1062. tdDeviceNameOffset,
  1063. tdPortNameOffset,
  1064. tdExtDevmodeOffset : Word;
  1065. Data : Record End;
  1066. End;
  1067. DVTARGETDEVICE = TagDVTARGETDEVICE;
  1068. PDVTARGETDEVICE = ^tagDVTARGETDEVICE;
  1069. LPCLIPFORMAT = ^TCLIPFORMAT;
  1070. TCLIPFORMAT = Word;
  1071. CLIPFORMAT = TCLIPFORMAT;
  1072. PClipFormat = LPCLIPFORMAT;
  1073. tagFORMATETC = Record
  1074. CfFormat : Word {TCLIPFORMAT};
  1075. Ptd : PDVTARGETDEVICE;
  1076. dwAspect : DWORD;
  1077. lindex : Long;
  1078. tymed : DWORD;
  1079. End;
  1080. FORMATETC = TagFORMATETC;
  1081. TFORMATETC = FORMATETC;
  1082. LPFORMATETC = ^FORMATETC;
  1083. PFormatEtc = LPFORMATETC;
  1084. // Stats for data; used by several enumerations and by at least one
  1085. // implementation of IDataAdviseHolder; if a field is not used, it
  1086. // will be NULL.
  1087. tagRemSTGMEDIUM = Record
  1088. tymed : DWord;
  1089. dwHandleType : DWord;
  1090. pData,
  1091. pUnkForRelease,
  1092. cbData : ULong;
  1093. Data : Record end;
  1094. End;
  1095. RemSTGMEDIUM = TagRemSTGMedium;
  1096. TagSTGMEDIUM = Record
  1097. Tymed : DWord;
  1098. Case Integer Of
  1099. 0 : (HBITMAP : hBitmap; PUnkForRelease : Pointer {IUnknown});
  1100. 1 : (HMETAFILEPICT : hMetaFilePict );
  1101. 2 : (HENHMETAFILE : hEnhMetaFile );
  1102. 3 : (HGLOBAL : hGlobal );
  1103. 4 : (lpszFileName : LPOLESTR );
  1104. 5 : (pstm : Pointer{IStream} );
  1105. 6 : (pstg : Pointer{IStorage} );
  1106. End;
  1107. USTGMEDIUM = TagSTGMEDIUM;
  1108. STGMEDIUM = USTGMEDIUM;
  1109. TStgMedium = TagSTGMEDIUM;
  1110. PStgMedium = ^TStgMedium;
  1111. //
  1112. // wireSTGMEDIUM
  1113. //
  1114. // These flags are #defined (not enumerated) in wingdi.
  1115. // We need to repeat #defines to avoid conflict in the generated file.
  1116. //
  1117. _GDI_OBJECT = Record
  1118. ObjectType : DWord;
  1119. Case Integer Of
  1120. 0 : (HBitmap : WireHBITMAP);
  1121. 1 : (hPalette: wireHPALETTE);
  1122. 2 : (hGeneric: wireHGLOBAL);
  1123. END;
  1124. GDI_OBJECT = _GDI_OBJECT;
  1125. _userSTGMEDIUM = Record
  1126. tymed : DWORD;
  1127. Case Integer OF
  1128. 0 : (hMetaFilePict : wireHMETAFILEPICT;punkforrelease:Pointer {IUnknown});
  1129. 1 : (hHEnhMetaFile : wireHENHMETAFILE);
  1130. 2 : (hGdiHandle : ^GDI_OBJECT);
  1131. 3 : (HGlobal : wireHGLOBAL);
  1132. 4 : (lpszFileName : LPOLESTR);
  1133. 5 : (pstm : ^BYTE_BLOB);
  1134. 6 : (pstg : ^BYTE_BLOB);
  1135. END;
  1136. userSTGMEDIUM = _userSTGMEDIUM;
  1137. LPSTGMEDIUM = ^STGMEDIUM;
  1138. _userFLAG_STGMEDIUM = Record
  1139. ContextFlags,
  1140. fPassOwnership : Long;
  1141. stgmed : userSTGMEDIUM;
  1142. End;
  1143. userFLAG_STGMEDIUM = _userFLAG_STGMEDIUM;
  1144. wireFLAG_STGMEDIUM = ^userFLAG_STGMEDIUM;
  1145. _FLAG_STGMEDIUM = Record
  1146. ContextFlags,
  1147. fPassOwnership : Long;
  1148. Stgmed : STGMEDIUM;
  1149. End;
  1150. FLAG_STGMEDIUM = _FLAG_STGMEDIUM;
  1151. PPSafeArray = ^PSafeArray;
  1152. PSafeArray = ^TSafeArray;
  1153. tagDEC = record // simpler remoting variant without nested unions. see wtypes.h
  1154. wReserved : ushort;
  1155. scale,
  1156. sign : byte;
  1157. hi32 : ULONG;
  1158. lo64 : ULONGLONG;
  1159. end;
  1160. TDECIMAL=tagDEC;
  1161. PDecimal=^TDECIMAL;
  1162. tagVariant = record
  1163. case Integer of
  1164. 0: (
  1165. vt: TVarType;
  1166. wReserved1: Word;
  1167. wReserved2: Word;
  1168. wReserved3: Word;
  1169. case Integer of
  1170. VT_UI1: (bVal: Byte);
  1171. VT_UI2: (uiVal: Word);
  1172. VT_UI4: (ulVal: LongWord);
  1173. VT_UI8: (ullVal: QWord);
  1174. VT_I1: (cVal: Char); { shortint,perhaps? But it is Char both in PSDK and Delphi }
  1175. VT_I2: (iVal: Smallint);
  1176. VT_I4: (lVal: Longint);
  1177. VT_I8: (llVal: Int64);
  1178. VT_R4: (fltVal: Single);
  1179. VT_R8: (dblVal: Double);
  1180. VT_BOOL: (vbool: VARIANT_BOOL);
  1181. VT_ERROR: (scode: HResult);
  1182. VT_CY: (cyVal: Currency);
  1183. VT_DATE: (date: TOleDate);
  1184. VT_BSTR: (bstrVal: POleStr{WideString});
  1185. VT_UNKNOWN: (unkVal: Pointer{IUnknown});
  1186. VT_DISPATCH: (dispVal: Pointer{IDispatch});
  1187. VT_ARRAY: (parray: PSafeArray);
  1188. VT_BYREF or VT_UI1: (pbVal: PByte);
  1189. VT_BYREF or VT_UI2: (puiVal: PWord);
  1190. VT_BYREF or VT_UI4: (pulVal: PInteger);
  1191. VT_BYREF or VT_UI8: (pullVal: PQWord);
  1192. VT_BYREF or VT_I1: (pcVal: PChar); { PShortInt?? }
  1193. VT_BYREF or VT_I2: (piVal: PSmallint);
  1194. VT_BYREF or VT_I4: (plVal: PLongint);
  1195. VT_BYREF or VT_I8: (pllVal: PInt64);
  1196. VT_BYREF or VT_R4: (pfltVal: PSingle);
  1197. VT_BYREF or VT_R8: (pdblVal: PDouble);
  1198. VT_BYREF or VT_BOOL: (pbool: PVARIANT_BOOL);
  1199. VT_BYREF or VT_ERROR: (pscode: ^HResult);
  1200. VT_BYREF or VT_CY: (pcyVal: PCurrency);
  1201. VT_BYREF or VT_DATE: (pdate: POleDate);
  1202. VT_BYREF or VT_BSTR: (pbstrVal: PPOleStr);
  1203. VT_BYREF or VT_UNKNOWN: (punkVal: ^IUnknown);
  1204. VT_BYREF or VT_DISPATCH: (pdispVal: ^IDispatch);
  1205. VT_BYREF or VT_ARRAY: (pparray: PPSafeArray);
  1206. VT_BYREF or VT_VARIANT: (pvarVal: PVariant);
  1207. VT_BYREF: (byRef: Pointer);
  1208. VT_INT: (intVal: Longint);
  1209. VT_UINT: (uintVal: LongWord);
  1210. VT_BYREF or VT_DECIMAL: (pdecVal: PDecimal);
  1211. VT_BYREF or VT_INT: (pintVal: PLongint);
  1212. VT_BYREF or VT_UINT: (puintVal: PLongWord);
  1213. );
  1214. 1: (decVal: TDECIMAL);
  1215. end;
  1216. TVariantArg = tagVariant;
  1217. PVariantArg = ^TVariantArg;
  1218. PVariantArgList = ^TVariantArgList;
  1219. TVariantArgList = array[0..65535] of TVariantArg;
  1220. PDispIDList = ^TDispIDList;
  1221. TDispIDList = array[0..65535] of TDispID;
  1222. // parameter description
  1223. tagPARAMDESCEX = Record
  1224. cBytes : ULong; // size of this structure
  1225. varDefaultValue: TVariantArg; // default value of this parameter
  1226. End;
  1227. PARAMDESCEX = tagPARAMDESCEX;
  1228. LPPARAMDESCEX = ^PARAMDESCEX;
  1229. tagPARAMDESC = Record
  1230. pparamdescex: LPPARAMDESCEX ; // valid if PARAMFLAG_FHASDEFAULT bit is set
  1231. wParamFlags : UShort ; // IN, OUT, etc
  1232. End;
  1233. PARAMDESC = tagPARAMDESC;
  1234. LPPARAMDESC = ^PARAMDESC;
  1235. tagSAFEARRAYBOUND = Record
  1236. cElements : ULong;
  1237. lLbound : Long;
  1238. End;
  1239. SAFEARRAYBOUND = tagSAFEARRAYBOUND;
  1240. LPSAFEARRAYBOUND = ^SAFEARRAYBOUND;
  1241. TSafeArrayBound = tagSAFEARRAYBOUND;
  1242. PSafeArrayBound = ^TSafeArrayBound;
  1243. tagSAFEARRAY = record
  1244. cDims: USHORT;
  1245. fFeatures: USHORT;
  1246. cbElements: ULONG;
  1247. cLocks: ULONG;
  1248. pvData: PVOID;
  1249. rgsabound: array[0..0] of SAFEARRAYBOUND;
  1250. end;
  1251. TSafeArray = tagSAFEARRAY;
  1252. SAFEARRAY = TSafeArray;
  1253. // additional interface information about the incoming call
  1254. tagINTERFACEINFO = Record
  1255. Unk : Pointer {IUnknown}; // the pointer to the object
  1256. IID : Tiid; // interface id
  1257. wMethod : WORD; // interface method
  1258. End;
  1259. INTERFACEINFO = tagINTERFACEINFO;
  1260. LPINTERFACEINFO = ^INTERFACEINFO;
  1261. RPCOLEDATAREP = ULong;
  1262. tagRPCOLEMESSAGE = Record
  1263. Reserved1 : Pointer;
  1264. DataRepresentation : RPCOLEDATAREP;
  1265. Buffer : Pointer;
  1266. cbBuffer,
  1267. IMethod : ULong;
  1268. Reserved2 : Array[0..4] Of Pointer;
  1269. rpcFlags : ULong;
  1270. End;
  1271. RPCOLEMESSAGE = tagRPCOLEMESSAGE;
  1272. PRPCOLEMESSAGE = ^RPCOLEMESSAGE;
  1273. tagStorageLayout = Record
  1274. LayoutType : Dword;
  1275. pwcsElementName : POleStr;
  1276. cOffset,
  1277. cBytes : Large_Integer;
  1278. End;
  1279. StorageLayout = tagStorageLayout;
  1280. tagSTATDATA = Record
  1281. // field used by:
  1282. FORMATETC : Tformatetc; // EnumAdvise, EnumData (cache), EnumFormats
  1283. advf : DWord; // EnumAdvise, EnumData (cache)
  1284. padvSink : Pointer {IAdviseSink}; // EnumAdvise
  1285. dwConnection: DWord; // EnumAdvise
  1286. End;
  1287. STATDATA = TagStatData;
  1288. LPStatData = ^StatData;
  1289. pARRAYDESC = ^ARRAYDESC;
  1290. pTYPEDESC = ^TYPEDESC;
  1291. tagTYPEKIND = Dword;
  1292. TYPEKIND = tagTYPEKIND;
  1293. TTYPEKIND = TYPEKIND;
  1294. INVOKEKIND = Dword;
  1295. tagTYPEDESC = Record
  1296. Case Integer OF
  1297. VT_PTR,
  1298. VT_SAFEARRAY : (lptdesc : PTYPEDESC;vt : TVarType);
  1299. VT_CARRAY : (lpadesc : PARRAYDESC);
  1300. VT_USERDEFINED : (hreftype : HREFTYPE);
  1301. End;
  1302. TYPEDESC = tagTYPEDESC;
  1303. tagARRAYDESC = Record
  1304. tdescElem : TYPEDESC; // element type
  1305. cDims : USHORT;
  1306. rgbounds : ARRAY [0..0] OF SAFEARRAYBOUND; // dimension count
  1307. End;
  1308. ARRAYDESC = tagARRAYDESC;
  1309. tagIDLDESC = Record
  1310. dwReserved : pULONG;
  1311. wIDLFlags : USHORT; // IN, OUT, etc
  1312. End;
  1313. IDLDESC = tagIDLDESC;
  1314. LPIDLDESC = ^IDLDESC;
  1315. tagELEMDESC = Record
  1316. tdesc : TYPEDESC;
  1317. case Integer Of
  1318. 0 : (idldesc : IDLDESC);
  1319. 1 : (paramdesc : PARAMDESC);
  1320. END;
  1321. ELEMDESC = tagELEMDESC;
  1322. LPELEMDESC = ^ELEMDESC;
  1323. tagVARDESC = Record
  1324. memId : MEMBERID;
  1325. lpstrSchema : pOleStr;
  1326. CASE Integer OF
  1327. VAR_PERINSTANCE,
  1328. VAR_DISPATCH,
  1329. VAR_STATIC : (oInst : ULong; // offset of variable within the instance
  1330. ElemdescVar : ELEMDESC;
  1331. wVarFlags : WORD;
  1332. varkind : VARKIND);
  1333. VAR_CONST : (lpvarValue : PVARIANT); // the value of the constant
  1334. End;
  1335. VARDESC = tagVARDESC;
  1336. LPVARDESC = ^VARDESC;
  1337. pVARDESC = LPVARDESC;
  1338. tagDISPPARAMS = Record
  1339. rgvarg : PVariantArgList;
  1340. rgdispidNamedArgs : PDispIDList;
  1341. cArgs,
  1342. cNamedArgs : UINT;
  1343. End;
  1344. DISPPARAMS = tagDISPPARAMS;
  1345. TDispParams = tagDISPPARAMS;
  1346. PDispParams = ^TDispParams;
  1347. PExcepInfo = ^TExcepInfo;
  1348. TFNDeferredFillIn = function(info : PExcepInfo): HRESULT;stdcall;
  1349. tagEXCEPINFO = Record
  1350. wCode, // An error code describing the error.
  1351. wReserved : Word;
  1352. Source, // A source of the exception
  1353. Description, // A description of the error
  1354. HelpFile : WideString; // Fully qualified drive, path, and file name
  1355. dwHelpContext : ULONG; // help context of topic within the help file
  1356. // We can use ULONG_PTR here, because EXCEPINFO is marshalled by RPC
  1357. // RPC will marshal pfnDeferredFillIn.
  1358. pvReserved : pointer;
  1359. pfnDeferredFillIn : TFNDeferredFillIn;
  1360. SCODE : scode;
  1361. End;
  1362. EXCEPINFO = tagEXCEPINFO;
  1363. TExcepInfo = tagEXCEPINFO;
  1364. tagTYPEATTR = Record
  1365. GUID : Tguid; // the GUID of the TypeInfo
  1366. LCID : lcid; // locale of member names and doc strings
  1367. dwReserved : DWord;
  1368. memidConstructor, // ID of constructor, MEMBERID_NIL if none
  1369. memidDestructor : MemberID; // ID of destructor, MEMBERID_NIL if none
  1370. lpstrSchema : pOleStr;
  1371. cbSizeInstance : ULong; // the size of an instance of this type
  1372. typekind : TYPEKIND; // the kind of type this typeinfo describes
  1373. cFuncs, // number of functions
  1374. cVars, // number of variables / data members
  1375. cImplTypes, // number of implemented interfaces
  1376. cbSizeVft, // the size of this types virtual func table
  1377. cbAlignment, { specifies the alignment requirements for
  1378. an instance of this type,
  1379. 0 = align on 64k boundary
  1380. 1 = byte align
  1381. 2 = word align
  1382. 4 = dword align... }
  1383. wTypeFlags,
  1384. wMajorVerNum, // major version number
  1385. wMinorVerNum : Word; // minor version number
  1386. tdescAlias : TYPEDESC; { if typekind == TKIND_ALIAS this field
  1387. specifies the type for which this type
  1388. is an alias }
  1389. idldescType : IDLDESC; // IDL attributes of the described type
  1390. END;
  1391. TYPEATTR = tagTYPEATTR;
  1392. LPTYPEATTR = ^TYPEATTR;
  1393. PTYPEAttr = LPTYPEATTR;
  1394. tagTLIBATTR = Record
  1395. GUID : guid;
  1396. LCID : lcid;
  1397. SYSKIND : syskind;
  1398. wMajorVerNum,
  1399. wMinorVerNum,
  1400. wLibFlags : Word
  1401. End;
  1402. TLIBATTR = tagTLIBATTR;
  1403. LPTLIBATTR = ^tagTLIBATTR;
  1404. PTLIBAttr = LPTLIBATTR;
  1405. LPFUNCDESC = ^FUNCDESC;
  1406. PFUNCDESC = LPFUNCDESC;
  1407. tagFUNCDESC = Record
  1408. memid : MEMBERID;
  1409. lprgscode : PResultList;
  1410. lprgelemdescParam : lpELEMDESC; // array of param types
  1411. FUNCKIND : funckind;
  1412. invkind : INVOKEKIND;
  1413. callconv : CALLCONV;
  1414. cParams,
  1415. cParamsOpt,
  1416. oVft,
  1417. cScodes : SHORT;
  1418. elemdescFunc : ELEMDESC;
  1419. wFuncFlags : WORD;
  1420. End;
  1421. FUNCDESC = tagFUNCDESC;
  1422. tagBINDPTR = Record
  1423. case integer Of
  1424. 0 : (lpfuncdesc : LPFUNCDESC);
  1425. 1 : (lpvardesc : LPVARDESC);
  1426. 2 : (lptcomp : Pointer {ITypeComp} );
  1427. End;
  1428. BINDPTR = tagBINDPTR;
  1429. LPBINDPTR = ^BINDPTR;
  1430. tagCUSTDATAITEM = Record
  1431. GUID : TGuid; // guid identifying this custom data item
  1432. varValue : TVariantArg; // value of this custom data item
  1433. End;
  1434. CUSTDATAITEM = tagCUSTDATAITEM;
  1435. LPCUSTDATAITEM = ^CUSTDATAITEM;
  1436. tagCUSTDATA = Record
  1437. cCustData : DWord; // number of custom data items in rgCustData
  1438. prgCustData : LPCUSTDATAITEM; // array of custom data items
  1439. End;
  1440. CUSTDATA = tagCUSTDATA;
  1441. LPCUSTDATA = ^CUSTDATA;
  1442. PPROPVARIANT = ^TPROPVARIANT;
  1443. tagPROPSPEC = record
  1444. ulKind : ULONG ;
  1445. case boolean of
  1446. false : ( propid:propid);
  1447. true : (lpwstr: LPOLEStr);
  1448. end;
  1449. PROPSPEC= tagPROPSPEC;
  1450. TPROPSPEC = PROPSPEC;
  1451. PPROPSPEC = ^TPROPSPEC;
  1452. tagSTATPROPSTG = record
  1453. lpwstrName : LPOLESTR ;
  1454. propid:PROPID ;
  1455. vt : TVarType;
  1456. end;
  1457. STATPROPSTG = tagSTATPROPSTG;
  1458. TSTATPROPSTG = STATPROPSTG;
  1459. PSTATPROPSTG = ^TSTATPROPSTG;
  1460. tagSTATPROPSETSTG = record
  1461. fmtid : FMTID;
  1462. clsid : CLSID;
  1463. grfFlags : DWORD;
  1464. mtime : FILETIME;
  1465. ctime : FILETIME;
  1466. atime : FILETIME;
  1467. dwOSVersion : DWORD;
  1468. end;
  1469. STATPROPSETSTG = tagSTATPROPSETSTG;
  1470. TSTATPROPSETSTG = STATPROPSETSTG;
  1471. PSTATPROPSETSTG = ^STATPROPSETSTG;
  1472. tagVersionedStream = record
  1473. guidVersion : TGUID;
  1474. pStream : pointer; {IStream}
  1475. end;
  1476. VERSIONEDSTREAM = tagVersionedStream;
  1477. TVERSIONEDSTREAM = tagVersionedStream;
  1478. LPVERSIONEDSTREAM = ^tagVersionedStream;
  1479. PVERSIONEDSTREAM = ^TagVersionedStream;
  1480. LPSAFEARRAY = ^SAFEARRAY;
  1481. tagCAC = record
  1482. cElems : ULONG;
  1483. pElems : pCHAR;
  1484. end;
  1485. CAC = tagCAC;
  1486. TCAC = tagCAC;
  1487. tagCAUB = record
  1488. cElems : ULONG;
  1489. pElems : pUCHAR;
  1490. end;
  1491. CAUB = tagCAUB;
  1492. TCAUB = tagCAUB;
  1493. tagCAI = record
  1494. cElems : ULONG;
  1495. pElems : pSHORT;
  1496. end;
  1497. CAI = tagCAI;
  1498. TCAI = tagCAI;
  1499. tagCAUI = record
  1500. cElems : ULONG;
  1501. pElems : pUSHORT;
  1502. end;
  1503. CAUI = tagCAUI;
  1504. TCAUI = tagCAUI;
  1505. tagCAL = record
  1506. cElems : ULONG;
  1507. pElems : pLONG;
  1508. end;
  1509. CAL = tagCAL;
  1510. TCAL = tagCAL;
  1511. tagCAUL = record
  1512. cElems : ULONG;
  1513. pElems : pULONG;
  1514. end;
  1515. CAUL = tagCAUL;
  1516. TCAUL = tagCAUL;
  1517. tagCAFLT = record
  1518. cElems : ULONG;
  1519. pElems : pSingle;
  1520. end;
  1521. CAFLT = tagCAFLT;
  1522. TCAFLT = tagCAFLT;
  1523. tagCADBL = record
  1524. cElems : ULONG;
  1525. pElems : ^DOUBLE;
  1526. end;
  1527. CADBL = tagCADBL;
  1528. TCADBL = tagCADBL;
  1529. tagCACY = record
  1530. cElems : ULONG;
  1531. pElems : ^CY;
  1532. end;
  1533. CACY = tagCACY;
  1534. TCACY = tagCACY;
  1535. tagCADATE = record
  1536. cElems : ULONG;
  1537. pElems : ^DATE;
  1538. end;
  1539. CADATE = tagCADATE;
  1540. TCADATE = tagCADATE;
  1541. tagCABSTR = record
  1542. cElems : ULONG;
  1543. pElems : ^BSTR;
  1544. end;
  1545. CABSTR = tagCABSTR;
  1546. TCABSTR = tagCABSTR;
  1547. tagCABSTRBLOB = record
  1548. cElems : ULONG;
  1549. pElems : ^BSTRBLOB;
  1550. end;
  1551. CABSTRBLOB = tagCABSTRBLOB;
  1552. TCABSTRBLOB = tagCABSTRBLOB;
  1553. tagCABOOL = record
  1554. cElems : ULONG;
  1555. pElems : ^VARIANT_BOOL;
  1556. end;
  1557. CABOOL = tagCABOOL;
  1558. TCABOOL = tagCABOOL;
  1559. tagCASCODE = record
  1560. cElems : ULONG;
  1561. pElems : ^SCODE;
  1562. end;
  1563. CASCODE = tagCASCODE;
  1564. TCASCODE = tagCASCODE;
  1565. tagCAPROPVARIANT = record
  1566. cElems : ULONG;
  1567. pElems : ^PROPVARIANT;
  1568. end;
  1569. CAPROPVARIANT = tagCAPROPVARIANT;
  1570. TCAPROPVARIANT = tagCAPROPVARIANT;
  1571. tagCAH = record
  1572. cElems : ULONG;
  1573. pElems : ^LARGE_INTEGER;
  1574. end;
  1575. CAH = tagCAH;
  1576. TCAH = tagCAH;
  1577. tagCAUH = record
  1578. cElems : ULONG;
  1579. pElems : ^ULARGE_INTEGER;
  1580. end;
  1581. CAUH = tagCAUH;
  1582. TCAUH = tagCAUH;
  1583. tagCALPSTR = record
  1584. cElems : ULONG;
  1585. pElems : ^LPSTR;
  1586. end;
  1587. CALPSTR = tagCALPSTR;
  1588. TCALPSTR = tagCALPSTR;
  1589. tagCALPWSTR = record
  1590. cElems : ULONG;
  1591. pElems : ^LPWSTR;
  1592. end;
  1593. CALPWSTR = tagCALPWSTR;
  1594. TCALPWSTR = tagCALPWSTR;
  1595. tagCAFILETIME = record
  1596. cElems : ULONG;
  1597. pElems : ^FILETIME;
  1598. end;
  1599. CAFILETIME = tagCAFILETIME;
  1600. TCAFILETIME = tagCAFILETIME;
  1601. tagCACLIPDATA = record
  1602. cElems : ULONG;
  1603. pElems : ^CLIPDATA;
  1604. end;
  1605. CACLIPDATA = tagCACLIPDATA;
  1606. TCACLIPDATA = tagCACLIPDATA;
  1607. tagCACLSID = record
  1608. cElems : ULONG;
  1609. pElems : ^CLSID;
  1610. end;
  1611. CACLSID = tagCACLSID;
  1612. TCACLSID = tagCACLSID;
  1613. PROPVAR_PAD1 = WORD;
  1614. PROPVAR_PAD2 = WORD;
  1615. PROPVAR_PAD3 = WORD;
  1616. // Forward interfaces.
  1617. IStream = Types.IStream;
  1618. IMoniker = Interface;
  1619. IEnumMoniker = Interface;
  1620. IEnumString = Interface;
  1621. IRunningObjectTable = Interface;
  1622. IStorage = Interface;
  1623. IEnumSTATSTG = Interface;
  1624. IAdviseSink = Interface;
  1625. IBindCtx = Interface;
  1626. IAsyncManager = Interface;
  1627. ICallFactory = Interface;
  1628. ISynchronize = Interface;
  1629. ITypeLib = Interface;
  1630. IPropertyStorage = Interface;
  1631. IEnumSTATPROPSETSTG = interface;
  1632. { size of this record must be 16, i.e. match Variant }
  1633. TPROPVARIANT = packed record
  1634. vt : TVarType;
  1635. wReserved1 : PROPVAR_PAD1;
  1636. wReserved2 : PROPVAR_PAD2;
  1637. wReserved3 : PROPVAR_PAD3;
  1638. case longint of
  1639. 0 : ( cVal : CHAR );
  1640. 1 : ( bVal : UCHAR );
  1641. 2 : ( iVal : SHORT );
  1642. 3 : ( uiVal : USHORT );
  1643. 4 : ( lVal : LONG );
  1644. 5 : ( ulVal : ULONG );
  1645. 6 : ( intVal : longINT );
  1646. 7 : ( uintVal : UINT );
  1647. 8 : ( hVal : LARGE_INTEGER );
  1648. 9 : ( uhVal : ULARGE_INTEGER );
  1649. 10 : ( fltVal : SINGLE );
  1650. 11 : ( dblVal : DOUBLE );
  1651. 12 : ( boolVal : VARIANT_BOOL );
  1652. 13 : ( bool : _VARIANT_BOOL );
  1653. 14 : ( scode : SCODE );
  1654. 15 : ( cyVal : CY );
  1655. 16 : ( date : DATE );
  1656. 17 : ( filetime : FILETIME );
  1657. 18 : ( puuid : ^CLSID );
  1658. 19 : ( pclipdata : ^CLIPDATA );
  1659. 20 : ( bstrVal : BSTR );
  1660. 21 : ( bstrblobVal : BSTRBLOB );
  1661. 22 : ( blob : BLOB );
  1662. 23 : ( pszVal : LPSTR );
  1663. 24 : ( pwszVal : LPWSTR );
  1664. 25 : ( punkVal : pointer; { IUnknown to avoid Data types which require initialization/finalization can't be used in variant records});
  1665. 26 : ( pdispVal : pointer; {IDispatch} );
  1666. 27 : ( pStream : pointer {IStream} );
  1667. 28 : ( pStorage : pointer{IStorage} );
  1668. 29 : ( pVersionedStream : LPVERSIONEDSTREAM );
  1669. 30 : ( parray : LPSAFEARRAY );
  1670. 31 : ( cac : CAC );
  1671. 32 : ( caub : CAUB );
  1672. 33 : ( cai : CAI );
  1673. 34 : ( caui : CAUI );
  1674. 35 : ( cal : CAL );
  1675. 36 : ( caul : CAUL );
  1676. 37 : ( cah : CAH );
  1677. 38 : ( cauh : CAUH );
  1678. 39 : ( caflt : CAFLT );
  1679. 40 : ( cadbl : CADBL );
  1680. 41 : ( cabool : CABOOL );
  1681. 42 : ( cascode : CASCODE );
  1682. 43 : ( cacy : CACY );
  1683. 44 : ( cadate : CADATE );
  1684. 45 : ( cafiletime : CAFILETIME );
  1685. 46 : ( cauuid : CACLSID );
  1686. 47 : ( caclipdata : CACLIPDATA );
  1687. 48 : ( cabstr : CABSTR );
  1688. 49 : ( cabstrblob : CABSTRBLOB );
  1689. 50 : ( calpstr : CALPSTR );
  1690. 51 : ( calpwstr : CALPWSTR );
  1691. 52 : ( capropvar : CAPROPVARIANT );
  1692. 53 : ( pcVal : pCHAR );
  1693. 54 : ( pbVal : pUCHAR );
  1694. 55 : ( piVal : pSHORT );
  1695. 56 : ( puiVal : pUSHORT );
  1696. 57 : ( plVal : pLONG );
  1697. 58 : ( pulVal : pULONG );
  1698. 59 : ( pintVal : plongint );
  1699. 60 : ( puintVal : pUINT );
  1700. 61 : ( pfltVal : psingle );
  1701. 62 : ( pdblVal : pDOUBLE );
  1702. 63 : ( pboolVal : ^VARIANT_BOOL );
  1703. 64 : ( pdecVal : pDECIMAL );
  1704. 65 : ( pscode : ^SCODE );
  1705. 66 : ( pcyVal : ^CY );
  1706. 67 : ( pdate : ^DATE );
  1707. 68 : ( pbstrVal : ^TBSTR );
  1708. 69 : ( ppunkVal : ^IUnknown );
  1709. 70 : ( ppdispVal : ^IDispatch );
  1710. 71 : ( pparray : ^LPSAFEARRAY );
  1711. 72 : ( pvarVal : ^PROPVARIANT );
  1712. end;
  1713. PROPVARIANT=TPROPVARIANT;
  1714. TagPROPVARIANT = TPROPVARIANT;
  1715. // Unknwn.idl
  1716. // IUnknown is in classesh.inc
  1717. AsyncIUnknown = Interface(IUnknown)
  1718. ['{000e0000-0000-0000-C000-000000000046}']
  1719. Function Begin_QueryInterface(Const riid : TIID): HResult; StdCall;
  1720. Function Finish_QueryInterface(Out ppvObject : Pointer):HResult;StdCall;
  1721. Function Begin_AddRef:HResult;StdCall;
  1722. Function Finish_AddRef:ULong;StdCall;
  1723. Function Begin_Release:HResult;StdCall;
  1724. Function Finish_Release:ULong;StdCall;
  1725. End;
  1726. IClassFactory = Interface(IUnknown)
  1727. ['{00000001-0000-0000-C000-000000000046}']
  1728. Function CreateInstance(Const unkOuter:IUnknown;Const riid : TIID;Out vObject):HResult; StdCall;
  1729. Function LockServer(fLock : Bool):HResult;StdCall;
  1730. End;
  1731. PLicInfo = ^TLicInfo;
  1732. tagLICINFO = record
  1733. cbLicInfo : ULONG;
  1734. fRuntimeKeyAvail : BOOL;
  1735. fLicVerified : BOOL;
  1736. end;
  1737. TLicInfo = tagLICINFO;
  1738. LICINFO = TLicInfo;
  1739. IClassFactory2 = interface(IClassFactory)
  1740. ['{B196B28F-BAB4-101A-B69C-00AA00341D07}']
  1741. function GetLicInfo(var licInfo: TLicInfo): HResult; stdcall;
  1742. function RequestLicKey(dwResrved: DWORD; out bstrKey: WideString): HResult; stdcall;
  1743. function CreateInstanceLic(const unkOuter: IUnknown; const unkReserved: IUnknown;
  1744. const iid: TIID; const bstrKey: WideString; out vObject): HResult; stdcall;
  1745. end;
  1746. // objidl.idl
  1747. {****************************************************************************
  1748. * Component Object Interfaces
  1749. ****************************************************************************}
  1750. IMarshal = Interface(IUnknown)
  1751. ['{00000003-0000-0000-C000-000000000046}']
  1752. Function GetUnmarshalClass ( Const riid: TIID; pv:Pointer; Const dwDestContext:DWord;
  1753. pvDestContext:Pointer; Const mshlflags:DWORD;out LCid : TCLSID ):HResult;Stdcall;
  1754. Function GetMarshalSizeMax ( Const Riid: TIID; {in, unique} pv:Pointer; Const dwDestContext : DWord;
  1755. {in, unique} pvDestContext:Pointer; Const mshlflags : DWord; out pSize : PDWord ): HResult;Stdcall;
  1756. Function MarshalInterface ( Const {in, unique} pStm: IStream; Const riid: TIID; {in, unique} pv:Pointer;
  1757. Const dwDestContext:DWord; {in, unique} pvDestContext:Pointer; Const mshlflags:DWord ): HRESULT;Stdcall;
  1758. Function UnmarshalInterface ( {[in, unique]} Const pStm:IStream; Const riid: TIID;
  1759. out ppv ): HResult;Stdcall;
  1760. Function ReleaseMarshalData ( {[in, unique]} Const Strm: IStream ):HResult;Stdcall;
  1761. Function DisconnectObject ( Const dwReserved:DWord ):HRESULT;Stdcall;
  1762. END;
  1763. IMarshal2 = Interface(IMarshal)
  1764. ['{000001cf-0000-0000-C000-000000000046}']
  1765. End;
  1766. IMalloc = Interface(IUnknown)
  1767. ['{00000002-0000-0000-C000-000000000046}']
  1768. Function Alloc(cb :size_t):Pointer; Stdcall;
  1769. Function Realloc (pv :pointer;cb:size_t):Pointer;stdcall;
  1770. Procedure Free({[in]} pv: pointer); Stdcall;
  1771. Function GetSize(pv:pointer):size_t;stdcall;
  1772. Function DidAlloc(pv:pointer):Longint;stdcall;
  1773. procedure HeapMinimize; stdcall;
  1774. End;
  1775. IMallocSpy = Interface(IUnknown)
  1776. ['{0000001d-0000-0000-C000-000000000046}']
  1777. Function PreAlloc(cbrequest:Size_t):Longint; StdCall;
  1778. function PostAlloc(Pactual:Pointer):Pointer;StdCall;
  1779. Function PreFree(pRequest:Pointer;fSpyed:bool):pointer;StdCall;
  1780. Procedure PostFree(fspyed:Bool);Stdcall;
  1781. Function PreRealloc(pRequest:Pointer;cbRequest:Size_t;Out ppNewRequest:Pointer;
  1782. fSpyed:Bool):Size_t;Stdcall;
  1783. Function PostRealloc(pactual:Pointer;fspyed:Bool):pointer;Stdcall;
  1784. Function PreGetSize(pRequest:pointer;fSpyed:Bool):Pointer;StdCall;
  1785. Function PostGetSize(cbactual:Size_t;fSpyed:Bool):Size_t;StdCall;
  1786. Function PreDidAlloc(pRequest:pointer;fSpyed:Bool):pointer;stdcall;
  1787. Function PostDidAlloc(pRequest:pointer;fSpyed:Bool;Factual:Longint):pointer;stdcall;
  1788. Procedure PreHeapMinimize;StdCall;
  1789. Procedure PostHeapMinimize;StdCall;
  1790. End;
  1791. IStdMarshalInfo = Interface(IUnknown)
  1792. ['{00000018-0000-0000-C000-000000000046}']
  1793. Function GetClassForHandler (dwDestContext : DWord;pvDestContext:pointer;out Clsid : Pclsid ):HResult;Stdcall;
  1794. End;
  1795. IExternalConnection = Interface(IUnknown)
  1796. ['{00000019-0000-0000-C000-000000000046}']
  1797. Function AddConnection (ExtConn: DWord; Reserved: DWord):DWord;Stdcall;
  1798. Function ReleaseConnection(extconn: DWord; Reserved: Dword;FLastReleaseCloses: Bool):DWord;StdCall;
  1799. End;
  1800. IMultiQI = Interface(IUnknown)
  1801. ['{00000020-0000-0000-C000-000000000046}']
  1802. //if (__midl >= 500)
  1803. // async_uuid(000e0020-0000-0000-C000-000000000046)
  1804. //endif
  1805. Function QueryMultipleInterfaces(cMQIs:Ulong;pMQIs:pMultiQI):HResult;StdCall;
  1806. END;
  1807. IInternalUnknown=Interface(IUnknown)
  1808. ['{00000021-0000-0000-C000-000000000046}']
  1809. Function QueryInternalInterface(const riid:TIID;Out ppv:Pointer):HResult;StdCall;
  1810. END;
  1811. IEnumUnknown = Interface(IUnknown)
  1812. ['{00000100-0000-0000-C000-000000000046}']
  1813. // pointer_default(unique)
  1814. Function Next(Celt:Ulong;out rgelt;out pCeltFetched:pulong):HRESULT;StdCall;
  1815. // HRESULT RemoteNext( [in] ULONG celt, [out, size_is(celt), length_is( *pceltFetched)] IUnknown **rgelt, [out] ULONG *pceltFetched);
  1816. Function Skip(Celt:Ulong):HResult;StdCall;
  1817. Function Reset():HResult;
  1818. Function Close(Out ppenum: IEnumUnknown):HResult;
  1819. END;
  1820. IBindCtx = Interface (IUnknown)
  1821. ['{0000000e-0000-0000-C000-000000000046}']
  1822. Function RegisterObjectBound(Const punk:IUnknown):HResult; stdCall;
  1823. Function RevokeObjectBound (Const Punk:IUnknown):HResult; stdCall;
  1824. Function ReleaseBoundObjects :HResult; StdCall;
  1825. Function SetBindOptions(Const bindOpts:TBind_Opts):HResult; stdCall;
  1826. // Function RemoteSetBindOptions(Const bind_opts: TBind_Opts2):HResult;StdCall;
  1827. Function GetBindOptions(var BindOpts:TBind_Opts):HResult; stdCall;
  1828. // Function RemoteGetBindOptions(Var bind_opts: TBind_Opts2):HResult;StdCall;
  1829. Function GetRunningObjectTable(Out rot : IRunningObjectTable):Hresult; StdCall;
  1830. Function RegisterObjectParam(Const pszkey:LPOleStr;const punk:IUnknown):HResult;
  1831. Function GetObjectParam(Const pszkey:LPOleStr; out punk: IUnknown):HResult; StdCall;
  1832. Function EnumObjectParam (out enum:IEnumString):Hresult;StdCall;
  1833. Function RevokeObjectParam(pszKey:LPOleStr):HResult;StdCall;
  1834. End;
  1835. IEnumMoniker = Interface (IUnknown)
  1836. ['{00000102-0000-0000-C000-000000000046}']
  1837. Function Next(celt:ULong; out Elt;out celftfetched: ULong):HResult; StdCall;
  1838. // Function RemoteNext(Celt:ULong; Out rgelt;out celtfetched :ULong):Hresult; StdCall;
  1839. Function Skip(celt:Ulong):HResult; StdCall;
  1840. Function Reset:HResult; StdCall;
  1841. Function Close(out penum:IEnumMoniker):HResult;StdCall;
  1842. End;
  1843. IRunnableObject = Interface(IUnknown)
  1844. ['{00000126-0000-0000-C000-000000000046}']
  1845. Function GetRunningClass(Out clsid:Tclsid):Hresult; StdCall;
  1846. Function Run(Const pb: IBindCtx):HResult; StdCall;
  1847. Function IsRunning:Bool; StdCall;
  1848. // Function RemoteIsRunning:Bool; StdCall;
  1849. Function LockRunning(FLock,FLastUnlockClose:BOOL):HResult; StdCall;
  1850. Function SetContainedObject(fContained:Bool):Hresult;Stdcall;
  1851. End;
  1852. IRunningObjectTable = Interface (IUnknown)
  1853. ['{00000010-0000-0000-C000-000000000046}']
  1854. Function Register (grfFlags :DWord;const unkobject:IUnknown;Const mkObjectName:IMoniker;Out dwregister:DWord):HResult;StdCall;
  1855. Function Revoke (dwRegister:DWord):HResult; StdCall;
  1856. Function IsRunning (Const mkObjectName: IMoniker):HResult;StdCall;
  1857. Function GetObject (Const mkObjectName: IMoniker; Out punkObject:IUnknown):HResult; StdCall;
  1858. Function NoteChangeTime(dwRegister :DWord;Const FileTime: TFileTime):HResult;StdCall;
  1859. Function GetTimeOfLastChange(Const mkObjectName:IMoniker;Out filetime:TFileTime):HResult; StdCall;
  1860. Function EnumRunning (Out enumMoniker: IEnumMoniker):HResult; StdCall;
  1861. End;
  1862. IPersist = Interface (IUnknown)
  1863. ['{0000010c-0000-0000-C000-000000000046}']
  1864. Function GetClassId(out clsid:TClsId):HResult; StdCall;
  1865. End;
  1866. IPersistStream = Interface(IPersist)
  1867. ['{00000109-0000-0000-C000-000000000046}']
  1868. Function IsDirty:HResult; StdCall;
  1869. Function Load(Const stm: IStream):HResult; StdCall;
  1870. Function Save(Const stm: IStream;fClearDirty:Bool):HResult;StdCall;
  1871. Function GetSizeMax(Out cbSize:ULarge_Integer):HResult; StdCall;
  1872. End;
  1873. PIMoniker = ^IMoniker;
  1874. IMoniker = Interface (IPersistStream)
  1875. ['{0000000f-0000-0000-C000-000000000046}']
  1876. Function BindToObject (const pbc:IBindCtx;const mktoleft:IMoniker; const RiidResult:TIID;Out vresult):HResult;StdCall;
  1877. // Function RemoteBindToObject (const pbc:IBindCtx;const mktoleft:IMoniker;const RiidResult:TIID;Out vresult):HResult;StdCall;
  1878. Function BindToStorage(Const Pbc:IBindCtx;Const mktoLeft:IMoniker; const Riid:TIID;Out vobj):HResult; StdCall;
  1879. // Function RemoteBindToStorage(Const Pbc:IBindCtx;Const mktoLeft:IMoniker;const Riid:TIID;Out vobj):HResult; StdCall;
  1880. Function Reduce (const pbc:IBindCtx; dwReduceHowFar:DWord; mktoLeft: PIMoniker; Out mkReduced:IMoniker):HResult; StdCall;
  1881. Function ComposeWith(Const MkRight:IMoniker;fOnlyIfNotGeneric:BOOL; OUT mkComposite:IMoniker):HResult; StdCall;
  1882. Function Enum(fForward:Bool;Out enumMoniker:IEnumMoniker):HResult;StdCall;
  1883. Function IsEqual(Const mkOtherMoniker:IMoniker):HResult;StdCall;
  1884. Function Hash (Out dwHash:Dword):HResult;StdCall;
  1885. Function IsRunning(Const bc:IBindCtx;Const MkToLeft:IMoniker;Const mknewlyRunning:IMoniker):HResult;StdCall;
  1886. Function GetTimeOfLastChange(Const bc:IBindCtx;Const mkToLeft:IMoniker; out ft : FileTime):HResult; StdCall;
  1887. Function Inverse(out mk : IMoniker):HResult; StdCall;
  1888. Function CommonPrefixWith (Const mkOther:IMoniker):HResult; StdCall;
  1889. Function RelativePathTo(Const mkother:IMoniker; Out mkRelPath : IMoniker):HResult;StdCall;
  1890. Function GetDisplayName(Const bc:IBindCtx;const mktoleft:IMoniker;Out szDisplayName: pOleStr):HResult; StdCall;
  1891. Function ParseDisplayName(Const bc:IBindCtx;Const mkToLeft:IMoniker;szDisplayName:POleStr;out cheaten:ULong;out mkOut:IMoniker):HResult; StdCall;
  1892. Function IsSystemMoniker(Out dwMkSys:DWord):HResult;StdCall;
  1893. End;
  1894. IROTData = Interface (IUnknown)
  1895. ['{f29f6bc0-5021-11ce-aa15-00006901293f}']
  1896. Function GetComparisonData(out data; cbMax:ULong;out cbData:ULong):HResult;StdCall;
  1897. End;
  1898. IEnumString = Interface (IUnknown)
  1899. ['{00000101-0000-0000-C000-000000000046}']
  1900. Function Next(Celt:ULong;Out xcelt;Out Celtfetched:ULong):HResult; StdCall;
  1901. // Function RemoteNext(Celt:ULong; Out celt;Out Celtfetched:ULong):HResult; StdCall;
  1902. Function Skip (Celt:ULong):Hresult;StdCall;
  1903. Function Reset:HResult;StdCall;
  1904. Function Clone(Out penum:IEnumString):HResult;StdCall;
  1905. End;
  1906. ISequentialStream = Types.ISequentialStream;
  1907. {interface(IUnknown)
  1908. ['{0c733a30-2a1c-11ce-ade5-00aa0044773d}']
  1909. function Read(pv : Pointer;cb : ULONG;pcbRead : PULONG) : HRESULT;stdcall;
  1910. function Write(pv : Pointer;cb : ULONG;pcbWritten : PULONG): HRESULT;stdcall;
  1911. end;
  1912. }
  1913. { defined above by pulling it in from types IStream = interface(ISequentialStream)
  1914. ['{0000000C-0000-0000-C000-000000000046}']
  1915. function Seek(dlibMove : LargeInt; dwOrigin: Longint;
  1916. out libNewPosition : LargeInt): HResult; stdcall;
  1917. function SetSize(libNewSize : LargeInt) : HRESULT;stdcall;
  1918. function CopyTo(stm: IStream;cb : LargeInt;out cbRead : LargeInt;
  1919. out cbWritten: LargeInt) : HRESULT;stdcall;
  1920. function Commit(grfCommitFlags : Longint) : HRESULT; stdcall;
  1921. function Revert : HRESULT; stdcall;
  1922. function LockRegion(libOffset : LargeInt;cb : LargeInt;
  1923. dwLockType: Longint) : HRESULT;stdcall;
  1924. function UnlockRegion(libOffset: LargeInt;cb: LargeInt;
  1925. dwLockType: Longint) : HRESULT;stdcall;
  1926. Function Stat(out statstg : TStatStg; grfStatFlag: Longint): HRESULT;stdcall;
  1927. function Clone(out stm : IStream) : HRESULT; stdcall;
  1928. end;
  1929. }
  1930. IEnumSTATSTG = Interface (IUnknown)
  1931. ['{0000000d-0000-0000-C000-000000000046}']
  1932. Function Next (Celt:ULong;Out xcelt;pceltfetched : PUlong):HResult; StdCall;
  1933. // Function RemoteNext(Celt:Ulong; Out Celt;pceltfetched : PUlong);
  1934. Function Skip(Celt:ULong):HResult; StdCall;
  1935. Function Reset:HResult; StdCall;
  1936. Function Clone(Out penum:IEnumStatSTG):HResult; StdCall;
  1937. End;
  1938. IStorage = Interface (IUnknown)
  1939. ['{0000000b-0000-0000-C000-000000000046}']
  1940. Function CreateStream(pwcsname:POleStr;GrfMode,Reserved1,Reserved2 : DWord; Out stm : IStream):HResult; StdCall;
  1941. Function OpenStream(pwcsname:POleStr;Reserved1:Pointer;GrfMode,Reserved2 : DWord; Out stm : IStream):HResult; StdCall;
  1942. // Function RemouteOpenStream(pwcsname:POleStr;cbReserved1:ULong;reserved1:pbyte;GrfMode,Reserved2 : DWord; Out stm : IStream):HResult; StdCall;
  1943. Function CreateStorage(pwcsname:POleStr;GrfMode,Reserved1,Reserved2 : DWord; Out stm : IStorage):HResult; StdCall;
  1944. Function OpenStorage(pwcsname:POleStr;Const stgPriority:IStorage;grfmode : DWord;Const SNBExclude :SNB;reserved:DWord;Out stm : IStorage):HResult; StdCall;
  1945. Function CopyTo(ciidExclude:DWord; rgiidexclude:piid; const snbexclude:SNB;const pstg : IStorage):HResult;StdCall;
  1946. Function MoveElementTo(wcsName:POleStr;Const pstgDest : IStorage;
  1947. wcvsNewName:POleStr; GrfFlags:DWord):Hresult; StdCall;
  1948. Function Commit(grfCommitFlags:Dword):Hresult; StdCall;
  1949. Function Revert:HResult; StdCall;
  1950. Function EnumElements(Reserved1 :Dword;Reserved2:Pointer;Reserved3:DWord;Out penum:IEnumStatStg):HResult;StdCall;
  1951. Function RemoteEnumElements(Reserved1 :Dword;cbReserved2:ULong;Reserved2:pbyte;reserved3:DWord;Out penum:IEnumStatStg):HResult;StdCall;
  1952. Function DestroyElement(wcsName: POleStr):HResult;StdCall;
  1953. Function RenameElement(wcsoldName: POleStr;wcsnewName: POleStr):HResult;StdCall;
  1954. Function SetElementTimes(wcsName:POleStr; Const pctime,patime,pmtime : FileTime):HResult;StdCall;
  1955. Function SetClass(Const ClasId: TClsID):HResult;StdCall;
  1956. Function SetStateBits(grfStateBits:DWord;grfMask:DWord):HResult;StdCall;
  1957. Function Stat(Out pStatStg:StatStg;grfStatFlag:DWord):HResult;StdCall;
  1958. End;
  1959. IPersistFile = Interface (IPersist)
  1960. ['{0000010b-0000-0000-C000-000000000046}']
  1961. Function IsDirty:HResult;StdCall;
  1962. Function Load(FileName:POleStr;dwMode:DWord):HResult;StdCall;
  1963. Function Save(FileName:POleStr;fremember:Bool):HResult;StdCall;
  1964. Function SaveCompleted(FileName:POleStr):HResult;StdCall;
  1965. Function GetCurFIle(Out FileName:POleStr):HResult;StdCall;
  1966. End;
  1967. IPersistStorage = Interface (IPersist)
  1968. ['{0000010a-0000-0000-C000-000000000046}']
  1969. Function IsDirty:HResult;StdCall;
  1970. Function InitNew(const pstg:IStorage):HResult;StdCall;
  1971. Function Load(const pstg:IStorage):HResult;StdCall;
  1972. Function Save(const pstg:IStorage;FSameAsLoad:Boolean):HResult;StdCall;
  1973. Function SaveCompleted(const pstg:IStorage):HResult;StdCall;
  1974. Function HandsOffStorage:HResult;StdCall;
  1975. End;
  1976. ILockBytes = Interface (IUnknown)
  1977. ['{0000000a-0000-0000-C000-000000000046}']
  1978. Function ReadAt(ulOffset:ULarge_Integer;pv:Pointer;cb:Ulong; Out pcbRead:ULong):HResult; StdCall;
  1979. // Function RemoteReadAt(ulOffset:ULarge_Integer;pv:Pointer;cb:Ulong; Out pcbRead:ULong):HResult; StdCall;
  1980. Function WriteAt(ulOffset:ULarge_Integer;pv:Pointer;cb:Ulong; Out pcbWritten:ULong):HResult; StdCall;
  1981. // Function RemoteWriteAt(ulOffset:ULarge_Integer;pv:Pointer;cb:Ulong; Out pcbWritten:ULong):HResult; StdCall;
  1982. Function Flush:HResult;StdCall;
  1983. Function SetSize(cb:ULarge_Integer):HResult;StdCall;
  1984. Function LockRegion(LibOffSet:ULarge_Integer;cb:ULarge_Integer;dwLockType:DWord):HResult;StdCall;
  1985. Function UnlockRegion(LibOffSet:ULarge_Integer;cb:ULarge_Integer;dwLockType:DWord):HResult;StdCall;
  1986. Function Stat(Out pstatstg:STATSTG;grfstatFlag:DWord):HResult;StdCall;
  1987. End;
  1988. IEnumFORMATETC = Interface (IUnknown)
  1989. ['{00000103-0000-0000-C000-000000000046}']
  1990. Function Next(Celt:ULong;Out Rgelt:FormatEtc;pceltFetched:pULong=nil):HResult; StdCall;
  1991. // Function RemoteNext(Celt:ULong;Out Rgelt:FormatEtc; pceltFetched:pULong=nil):HResult; StdCall;
  1992. Function Skip(Celt:ULong):HResult;StdCall;
  1993. Function Reset:HResult;StdCall;
  1994. Function Clone(out penum:IEnumFORMATETC):HResult;StdCall;
  1995. End;
  1996. IEnumSTATDATA = Interface (IUnknown)
  1997. ['{00000105-0000-0000-C000-000000000046}']
  1998. Function Next(Celt:ULong;Out Rgelt:statdata; pceltFetched:pULong=nil):HResult; StdCall;
  1999. // Function RemoteNext(Celt:ULong;Out Rgelt:statdata;Out pceltFetched:ULong):HResult; StdCall;
  2000. Function Skip(Celt:ULong):HResult;StdCall;
  2001. Function Reset:HResult;StdCall;
  2002. Function Clone(out penum:IEnumstatdata):HResult;StdCall;
  2003. End;
  2004. IRootStorage = Interface (IUnknown)
  2005. ['{00000012-0000-0000-C000-000000000046}']
  2006. Function SwitchToFile(pszfile:PoleStr):HResult;StdCall;
  2007. End;
  2008. IAdviseSink = Interface (IUnknown)
  2009. ['{0000010f-0000-0000-C000-000000000046}']
  2010. {$ifdef midl500} ['{00000150-0000-0000-C000-000000000046}'] {$endif}
  2011. Procedure OnDataChange (Const pformatetc : Formatetc;const pstgmed : STGMEDIUM); StdCall;
  2012. Procedure OnViewChange (dwAspect : DWord; lindex : Long); StdCall;
  2013. Procedure OnRename (Const pmk : IMoniker); StdCall;
  2014. Procedure OnSave; StdCall;
  2015. Procedure OnClose; StdCall;
  2016. End;
  2017. IAdviseSink2 = Interface (IAdviseSink)
  2018. ['{00000125-0000-0000-C000-000000000046}']
  2019. Procedure OnLinkSrcChange(Const Pmk: IMoniker); StdCall;
  2020. End;
  2021. IDataObject = Interface (IUnknown)
  2022. ['{0000010e-0000-0000-C000-000000000046}']
  2023. Function GetData(Const formatetcIn : FORMATETC;Out medium : STGMEDIUM):HRESULT; STDCALL;
  2024. Function GetDataHere(CONST pformatetc : FormatETC; Out medium : STGMEDIUM):HRESULT; STDCALL;
  2025. Function QueryGetData(const pformatetc : FORMATETC):HRESULT; STDCALL;
  2026. Function GetCanonicalFormatEtc(const pformatetcIn : FORMATETC;Out pformatetcOut : FORMATETC):HResult; STDCALl;
  2027. Function SetData (Const pformatetc : FORMATETC;const medium:STGMEDIUM;FRelease : BOOL):HRESULT; StdCall;
  2028. Function EnumFormatEtc(dwDirection : DWord; OUT enumformatetcpara : IENUMFORMATETC):HRESULT; StdCall;
  2029. Function DAdvise(const formatetc : FORMATETC;advf :DWORD; CONST AdvSink : IAdviseSink;OUT dwConnection:DWORD):HRESULT;StdCall;
  2030. Function DUnadvise(dwconnection :DWord) :HRESULT;StdCall;
  2031. Function EnumDAdvise(Out enumAdvise : IEnumStatData):HResult;StdCall;
  2032. End;
  2033. IDataAdviseHolder = Interface (IUnknown)
  2034. ['{00000110-0000-0000-C000-000000000046}']
  2035. Function Advise (CONST pdataObject : IDataObject;CONST fetc:FORMATETC;advf : DWORD;Const pAdvise:IAdviseSink;Out DwConnection:DWord):HResult; StdCall;
  2036. Function Unadvise (dwConnection:Dword):HResult; StdCall;
  2037. Function EnumAdvise(out penumAdvise : IEnumStatData):HResult;StdCall;
  2038. Function SendOnDataChange(const pDataObject :IDataObject;DwReserved,advf : DWord):HResult; StdCall;
  2039. End;
  2040. IMessageFilter = Interface (IUnknown)
  2041. ['{00000016-0000-0000-C000-000000000046}']
  2042. Function HandleInComingCall(dwCallType :DWord;htaskCaller : HTASK; dwTickCount: DWORD;CONST sinterfaceinfo:InterfaceInfo):DWord; StdCall;
  2043. Function RetryRejectedCall (htaskCallee:HTASK; dwTickCount : DWord; dwRejectType : Dword):DWord; StdCall;
  2044. Function MessagePending (htaskCallee:HTASK; dwTickCount : DWord; dwPendingType : Dword):DWord; StdCall;
  2045. End;
  2046. //****************************************************************************
  2047. //* Object Remoting Interfaces
  2048. //****************************************************************************
  2049. IRpcChannelBuffer = Interface (IUnknown)
  2050. ['{D5F56B60-593B-101A-B569-08002B2DBF7A}']
  2051. Function GetBuffer (Const pMesasge : RPCOLEMESSAGE;Const riid :TIId):HResult; StdCall;
  2052. Function SendReceive(Var pMessage : RPCOLEMESSAGE; Out PStatus : ULong):HResult; StdCall;
  2053. Function FreeBuffer(Const pMessage : RPCOLEMESSAGE):HResult; StdCall;
  2054. Function GetDestCTX(Out dwDestContext : DWord;Out pvDestContext : Pointer):HResult; StdCall;
  2055. Function IsConnected:HResult; StdCall;
  2056. End;
  2057. IRpcChannelBuffer2 = Interface (IRpcChannelBuffer)
  2058. ['{594f31d0-7f19-11d0-b194-00a0c90dc8bf}']
  2059. Function GetProtocolVersion(Var dwVersion : DWord):HResult; StdCall;
  2060. End;
  2061. IAsyncRpcChannelBuffer = Interface (IRpcChannelBuffer2)
  2062. ['{a5029fb6-3c34-11d1-9c99-00c04fb998aa}']
  2063. Function Send(Var Msg: RPCOLEMESSAGE;Const pSync : ISynchronize;Out PulStatus : ULong):HResult; StdCall;
  2064. Function Receive(Var Msg: RPCOLEMESSAGE;Out PulStatus : ULong):HResult; StdCall;
  2065. Function GetDestCTXEx(Out MSG : RPCOLEMESSAGE;Out vDestContext : DWord;Out pvDestContext : Pointer ):HResult;StdCall;
  2066. End;
  2067. IRpcChannelBuffer3 = Interface (IRpcChannelBuffer2)
  2068. ['{25B15600-0115-11d0-BF0D-00AA00B8DFD2}']
  2069. Function Send(Var msg : RPCOLEMESSAGE;Out ulStatus : ULONG):HResult; StdCall;
  2070. Function Receive(Var msg : RPCOLEMESSAGE;ulSize : ULong;Out ulStatus : ULONG):HResult; StdCall;
  2071. Function Cancel (Const msg : RPCOLEMESSAGE):HResult; StdCall;
  2072. Function GetCallContext(Const msg : RPCOLEMESSAGE; Const riid : TIID; Out pInterface : Pointer):HResult; StdCall;
  2073. Function GetDestCTXEx(Const Msg : RPCOLEMESSAGE;Out vDestContext : DWord;Out pvDestContext : Pointer ):HResult;StdCall;
  2074. Function GetState(Const Msg : RPCOLEMESSAGE;Out State: DWord):HResult;StdCall;
  2075. Function RegisterAsync(Const Msg : RPCOLEMESSAGE;Const asyncmgr : IAsyncManager):HResult;StdCall;
  2076. End;
  2077. IRpcSyntaxNegotiate = Interface (IUnknown)
  2078. ['{58a08519-24c8-4935-b482-3fd823333a4f}']
  2079. Function NegotiateSyntax ( Var msg : RPCOLEMESSAGE):HResult; StdCall;
  2080. End;
  2081. IRpcProxyBuffer = Interface (IUnknown)
  2082. ['{D5F56A34-593B-101A-B569-08002B2DBF7A}']
  2083. Function Connect(Const rpcchannelbuffer : IRpcChannelBuffer):HResult; StdCall;
  2084. Procedure Disconnect;
  2085. End;
  2086. IRpcStubBuffer = Interface (IUnknown)
  2087. ['{D5F56AFC-593B-101A-B569-08002B2DBF7A}']
  2088. Function COnnect ( Const UnkServer : IUnknown):HResult; StdCall;
  2089. Procedure Disconnect; StdCall;
  2090. Function Invoke(Const rpcmsg : RPCOLEMESSAGE;Const RpcChanBuf : IRpcChannelBuffer):HResult; StdCall;
  2091. Function IsIIDSupported (Const riid : TIID):Pointer {IRpcStubBuffer}; StdCall;
  2092. Function CountRefs :ULong; StdCall;
  2093. Function DebugServerQueryInterface(CONST pv : Pointer):HResult; StdCall;
  2094. Procedure DebugServerRelease (pv : Pointer); StdCall;
  2095. End;
  2096. IPSFactoryBuffer = Interface (IUnknown)
  2097. ['{D5F569D0-593B-101A-B569-08002B2DBF7A}']
  2098. Function CreateProxy(Const UnkOuter : IUnknown;const riid : TIID; Out proxy: IRpcProxyBuffer; Out Pv :Pointer):HResult; StdCall;
  2099. Function CreateStub (Const riid : TIID; Const UnkServer : IUnknown; Out pstub : IRpcStubBuffer):HResult; StdCall;
  2100. End;
  2101. {$ifdef NT4_greater_Or_DCOM}
  2102. // This interface is only valid on Windows NT 4.0
  2103. // This structure contains additional data for hooks. As a backward
  2104. // compatability hack, the entire structure is passed in place of the
  2105. // RIID parameter on all hook methods. Thus the IID must be the first
  2106. // parameter. As a forward compatability hack the second field is the
  2107. // current size of the structure.
  2108. SChannelHookCallInfo= Record;
  2109. IID : iid;
  2110. cbSize : Dword;
  2111. uCausality : GUID;
  2112. dwServerPid,
  2113. iMethod : DWord;
  2114. pObject : Pointer;
  2115. End;
  2116. IChannelHook = Interface (IUnknown)
  2117. ['{1008c4a0-7613-11cf-9af1-0020af6e72f4}']
  2118. Procedure ClientGetSize(Const uExtent : TGuid; CONST riid : TIID; Out datasize :ULong); StdCall;
  2119. Procedure ClientFillBuffer(Const uExtent : TGuid; CONST riid : TIID; Var datasize :ULong;Buffer :Pointer); StdCall;
  2120. Procedure ClientNotify(Const uExtent : TGuid; CONST riid : TIID; datasize :ULong;Buffer :Pointer;hrfault:HResult); StdCall;
  2121. Procedure ServerNotify(Const uExtent : TGuid; CONST riid : TIID; datasize :ULong;Buffer :Pointer;DataRep:DWord); StdCall;
  2122. Procedure ServerGetSize(Const uExtent : TGuid; CONST riid : TIID;hrFault :HResult; Out datasize :ULong); StdCall;
  2123. Procedure ServerFillBuffer(Const uExtent : TGuid; CONST riid : TIID; Var datasize :ULong;Buffer :Pointer;HrFault:HResult); StdCall;
  2124. End;
  2125. {$Endif}
  2126. // Well-known Property Set Format IDs
  2127. //FMTID_SummaryInformation = {CONST} FMTID;
  2128. //FMTID_DocSummaryInformation = {CONST} FMTID;
  2129. //FMTID_UserDefinedProperties = {CONST} FMTID;
  2130. //FMTID_DiscardableInformation = {CONST} FMTID;
  2131. //FMTID_ImageSummaryInformation = {CONST} FMTID;
  2132. //FMTID_AudioSummaryInformation = {CONST} FMTID;
  2133. //FMTID_VideoSummaryInformation = {CONST} FMTID;
  2134. //FMTID_MediaFileSummaryInformation = {CONST} FMTID;
  2135. //****************************************************************************
  2136. // * Connection Point Interfaces
  2137. // ****************************************************************************/
  2138. //#ifdef __INCLUDE_CPIFS
  2139. IConnectionPointContainer = Interface;
  2140. //interface IConnectionPoint;
  2141. //interface IEnumConnections;
  2142. IEnumConnectionPoints = Interface;
  2143. IEnumConnections = Interface;
  2144. IConnectionPoint = Interface (IUnknown)
  2145. ['{B196B286-BAB4-101A-B69C-00AA00341D07}']
  2146. Function GetConnectionInterface(out piid : TIID):HResult;StdCall;
  2147. Function GetConnectionPointContainer(out CPC : IConnectionPointContainer):HResult;StdCall;
  2148. Function Advise(Const unkSink : IUnknown;Out dwCookie : DWord):HResult;StdCall;
  2149. Function UnAdvise(dwCookie : DWord):HResult;StdCall;
  2150. Function EnumConnections(out pEnum : IEnumConnections):HResult;StdCall;
  2151. End;
  2152. IConnectionPointContainer = Interface (IUnknown)
  2153. ['{B196B284-BAB4-101A-B69C-00AA00341D07}']
  2154. Function EnumConnectionPoints(out pEnum : IEnumConnectionPoints):HResult;StdCall;
  2155. Function FindConnectionPoint(Const RIID : TIID;Out ppcp : IConnectionPoint):HResult;StdCall;
  2156. End;
  2157. tagCONNECTDATA = Record
  2158. unk : Pointer; {IUnknown}
  2159. dwCookie : DWord;
  2160. End;
  2161. ConnectData = tagCONNECTDATA;
  2162. IEnumConnections = Interface (IUnknown)
  2163. ['{B196B287-BAB4-101A-B69C-00AA00341D07}']
  2164. Function Next(cConnections : ULong; Out rgcd : ConnectData; lpcFetched : pULong=nil):HResult;StdCall;
  2165. Function Skip(cConnections : ULong):HResult;StdCall;
  2166. Function Reset:HResult;StdCall;
  2167. Function Clone(Out pEnum : IEnumConnections):HResult; StdCall;
  2168. End;
  2169. IEnumConnectionPoints = Interface (IUnknown)
  2170. ['{B196B285-BAB4-101A-B69C-00AA00341D07}']
  2171. Function Next(cConnections : ULong; Out rgpcm : IConnectionPoint; lpcFetched : pULong=nil):HResult;StdCall;
  2172. Function Skip(cConnections : ULong):HResult;StdCall;
  2173. Function Reset:HResult;StdCall;
  2174. Function Clone(Out pEnum : IEnumConnectionPoints):HResult;StdCall;
  2175. End;
  2176. tagSOLE_AUTHENTICATION_SERVICE = Record
  2177. dwAuthnSvc,
  2178. dwAuthzSvc : DWord;
  2179. pPrincipalName : POleStr;
  2180. hr : HResult;
  2181. End;
  2182. SOLE_AUTHENTICATION_SERVICE = tagSOLE_AUTHENTICATION_SERVICE;
  2183. PSOLE_AUTHENTICATION_SERVICE = ^SOLE_AUTHENTICATION_SERVICE;
  2184. tagSOLE_AUTHENTICATION_INFO = Record
  2185. dwAuthnSvc,
  2186. dwAuthzSvc : DWord;
  2187. AuthInfo : Pointer;
  2188. End;
  2189. SOLE_AUTHENTICATION_INFO = tagSOLE_AUTHENTICATION_INFO;
  2190. PSOLE_AUTHENTICATION_INFO = ^SOLE_AUTHENTICATION_INFO;
  2191. tagSOLE_AUTHENTICATION_LIST = Record
  2192. cAuthInfo : DWord;
  2193. AuthInfo : PSOLE_AUTHENTICATION_INFO;
  2194. End;
  2195. SOLE_AUTHENTICATION_LIST = tagSOLE_AUTHENTICATION_LIST;
  2196. PSOLE_AUTHENTICATION_LIST = ^SOLE_AUTHENTICATION_LIST;
  2197. {$ifdef WINNT_DCOM}
  2198. IClientSecurity = Interface (IUnknown)
  2199. ['{0000013D-0000-0000-C000-000000000046}']
  2200. Function QueryBlanket (Proxy : IUnknown;Out AuthnSvc,AuthzSvc : Dword;Out ServerPrincName:pOleStr;Out AuthnLevel,ImpLevel:Dword; Out AuthInfo : Pointer; Out Capabilities : Dword):HResult;StdCall;
  2201. Function SetBlanket (Proxy : IUnknown;AuthnSvc,AuthzSvc : Dword;ServerPrincName:pOleStr;AuthnLevel,ImpLevel:Dword;AuthInfo : Pointer;Capabilities : Dword):HResult;StdCall;
  2202. Function CopyProxy (Proxy : IUnknown;Out pcopy:IUnknown):HResult;StdCall;
  2203. End;
  2204. IServerSecurity = Interface (IUnknown)
  2205. ['{0000013E-0000-0000-C000-000000000046}']
  2206. Function QueryBlanket ( out authnSvc,AuthzSvc : DWord; Out pServerPrincName : pOleStr; Out AuthnLevel, ImpLevel; :DWord; out Privs : Pointer; Var Capabilities :DWord):HResult;StdCall;
  2207. Function ImpersonateClient:HResult;StdCall;
  2208. Function RevertToSelf:HResult;StdCall;
  2209. Function IsImpersonating:Bool;StdCall;
  2210. End;
  2211. IClassActivator = Interface (IUnknown)
  2212. ['{00000140-0000-0000-C000-000000000046}']
  2213. Function GetClassObject(Const rclsif : TClsID; ClassContext : DWord; locale : LCID; Const ridd : TIID; Out pv : Pointer):HResult;StdCall;
  2214. End;
  2215. IRpcOptions = Interface (IUnknown)
  2216. ['{00000144-0000-0000-C000-000000000046}']
  2217. Function xSet (prx : IUnknown;dwProperty : DWord; dwValue:ULONG_PTR):HResult; StdCall;
  2218. Function Query (prx : IUnknown;dwProperty:Dword; dwValue:ULONG_PTR):HResult; StdCall;
  2219. End;
  2220. {$endif} {DCOM}
  2221. IFillLockBytes = Interface (IUnknown)
  2222. ['{99caf010-415e-11cf-8814-00aa00b569f5}']
  2223. Function FillAppend(const pv : Pointer;cb:ULong; Out PcbWritten : ULong):HResult;StdCall;
  2224. Function FillAt(ulOffset : ULarge_INTEGER;Const pv : Pointer;cb :ULong; Out pcbWritten:ULong):HResult;StdCall;
  2225. Function SetFillSize ( ulSize :ULarge_Integer):HResult;StdCall;
  2226. Function Terminate (bCanceled :Bool):HResult;StdCall;
  2227. End;
  2228. IProgressNotify = Interface (IUnknown)
  2229. ['{a9d758a0-4617-11cf-95fc-00aa00680db4}']
  2230. Function OnProgress (ProgressCurrent,ProgressMaximum :Dword; FAccurate,Fowner : Bool):HResult;StdCall;
  2231. End;
  2232. ILayoutStorage = Interface (IUnknown)
  2233. ['{0e6d4d90-6738-11cf-9608-00aa00680db4}']
  2234. {The methods in this interface all had "__stdcall" as modifier, while the other classes don't. ?!?!?}
  2235. Function LayoutScript ( xStorageLayout : StorageLayout;nEntries,glfInterleaveFlag : Dword) :HResult; StdCall;
  2236. Function BeginMonitor:HResult;StdCall;
  2237. Function EndMonitor:HResult;StdCall;
  2238. Function ReLayourDocFile(pwcsNewDFName :pOleStr):HResult;StdCall;
  2239. Function ReLayoutDocfileOnILockBytes(LockBytes : ILockBytes):Hresult;StdCall;
  2240. End;
  2241. IBlockingLock = Interface (IUnknown)
  2242. ['{30f3d47a-6447-11d1-8e3c-00c04fb9386d}']
  2243. Function Lock (dwTimeOut : DWord) : HResult;Stdcall;
  2244. Function Unlock : HResult;Stdcall;
  2245. End;
  2246. ITimeAndNoticeControl = Interface (IUnknown)
  2247. ['{bc0bf6ae-8878-11d1-83e9-00c04fc2c6d4}']
  2248. Function SuppressChanges(res1,res2 : Dword):HResult;StdCall;
  2249. End;
  2250. IOplockStorage = Interface (IUnknown)
  2251. ['{8d19c834-8879-11d1-83e9-00c04fc2c6d4}']
  2252. Function CreateStorageEx(wcsName : LPCWSTR;grfMode,StgFmt,GrfAtrrs :Dword;Const riid :Tiid; Out ppstgOpen : Pointer):HResult;StdCall;
  2253. Function OpenStorageEx(wcsName : LPCWSTR;grfMode,StgFmt,GrfAtrrs :Dword;Const riid :Tiid; Out ppstgOpen : Pointer):HResult;StdCall;
  2254. End;
  2255. ISurrogate = Interface (IUnknown)
  2256. ['{00000022-0000-0000-C000-000000000046}']
  2257. Function LoadDllServer (Const ClsId : TClsId):HResult;StdCall;
  2258. Function FreeSurrogate:HResult;StdCall;
  2259. End;
  2260. IGlobalInterfaceTable = Interface (IUnknown)
  2261. ['{00000146-0000-0000-C000-000000000046}']
  2262. Function RegisterInterfaceInGlobal(unk :IUnknown;Const riid : TIID; Out dwcookie :DWord):HResult;StdCall;
  2263. Function RevokeInterfaceFromGlobal (dwCookie :DWord):HResult;StdCall;
  2264. Function GetInterfaceFromGlobal (dwCookie :DWord;Const riid : TIID;out pv : Pointer):HResult;StdCall;
  2265. End;
  2266. IDirectWriterLock = Interface (IUnknown)
  2267. ['{0e6d4d92-6738-11cf-9608-00aa00680db4}']
  2268. Function WaitForWriteAccess (dwTimeOut : DWORD):HResult;StdCall;
  2269. Function ReleaseWriteAccess:HResult;StdCall;
  2270. Function HaveWriteAccess:HResult;StdCall;
  2271. End;
  2272. ISynchronize = Interface (IUnknown)
  2273. ['{00000030-0000-0000-C000-000000000046}']
  2274. Function Wait (dwFlags : DWord; dwMilliSeconds : DWord):HResult;StdCall;
  2275. Function Signal : HResult;StdCall;
  2276. Function Reset : HResult;StdCall;
  2277. End;
  2278. ISynchronizeHandle = Interface (IUnknown)
  2279. ['{00000031-0000-0000-C000-000000000046}']
  2280. Function GetHandle(Out ph : Handle):HResult;StdCall;
  2281. End;
  2282. ISynchronizeEvent = Interface (ISynchronizeHandle)
  2283. ['{00000032-0000-0000-C000-000000000046}']
  2284. Function SetEventHandle (Const ph : Handle):HResult; StdCall;
  2285. End;
  2286. ISynchronizeContainer = Interface (IUnknown)
  2287. ['{00000033-0000-0000-C000-000000000046}']
  2288. Function AddSynchronize(pSync : ISynchronize):HResult; StdCall;
  2289. Function WaitMultiple(dwFlags : Dword; dwTimeOut : Dword; Out pSync : ISynchronize):HResult;StdCall;
  2290. End;
  2291. ISynchronizeMutex = Interface (ISynchronize)
  2292. ['{00000025-0000-0000-C000-000000000046}']
  2293. Function ReleaseMutex:HResult; StdCall;
  2294. End;
  2295. ICancelMethodCalls = Interface (IUnknown)
  2296. ['{00000029-0000-0000-C000-000000000046}']
  2297. Function Cancel(ulSeconds : ULong):HResult; StdCall;
  2298. Function TestCancel:HResult;StdCall;
  2299. End;
  2300. IAsyncManager = Interface (IUnknown)
  2301. ['{0000002A-0000-0000-C000-000000000046}']
  2302. Function CompleteCall (xResult : HResult):HResult;StdCall;
  2303. Function GetCallContext(Const iid :TIID; Out pInterface : Pointer):HResult;StdCall;
  2304. Function GetState(Out pulStateFlags : ULong):HResult;StdCall;
  2305. End;
  2306. ICallFactory = Interface (IUnknown)
  2307. ['{1c733a30-2a1c-11ce-ade5-00aa0044773d}']
  2308. Function CreateCall(Const riid:TIID;CtrUnk : IUnknown;Const Riid2:TIID;Out Unknown : IUnknown):HResult;StdCall;
  2309. End;
  2310. IRpcHelper = Interface (IUnknown)
  2311. ['{00000149-0000-0000-C000-000000000046}']
  2312. Function GetDCOMProtocolVersion(Out ComVersion :DWord):HResult;StdCall;
  2313. Function GettIIDFromOBJREF(ObjRef : Pointer;Out xIID : piid):HResult;StdCall;
  2314. End;
  2315. IReleaseMarshalBuffers = Interface (IUnknown)
  2316. ['{eb0cb9e8-7996-11d2-872e-0000f8080859}']
  2317. Function ReleaseMarshalBuffer(const pnsg : RPCOLEMESSAGE;dwFlags:DWord;Const pchn : IUnknown):HResult; StdCall;
  2318. End;
  2319. IWaitMultiple = Interface (IUnknown)
  2320. ['{0000002B-0000-0000-C000-000000000046}']
  2321. Function WaitMulitple(TImeout :DWord;out psync : ISynchronize):HResult; StdCall;
  2322. Function AddSynchronize (const psync : ISynchronize):HResult;StdCall;
  2323. End;
  2324. IUrlMon = Interface (IUnknown)
  2325. ['{00000026-0000-0000-C000-000000000046}']
  2326. Function AsyncGetClassBits(CONST rclsif : TClsID; psztype,pzext : lpcwstr; dwfileversionMS,dwFileVersionLS : DWord; pzcodebase : LPCWSTR; Const pbc : IBindCTX; dwclasscontext : DWord; const Riid:TIID; flags :DWORD):HResult; StdCall;
  2327. End;
  2328. IForegroundTransfer = Interface (IUnknown)
  2329. ['{00000145-0000-0000-C000-000000000046}']
  2330. Function AllowForegroundTransfer(lpvReserved:Pointer):HResult; StdCall;
  2331. End;
  2332. IAddrTrackingControl = Interface (IUnknown)
  2333. ['{00000147-0000-0000-C000-000000000046}']
  2334. Function EnableCOMDynamicAddrTracking:HResult; StdCall;
  2335. Function DisableCOMDynamicAddrTracking:HResult; StdCall;
  2336. End;
  2337. IAddrExclusionControl = Interface (IUnknown)
  2338. ['{00000148-0000-0000-C000-000000000046}']
  2339. Function GetCurrentAddrExclusionList(Const riid : TIID;out Enumerator : Pointer):HResult;StdCall;
  2340. Function UpdateAddrExclusionList(Enumerator : IUnknown):HResult;StdCall;
  2341. End;
  2342. //****************************************************************************
  2343. //* Pipe interfaces
  2344. //****************************************************************************/
  2345. // Doesn't look translatable. See objidl.idl
  2346. //****************************************************************************
  2347. //* Thumbnail generator interface
  2348. //****************************************************************************/
  2349. IThumbnailExtractor = Interface (IUnknown)
  2350. ['{969dc708-5c76-11d1-8d86-0000f804b057}']
  2351. Function ExtractThumbnail (pStg : IStorage; uLength,UHeight : ULong; Out uloutputlength,Height :ULong; Out OutputBitmap : HBITMAP): HResult; StdCall;
  2352. Function OnFileUpdated (pStg : IStorage):HResult;
  2353. End;
  2354. //****************************************************************************
  2355. //* Dummy Interface to force inclusion of HICON and HDC in proxy/stub code....
  2356. //****************************************************************************/
  2357. IDummyHICONIncluder = Interface (IUnknown)
  2358. ['{947990de-cc28-11d2-a0f7-00805f858fb1}']
  2359. Function Dummy (h1 : HICON; H2 :HDC):HResult;
  2360. End;
  2361. IComThreadingInfo = Interface (IUnknown)
  2362. ['{000001ce-0000-0000-C000-000000000046}']
  2363. Function GetCurrentApartmentType(out pAptType : DWord {APTTTYPE}):HResult;
  2364. Function GetCurrentThreadType(Out ThreadType : Dword {THDTTYPE}):HResult;StdCall;
  2365. Function GetCurrentLogicalThreadID(Out guidlogicalThreadId : TGUID):HResult;StdCall;
  2366. Function SetCurrentLogicalThreadID(Const guidlogicalThreadId : TGUID):HResult;StdCall;
  2367. End;
  2368. IProcessInitControl = Interface (IUnknown)
  2369. ['{72380d55-8d2b-43a3-8513-2b6ef31434e9}']
  2370. Function ResetInitializerTimeout(dwSecondsRemaining:DWord):HResult; StdCall;
  2371. End;
  2372. // Interfaces from OAIDL.IDL
  2373. ITypeInfo = Interface;
  2374. ICreateTypeInfo = Interface (IUnknown)
  2375. ['{00020405-0000-0000-C000-000000000046}']
  2376. Function SetGuid(CONST guid: TGUID):HResult;StdCall;
  2377. Function SetTypeFlags(uTypeFlags: UINT):HResult;StdCall;
  2378. Function SetDocString(pStrDoc: pOleStr):HResult;StdCall;
  2379. Function SetHelpContext(dwHelpContext: DWORD):HResult;StdCall;
  2380. Function SetVersion(wMajorVerNum: WORD; wMinorVerNum: WORD):HResult;StdCall;
  2381. Function AddRefTypeInfo(CONST pTInfo: ITypeInfo; CONST phRefType: HREFTYPE):HResult;StdCall;
  2382. Function AddFuncDesc(index: UINT; CONST pFuncDesc: FUNCDESC):HResult;StdCall;
  2383. Function AddImplType(index: UINT; hRefType: HREFTYPE):HResult;StdCall;
  2384. Function SetImplTypeFlags(index: UINT; implTypeFlags: WINT):HResult;StdCall;
  2385. Function SetAlignment(cbAlignment: WORD):HResult;StdCall;
  2386. Function SetSchema(pStrSchema: pOleStr):HResult;StdCall;
  2387. Function AddVarDesc(index: UINT; CONST pVarDesc: VARDESC):HResult;StdCall;
  2388. Function SetFuncAndParamNames(index: UINT; CONST rgszNames: pOleStr; cNames: UINT):HResult;StdCall;
  2389. Function SetVarName(index: UINT; szName: pOleStr):HResult;StdCall;
  2390. Function SetTypeDescAlias(CONST pTDescAlias: TYPEDESC):HResult;StdCall;
  2391. Function DefineFuncAsDllEntry(index: UINT; szDllName: pOleStr; szProcName: pOleStr):HResult;StdCall;
  2392. Function SetFuncDocString(index: UINT; szDocString: pOleStr):HResult;StdCall;
  2393. Function SetVarDocString(index: UINT; szDocString: pOleStr):HResult;StdCall;
  2394. Function SetFuncHelpContext(index: UINT; dwHelpContext: DWORD):HResult;StdCall;
  2395. Function SetVarHelpContext(index: UINT; dwHelpContext: DWORD):HResult;StdCall;
  2396. Function SetMops(index: UINT; Const bstrMops: WideString):HResult;StdCall;
  2397. Function SetTypeIdldesc(CONST pIdlDesc: IDLDESC):HResult;StdCall;
  2398. Function LayOut():HResult;StdCall;
  2399. End;
  2400. ICreateTypeInfo2 = Interface (ICreateTypeInfo)
  2401. ['{0002040E-0000-0000-C000-000000000046}']
  2402. Function DeleteFuncDesc(index: UINT):HResult;StdCall;
  2403. Function DeleteFuncDescByMemId(memid: MEMBERID; invKind: INVOKEKIND):HResult;StdCall;
  2404. Function DeleteVarDesc(index: UINT):HResult;StdCall;
  2405. Function DeleteVarDescByMemId(memid: MEMBERID):HResult;StdCall;
  2406. Function DeleteImplType(index: UINT):HResult;StdCall;
  2407. Function SetCustData(CONST guid: TGUID; CONST pVarVal: VARIANT):HResult;StdCall;
  2408. Function SetFuncCustData(index: UINT; CONST guid: TGUID; CONST pVarVal: VARIANT):HResult;StdCall;
  2409. Function SetParamCustData(indexFunc: UINT; indexParam: UINT; CONST guid: TGUID; CONST pVarVal: VARIANT):HResult;StdCall;
  2410. Function SetVarCustData(index: UINT; CONST guid: TGUID; CONST pVarVal: VARIANT):HResult;StdCall;
  2411. Function SetImplTypeCustData(index: UINT; CONST guid: TGUID; CONST pVarVal: VARIANT):HResult;StdCall;
  2412. Function SetHelpStringContext(dwHelpStringContext: ULONG):HResult;StdCall;
  2413. Function SetFuncHelpStringContext(index: UINT; dwHelpStringContext: ULONG):HResult;StdCall;
  2414. Function SetVarHelpStringContext(index: UINT; dwHelpStringContext: ULONG):HResult;StdCall;
  2415. Function Invalidate():HResult;StdCall;
  2416. Function SetName(szName: pOleStr):HResult;StdCall;
  2417. End;
  2418. ICreateTypeLib = Interface (IUnknown)
  2419. ['{00020406-0000-0000-C000-000000000046}']
  2420. Function CreateTypeInfo(szName: pOleStr; tkind: TYPEKIND; OUT ppCTInfo: ICreateTypeInfo):HResult;StdCall;
  2421. Function SetName(szName: pOleStr):HResult;StdCall;
  2422. Function SetVersion(wMajorVerNum: WORD; wMinorVerNum: WORD):HResult;StdCall;
  2423. Function SetGuid(CONST guid: TGUID):HResult;StdCall;
  2424. Function SetDocString(szDoc: pOleStr):HResult;StdCall;
  2425. Function SetHelpFileName(szHelpFileName: pOleStr):HResult;StdCall;
  2426. Function SetHelpContext(dwHelpContext: DWORD):HResult;StdCall;
  2427. Function SetLcid(lcid: LCID):HResult;StdCall;
  2428. Function SetLibFlags(uLibFlags: UINT):HResult;StdCall;
  2429. Function SaveAllChanges():HResult;StdCall;
  2430. End;
  2431. ICreateTypeLib2 = Interface (ICreateTypeLib)
  2432. ['{0002040F-0000-0000-C000-000000000046}']
  2433. Function DeleteTypeInfo(szName: pOleStr):HResult;StdCall;
  2434. Function SetCustData(CONST guid: TGUID; CONST pVarVal: VARIANT):HResult;StdCall;
  2435. Function SetHelpStringContext(dwHelpStringContext: ULONG):HResult;StdCall;
  2436. Function SetHelpStringDll(szFileName: pOleStr):HResult;StdCall;
  2437. End;
  2438. IEnumVARIANT = Interface (IUnknown)
  2439. ['{00020404-0000-0000-C000-000000000046}']
  2440. {$ifndef Call_as}
  2441. Function Next(celt: ULONG; OUT rgVar: VARIANT; pCeltFetched: pULONG=nil):HResult;StdCall;
  2442. {$else}
  2443. Function Next(celt: ULONG; OUT rgVar: VARIANT; pCeltFetched: pULONG=nil):HResult;StdCall;
  2444. {$endif}
  2445. Function Skip(celt: ULONG):HResult;StdCall;
  2446. Function Reset():HResult;StdCall;
  2447. Function Clone(OUT ppEnum: IEnumVARIANT):HResult;StdCall;
  2448. End;
  2449. ITypeComp = Interface (IUnknown)
  2450. ['{00020403-0000-0000-C000-000000000046}']
  2451. {$ifndef Call_as}
  2452. Function Bind(szName: pOleStr; lHashVal: ULONG; wFlags: WORD; OUT ppTInfo: ITypeInfo; OUT pDescKind: DESCKIND; OUT pBindPtr: BINDPTR):HResult;StdCall;
  2453. Function BindType(szName: pOleStr; lHashVal: ULONG; OUT ppTInfo: ITypeInfo; OUT ppTComp: ITypeComp):HResult;StdCall;
  2454. {$else}
  2455. Function Bind(szName: pOleStr; lHashVal: ULONG; wFlags: WORD; OUT ppTInfo: ITypeInfo; OUT pDescKind: DESCKIND; OUT ppFuncDesc: LPFUNCDESC; OUT ppVarDesc: LPVARDESC; O
  2456. Function BindType(szName: pOleStr; lHashVal: ULONG; OUT ppTInfo: ITypeInfo):HResult;StdCall;
  2457. {$endif}
  2458. End;
  2459. ITypeInfo = Interface (IUnknown)
  2460. ['{00020401-0000-0000-C000-000000000046}']
  2461. {$ifndef Call_as}
  2462. Function GetTypeAttr(OUT ppTypeAttr: lpTYPEATTR):HResult;StdCall;
  2463. {$else}
  2464. Function GetTypeAttr(OUT ppTypeAttr: LPTYPEATTR; OUT pDummy: CLEANLOCALSTORAGE):HResult;StdCall;
  2465. {$endif}
  2466. Function GetTypeComp(OUT ppTComp: ITypeComp):HResult;StdCall;
  2467. {$ifndef Call_as}
  2468. Function GetFuncDesc(index: UINT; OUT ppFuncDesc: lpFUNCDESC):HResult;StdCall;
  2469. Function GetVarDesc(index: UINT; OUT ppVarDesc: lpVARDESC):HResult;StdCall;
  2470. Function GetNames(memid: MEMBERID; rgBstrNames: PBStrList; cMaxNames: UINT; OUT pcNames: UINT):HResult;StdCall;
  2471. {$else}
  2472. Function GetFuncDesc(index: UINT; OUT ppFuncDesc: LPFUNCDESC; OUT pDummy: CLEANLOCALSTORAGE):HResult;StdCall;
  2473. Function GetVarDesc(index: UINT; OUT ppVarDesc: LPVARDESC; OUT pDummy: CLEANLOCALSTORAGE):HResult;StdCall;
  2474. Function GetNames(memid: MEMBERID; rgBstrNames: PBStrList; cMaxNames: UINT; OUT pcNames: UINT):HResult;StdCall;
  2475. {$endif}
  2476. Function GetRefTypeOfImplType(index: UINT; OUT pRefType: HREFTYPE):HResult;StdCall;
  2477. Function GetImplTypeFlags(index: UINT; OUT pImplTypeFlags: WINT):HResult;StdCall;
  2478. {$ifndef Call_as}
  2479. Function GetIDsOfNames(CONST rgszNames: pOleStr; cNames: UINT; OUT pMemId: MEMBERID):HResult;StdCall;
  2480. {$else}
  2481. Function LocalGetIDsOfNames():HResult;StdCall;
  2482. {$endif}
  2483. {$ifndef Call_as}
  2484. Function Invoke(pvInstance: Pointer; memid: MEMBERID; wFlags: WORD; VAR pDispParams: DISPPARAMS; OUT pVarResult: VARIANT; OUT pExcepInfo: EXCEPINFO; OUT puArgErr: UINT):HResult;StdCall;
  2485. {$else}
  2486. Function LocalInvoke ():HResult;StdCall;
  2487. {$endif}
  2488. {$ifndef Call_as}
  2489. //Function GetDocumentation(memid: MEMBERID; OUT pBstrName: WideString; OUT pBstrDocString: WideString; OUT pdwHelpContext: DWORD; OUT pBstrHelpFile: WideString):HResult;StdCall;
  2490. Function GetDocumentation(memid: MEMBERID; pBstrName: PWideString; pBstrDocString: PWideString; pdwHelpContext: PDWORD; pBstrHelpFile: PWideString):HResult;StdCall;
  2491. {$else}
  2492. Function GetDocumentation(memid: MEMBERID; refPtrFlags: DWORD; OUT pBstrName: WideString; OUT pBstrDocString: WideString; OUT pdwHelpContext: DWORD; OUT pBstrHelpFile: WideString):HResult;StdCall;
  2493. {$endif}
  2494. {$ifndef Call_as}
  2495. Function GetDllEntry(memid: MEMBERID; invKind: INVOKEKIND; OUT pBstrDllName: WideString; OUT pBstrName: WideString; OUT pwOrdinal: WORD):HResult;StdCall;
  2496. {$else}
  2497. Function GetDllEntry(memid: MEMBERID; invKind: INVOKEKIND; refPtrFlags: DWORD; OUT pBstrDllName: WideString; OUT pBstrName: WideString; OUT pwOrdinal: WORD):HResult;StdCall;
  2498. {$endif}
  2499. Function GetRefTypeInfo(hRefType: HREFTYPE; OUT ppTInfo: ITypeInfo):HResult;StdCall;
  2500. {$ifndef Call_as}
  2501. Function AddressOfMember(memid: MEMBERID; invKind: INVOKEKIND; OUT ppv: Pointer):HResult;StdCall;
  2502. {$else}
  2503. Function LocalAddressOfMember():HResult;StdCall;
  2504. {$endif}
  2505. {$ifndef Call_as}
  2506. Function CreateInstance(CONST pUnkOuter: IUnknown; CONST riid: TIID; OUT ppvObj: Pointer):HResult;StdCall;
  2507. {$else}
  2508. Function CreateInstance(CONST riid: TIID; OUT ppvObj: pIUnknown):HResult;StdCall;
  2509. {$endif}
  2510. Function GetMops(memid: MEMBERID; OUT pBstrMops: WideString):HResult;StdCall;
  2511. {$ifndef Call_as}
  2512. Function GetContainingTypeLib(OUT ppTLib: ITypeLib; OUT pIndex: UINT):HResult;StdCall;
  2513. {$else}
  2514. Function GetContainingTypeLib(OUT ppTLib: ITypeLib; OUT pIndex: UINT):HResult;StdCall;
  2515. {$endif}
  2516. {$ifndef Call_as}
  2517. Procedure ReleaseTypeAttr( pTypeAttr: pTypeAttr); StdCall;
  2518. {$else}
  2519. Function ReleaseTypeAttr():HResult;StdCall;
  2520. {$endif}
  2521. {$ifndef Call_as}
  2522. Procedure ReleaseFuncDesc( pFuncDesc : lpFUNCDESC); StdCall;
  2523. {$else}
  2524. Function LocalReleaseFuncDesc():HResult;StdCall;
  2525. {$endif}
  2526. {$ifndef Call_as}
  2527. Procedure ReleaseVarDesc( pVarDesc : lpVarDesc); stdcall;
  2528. {$else}
  2529. Function LocalReleaseVarDesc():HResult;StdCall;
  2530. {$endif}
  2531. End;
  2532. ITypeInfo2 = Interface (ITypeInfo)
  2533. ['{00020412-0000-0000-C000-000000000046}']
  2534. Function GetTypeKind(OUT xpTypeKind: TYPEKIND):HResult;StdCall;
  2535. Function GetTypeFlags(OUT pTypeFlags: ULONG):HResult;StdCall;
  2536. Function GetFuncIndexOfMemId(memid: MEMBERID; invKind: INVOKEKIND; OUT pFuncIndex: UINT):HResult;StdCall;
  2537. Function GetVarIndexOfMemId(memid: MEMBERID; OUT pVarIndex: UINT):HResult;StdCall;
  2538. Function GetCustData(CONST guid: TGUID; OUT pVarVal: VARIANT):HResult;StdCall;
  2539. Function GetFuncCustData(index: UINT; CONST guid: TGUID; OUT pVarVal: VARIANT):HResult;StdCall;
  2540. Function GetParamCustData(indexFunc: UINT; indexParam: UINT; CONST guid: TGUID; OUT pVarVal: VARIANT):HResult;StdCall;
  2541. Function GetVarCustData(index: UINT; CONST guid: TGUID; OUT pVarVal: VARIANT):HResult;StdCall;
  2542. Function GetImplTypeCustData(index: UINT; CONST guid: TGUID; OUT pVarVal: VARIANT):HResult;StdCall;
  2543. {$ifndef Call_as}
  2544. Function GetDocumentation2(memid: MEMBERID; lcid: LCID; pbstrHelpString: PWideString; pdwHelpStringContext: PDWORD; pbstrHelpStringDll: PWideString):HResult;StdCall;
  2545. {$else}
  2546. Function GetDocumentation2(memid: MEMBERID; lcid: LCID; refPtrFlags: DWORD; pbstrHelpString: PWideString; pdwHelpStringContext: PDWORD; pbstrHelpStringDll: PWideString):HResult;StdCall;
  2547. {$endif}
  2548. Function GetAllCustData(OUT pCustData: CUSTDATA):HResult;StdCall;
  2549. Function GetAllFuncCustData(index: UINT; OUT pCustData: CUSTDATA):HResult;StdCall;
  2550. Function GetAllParamCustData(indexFunc: UINT; indexParam: UINT; OUT pCustData: CUSTDATA):HResult;StdCall;
  2551. Function GetAllVarCustData(index: UINT; OUT pCustData: CUSTDATA):HResult;StdCall;
  2552. Function GetAllImplTypeCustData(index: UINT; OUT pCustData: CUSTDATA):HResult;StdCall;
  2553. End;
  2554. ITypeLib = Interface (IUnknown)
  2555. ['{00020402-0000-0000-C000-000000000046}']
  2556. {$ifndef Call_as}
  2557. Function GetTypeInfoCount:UINT; StdCall;
  2558. {$else}
  2559. Function GetTypeInfoCount(OUT pcTInfo: UINT):HResult;StdCall;
  2560. {$endif}
  2561. Function GetTypeInfo(index: UINT; OUT ppTInfo: ITypeInfo):HResult;StdCall;
  2562. Function GetTypeInfoType(index: UINT; OUT pTKind: TYPEKIND):HResult;StdCall;
  2563. Function GetTypeInfoOfGuid(CONST guid: TGUID; OUT ppTinfo: ITypeInfo):HResult;StdCall;
  2564. {$ifndef Call_as}
  2565. Function GetLibAttr(OUT ppTLibAttr: lpTLIBATTR):HResult;StdCall;
  2566. {$else}
  2567. Function GetLibAttr(OUT ppTLibAttr: LPTLIBATTR; OUT pDummy: CLEANLOCALSTORAGE):HResult;StdCall;
  2568. {$endif}
  2569. Function GetTypeComp(OUT ppTComp: ITypeComp):HResult;StdCall;
  2570. {$ifndef Call_as}
  2571. Function GetDocumentation(index: WINT; pBstrName: PWideString; pBstrDocString: PWideString; pdwHelpContext: PDWORD; pBstrHelpFile: PWideString):HResult;StdCall;
  2572. {$else}
  2573. Function GetDocumentation(index: WINT; refPtrFlags: DWORD; pBstrName: PWideString; pBstrDocString: PWideString; pdwHelpContext: PDWORD; pBstrHelpFile: PWideString):HResult;StdCall;
  2574. {$endif}
  2575. {$ifndef Call_as}
  2576. Function IsName(szNameBuf: pOleStr; lHashVal: ULONG; OUT pfName: BOOL):HResult;StdCall;
  2577. {$else}
  2578. Function IsName(szNameBuf: pOleStr; lHashVal: ULONG; OUT pfName: BOOL; OUT pBstrLibName: WideString):HResult;StdCall;
  2579. {$endif}
  2580. {$ifndef Call_as}
  2581. Function FindName(szNameBuf: pOleStr; lHashVal: ULONG; OUT ppTInfo: ITypeInfo; OUT rgMemId: MEMBERID; VAR pcFound: USHORT):HResult;StdCall;
  2582. {$else}
  2583. Function FindName(szNameBuf: pOleStr; lHashVal: ULONG; OUT ppTInfo: ITypeInfo; OUT rgMemId: MEMBERID; VAR pcFound: USHORT; OUT pBstrLibName: WideString):HResult;StdCall;
  2584. {$endif}
  2585. {$ifndef Call_as}
  2586. Procedure ReleaseTLibAttr( pTLibAttr : LPTLIBATTR); StdCall;
  2587. {$else}
  2588. Function LocalReleaseTLibAttr:HResult;StdCall;
  2589. {$endif}
  2590. End;
  2591. ITypeLib2 = Interface (ITypeLib)
  2592. ['{00020411-0000-0000-C000-000000000046}']
  2593. Function GetCustData(CONST guid: TGUID; OUT pVarVal: VARIANT):HResult;StdCall;
  2594. {$ifndef Call_as}
  2595. Function GetLibStatistics(OUT pcUniqueNames: ULONG; OUT pcchUniqueNames: ULONG):HResult;StdCall;
  2596. {$else}
  2597. Function GetLibStatistics(OUT pcUniqueNames: ULONG; OUT pcchUniqueNames: ULONG):HResult;StdCall;
  2598. {$endif}
  2599. {$ifndef Call_as}
  2600. Function GetDocumentation2(index: WINT; lcid: LCID; pbstrHelpString: PWideString; pdwHelpStringContext: PDWORD; pbstrHelpStringDll: PWideString):HResult;StdCall;
  2601. {$else}
  2602. Function GetDocumentation2(index: WINT; lcid: LCID; refPtrFlags: DWORD; pbstrHelpString: PWideString; pdwHelpStringContext: PDWORD; pbstrHelpStringDll: PWideString):HResult;StdCall;
  2603. {$endif}
  2604. Function GetAllCustData(OUT pCustData: CUSTDATA):HResult;StdCall;
  2605. End;
  2606. ITypeChangeEvents= Interface (IUnknown)
  2607. ['{00020410-0000-0000-C000-000000000046}']
  2608. Function RequestTypeChange(changeKind: CHANGEKIND; CONST pTInfoBefore: ITypeInfo; pStrName: pOleStr; OUT pfCancel: WINT):HResult;StdCall;
  2609. Function AfterTypeChange(changeKind: CHANGEKIND; CONST pTInfoAfter: ITypeInfo; pStrName: pOleStr):HResult;StdCall;
  2610. End;
  2611. IErrorInfo= Interface (IUnknown)
  2612. ['{1CF2B120-547D-101B-8E65-08002B2BD119}']
  2613. Function GetGUID(OUT pGUID: TGUID):HResult;StdCall;
  2614. Function GetSource(OUT pBstrSource: WideString):HResult;StdCall;
  2615. Function GetDescription(OUT pBstrDescription: WideString):HResult;StdCall;
  2616. Function GetHelpFile(OUT pBstrHelpFile: WideString):HResult;StdCall;
  2617. Function GetHelpContext(OUT pdwHelpContext: DWORD):HResult;StdCall;
  2618. End;
  2619. ICreateErrorInfo= Interface (IUnknown)
  2620. ['{22F03340-547D-101B-8E65-08002B2BD119}']
  2621. Function SetGUID(CONST rguid: TGUID):HResult;StdCall;
  2622. Function SetSource(szSource: pOleStr):HResult;StdCall;
  2623. Function SetDescription(szDescription: pOleStr):HResult;StdCall;
  2624. Function SetHelpFile(szHelpFile: pOleStr):HResult;StdCall;
  2625. Function SetHelpContext(dwHelpContext: DWORD):HResult;StdCall;
  2626. End;
  2627. ISupportErrorInfo= Interface (IUnknown)
  2628. ['{DF0B3D60-548F-101B-8E65-08002B2BD119}']
  2629. Function InterfaceSupportsErrorInfo(CONST riid: TIID):HResult;StdCall;
  2630. End;
  2631. ITypeFactory = Interface (IUnknown)
  2632. ['{0000002E-0000-0000-C000-000000000046}']
  2633. Function CreateFromTypeInfo(CONST pTypeInfo: ITypeInfo; CONST riid: TIID; OUT ppv: IUnknown):HResult;StdCall;
  2634. End;
  2635. ITypeMarshal = Interface (IUnknown)
  2636. ['{0000002D-0000-0000-C000-000000000046}']
  2637. Function Size(pvType: Pointer; dwDestContext: DWORD; pvDestContext: Pointer; OUT pSize: ULONG):HResult;StdCall;
  2638. Function Marshal(pvType: Pointer; dwDestContext: DWORD; pvDestContext: Pointer; cbBufferLength: ULONG; OUT pBuffer: BYTE; OUT pcbWritten: ULONG):HResult;StdCall;
  2639. Function Unmarshal(pvType: Pointer; dwFlags: DWORD; cbBufferLength: ULONG; CONST pBuffer: BYTE; OUT pcbRead: ULONG):HResult;StdCall;
  2640. Function Free(pvType: Pointer):HResult;StdCall;
  2641. End;
  2642. IRecordInfo = Interface(IUnknown)
  2643. ['{0000002F-0000-0000-C000-000000000046}']
  2644. Function RecordInit(pvNew: Pointer):HResult;StdCall;
  2645. Function RecordClear(pvExisting: Pointer):HResult;StdCall;
  2646. Function RecordCopy(pvExisting: Pointer; pvNew: Pointer):HResult;StdCall;
  2647. Function GetGuid(OUT pguid: TGUID):HResult;StdCall;
  2648. Function GetName(OUT pbstrName: WideString):HResult;StdCall;
  2649. Function GetSize(OUT pcbSize: ULONG):HResult;StdCall;
  2650. Function GetTypeInfo(OUT ppTypeInfo: ITypeInfo):HResult;StdCall;
  2651. Function GetField(pvData: Pointer; szFieldName: pOleStr; OUT pvarField: VARIANT):HResult;StdCall;
  2652. Function GetFieldNoCopy(pvData: Pointer; szFieldName: pOleStr; OUT pvarField: VARIANT; OUT ppvDataCArray: Pointer):HResult;StdCall;
  2653. Function PutField(wFlags: ULONG; pvData: Pointer; szFieldName: pOleStr; CONST pvarField: VARIANT):HResult;StdCall;
  2654. Function PutFieldNoCopy(wFlags: ULONG; pvData: Pointer; szFieldName: pOleStr; CONST pvarField: VARIANT):HResult;StdCall;
  2655. Function GetFieldNames(VAR pcNames: ULONG; OUT rgBstrNames: WideString):HResult;StdCall;
  2656. Function IsMatchingType(CONST pRecordInfo : IRecordInfo):Bool;StdCall;
  2657. Function RecordCreate : Pointer; StdCall;
  2658. Function RecordCreateCopy(pvSource: Pointer; OUT ppvDest: Pointer):HResult;StdCall;
  2659. Function RecordDestroy(pvRecord: Pointer):HResult;StdCall;
  2660. End;
  2661. IErrorLog = Interface (IUnknown)
  2662. ['{3127CA40-446E-11CE-8135-00AA004BB851}']
  2663. Function AddError(pszPropName: pOleStr; CONST pExcepInfo: EXCEPINFO):HResult;StdCall;
  2664. End;
  2665. IPropertyBag = Interface (IUnknown)
  2666. ['{55272A00-42CB-11CE-8135-00AA004BB851}']
  2667. {$ifndef Call_as}
  2668. Function Read(pszPropName: pOleStr; VAR pVar: VARIANT; CONST pErrorLog: IErrorLog):HResult;StdCall;
  2669. {$else}
  2670. Function Read(pszPropName: pOleStr; OUT pVar: VARIANT; CONST pErrorLog: IErrorLog; varType: DWORD; CONST pUnkObj: IUnknown):HResult;StdCall;
  2671. {$endif}
  2672. Function Write(pszPropName: pOleStr; CONST pVar: VARIANT):HResult;StdCall;
  2673. End;
  2674. IEnumGUID = interface(IUnknown)
  2675. ['{0002E000-0000-0000-C000-000000000046}']
  2676. Function Next(celt: UINT; OUT rgelt: TGUID; pceltFetched: pUINT=nil):HResult;StdCall;
  2677. Function Skip(celt:UINT):HResult;StdCall;
  2678. Function Reset: HResult;StdCall;
  2679. Function Clone(out ppenum: IEnumGUID):HResult;StdCall;
  2680. End;
  2681. IBindHost = interface(IUnknown)
  2682. ['{FC4801A1-2BA9-11CF-A229-00AA003D7352}']
  2683. End;
  2684. IServiceProvider = interface(IUnknown)
  2685. ['{6D5140C1-7436-11CE-8034-00AA006009FA}']
  2686. Function QueryService(CONST rsid, iid: TGuid; OUT Obj):HResult;StdCall;
  2687. End;
  2688. PServiceProvider = ^IServiceProvider;
  2689. IParseDisplayName = interface(IUnknown)
  2690. ['{0000011A-0000-0000-C000-000000000046}']
  2691. Function ParseDisplayName(CONST bc: IBindCtx; pszDisplayName: POleStr;OUT chEaten: Longint; OUT mkOut: IMoniker): HResult;StdCall;
  2692. End;
  2693. IOleContainer = interface(IParseDisplayName)
  2694. ['{0000011B-0000-0000-C000-000000000046}']
  2695. Function EnumObjects(grfFlags: Longint; OUT Enum: IEnumUnknown):HResult;StdCall;
  2696. Function LockContainer(fLock: BOOL):HResult;StdCall;
  2697. End;
  2698. IOleClientSite = interface(IUnknown)
  2699. ['{00000118-0000-0000-C000-000000000046}']
  2700. Function SaveObject: HResult;StdCall;
  2701. Function GetMoniker(dwAssign: Longint; dwWhichMoniker: Longint;OUT mk: IMoniker):HResult;StdCall;
  2702. Function GetContainer(OUT container: IOleContainer):HResult;StdCall;
  2703. Function ShowObject:HResult;StdCall;
  2704. Function OnShowWindow(fShow: BOOL):HResult;StdCall;
  2705. Function RequestNewObjectLayout:HResult;StdCall;
  2706. End;
  2707. IOleWindow = interface(IUnknown)
  2708. ['{00000114-0000-0000-C000-000000000046}']
  2709. function GetWindow(out wnd: HWnd): HResult; stdcall;
  2710. function ContextSensitiveHelp(fEnterMode: BOOL): HResult; stdcall;
  2711. end;
  2712. tagOleMenuGroupWidths = record
  2713. width : array[0..5] Of LONG;
  2714. end;
  2715. OLEMENUGROUPWIDTHS = tagOleMenuGroupWidths;
  2716. TOleMenuGroupWidths = tagOleMenuGroupWidths;
  2717. LPOLEMENUGROUPWIDTHS = ^OLEMENUGROUPWIDTHS;
  2718. POleMenuGroupWidths = LPOLEMENUGROUPWIDTHS;
  2719. IProvideClassInfo = Interface (IUnknown)
  2720. ['{B196B283-BAB4-101A-B69C-00AA00341D07}']
  2721. function GetClassInfo(out pptti : ITypeInfo):HResult; StdCall;
  2722. end;
  2723. IProvideClassInfo2 = Interface (IProvideClassInfo)
  2724. ['{A6BC3AC0-DBAA-11CE-9DE3-00AA004BB851}']
  2725. function GetGUID(dwguid:DWord;out pguid:TGUID):HResult; StdCall;
  2726. end;
  2727. { ******************************************************************************************************************
  2728. stuff from objbase.h
  2729. ****************************************************************************************************************** }
  2730. tagOIFI = record
  2731. cb: UINT;
  2732. fMDIApp: BOOL;
  2733. hwndFrame: HWND;
  2734. haccel: HAccel;
  2735. cAccelEntries: UINT;
  2736. end;
  2737. TOleInPlaceFrameInfo = tagOIFI;
  2738. POleInPlaceFrameInfo = ^TOleInPlaceFrameInfo;
  2739. LPOleInPlaceFrameInfo = POleInPlaceFrameInfo;
  2740. OLEINPLACEFRAMEINFO = tagOIFI;
  2741. { redefinitions }
  2742. function CoCreateGuid(out _para1:TGUID):HRESULT;stdcall;external 'ole32.dll' name 'CoCreateGuid';
  2743. { additional definitions }
  2744. {$ifndef wince}
  2745. function IsEqualGUID(const guid1,guid2 : TGUID) : Boolean;stdcall;external 'ole32.dll' name 'IsEqualGUID';
  2746. function IsEqualIID(const iid1,iid2 : TIID) : Boolean;stdcall;external 'ole32.dll' name 'IsEqualGUID';
  2747. function IsEqualCLSID(const clsid1,clsid2 : TCLSID) : Boolean;stdcall;external 'ole32.dll' name 'IsEqualGUID';
  2748. {$endif wince}
  2749. { OleIdl.h }
  2750. type
  2751. IOleInPlaceActiveObject = interface;
  2752. IOleAdviseHolder = interface(IUnknown)
  2753. ['{00000111-0000-0000-C000-000000000046}']
  2754. function Advise(const advise: IAdviseSink; out dwConnection: DWORD): HResult;StdCall;
  2755. function Unadvise(dwConnection: DWORD): HResult;StdCall;
  2756. function EnumAdvise(out enumAdvise: IEnumStatData): HResult;StdCall;
  2757. function SendOnRename(const mk: IMoniker): HResult;StdCall;
  2758. function SendOnSave: HResult;StdCall;
  2759. function SendOnClose: HResult;StdCall;
  2760. end;
  2761. IEnumOLEVERB = interface(IUnknown)
  2762. ['{00000104-0000-0000-C000-000000000046}']
  2763. function Next(celt: ULONG; out elt; pceltFetched: PULONG=nil): HResult;StdCall;
  2764. function Skip(celt: ULONG): HResult;StdCall;
  2765. function Reset: HResult;StdCall;
  2766. function Clone(out ppenum: IEnumOLEVERB): HResult;StdCall;
  2767. end;
  2768. IDropSource = interface(IUnknown)
  2769. ['{00000121-0000-0000-C000-000000000046}']
  2770. function QueryContinueDrag(fEscapePressed: BOOL;
  2771. grfKeyState: Longint):HResult;StdCall;
  2772. function GiveFeedback(dwEffect: Longint): HResult;StdCall;
  2773. end;
  2774. IOleObject = interface(IUnknown)
  2775. ['{00000112-0000-0000-C000-000000000046}']
  2776. function SetClientSite(const clientSite: IOleClientSite): HResult;StdCall;
  2777. function GetClientSite(out clientSite: IOleClientSite): HResult;StdCall;
  2778. function SetHostNames(szContainerApp: POleStr; szContainerObj: POleStr): HResult;StdCall;
  2779. function Close(dwSaveOption: DWORD): HResult;StdCall;
  2780. function SetMoniker(dwWhichMoniker: DWORD; const mk: IMoniker): HResult;StdCall;
  2781. function GetMoniker(dwAssign: DWORD; dwWhichMoniker: DWORD; out mk: IMoniker): HResult;StdCall;
  2782. function InitFromData(const dataObject: IDataObject; fCreation: BOOL; dwReserved: DWORD): HResult;StdCall;
  2783. function GetClipboardData(dwReserved: DWORD; out dataObject: IDataObject): HResult;StdCall;
  2784. function DoVerb(iVerb: LONG; msg: PMsg; const activeSite: IOleClientSite; lindex: LONG; hwndParent: HWND; const posRect: TRect): HResult;StdCall;
  2785. function EnumVerbs(out enumOleVerb: IEnumOleVerb): HResult;StdCall;
  2786. function Update: HResult;StdCall;
  2787. function IsUpToDate: HResult;StdCall;
  2788. function GetUserClassID(out clsid: TCLSID): HResult;StdCall;
  2789. function GetUserType(dwFormOfType: DWORD; out pszUserType: POleStr): HResult;StdCall;
  2790. function SetExtent(dwDrawAspect: DWORD; const size: TPoint): HResult;StdCall;
  2791. function GetExtent(dwDrawAspect: DWORD; out size: TPoint): HResult;StdCall;
  2792. function Advise(const advSink: IAdviseSink; out dwConnection: Longint): HResult;StdCall;
  2793. function Unadvise(dwConnection: DWORD): HResult;StdCall;
  2794. function EnumAdvise(out enumAdvise: IEnumStatData): HResult;StdCall;
  2795. function GetMiscStatus(dwAspect: DWORD; out dwStatus: DWORD): HResult;StdCall;
  2796. function SetColorScheme(const logpal: TLogPalette): HResult;StdCall;
  2797. end;
  2798. IDropTarget = interface(IUnknown)
  2799. ['{00000122-0000-0000-C000-000000000046}']
  2800. function DragEnter(const dataObj: IDataObject; grfKeyState: DWORD; pt: TPoint; var dwEffect: DWORD): HResult;StdCall;
  2801. function DragOver(grfKeyState: DWORD; pt: TPoint; var dwEffect: DWORD): HResult;StdCall;
  2802. function DragLeave: HResult;StdCall;
  2803. function Drop(const dataObj: IDataObject; grfKeyState: DWORD; pt: TPoint; var dwEffect: DWORD):HResult;StdCall;
  2804. end;
  2805. IOleInPlaceUIWindow = interface(IOleWindow)
  2806. ['{00000115-0000-0000-C000-000000000046}']
  2807. function GetBorder(out rectBorder: TRect):HResult;StdCall;
  2808. function RequestBorderSpace(const borderwidths: TRect):HResult;StdCall;
  2809. function SetBorderSpace(const borderwidths: TRect):HResult;StdCall;
  2810. function SetActiveObject(const activeObject: IOleInPlaceActiveObject;pszObjName: POleStr):HResult;StdCall;
  2811. end;
  2812. IOleInPlaceActiveObject = interface(IOleWindow)
  2813. ['{00000117-0000-0000-C000-000000000046}']
  2814. function TranslateAccelerator(var msg: TMsg):HResult;StdCall;
  2815. function OnFrameWindowActivate(fActivate: BOOL):HResult;StdCall;
  2816. function OnDocWindowActivate(fActivate: BOOL):HResult;StdCall;
  2817. function ResizeBorder(const rcBorder: TRect; const uiWindow: IOleInPlaceUIWindow; fFrameWindow: BOOL):HResult;StdCall;
  2818. function EnableModeless(fEnable: BOOL):HResult;StdCall;
  2819. end;
  2820. IOleInPlaceFrame = interface(IOleInPlaceUIWindow)
  2821. ['{00000116-0000-0000-C000-000000000046}']
  2822. function InsertMenus(hmenuShared: HMenu; var menuWidths: TOleMenuGroupWidths): HResult;StdCall;
  2823. function SetMenu(hmenuShared: HMenu; holemenu: HMenu; hwndActiveObject: HWnd): HResult;StdCall;
  2824. function RemoveMenus(hmenuShared: HMenu): HResult;StdCall;
  2825. function SetStatusText(pszStatusText: POleStr): HResult;StdCall;
  2826. function EnableModeless(fEnable: BOOL): HResult;StdCall;
  2827. function TranslateAccelerator(var msg: TMsg; wID: Word): HResult;StdCall;
  2828. end;
  2829. IOleLink = interface(IUnknown)
  2830. ['{0000011d-0000-0000-C000-000000000046}']
  2831. function SetUpdateOptions(dwupdateopt:dword):HResult; stdcall;
  2832. function GetUpdateOptions(dwupdateopt:pdword):HResult; stdcall;
  2833. function SetSourceMoniker(pmk : IMoniker;const clsid: TCLSID):HRESULT; stdcall;
  2834. function GetSourceMoniker(out pmk : IMoniker):HRESULT; stdcall;
  2835. function SetSourceDisplayName(ppszDisplayName:lpolestr):HResult; stdcall;
  2836. function GetSourceDisplayName(out ppszDisplayName:lpolestr):HResult; stdcall;
  2837. function BindToSource(bindflags:DWord;pbc: IBindCTX):HResult; stdcall;
  2838. function BindIfRunning:HResult; stdcall;
  2839. function GetBoundSource(out ppunk: IUnKnown):HResult; stdcall;
  2840. function UnbindSource:HResult; stdcall;
  2841. function Update(pbc:IBindCtx):HResult; stdcall;
  2842. end;
  2843. IOleInPlaceSite = interface(IOleWindow)
  2844. ['{00000119-0000-0000-C000-000000000046}']
  2845. function CanInPlaceActivate : HResult;
  2846. function OnInPlaceActivate : HResult;
  2847. function OnUIActivate : HResult;
  2848. function GetWindowContext(out ppframe:IOleInPlaceFrame;out ppdoc:IOleInPlaceUIWindow;lprcposrect:LPRECT;lprccliprect:LPRECT;lpframeinfo:LPOLEINPLACEFRAMEINFO):hresult; stdcall;
  2849. function Scroll(scrollExtant:TSIZE):hresult; stdcall;
  2850. function OnUIDeactivate(fUndoable:BOOL):hresult; stdcall;
  2851. function OnInPlaceDeactivate :hresult; stdcall;
  2852. function DiscardUndoState :hresult; stdcall;
  2853. function DeactivateAndUndo :hresult; stdcall;
  2854. function OnPosRectChange(lprcPosRect:LPRect):hresult; stdcall;
  2855. end;
  2856. IOleInPlaceObject = interface(IOleWindow)
  2857. ['{00000113-0000-0000-C000-000000000046}']
  2858. function InPlaceDeactivate : HResult;
  2859. function UIDeactivate : HResult;
  2860. function SetObjectRects(lprcPosRect:LPRect;lprcClipRect:LPRect):hresult; stdcall;
  2861. function ReactivateAndUndo : HResult;
  2862. end;
  2863. IOleDocumentView = interface(IUnknown)
  2864. ['{b722bcc6-4e68-101b-a2bc-00aa00404770}']
  2865. function SetInPlaceSite(ppipsite:IOleInPlaceSite):hresult; stdcall;
  2866. function GetInPlaceSite(out ppipsite:IOleInPlaceSite):hresult; stdcall;
  2867. function GetDocument(out ppipsite:Iunknown):hresult; stdcall;
  2868. function SetRect(prcview:LPRect):hresult; stdcall;
  2869. function Getrect(prcView:LPRect):hresult; stdcall;
  2870. function SetRectComplex(prcview:LPRect;prcHScroll:LPRect;prcVScroll:LPRect;prcSizeBox:LPRect):hresult; stdcall;
  2871. function Show(fshow:Bool) :hresult; stdcall;
  2872. function UIActivate(fUIActive :BOOL): HResult;
  2873. function Open :hresult; stdcall;
  2874. function Closeview(dwreserved:DWORD):hresult; stdcall;
  2875. function SaveViewState(pstm:IStream):hresult; stdcall;
  2876. function ApplyViewState(pstm:IStream):hresult; stdcall;
  2877. function Clone(pipsitenew: IOleInPlaceSite;out ppviewNew:IOleDocumentView):HResult;
  2878. end;
  2879. IEnumOleDocumentViews = Interface(IUnknown)
  2880. ['{b722bcc8-4e68-101b-a2bc-00aa00404770}']
  2881. function Next (CViews:ULONG; out rgpview:IOleDocumentView;pcfetched:pulong):hresult; stdcall;
  2882. function Skip (CViews:ULong):hresult; stdcall;
  2883. function Reset:HResult; stdcall;
  2884. function Clone (out ppenum :IEnumOleDocumentViews) :HResult; stdcall;
  2885. end;
  2886. IOleDocument = interface(IUnknown)
  2887. ['{b722bcc5-4e68-101b-a2bc-00aa00404770}']
  2888. function CreateView(pipsite:IOleInPlaceSite;pstm:IStream;dwReserved:DWord;out ppview : IOleDocumentView):hresult; stdcall;
  2889. function GetDocMiscStatus(pdwstatus:PDWord):hresult; stdcall;
  2890. function EnumViews(out ppenum:IEnumOleDocumentViews;out ppview:IOleDocumentView):hresult; stdcall;
  2891. end;
  2892. IOleDocumentSite = interface(IUnknown)
  2893. ['{b722bcc7-4e68-101b-a2bc-00aa00404770}']
  2894. function ActivateMe(pviewtoactivate:IOleDocumentView):hresult; stdcall;
  2895. end;
  2896. IContinueCallback = interface(IUnknown)
  2897. ['{b722bcca-4e68-101b-a2bc-00aa00404770}']
  2898. function FContinue:HResult;Stdcall;
  2899. function FContinuePrinting( nCntPrinted:LONG;nCurPage:Long;pwzprintstatus:polestr):HResult;Stdcall;
  2900. end;
  2901. { ObjSafe.idl}
  2902. IObjectSafety = interface(IUnknown)
  2903. ['{CB5BDC81-93C1-11cf-8F20-00805F2CD064}']
  2904. function GetInterfaceSafetyOptions(const riid:Tiid; out pdwsupportedoptions: dword;out pdwenabledoptions: dword):HRESULT; stdcall;
  2905. function SetInterfaceSafetyOptions(const riid:Tiid; const dwoptionsetmask: dword;const dwenabledoptions : dword):HRESULT; stdcall;
  2906. end;
  2907. TContinueCallback = function (dwcontinue:ULONG_PTR):BOOL; stdcall;
  2908. IViewObject = interface(IUnknown)
  2909. ['{0000010d-0000-0000-C000-000000000046}']
  2910. function Draw(dwDrawAspect:DWord;LIndex:Long;pvaspect:pointer;ptd:PDVTARGETDEVICE;hdcTargetDev:HDC; hdcDraw:HDC;lprcBounds:PRECTL;lprcWBounds:PRECTL;pfncontinue:TContinueCallback;dwcontinue:ULONG_PTR):HResult; stdcall;
  2911. function GetColorSet(wDrawAspect:DWord;LIndex:Long;pvaspect:pointer;ptd:PDVTARGETDEVICE;hdcTargetDev:HDC;var ppcolorset:PLogPalette):HREsult; stdcall;
  2912. function Freeze(dwDrawAspect:DWord;LIndex:Long;pvaspect:pointer;pdwfreeze:pdword):HResult;stdcall;
  2913. function Unfreeze(dwfreeze:dword):HResult; stdcall;
  2914. function SetAdvise(aspects:DWORD;advf:DWORD;padvSink:IAdviseSink):HRESULT;stdcall;
  2915. function Getadvise(paspects:pdword;padvf:pdword;out ppadvsink: IADviseSink):HRESULT;stdcall;
  2916. end;
  2917. IViewObject2 = interface(IViewObject)
  2918. ['{00000127-0000-0000-C000-000000000046}']
  2919. function GetExtent(dwDrawAspect:dword;lindex:DWord;ptd:pDVTARGETDEVICE;lpsizel:LPSIZEL):HRESULT;stdcall;
  2920. end;
  2921. { COMCAT}
  2922. Const CATDESC_MAX = 128;
  2923. Type
  2924. CATID = TGUID;
  2925. TCATID = TGUID;
  2926. PCATID = PGUID;
  2927. tagCATEGORYINFO = packed record
  2928. catid : CATID;
  2929. LCID : lcid;
  2930. szDescription : array[0..CATDESC_MAX-1] of WideChar;
  2931. end;
  2932. CATEGORYINFO = tagCATEGORYINFO;
  2933. TCATEGORYINFO = tagCATEGORYINFO;
  2934. LPCATEGORYINFO = ^tagCATEGORYINFO;
  2935. PCATEGORYINFO = LPCATEGORYINFO;
  2936. IEnumCLSID = IEnumGUID;
  2937. IEnumCategoryInfo = interface(IUnknown)
  2938. ['{0002E011-0000-0000-C000-000000000046}']
  2939. function Next(celt: ULONG; out rgelt: TCategoryInfo; out pceltFetched: ULONG): HResult; stdcall;
  2940. function Skip(celt:ULONG):HResult; StdCall;
  2941. function Reset:HResult; StdCall;
  2942. function CLone(Out ppenum : IEnumCategoryInfo):HResult;StdCall;
  2943. end;
  2944. ICatRegister = interface (IUnknown)
  2945. ['{0002E012-0000-0000-C000-000000000046}']
  2946. function RegisterCategories (cCategories:ULONG;rgCategoryInfo : PCategoryInfo):HResult;Stdcall;
  2947. function UnRegisterCategories (cCategories:ULONG;PCatid :PCATID):HResult;Stdcall;
  2948. function RegisterClassImplCategories (const rclsid:TGUID;cCategories:ULONG; rgCatid :PCATID):HResult;Stdcall;
  2949. function UnRegisterClassImplCategories (const rclsid:TGUID;cCategories:ULONG; rgCatid :PCATID):HResult;Stdcall;
  2950. function RegisterClassReqCategories (const rclsid:TGUID;cCategories:ULONG; rgCatid :PCATID):HResult;Stdcall;
  2951. function UnRegisterClassReqCategories (const rclsid:TGUID;cCategories:ULONG; rgCatid :PCATID):HResult;Stdcall;
  2952. end;
  2953. ICatInformation = interface(IUnknown)
  2954. ['{0002E013-0000-0000-C000-000000000046}']
  2955. function EnumCategories(lcid:lcid;out ppenumCategoryInfo : IEnumCategoryInfo):HResult; StdCall;
  2956. function GetCategoryDesc(rcatid:PCATID;lcid:LCID;out pszdesc:lpwstr):HResult; StdCall;
  2957. function EnumClassesOfCategories(cImplemented : ULong; rgcatidImpl:PCATID;cRequired:ULong; rgcatidreq:PCATID; out ppenumclsid : IEnumClsID):HResult; StdCall;
  2958. function ISClassOfCategories(rclsid:pclsid;cImplemented:ULong;rgcatidimpl:PCATID;CRequired:ULONG;rgcatidreq : pcatid):HResult; StdCall;
  2959. function EnumImplCategoriesOfClass(rclsid:pclsid;out ppenumclsid : IEnumClsID):HResult; StdCall;
  2960. function EnumReqCategoriesOfClass(rclsid:pclsid;out ppenumclsid : IEnumClsID):HResult; StdCall;
  2961. end;
  2962. IPropertySetStorage = Interface(IUnknown)
  2963. ['{0000013A-0000-0000-C000-000000000046}']
  2964. function Create(const rfmtid:FMTID; const pclsid:CLSID; grfFlags:DWORD; grfMode:DWORD; out ppprstg:IPropertyStorage):HRESULT; StdCall;
  2965. function Open(const fmtid:FMTID; grfMode:DWORD; out ppprstg:IPropertyStorage):HRESULT; StdCall;
  2966. function Delete(const rfmtid:FMTID):HRESULT; StdCall;
  2967. function Enum(out ppenum:IEnumSTATPROPSETSTG):HRESULT; StdCall;
  2968. end;
  2969. IEnumSTATPROPSTG = interface( IUnknown)
  2970. ['{00000139-0000-0000-C000-000000000046}']
  2971. function Next(celt:ULONG; var rgelt:STATPROPSTG; pceltFetched:pULONG):HRESULT; StdCall;
  2972. function Skip(celt:ULONG):HRESULT; StdCall;
  2973. function Reset:HRESULT; StdCall;
  2974. function Clone(out ppenum:IEnumSTATPROPSTG):HRESULT; StdCall;
  2975. end;
  2976. IEnumSTATPROPSETSTG = interface( IUnknown)
  2977. ['{0000013B-0000-0000-C000-000000000046}']
  2978. function Next(celt:ULONG; var rgelt:STATPROPSETSTG; pceltFetched:pULONG):HRESULT; StdCall;
  2979. function Skip(celt:ULONG):HRESULT; StdCall;
  2980. function Reset:HRESULT; StdCall;
  2981. function Clone(out ppenum:IEnumSTATPROPSETSTG):HRESULT; StdCall;
  2982. end;
  2983. IPropertyStorage = interface(IUnknown)
  2984. ['{00000138-0000-0000-C000-000000000046}']
  2985. function ReadMultiple(cpspec:ULONG; rgpspec:pPROPSPEC; rgpropvar:pPROPVARIANT):HRESULT; StdCall;
  2986. function WriteMultiple(cpspec:ULONG; rgpspec:pPROPSPEC; rgpropvar:pPROPVARIANT; propidNameFirst:PROPID):HRESULT; StdCall;
  2987. function DeleteMultiple(cpspec:ULONG; rgpspec:pPROPSPEC):HRESULT; StdCall;
  2988. function ReadPropertyNames(cpspec:ULONG; rgpropid:pPROPID; rgpropvar:plpolestr):HRESULT; StdCall;
  2989. function WritePropertyNames(cpspec:ULONG; rgpspec:pPROPID; rgpropvar:plpolestr):HRESULT; StdCall;
  2990. function DeletePropertyNames(cpspec:ULONG; rgpspec:pPROPid):HRESULT; StdCall;
  2991. function Commit(grfCommitFlags:DWORD):HRESULT; StdCall;
  2992. function Revert:HRESULT; StdCall;
  2993. function Enum(out ppenum:IEnumSTATPROPSTG):HRESULT; StdCall;
  2994. function SetTimes(pctime:PFILETIME; patime:PFILETIME; pmtime:PFILETIME):HRESULT; StdCall;
  2995. function SetClass(clsid:pCLSID):HRESULT; StdCall;
  2996. function Stat(pstatpsstg:pSTATPROPSETSTG):HRESULT; StdCall;
  2997. end;
  2998. { ole2.h }
  2999. type
  3000. WINOLEAPI = HResult;
  3001. TLCID = DWORD; // is this needed (duplicate from windows?)
  3002. const
  3003. OLEIVERB_PRIMARY = 0;
  3004. OLEIVERB_SHOW = -(1);
  3005. OLEIVERB_OPEN = -(2);
  3006. OLEIVERB_HIDE = -(3);
  3007. OLEIVERB_UIACTIVATE = -(4);
  3008. OLEIVERB_INPLACEACTIVATE = -(5);
  3009. OLEIVERB_DISCARDUNDOSTATE = -(6);
  3010. { for OleCreateEmbeddingHelper flags; roles low word; options high word }
  3011. EMBDHLP_INPROC_HANDLER = $0000;
  3012. EMBDHLP_INPROC_SERVER = $0001;
  3013. EMBDHLP_CREATENOW = $00000000;
  3014. EMBDHLP_DELAYCREATE = $00010000;
  3015. { extended create function flags }
  3016. OLECREATE_LEAVERUNNING = $00000001;
  3017. { pull the MIDL generated header }
  3018. {$ifndef wince}
  3019. function OleBuildVersion:DWORD;stdcall;external 'ole32.dll' name 'OleBuildVersion';
  3020. {$endif wince}
  3021. { helper functions }
  3022. function ReadClassStg(pStg:IStorage; pclsid:PCLSID):WINOLEAPI;stdcall;external 'ole32.dll' name 'ReadClassStg';
  3023. function WriteClassStg(pStg:IStorage;const rclsid:TCLSID):WINOLEAPI;stdcall;external 'ole32.dll' name 'WriteClassStg';
  3024. function ReadClassStm(pStm:IStream; pclsid:PCLSID):WINOLEAPI;stdcall;external 'ole32.dll' name 'ReadClassStm';
  3025. function WriteClassStm(pStm:IStream;const rclsid:TCLSID):WINOLEAPI;stdcall;external 'ole32.dll' name 'WriteClassStm';
  3026. {$ifndef wince}
  3027. function WriteFmtUserTypeStg(pstg:IStorage; cf:CLIPFORMAT; lpszUserType:LPOLESTR):WINOLEAPI;stdcall;external 'ole32.dll' name 'WriteFmtUserTypeStg';
  3028. function ReadFmtUserTypeStg(pstg:IStorage; pcf:PCLIPFORMAT;out lplpszUserType:POleStr):WINOLEAPI;stdcall;external 'ole32.dll' name 'ReadFmtUserTypeStg';
  3029. { init/term }
  3030. function OleInitialize(pvReserved:LPVOID):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleInitialize';
  3031. procedure OleUninitialize;stdcall;external 'ole32.dll' name 'OleUninitialize';
  3032. { APIs to query whether (Embedded/Linked) object can be created from
  3033. the data object }
  3034. function OleQueryLinkFromData(pSrcDataObject:IDataObject):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleQueryLinkFromData';
  3035. function OleQueryCreateFromData(pSrcDataObject:IDataObject):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleQueryCreateFromData';
  3036. {$endif wince}
  3037. { Object creation APIs }
  3038. function OleCreate(const rclsid:TCLSID; const riid:TIID;
  3039. renderopt:DWORD; pFormatEtc:LPFORMATETC; pClientSite:IOleClientSite;
  3040. pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name
  3041. 'OleCreate';
  3042. {$ifndef wince}
  3043. function OleCreateEx(const rclsid:TCLSID; const riid:TIID; dwFlags:DWORD; renderopt:DWORD; cFormats:ULONG;
  3044. rgAdvf:PDWORD; rgFormatEtc:LPFORMATETC; lpAdviseSink:IAdviseSink; rgdwConnection:PDWORD; pClientSite:IOleClientSite;
  3045. pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateEx';
  3046. function OleCreateFromData(pSrcDataObj:IDataObject; const riid:TIID; renderopt:DWORD; pFormatEtc:LPFORMATETC; pClientSite:IOleClientSite;
  3047. pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateFromData';
  3048. function OleCreateFromDataEx(pSrcDataObj:IDataObject; const riid:TIID; dwFlags:DWORD; renderopt:DWORD; cFormats:ULONG;
  3049. rgAdvf:PDWORD; rgFormatEtc:LPFORMATETC; lpAdviseSink:IAdviseSink; rgdwConnection:PDWORD; pClientSite:IOleClientSite;
  3050. pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateFromDataEx';
  3051. function OleCreateLinkFromData(pSrcDataObj:IDataObject; const riid:TIID; renderopt:DWORD; pFormatEtc:LPFORMATETC; pClientSite:IOleClientSite;
  3052. pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateLinkFromData';
  3053. function OleCreateLinkFromDataEx(pSrcDataObj:IDataObject; const riid:TIID; dwFlags:DWORD; renderopt:DWORD; cFormats:ULONG;
  3054. rgAdvf:PDWORD; rgFormatEtc:LPFORMATETC; lpAdviseSink:IAdviseSink; rgdwConnection:PDWORD; pClientSite:IOleClientSite;
  3055. pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateLinkFromDataEx';
  3056. function OleCreateStaticFromData(pSrcDataObj:IDataObject; const iid:TIID; renderopt:DWORD; pFormatEtc:LPFORMATETC; pClientSite:IOleClientSite;
  3057. pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateStaticFromData';
  3058. function OleCreateLink(pmkLinkSrc:IMoniker; const riid:TIID; renderopt:DWORD; lpFormatEtc:LPFORMATETC; pClientSite:IOleClientSite;
  3059. pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateLink';
  3060. function OleCreateLinkEx(pmkLinkSrc:IMoniker; const riid:TIID; dwFlags:DWORD; renderopt:DWORD; cFormats:ULONG;
  3061. rgAdvf:PDWORD; rgFormatEtc:LPFORMATETC; lpAdviseSink:IAdviseSink; rgdwConnection:PDWORD; pClientSite:IOleClientSite;
  3062. pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateLinkEx';
  3063. function OleCreateLinkToFile(lpszFileName:POleStr; const riid:TIID; renderopt:DWORD; lpFormatEtc:LPFORMATETC; pClientSite:IOleClientSite;
  3064. pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateLinkToFile';
  3065. function OleCreateLinkToFileEx(lpszFileName:POleStr; const riid:TIID; dwFlags:DWORD; renderopt:DWORD; cFormats:ULONG;
  3066. rgAdvf:PDWORD; rgFormatEtc:LPFORMATETC; lpAdviseSink:IAdviseSink; rgdwConnection:PDWORD; pClientSite:IOleClientSite;
  3067. pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateLinkToFileEx';
  3068. function OleCreateFromFile(const rclsid:TCLSID; lpszFileName:POleStr; const riid:TIID; renderopt:DWORD; lpFormatEtc:LPFORMATETC;
  3069. pClientSite:IOleClientSite; pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateFromFile';
  3070. function OleCreateFromFileEx(const rclsid:TCLSID; lpszFileName:POleStr; const riid:TIID; dwFlags:DWORD; renderopt:DWORD;
  3071. cFormats:ULONG; rgAdvf:PDWORD; rgFormatEtc:LPFORMATETC; lpAdviseSink:IAdviseSink; rgdwConnection:PDWORD;
  3072. pClientSite:IOleClientSite; pStg:IStorage; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateFromFileEx';
  3073. function OleLoad(pStg:IStorage; const riid:TIID; pClientSite:IOleClientSite; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleLoad';
  3074. function OleLoadFromStream(pStm:IStream; const iidInterface:TIID; out ppvObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleLoadFromStream';
  3075. function OleSaveToStream(pPStm:IPersistStream; pStm:IStream):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleSaveToStream';
  3076. function OleNoteObjectVisible(pUnknown:IUnknown; fVisible:BOOL):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleNoteObjectVisible';
  3077. {$endif wince}
  3078. function OleSave(pPS:IPersistStorage; pStg:IStorage; fSameAsLoad:BOOL):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleSave';
  3079. function OleSetContainedObject(pUnknown:IUnknown; fContained:BOOL):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleSetContainedObject';
  3080. { Drag/Drop APIs }
  3081. {$ifndef wince}
  3082. function RegisterDragDrop(hwnd:HWND; pDropTarget:IDropTarget):WINOLEAPI;stdcall;external 'ole32.dll' name 'RegisterDragDrop';
  3083. function RevokeDragDrop(hwnd:HWND):WINOLEAPI;stdcall;external 'ole32.dll' name 'RevokeDragDrop';
  3084. function DoDragDrop(pDataObj:IDataObject; pDropSource:IDropSource; dwOKEffects:DWORD; pdwEffect:LPDWORD):WINOLEAPI;stdcall;external 'ole32.dll' name 'DoDragDrop';
  3085. { Clipboard APIs }
  3086. function OleSetClipboard(pDataObj:IDataObject):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleSetClipboard';
  3087. function OleGetClipboard(out ppDataObj:IDataObject):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleGetClipboard';
  3088. function OleFlushClipboard:WINOLEAPI;stdcall;external 'ole32.dll' name 'OleFlushClipboard';
  3089. function OleIsCurrentClipboard(pDataObj:IDataObject):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleIsCurrentClipboard';
  3090. {$endif wince}
  3091. type
  3092. HOLEMENU = HMenu;
  3093. { InPlace Editing APIs }
  3094. {$ifndef wince}
  3095. function OleCreateMenuDescriptor(hmenuCombined:HMENU; lpMenuWidths:LPOLEMENUGROUPWIDTHS):HOLEMENU;stdcall;external 'ole32.dll' name 'OleCreateMenuDescriptor';
  3096. function OleDestroyMenuDescriptor(holemenu:HOLEMENU):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleDestroyMenuDescriptor';
  3097. function OleTranslateAccelerator(lpFrame:IOleInPlaceFrame; lpFrameInfo:TOleInPlaceFrameInfo; lpmsg:LPMSG):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleTranslateAccelerator';
  3098. {$endif wince}
  3099. function OleSetMenuDescriptor(holemenu:HOLEMENU; hwndFrame:HWND; hwndActiveObject:HWND; lpFrame:IOleInPlaceFrame; lpActiveObj:IOleInPlaceActiveObject):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleSetMenuDescriptor';
  3100. { Helper APIs }
  3101. {$ifndef wince}
  3102. function OleDuplicateData(hSrc:HANDLE; cfFormat:CLIPFORMAT; uiFlags:UINT):HANDLE;stdcall;external 'ole32.dll' name 'OleDuplicateData';
  3103. function OleLockRunning(pUnknown:IUnknown; fLock:BOOL; fLastUnlockCloses:BOOL):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleLockRunning';
  3104. function OleCreateDefaultHandler(const clsid:TCLSID; pUnkOuter:IUnknown; const riid:TIID; out lplpObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateDefaultHandler';
  3105. function OleCreateEmbeddingHelper(const clsid:TCLSID; pUnkOuter:IUnknown; flags:DWORD; pCF:IClassFactory; const riid:TIID;
  3106. out lplpObj):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleCreateEmbeddingHelper';
  3107. function IsAccelerator(hAccel:HACCEL; cAccelEntries:longint; lpMsg:LPMSG; lpwCmd:PWORD):BOOL;stdcall;external 'ole32.dll' name 'IsAccelerator';
  3108. {$endif wince}
  3109. function OleDraw(pUnknown:IUnknown; dwAspect:DWORD; hdcDraw:HDC;const lprcBounds:TRect):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleDraw';
  3110. function OleRun(pUnknown:IUnknown):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleRun';
  3111. function OleIsRunning(pObject:IOleObject):BOOL;stdcall;external 'ole32.dll' name 'OleIsRunning';
  3112. procedure ReleaseStgMedium(var _para1:STGMEDIUM);stdcall;external 'ole32.dll' name 'ReleaseStgMedium';
  3113. procedure ReleaseStgMedium(_para1:LPSTGMEDIUM);stdcall;external 'ole32.dll' name 'ReleaseStgMedium';
  3114. function CreateOleAdviseHolder(out ppOAHolder:IOleAdviseHolder):WINOLEAPI;stdcall;external 'ole32.dll' name 'CreateOleAdviseHolder';
  3115. { Icon extraction Helper APIs }
  3116. {$ifndef wince}
  3117. function OleGetIconOfFile(lpszPath:LPOLESTR; fUseFileAsLabel:BOOL):HGLOBAL;stdcall;external 'ole32.dll' name 'OleGetIconOfFile';
  3118. function OleGetIconOfClass(const rclsid:TCLSID; lpszLabel:LPOLESTR; fUseTypeAsLabel:BOOL):HGLOBAL;stdcall;external 'ole32.dll' name 'OleGetIconOfClass';
  3119. function OleMetafilePictFromIconAndLabel(hIcon:HICON; lpszLabel:LPOLESTR; lpszSourceFile:LPOLESTR; iIconIndex:UINT):HGLOBAL;stdcall;external 'ole32.dll' name 'OleMetafilePictFromIconAndLabel';
  3120. {$endif wince}
  3121. { Registration Database Helper APIs }
  3122. {$ifndef wince}
  3123. function OleRegGetUserType(const clsid:TCLSID; dwFormOfType:DWORD;out pszUserType:POleStr):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleRegGetUserType';
  3124. function OleRegGetMiscStatus(const clsid:TCLSID; dwAspect:DWORD; pdwStatus:PDWORD):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleRegGetMiscStatus';
  3125. function OleRegEnumFormatEtc(const clsid:TCLSID; dwDirection:DWORD;out ppenum:IEnumFormatEtc):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleRegEnumFormatEtc';
  3126. function OleRegEnumVerbs(const clsid:TCLSID;out ppenum:IEnumOLEVERB):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleRegEnumVerbs';
  3127. {$endif wince}
  3128. {$ifdef _MAC}
  3129. { WlmOLE helper APIs }
  3130. function WlmOleCheckoutMacInterface(pUnk:IUnknown; out ppv):WINOLEAPI;stdcall;external 'ole32.dll' name 'WlmOleCheckoutMacInterface';
  3131. function WlmOleCheckinMacInterface(pUnk:IUnknown):WINOLEAPI;stdcall;external 'ole32.dll' name 'WlmOleCheckinMacInterface';
  3132. function WlmOleWrapMacInterface(pUnk:IUnknown; const riid:TIID; out ppv):WINOLEAPI;stdcall;external 'ole32.dll' name 'WlmOleWrapMacInterface';
  3133. function WlmOleUnwrapMacInterface(pv:LPVOID):WINOLEAPI;stdcall;external 'ole32.dll' name 'WlmOleUnwrapMacInterface';
  3134. function WlmOleCheckoutWinInterface(pUnk:LPVOID; ppv:PIUnknown):WINOLEAPI;stdcall;external 'ole32.dll' name 'WlmOleCheckoutWinInterface';
  3135. function WlmOleCheckinWinInterface(pUnk:LPVOID):WINOLEAPI;stdcall;external 'ole32.dll' name 'WlmOleCheckinWinInterface';
  3136. function WlmOleWrapWinInterface(pUnk:LPVOID; const riid:TIID; ppv:PIUnknown):WINOLEAPI;stdcall;external 'ole32.dll' name 'WlmOleWrapWinInterface';
  3137. function WlmOleUnwrapWinInterface(pv:LPVOID):WINOLEAPI;stdcall;external 'ole32.dll' name 'WlmOleUnwrapWinInterface';
  3138. procedure WlmOleVersion;stdcall;external 'ole32.dll' name 'WlmOleVersion';
  3139. procedure WlmOleSetInPlaceWindow(hwnd:HWND);stdcall;external 'ole32.dll' name 'WlmOleSetInPlaceWindow';
  3140. { typedef HRESULT (STDAPICALLTYPE* OLEWRAPPROC) (TIID riid, LPVOID* ppvWin, LPVOID* ppvMac); }
  3141. function WlmOleRegisterUserWrap(procNew:OLEWRAPPROC; pprocOld:POLEWRAPPROC):WINOLEAPI;stdcall;external 'ole32.dll' name 'WlmOleRegisterUserWrap';
  3142. {$endif}
  3143. { OLE 1.0 conversion APIS }
  3144. {**** OLE 1.0 OLESTREAM declarations ************************************ }
  3145. type
  3146. LPOLESTREAM = ^_OLESTREAM;
  3147. _OLESTREAMVTBL = record
  3148. Get : function (p : POleStr;out o;dw : DWORD) : DWORD;
  3149. Put : function (p : POleStr;const o;dw : DWORD) : DWORD;
  3150. end;
  3151. OLESTREAMVTBL = _OLESTREAMVTBL;
  3152. LPOLESTREAMVTBL = OLESTREAMVTBL;
  3153. _OLESTREAM = record
  3154. lpstbl : LPOLESTREAMVTBL;
  3155. end;
  3156. OLESTREAM = _OLESTREAM;
  3157. (* Const before type ignored *)
  3158. {$ifndef wince}
  3159. function OleConvertOLESTREAMToIStorage(_lpolestream:LPOLESTREAM; pstg:IStorage; ptd:PDVTARGETDEVICE):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleConvertOLESTREAMToIStorage';
  3160. function OleConvertIStorageToOLESTREAM(pstg:IStorage; lpolestream:LPOLESTREAM):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleConvertIStorageToOLESTREAM';
  3161. {$endif wince}
  3162. { Storage Utility APIs }
  3163. function GetHGlobalFromILockBytes(plkbyt:ILockBytes;out phglobal:HGLOBAL):WINOLEAPI;stdcall;external 'ole32.dll' name 'GetHGlobalFromILockBytes';
  3164. function CreateStreamOnHGlobal(hGlobal:HGLOBAL; fDeleteOnRelease:BOOL;out stm:IStream):WINOLEAPI;stdcall;external 'ole32.dll' name 'CreateStreamOnHGlobal';
  3165. {$ifndef wince}
  3166. function CreateILockBytesOnHGlobal(hGlobal:HGLOBAL; fDeleteOnRelease:BOOL;out pplkbyt:ILockBytes):WINOLEAPI;stdcall;external 'ole32.dll' name 'CreateILockBytesOnHGlobal';
  3167. function GetHGlobalFromStream(pstm:IStream;out phglobal:HGLOBAL):WINOLEAPI;stdcall;external 'ole32.dll' name 'GetHGlobalFromStream';
  3168. {$endif wince}
  3169. { ConvertTo APIS }
  3170. {$ifndef wince}
  3171. function OleDoAutoConvert(pStg:IStorage; pClsidNew:LPCLSID):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleDoAutoConvert';
  3172. function OleGetAutoConvert(const clsidOld:TCLSID; pClsidNew:LPCLSID):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleGetAutoConvert';
  3173. function OleSetAutoConvert(const clsidOld:TCLSID; clsidNew:TCLSID):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleSetAutoConvert';
  3174. function GetConvertStg(pStg:IStorage):WINOLEAPI;stdcall;external 'ole32.dll' name 'GetConvertStg';
  3175. function SetConvertStg(pStg:IStorage; fConvert:BOOL):WINOLEAPI;stdcall;external 'ole32.dll' name 'SetConvertStg';
  3176. { Presentation data to OLESTREAM }
  3177. { format }
  3178. { width }
  3179. { height }
  3180. { size bytes }
  3181. { bits }
  3182. function OleConvertIStorageToOLESTREAMEx(pstg:IStorage; cfFormat:CLIPFORMAT; lWidth:LONG; lHeight:LONG; dwSize:DWORD;
  3183. pmedium:LPSTGMEDIUM; polestm:LPOLESTREAM):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleConvertIStorageToOLESTREAMEx';
  3184. { Presentation data from OLESTREAM }
  3185. { format }
  3186. { width }
  3187. { height }
  3188. { size bytes }
  3189. function OleConvertOLESTREAMToIStorageEx(polestm:LPOLESTREAM; pstg:IStorage; pcfFormat:PCLIPFORMAT; plwWidth:PLONG; plHeight:PLONG;
  3190. pdwSize:PDWORD; pmedium:LPSTGMEDIUM):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleConvertOLESTREAMToIStorageEx';
  3191. {$endif wince}
  3192. const
  3193. DROPEFFECT_NONE = 0;
  3194. DROPEFFECT_COPY = 1;
  3195. DROPEFFECT_MOVE = 2;
  3196. DROPEFFECT_LINK = 4;
  3197. DROPEFFECT_SCROLL = dword($80000000);
  3198. type
  3199. BORDERWIDTHS = TRect;
  3200. LPBORDERWIDTHS = PRect;
  3201. LPCBORDERWIDTHS = PRect;
  3202. TBorderWidths = TRect;
  3203. PBorderWidths = PRect;
  3204. function CoInitializeEx(_para1:LPVOID; _para2:DWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoInitializeEx';
  3205. procedure CoUninitialize;stdcall; external 'ole32.dll' name 'CoUninitialize';
  3206. function CoGetClassObject(const _para1:TCLSID; _para2:DWORD; _para3:PVOID; const _para4:TIID; out _para5):HRESULT;stdcall; external 'ole32.dll' name 'CoGetClassObject';
  3207. function CoLoadLibrary(_para1:LPOLESTR; _para2:BOOL):THandle;stdcall; external 'ole32.dll' name 'CoLoadLibrary';
  3208. procedure CoFreeLibrary(_para1:THandle);stdcall; external 'ole32.dll' name 'CoFreeLibrary';
  3209. procedure CoFreeUnusedLibraries;stdcall; external 'ole32.dll' name 'CoFreeUnusedLibraries';
  3210. function CoCreateInstance(const _para1:TCLSID; _para2:IUnknown; _para3:DWORD;const _para4:TIID;out _para5):HRESULT;stdcall; external 'ole32.dll' name 'CoCreateInstance';
  3211. function StringFromCLSID(const _para1:TCLSID; out _para2:POLESTR):HRESULT;stdcall; external 'ole32.dll' name 'StringFromCLSID';
  3212. function CLSIDFromString(_para1:LPOLESTR; _para2:LPCLSID):HRESULT;stdcall; external 'ole32.dll' name 'CLSIDFromString';
  3213. function StringFromIID(const _para1:TIID; out _para2:POLESTR):HRESULT;stdcall; external 'ole32.dll' name 'StringFromIID';
  3214. function ProgIDFromCLSID(para:PCLSID; out _para2:POLESTR):HRESULT;stdcall; external 'ole32.dll' name 'ProgIDFromCLSID';
  3215. function ProgIDFromCLSID(const _para1:TCLSID; out _para2:POLESTR):HRESULT;stdcall; external 'ole32.dll' name 'ProgIDFromCLSID';
  3216. function CLSIDFromProgID(_para1:POLESTR; _para2:LPCLSID):HRESULT;stdcall; external 'ole32.dll' name 'CLSIDFromProgID';
  3217. function CLSIDFromProgID(_para1:POLESTR; out _para2:TCLSID):HRESULT;stdcall; external 'ole32.dll' name 'CLSIDFromProgID';
  3218. function StringFromGUID2(const _para1:TGUID; _para2:LPOLESTR; _para3:longint):longint;stdcall; external 'ole32.dll' name 'StringFromGUID2';
  3219. function CoCreateGuid(_para1:PGUID):HRESULT;stdcall; external 'ole32.dll' name 'CoCreateGuid';
  3220. {$ifndef wince}
  3221. function CoBuildVersion:DWORD;stdcall; external 'ole32.dll' name 'CoBuildVersion';
  3222. function CoInitialize(_para1:PVOID):HRESULT;stdcall; external 'ole32.dll' name 'CoInitialize';
  3223. function CoGetMalloc(_para1:DWORD; out _para2:IMalloc):HRESULT;stdcall; external 'ole32.dll' name 'CoGetMalloc';
  3224. function CoGetCurrentProcess:DWORD;stdcall; external 'ole32.dll' name 'CoGetCurrentProcess';
  3225. function CoRegisterMallocSpy(_para1:IMallocSpy):HRESULT;stdcall; external 'ole32.dll' name 'CoRegisterMallocSpy';
  3226. function CoRevokeMallocSpy:HRESULT;stdcall; external 'ole32.dll' name 'CoRevokeMallocSpy';
  3227. function CoCreateStandardMalloc(_para1:DWORD; out _para2:IMalloc):HRESULT;stdcall; external 'ole32.dll' name 'CoGetMalloc';
  3228. function CoRegisterClassObject(const _para1:TCLSID; _para2:IUnknown; _para3:DWORD; _para4:DWORD; _para5:PDWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoRegisterClassObject';
  3229. function CoRevokeClassObject(_para1:DWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoRevokeClassObject';
  3230. function CoGetMarshalSizeMax(_para1:PULONG;const _para2:TIID; _para3:IUnknown; _para4:DWORD; _para5:PVOID;
  3231. _para6:DWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoGetMarshalSizeMax';
  3232. function CoMarshalInterface(_para1:IStream;const _para2:TIID; _para3:IUnknown; _para4:DWORD; _para5:PVOID;
  3233. _para6:DWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoMarshalInterface';
  3234. function CoUnmarshalInterface(_para1:IStream;const _para2:TIID; out _para3):HRESULT;stdcall; external 'ole32.dll' name 'CoUnmarshalInterface';
  3235. function CoMarshalHresult(_para1:IStream; _para2:HRESULT):HRESULT;stdcall; external 'ole32.dll' name 'CoMarshalHresult';
  3236. function CoUnmarshalHresult(_para1:IStream; _para2:HRESULT):HRESULT;stdcall; external 'ole32.dll' name 'CoUnmarshalHresult';
  3237. function CoReleaseMarshalData(_para1:IStream):HRESULT;stdcall; external 'ole32.dll' name 'CoReleaseMarshalData';
  3238. function CoDisconnectObject(_para1:IUnknown; _para2:DWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoDisconnectObject';
  3239. function CoLockObjectExternal(_para1:IUnknown; _para2:BOOL; _para3:BOOL):HRESULT;stdcall; external 'ole32.dll' name 'CoLockObjectExternal';
  3240. function CoGetStandardMarshal(const _para1:TIID; _para2:IUnknown; _para3:DWORD; _para4:PVOID; _para5:DWORD;
  3241. out _para6:IMarshal):HRESULT;stdcall; external 'ole32.dll' name 'CoGetStandardMarshal';
  3242. function CoGetStdMarshalEx(_para1:IUnknown; _para2:DWORD; out _para3:IUnknown):HRESULT;stdcall; external 'ole32.dll' name 'CoGetStdMarshalEx';
  3243. function CoIsHandlerConnected(_para1:IUnknown):BOOL;stdcall; external 'ole32.dll' name 'CoIsHandlerConnected';
  3244. function CoHasStrongExternalConnections(_para1:IUnknown):BOOL;stdcall; external 'ole32.dll' name 'CoHasStrongExternalConnections';
  3245. function CoMarshalInterThreadInterfaceInStream(const _para1:TIID; _para2:IUnknown; out _para3:IStream):HRESULT;stdcall; external 'ole32.dll' name 'CoMarshalInterThreadInterfaceInStream';
  3246. function CoGetInterfaceAndReleaseStream(_para1:IStream;const _para2:TIID; out _para3):HRESULT;stdcall; external 'ole32.dll' name 'CoGetInterfaceAndReleaseStream';
  3247. function CoCreateFreeThreadedMarshaler(_para1:IUnknown; out _para2:IUnknown):HRESULT;stdcall; external 'ole32.dll' name 'CoCreateFreeThreadedMarshaler';
  3248. procedure CoFreeAllLibraries;stdcall; external 'ole32.dll' name 'CoFreeAllLibraries';
  3249. function CoCreateInstanceEx(const _para1:TCLSID; _para2:IUnknown; _para3:DWORD; _para4:PCOSERVERINFO; _para5:DWORD;
  3250. _para6:PMULTI_QI):HRESULT;stdcall; external 'ole32.dll' name 'CoCreateInstanceEx';
  3251. function IIDFromString(_para1:LPOLESTR; out _para2:TIID):HRESULT;stdcall; external 'ole32.dll' name 'IIDFromString';
  3252. function CoIsOle1Class(const _para1:TCLSID):BOOL;stdcall; external 'ole32.dll' name 'CoIsOle1Class';
  3253. function CoFileTimeToDosDateTime(_para1:PFILETIME; _para2:LPWORD; _para3:LPWORD):BOOL;stdcall; external 'ole32.dll' name 'CoFileTimeToDosDateTime';
  3254. function CoDosDateTimeToFileTime(_para1:WORD; _para2:WORD; _para3:PFILETIME):BOOL;stdcall; external 'ole32.dll' name 'CoDosDateTimeToFileTime';
  3255. function CoFileTimeNow(_para1:PFILETIME):HRESULT;stdcall; external 'ole32.dll' name 'CoFileTimeNow';
  3256. function CoRegisterMessageFilter(_para1:IMessageFilter;out _para2:IMessageFilter):HRESULT;stdcall; external 'ole32.dll' name 'CoRegisterMessageFilter';
  3257. function CoGetTreatAsClass(const _para1:TCLSID; _para2:LPCLSID):HRESULT;stdcall; external 'ole32.dll' name 'CoGetTreatAsClass';
  3258. function CoTreatAsClass(const _para1:TCLSID; const _para2:TCLSID):HRESULT;stdcall; external 'ole32.dll' name 'CoTreatAsClass';
  3259. {$endif wince}
  3260. type
  3261. LPFNGETCLASSOBJECT = function (const _para1:TCLSID; const _para2:TIID;out _para3):HRESULT;stdcall;
  3262. LPFNCANUNLOADNOW = function:HRESULT;stdcall;
  3263. {$ifndef wince}
  3264. function DllGetClassObject(const _para1:TCLSID; const _para2:TIID; out _para3):HRESULT;stdcall; external 'ole32.dll' name 'DllGetClassObject';
  3265. function DllCanUnloadNow:HRESULT;stdcall; external 'ole32.dll' name 'DllCanUnloadNow';
  3266. {$endif wince}
  3267. function CoTaskMemAlloc(_para1:ULONG):PVOID;stdcall; external 'ole32.dll' name 'CoTaskMemAlloc';
  3268. function CoTaskMemRealloc(_para1:PVOID; _para2:ULONG):PVOID;stdcall; external 'ole32.dll' name 'CoTaskMemRealloc';
  3269. procedure CoTaskMemFree(_para1:PVOID);stdcall; external 'ole32.dll' name 'CoTaskMemFree';
  3270. {$ifndef wince}
  3271. function CreateDataAdviseHolder(_para1:IDataAdviseHolder):HRESULT;stdcall; external 'ole32.dll' name 'CreateDataAdviseHolder';
  3272. function CreateDataCache(_para1:IUnknown; const _para2:TCLSID; const _para3:TIID; out _para4):HRESULT;stdcall; external 'ole32.dll' name 'CreateDataCache';
  3273. {$endif wince}
  3274. (* Const before type ignored *)
  3275. function StgCreateDocfile(_para1:POLESTR; _para2:DWORD; _para3:DWORD; out _para4:IStorage):HRESULT;stdcall; external 'ole32.dll' name 'StgCreateDocfile';
  3276. function StgCreateDocfileOnILockBytes(_para1:ILockBytes; _para2:DWORD; _para3:DWORD; out _para4:IStorage):HRESULT;stdcall; external 'ole32.dll' name 'StgCreateDocfileOnILockBytes';
  3277. (* Const before type ignored *)
  3278. function StgOpenStorage(_para1:POLESTR; _para2:IStorage; _para3:DWORD; _para4:SNB; _para5:DWORD;
  3279. out _para6:IStorage):HRESULT;stdcall; external 'ole32.dll' name 'StgOpenStorage';
  3280. function StgOpenStorageOnILockBytes(_para1:ILockBytes; _para2:IStorage; _para3:DWORD; _para4:SNB; _para5:DWORD;
  3281. out _para6:IStorage):HRESULT;stdcall; external 'ole32.dll' name 'StgOpenStorageOnILockBytes';
  3282. {$ifndef wince}
  3283. function StgIsStorageFile(_para1:POLESTR):HRESULT;stdcall; external 'ole32.dll' name 'StgIsStorageFile';
  3284. function StgIsStorageILockBytes(_para1:ILockBytes):HRESULT;stdcall; external 'ole32.dll' name 'StgIsStorageILockBytes';
  3285. function StgSetTimes(_para1:POLESTR; _para2:PFILETIME; _para3:PFILETIME; _para4:PFILETIME):HRESULT;stdcall; external 'ole32.dll' name 'StgSetTimes';
  3286. function CoGetObject(pszname:lpwstr; bndop:PBind_Opts; const riid:TIID; out ppv):HRESULT; stdcall; external 'ole32.dll' name 'CoGetObject';
  3287. function BindMoniker(_para1:IMoniker; _para2:DWORD; const _para3:TIID; out _para4):HRESULT;stdcall; external 'ole32.dll' name 'BindMoniker';
  3288. function MkParseDisplayName(_para1:IBindCtx; _para2:POLESTR; out _para3:PULONG; out _para4:IMoniker):HRESULT;stdcall; external 'ole32.dll' name 'MkParseDisplayName';
  3289. function MonikerRelativePathTo(_para1:IMoniker; _para2:IMoniker; out _para3:IMoniker; _para4:BOOL):HRESULT;stdcall; external 'ole32.dll' name 'MonikerRelativePathTo';
  3290. function MonikerCommonPrefixWith(_para1:IMoniker; _para2:IMoniker; _para3:PIMoniker):HRESULT;stdcall; external 'ole32.dll' name 'MonikerCommonPrefixWith';
  3291. {$endif wince}
  3292. function CreateBindCtx(_para1:DWORD;out _para2:IBindCtx):HRESULT;stdcall; external 'ole32.dll' name 'CreateBindCtx';
  3293. function GetClassFile(_para1:POLESTR; out _para2:TCLSID):HRESULT;stdcall; external 'ole32.dll' name 'GetClassFile';
  3294. {$ifndef wince}
  3295. function CreateGenericComposite(_para1:IMoniker; _para2:IMoniker; out _para3:IMoniker):HRESULT;stdcall; external 'ole32.dll' name 'CreateGenericComposite';
  3296. function CreateFileMoniker(_para1:POLESTR; out _para2:IMoniker):HRESULT;stdcall; external 'ole32.dll' name 'CreateFileMoniker';
  3297. function CreateItemMoniker(_para1:POLESTR; _para2:POLESTR;out _para3:IMoniker):HRESULT;stdcall; external 'ole32.dll' name 'CreateItemMoniker';
  3298. function CreateAntiMoniker(_para1:PIMoniker):HRESULT;stdcall; external 'ole32.dll' name 'CreateAntiMoniker';
  3299. function CreatePointerMoniker(_para1:IUnknown; out _para2:IMoniker):HRESULT;stdcall; external 'ole32.dll' name 'CreatePointerMoniker';
  3300. function GetRunningObjectTable(_para1:DWORD; _para2:IRunningObjectTable):HRESULT;stdcall; external 'ole32.dll' name 'GetRunningObjectTable';
  3301. function CoInitializeSecurity(_para1:PSECURITY_DESCRIPTOR; _para2:LONG; _para3:PSOLE_AUTHENTICATION_SERVICE; _para4:pointer; _para5:DWORD;
  3302. _para6:DWORD; _para7:pointer; _para8:DWORD; _para9:pointer):HRESULT;stdcall; external 'ole32.dll' name 'CoInitializeSecurity';
  3303. function CoGetCallContext(const _para1:TIID; _para2:Ppointer):HRESULT;stdcall; external 'ole32.dll' name 'CoGetCallContext';
  3304. function CoQueryProxyBlanket(_para1:IUnknown; _para2:PDWORD; _para3:PDWORD; _para4:POLESTR; _para5:PDWORD;
  3305. _para6:PDWORD; _para7:Pointer; _para8:PDWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoQueryProxyBlanket';
  3306. function CoSetProxyBlanket(_para1:IUnknown; _para2:DWORD; _para3:DWORD; _para4:POLESTR; _para5:DWORD;
  3307. _para6:DWORD; _para7:pointer; _para8:DWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoSetProxyBlanket';
  3308. function CoCopyProxy(_para1:IUnknown; var _para2:IUnknown):HRESULT;stdcall; external 'ole32.dll' name 'CoCopyProxy';
  3309. function CoQueryClientBlanket(_para1:PDWORD; _para2:PDWORD; _para3:POLESTR; _para4:PDWORD; _para5:PDWORD;
  3310. _para6:pointer; _para7:PDWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoQueryClientBlanket';
  3311. function CoImpersonateClient:HRESULT;stdcall; external 'ole32.dll' name 'CoImpersonateClient';
  3312. function CoRevertToSelf:HRESULT;stdcall; external 'ole32.dll' name 'CoRevertToSelf';
  3313. function CoQueryAuthenticationServices(_para1:PDWORD; _para2:PSOLE_AUTHENTICATION_SERVICE):HRESULT;stdcall; external 'ole32.dll' name 'CoQueryAuthenticationServices';
  3314. function CoSwitchCallContext(_para1:IUnknown; var _para2:IUnknown):HRESULT;stdcall; external 'ole32.dll' name 'CoSwitchCallContext';
  3315. function CoGetInstanceFromFile(_para1:PCOSERVERINFO; _para2:PCLSID; _para3:IUnknown; _para4:DWORD; _para5:DWORD;
  3316. _para6:POLESTR; _para7:DWORD; _para8:PMULTI_QI):HRESULT;stdcall; external 'ole32.dll' name 'CoGetInstanceFromFile';
  3317. function CoGetInstanceFromIStorage(_para1:PCOSERVERINFO; _para2:PCLSID; _para3:IUnknown; _para4:DWORD; _para5:IStorage;
  3318. _para6:DWORD; _para7:PMULTI_QI):HRESULT;stdcall; external 'ole32.dll' name 'CoGetInstanceFromIStorage';
  3319. {$endif wince}
  3320. type
  3321. REFIID = TIID;
  3322. TREFIID = TIID;
  3323. {$ifndef wince}
  3324. function SetErrorInfo(dwReserved:ULONG;errinfo:IErrorInfo):HResult;stdcall; external 'ole32.dll' name 'SetErrorInfo';
  3325. function GetErrorInfo(dwReserved:ULONG;out errinfo:IErrorInfo):HResult;stdcall; external 'ole32.dll' name 'GetErrorInfo';
  3326. function CreateErrorInfo(out errinfo:ICreateErrorInfo):HResult;stdcall; external 'ole32.dll' name 'CreateErrorInfo';
  3327. {$endif wince}
  3328. const
  3329. oleaut32dll = 'oleaut32.dll';
  3330. function SysAllocString(psz: pointer): TBStr; stdcall; external oleaut32dll name 'SysAllocString';
  3331. function SysAllocStringLen(psz: pointer; len:dword): Integer; stdcall; external oleaut32dll name 'SysAllocStringLen';
  3332. procedure SysFreeString(bstr:pointer); stdcall; external oleaut32dll name 'SysFreeString';
  3333. function SysStringLen(bstr:pointer):UINT; stdcall; external oleaut32dll name 'SysStringLen';
  3334. function SysStringByteLen(bstr:pointer):UINT; stdcall; external oleaut32dll name 'SysStringByteLen';
  3335. function SysReAllocString(var bstr:pointer;psz: pointer): Integer; stdcall; external oleaut32dll name 'SysReAllocString';
  3336. function SysReAllocStringLen(var bstr:pointer;psz: pointer; len:dword): Integer; stdcall; external oleaut32dll name 'SysReAllocStringLen';
  3337. { Active object registration API }
  3338. {$ifndef wince}
  3339. const
  3340. ACTIVEOBJECT_STRONG = 0;
  3341. ACTIVEOBJECT_WEAK = 1;
  3342. function RegisterActiveObject(unk: IUnknown; const clsid: TCLSID; dwFlags: DWORD; out dwRegister: culong): HResult; stdcall; external oleaut32dll name 'RegisterActiveObject';
  3343. function RevokeActiveObject(dwRegister: culong; pvReserved: Pointer) : HResult; stdcall; external oleaut32dll name 'RevokeActiveObject';
  3344. function GetActiveObject(const clsid: TCLSID; pvReserved: Pointer; out unk: IUnknown) : HResult; stdcall; external oleaut32dll name 'GetActiveObject';
  3345. {$endif wince}
  3346. function Succeeded(Res: HResult) : Boolean;inline;
  3347. function Failed(Res: HResult) : Boolean;inline;
  3348. function ResultCode(Res: HResult) : Longint;inline;
  3349. function ResultFacility(Res: HResult): Longint;inline;
  3350. function ResultSeverity(Res: HResult): Longint;inline;
  3351. function MakeResult(Severity, Facility, Code: Longint): HResult;inline;
  3352. function LoadTypeLib(szfile : lpolestr; var pptlib: ITypelib):HResult; stdcall; external oleaut32dll name 'LoadTypeLib';
  3353. function LoadRegTypeLib(const rguid:TGUID;wVerMajor:ushort;wVerMinor:ushort;_lcid:lcid;out pptlib:ITypeLib):HResult; stdcall; external oleaut32dll name 'LoadRegTypeLib';
  3354. function RegisterTypeLib(const ptrlib :ITypeLib;szfullpath:lpolestr;szhelpdir:lpolestr):HResult; stdcall; external oleaut32dll name 'RegisterTypeLib';
  3355. function CreateTypeLib2(sysk:TSysKind;szfile:lpolestr;out ppctlib:ICreateTypeLib2):HResult; stdcall; external oleaut32dll name 'CreateTypeLib2';
  3356. function DispInvoke(this:pointer;const ptinfo: ITypeInfo;dispidMember:TDISPID;wflags:ushort;pparams:pDISPParams;
  3357. var pvarresult:OLEVARIANT;pexcepinfo:EXCEPINFO;puArgErr:puint):HRESULT; stdcall; external oleaut32dll name 'DispInvoke';
  3358. {$ifndef wince}
  3359. function LoadTypeLibEx(szfile : lpolestr; regk:tregkind; var pptlib: ITypelib):HResult; stdcall; external oleaut32dll name 'LoadTypeLibEx';
  3360. function QueryPathOfRegTypeLib(const guid:TGUID;wVerMajor:ushort;wVerMinor:ushort;_lcid:lcid;lpbstr:LPolestr):HResult; stdcall; external oleaut32dll name 'QueryPathOfRegTypeLib';
  3361. function UnRegisterTypeLib(const libid:TGUID; wVerMajor:ushort;wVerMinor:ushort;_lcid:lcid;sysk:TSysKind):HResult; stdcall; external oleaut32dll name 'UnRegisterTypeLib';
  3362. function CreateTypeLib(sysk:TSysKind;szfile:lpolestr;out ppctlib:ICreateTypeLib):HResult; stdcall; external oleaut32dll name 'CreateTypeLib';
  3363. function DosDateTimeToVariantTime( wDosDate: ushort; wDosTime:ushort;pvtime:pdouble):longint; stdcall; external oleaut32dll name 'DosDateTimeToVariantTime';
  3364. function VariantTimeToDosDateTime( vtime:DOUBLE;pwdosdate:PUSHORT;pwDosTime:PUSHORT):longint; stdcall; external oleaut32dll name 'VariantTimeToDosDateTime';
  3365. {$endif wince}
  3366. function SystemTimeToVariantTime(var lpsystemtime:TSystemTime;out pvtime: TOleDate):LONGINT; stdcall; external oleaut32dll name 'SystemTimeToVariantTime';
  3367. function VariantTimeToSystemTime(vtime:TOleDate; out lpsystemtime: TSystemTime):LONGINT; stdcall; external oleaut32dll name 'VariantTimeToSystemTime';
  3368. {--------------------------------------------------------------------- }
  3369. { VARTYPE Coercion API }
  3370. {--------------------------------------------------------------------- }
  3371. { Note: The routines that convert *from* a string are defined
  3372. * to take a OLECHAR* rather than a BSTR because no allocation is
  3373. * required, and this makes the routines a bit more generic.
  3374. * They may of course still be passed a BSTR as the strIn param.
  3375. }
  3376. function VarUI1FromI2(sIn:SHORT; var pbOut:BYTE):HResult;stdcall;external oleaut32dll name 'VarUI1FromI2';
  3377. function VarUI1FromI4(lIn:LONG; var pbOut:BYTE):HResult;stdcall;external oleaut32dll name 'VarUI1FromI4';
  3378. function VarUI1FromI8(i64In:LONG64; pbOut:PBYTE):HResult;stdcall;external oleaut32dll name 'VarUI1FromI8';
  3379. function VarUI1FromR4(fltIn:Single; var pbOut:BYTE):HResult;stdcall;external oleaut32dll name 'VarUI1FromR4';
  3380. function VarUI1FromR8(dblIn:DOUBLE; var pbOut:BYTE):HResult;stdcall;external oleaut32dll name 'VarUI1FromR8';
  3381. function VarUI1FromCy(cyIn:CY; var pbOut:BYTE):HResult;stdcall;external oleaut32dll name 'VarUI1FromCy';
  3382. function VarUI1FromDate(dateIn:DATE; var pbOut:BYTE):HResult;stdcall;external oleaut32dll name 'VarUI1FromDate';
  3383. function VarUI1FromStr(strIn:pOLECHAR; lcid:LCID; dwFlags:ULONG; var pbOut:BYTE):HResult;stdcall;external oleaut32dll name 'VarUI1FromStr';
  3384. function VarUI1FromDisp(pdispIn:IDispatch; lcid:LCID; var pbOut:BYTE):HResult;stdcall;external oleaut32dll name 'VarUI1FromDisp';
  3385. function VarUI1FromBool(boolIn:VARIANT_BOOL; var pbOut:BYTE):HResult;stdcall;external oleaut32dll name 'VarUI1FromBool';
  3386. function VarUI1FromI1(cIn:CHAR; var pbOut:BYTE):HResult;stdcall;external oleaut32dll name 'VarUI1FromI1';
  3387. function VarUI1FromUI2(uiIn:USHORT; var pbOut:BYTE):HResult;stdcall;external oleaut32dll name 'VarUI1FromUI2';
  3388. function VarUI1FromUI4(ulIn:ULONG; var pbOut:BYTE):HResult;stdcall;external oleaut32dll name 'VarUI1FromUI4';
  3389. function VarUI1FromUI8(ui64In:ULONG64; pbOut:PBYTE):HResult;stdcall;external oleaut32dll name 'VarUI1FromUI8';
  3390. function VarUI1FromDec(var pdecIn:TDecimal; var pbOut:BYTE):HResult;stdcall;external oleaut32dll name 'VarUI1FromDec';
  3391. function VarI2FromUI1(bIn:BYTE; var psOut:SHORT):HResult;stdcall;external oleaut32dll name 'VarI2FromUI1';
  3392. function VarI2FromI4(lIn:LONG; var psOut:SHORT):HResult;stdcall;external oleaut32dll name 'VarI2FromI4';
  3393. function VarI2FromI8(i64In:LONG64; psOut:PSHORT):HResult;stdcall;external oleaut32dll name 'VarI2FromI8';
  3394. function VarI2FromR4(fltIn:Single; var psOut:SHORT):HResult;stdcall;external oleaut32dll name 'VarI2FromR4';
  3395. function VarI2FromR8(dblIn:DOUBLE; var psOut:SHORT):HResult;stdcall;external oleaut32dll name 'VarI2FromR8';
  3396. function VarI2FromCy(cyIn:CY; var psOut:SHORT):HResult;stdcall;external oleaut32dll name 'VarI2FromCy';
  3397. function VarI2FromDate(dateIn:DATE; var psOut:SHORT):HResult;stdcall;external oleaut32dll name 'VarI2FromDate';
  3398. function VarI2FromStr(strIn:pOLECHAR; lcid:LCID; dwFlags:ULONG; var psOut:SHORT):HResult;stdcall;external oleaut32dll name 'VarI2FromStr';
  3399. function VarI2FromDisp(pdispIn:IDispatch; lcid:LCID; var psOut:SHORT):HResult;stdcall;external oleaut32dll name 'VarI2FromDisp';
  3400. function VarI2FromBool(boolIn:VARIANT_BOOL; var psOut:SHORT):HResult;stdcall;external oleaut32dll name 'VarI2FromBool';
  3401. function VarI2FromI1(cIn:CHAR; var psOut:SHORT):HResult;stdcall;external oleaut32dll name 'VarI2FromI1';
  3402. function VarI2FromUI2(uiIn:USHORT; var psOut:SHORT):HResult;stdcall;external oleaut32dll name 'VarI2FromUI2';
  3403. function VarI2FromUI4(ulIn:ULONG; var psOut:SHORT):HResult;stdcall;external oleaut32dll name 'VarI2FromUI4';
  3404. function VarI2FromUI8(ui64In:ULONG64; psOut:PSHORT):HResult;stdcall;external oleaut32dll name 'VarI2FromUI8';
  3405. function VarI2FromDec(var pdecIn:TDecimal; var psOut:SHORT):HResult;stdcall;external oleaut32dll name 'VarI2FromDec';
  3406. function VarI4FromUI1(bIn:BYTE; var plOut:LONG):HResult;stdcall;external oleaut32dll name 'VarI4FromUI1';
  3407. function VarI4FromI2(sIn:SHORT; var plOut:LONG):HResult;stdcall;external oleaut32dll name 'VarI4FromI2';
  3408. function VarI4FromI8(i64In:LONG64; plOut:PLONG):HResult;stdcall;external oleaut32dll name 'VarI4FromI8';
  3409. function VarI4FromR4(fltIn:Single; var plOut:LONG):HResult;stdcall;external oleaut32dll name 'VarI4FromR4';
  3410. function VarI4FromR8(dblIn:DOUBLE; var plOut:LONG):HResult;stdcall;external oleaut32dll name 'VarI4FromR8';
  3411. function VarI4FromCy(cyIn:CY; var plOut:LONG):HResult;stdcall;external oleaut32dll name 'VarI4FromCy';
  3412. function VarI4FromDate(dateIn:DATE; var plOut:LONG):HResult;stdcall;external oleaut32dll name 'VarI4FromDate';
  3413. function VarI4FromStr(strIn:pOLECHAR; lcid:LCID; dwFlags:ULONG; var plOut:LONG):HResult;stdcall;external oleaut32dll name 'VarI4FromStr';
  3414. function VarI4FromDisp(dispIn:IDispatch; lcid:LCID; var plOut:LONG):HResult;stdcall;external oleaut32dll name 'VarI4FromDisp';
  3415. function VarI4FromBool(boolIn:VARIANT_BOOL; var plOut:LONG):HResult;stdcall;external oleaut32dll name 'VarI4FromBool';
  3416. function VarI4FromI1(cIn:CHAR; var plOut:LONG):HResult;stdcall;external oleaut32dll name 'VarI4FromI1';
  3417. function VarI4FromUI2(uiIn:USHORT; var plOut:LONG):HResult;stdcall;external oleaut32dll name 'VarI4FromUI2';
  3418. function VarI4FromUI4(ulIn:ULONG; var plOut:LONG):HResult;stdcall;external oleaut32dll name 'VarI4FromUI4';
  3419. function VarI4FromUI8(ui64In:ULONG64; plOut:PLONG):HResult;stdcall;external oleaut32dll name 'VarI4FromUI8';
  3420. function VarI4FromDec(var pdecIn:TDecimal; var plOut:LONG):HResult;stdcall;external oleaut32dll name 'VarI4FromDec';
  3421. function VarI4FromInt(intIn:cint; var plOut:LONG):HResult;stdcall;external oleaut32dll name 'VarI4FromInt';
  3422. function VarI8FromUI1(bIn:BYTE; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromUI1';
  3423. function VarI8FromI2(sIn:SHORT; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromI2';
  3424. function VarI8FromI4(lIn:LONG; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromI4';
  3425. function VarI8FromR4(fltIn:Single; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromR4';
  3426. function VarI8FromR8(dblIn:DOUBLE; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromR8';
  3427. function VarI8FromCy(cyIn:CY; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromCy';
  3428. function VarI8FromDate(dateIn:DATE; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromDate';
  3429. function VarI8FromStr(strIn:POLECHAR; lcid:LCID; dwFlags:dword; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromStr';
  3430. function VarI8FromDisp(pdispIn:IDispatch; lcid:LCID; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromDisp';
  3431. function VarI8FromBool(boolIn:VARIANT_BOOL; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromBool';
  3432. function VarI8FromI1(cIn:CHAR; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromI1';
  3433. function VarI8FromUI2(uiIn:USHORT; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromUI2';
  3434. function VarI8FromUI4(ulIn:ULONG; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromUI4';
  3435. function VarI8FromUI8(ui64In:ULONG64; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromUI8';
  3436. function VarI8FromDec(var pdecIn:TDecimal; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromDec';
  3437. function VarI8FromInt(intIn:cint; pi64Out:PLONG64):HResult;stdcall;external oleaut32dll name 'VarI8FromInt';
  3438. {******************* }
  3439. function VarR4FromUI1(bIn:BYTE; var pfltOut:Single):HResult;stdcall;external oleaut32dll name 'VarR4FromUI1';
  3440. function VarR4FromI2(sIn:SHORT; var pfltOut:Single):HResult;stdcall;external oleaut32dll name 'VarR4FromI2';
  3441. function VarR4FromI4(lIn:LONG; var pfltOut:Single):HResult;stdcall;external oleaut32dll name 'VarR4FromI4';
  3442. function VarR4FromI8(i64In:LONG64; pfltOut:PSingle):HResult;stdcall;external oleaut32dll name 'VarR4FromI8';
  3443. function VarR4FromR8(dblIn:DOUBLE; var pfltOut:Single):HResult;stdcall;external oleaut32dll name 'VarR4FromR8';
  3444. function VarR4FromCy(cyIn:CY; var pfltOut:Single):HResult;stdcall;external oleaut32dll name 'VarR4FromCy';
  3445. function VarR4FromDate(dateIn:DATE; var pfltOut:Single):HResult;stdcall;external oleaut32dll name 'VarR4FromDate';
  3446. function VarR4FromStr(strIn:pOLECHAR; lcid:LCID; dwFlags:ULONG; var pfltOut:Single):HResult;stdcall;external oleaut32dll name 'VarR4FromStr';
  3447. function VarR4FromDisp(pdispIn:IDispatch; lcid:LCID; var pfltOut:Single):HResult;stdcall;external oleaut32dll name 'VarR4FromDisp';
  3448. function VarR4FromBool(boolIn:VARIANT_BOOL; var pfltOut:Single):HResult;stdcall;external oleaut32dll name 'VarR4FromBool';
  3449. function VarR4FromI1(cIn:CHAR; var pfltOut:Single):HResult;stdcall;external oleaut32dll name 'VarR4FromI1';
  3450. function VarR4FromUI2(uiIn:USHORT; var pfltOut:Single):HResult;stdcall;external oleaut32dll name 'VarR4FromUI2';
  3451. function VarR4FromUI4(ulIn:ULONG; var pfltOut:Single):HResult;stdcall;external oleaut32dll name 'VarR4FromUI4';
  3452. function VarR4FromUI8(ui64In:ULONG64; pfltOut:PSingle):HResult;stdcall;external oleaut32dll name 'VarR4FromUI8';
  3453. function VarR4FromDec(var pdecIn:TDecimal; var pfltOut:Single):HResult;stdcall;external oleaut32dll name 'VarR4FromDec';
  3454. function VarR8FromUI1(bIn:BYTE; var pdblOut:DOUBLE):HResult;stdcall;external oleaut32dll name 'VarR8FromUI1';
  3455. function VarR8FromI2(sIn:SHORT; var pdblOut:DOUBLE):HResult;stdcall;external oleaut32dll name 'VarR8FromI2';
  3456. function VarR8FromI4(lIn:LONG; var pdblOut:DOUBLE):HResult;stdcall;external oleaut32dll name 'VarR8FromI4';
  3457. function VarR8FromI8(i64In:LONG64; pdblOut:PDOUBLE):HResult;stdcall;external oleaut32dll name 'VarR8FromI8';
  3458. function VarR8FromR4(fltIn:Single; var pdblOut:DOUBLE):HResult;stdcall;external oleaut32dll name 'VarR8FromR4';
  3459. function VarR8FromCy(cyIn:CY; var pdblOut:DOUBLE):HResult;stdcall;external oleaut32dll name 'VarR8FromCy';
  3460. function VarR8FromDate(dateIn:DATE; var pdblOut:DOUBLE):HResult;stdcall;external oleaut32dll name 'VarR8FromDate';
  3461. function VarR8FromStr(strIn:pOLECHAR; lcid:LCID; dwFlags:ULONG; var pdblOut:DOUBLE):HResult;stdcall;external oleaut32dll name 'VarR8FromStr';
  3462. function VarR8FromDisp(pdispIn:IDispatch; lcid:LCID; var pdblOut:DOUBLE):HResult;stdcall;external oleaut32dll name 'VarR8FromDisp';
  3463. function VarR8FromBool(boolIn:VARIANT_BOOL; var pdblOut:DOUBLE):HResult;stdcall;external oleaut32dll name 'VarR8FromBool';
  3464. function VarR8FromI1(cIn:CHAR; var pdblOut:DOUBLE):HResult;stdcall;external oleaut32dll name 'VarR8FromI1';
  3465. function VarR8FromUI2(uiIn:USHORT; var pdblOut:DOUBLE):HResult;stdcall;external oleaut32dll name 'VarR8FromUI2';
  3466. function VarR8FromUI4(ulIn:ULONG; var pdblOut:DOUBLE):HResult;stdcall;external oleaut32dll name 'VarR8FromUI4';
  3467. function VarR8FromUI8(ui64In:ULONG64; pdblOut:PDOUBLE):HResult;stdcall;external oleaut32dll name 'VarR8FromUI8';
  3468. function VarR8FromDec(var pdecIn:TDecimal; var pdblOut:DOUBLE):HResult;stdcall;external oleaut32dll name 'VarR8FromDec';
  3469. function VarDateFromUI1(bIn:BYTE; var pdateOut:DATE):HResult;stdcall;external oleaut32dll name 'VarDateFromUI1';
  3470. function VarDateFromI2(sIn:SHORT; var pdateOut:DATE):HResult;stdcall;external oleaut32dll name 'VarDateFromI2';
  3471. function VarDateFromI4(lIn:LONG; var pdateOut:DATE):HResult;stdcall;external oleaut32dll name 'VarDateFromI4';
  3472. function VarDateFromI8(i64In:LONG64; pdateOut:PDATE):HResult;stdcall;external oleaut32dll name 'VarDateFromI8';
  3473. function VarDateFromR4(fltIn:Single; var pdateOut:DATE):HResult;stdcall;external oleaut32dll name 'VarDateFromR4';
  3474. function VarDateFromR8(dblIn:DOUBLE; var pdateOut:DATE):HResult;stdcall;external oleaut32dll name 'VarDateFromR8';
  3475. function VarDateFromCy(cyIn:CY; var pdateOut:DATE):HResult;stdcall;external oleaut32dll name 'VarDateFromCy';
  3476. function VarDateFromStr(strIn:pOLECHAR; lcid:LCID; dwFlags:ULONG; var pdateOut:DATE):HResult;stdcall;external oleaut32dll name 'VarDateFromStr';
  3477. function VarDateFromDisp(pdispIn:IDispatch; lcid:LCID; var pdateOut:DATE):HResult;stdcall;external oleaut32dll name 'VarDateFromDisp';
  3478. function VarDateFromBool(boolIn:VARIANT_BOOL; var pdateOut:DATE):HResult;stdcall;external oleaut32dll name 'VarDateFromBool';
  3479. function VarDateFromI1(cIn:CHAR; var pdateOut:DATE):HResult;stdcall;external oleaut32dll name 'VarDateFromI1';
  3480. function VarDateFromUI2(uiIn:USHORT; var pdateOut:DATE):HResult;stdcall;external oleaut32dll name 'VarDateFromUI2';
  3481. function VarDateFromUI4(ulIn:ULONG; var pdateOut:DATE):HResult;stdcall;external oleaut32dll name 'VarDateFromUI4';
  3482. function VarDateFromUI8(ui64In:ULONG64; pdateOut:PDATE):HResult;stdcall;external oleaut32dll name 'VarDateFromUI8';
  3483. function VarDateFromDec(var pdecIn:TDecimal; var pdateOut:DATE):HResult;stdcall;external oleaut32dll name 'VarDateFromDec';
  3484. function VarCyFromUI1(bIn:BYTE; var pcyOut:CY):HResult;stdcall;external oleaut32dll name 'VarCyFromUI1';
  3485. function VarCyFromI2(sIn:SHORT; var pcyOut:CY):HResult;stdcall;external oleaut32dll name 'VarCyFromI2';
  3486. function VarCyFromI4(lIn:LONG; var pcyOut:CY):HResult;stdcall;external oleaut32dll name 'VarCyFromI4';
  3487. function VarCyFromI8(i64In:LONG64; pcyOut:PCurrency):HResult;stdcall;external oleaut32dll name 'VarCyFromI8';
  3488. function VarCyFromR4(fltIn:Single; var pcyOut:CY):HResult;stdcall;external oleaut32dll name 'VarCyFromR4';
  3489. function VarCyFromR8(dblIn:DOUBLE; var pcyOut:CY):HResult;stdcall;external oleaut32dll name 'VarCyFromR8';
  3490. function VarCyFromDate(dateIn:DATE; var pcyOut:CY):HResult;stdcall;external oleaut32dll name 'VarCyFromDate';
  3491. function VarCyFromStr(strIn:pOLECHAR; lcid:LCID; dwFlags:ULONG; var pcyOut:CY):HResult;stdcall;external oleaut32dll name 'VarCyFromStr';
  3492. function VarCyFromDisp(pdispIn:IDispatch; lcid:LCID; var pcyOut:CY):HResult;stdcall;external oleaut32dll name 'VarCyFromDisp';
  3493. function VarCyFromBool(boolIn:VARIANT_BOOL; var pcyOut:CY):HResult;stdcall;external oleaut32dll name 'VarCyFromBool';
  3494. function VarCyFromI1(cIn:CHAR; var pcyOut:CY):HResult;stdcall;external oleaut32dll name 'VarCyFromI1';
  3495. function VarCyFromUI2(uiIn:USHORT; var pcyOut:CY):HResult;stdcall;external oleaut32dll name 'VarCyFromUI2';
  3496. function VarCyFromUI4(ulIn:ULONG; var pcyOut:CY):HResult;stdcall;external oleaut32dll name 'VarCyFromUI4';
  3497. function VarCyFromUI8(ui64In:ULONG64; pcyOut:PCurrency):HResult;stdcall;external oleaut32dll name 'VarCyFromUI8';
  3498. function VarCyFromDec(var pdecIn:TDecimal; var pcyOut:CY):HResult;stdcall;external oleaut32dll name 'VarCyFromDec';
  3499. function VarBstrFromUI1(bVal:BYTE; lcid:LCID; dwFlags:ULONG; var pbstrOut:BSTR):HResult;stdcall;external oleaut32dll name 'VarBstrFromUI1';
  3500. function VarBstrFromI2(iVal:SHORT; lcid:LCID; dwFlags:ULONG; var pbstrOut:BSTR):HResult;stdcall;external oleaut32dll name 'VarBstrFromI2';
  3501. function VarBstrFromI4(lIn:LONG; lcid:LCID; dwFlags:ULONG; var pbstrOut:BSTR):HResult;stdcall;external oleaut32dll name 'VarBstrFromI4';
  3502. function VarBstrFromI8(i64In:LONG64; lcid:LCID; dwFlags:dword; pbstrOut:PBSTR):HResult;stdcall;external oleaut32dll name 'VarBstrFromI8';
  3503. function VarBstrFromR4(fltIn:Single; lcid:LCID; dwFlags:ULONG; var pbstrOut:BSTR):HResult;stdcall;external oleaut32dll name 'VarBstrFromR4';
  3504. function VarBstrFromR8(dblIn:DOUBLE; lcid:LCID; dwFlags:ULONG; var pbstrOut:BSTR):HResult;stdcall;external oleaut32dll name 'VarBstrFromR8';
  3505. function VarBstrFromCy(cyIn:CY; lcid:LCID; dwFlags:ULONG; var pbstrOut:BSTR):HResult;stdcall;external oleaut32dll name 'VarBstrFromCy';
  3506. function VarBstrFromDate(dateIn:DATE; lcid:LCID; dwFlags:ULONG; var pbstrOut:BSTR):HResult;stdcall;external oleaut32dll name 'VarBstrFromDate';
  3507. function VarBstrFromDisp(pdispIn:IDispatch; lcid:LCID; dwFlags:ULONG; var pbstrOut:BSTR):HResult;stdcall;external oleaut32dll name 'VarBstrFromDisp';
  3508. function VarBstrFromBool(boolIn:VARIANT_BOOL; lcid:LCID; dwFlags:ULONG; var pbstrOut:BSTR):HResult;stdcall;external oleaut32dll name 'VarBstrFromBool';
  3509. function VarBstrFromI1(cIn:CHAR; lcid:LCID; dwFlags:ULONG; var pbstrOut:BSTR):HResult;stdcall;external oleaut32dll name 'VarBstrFromI1';
  3510. function VarBstrFromUI2(uiIn:USHORT; lcid:LCID; dwFlags:ULONG; var pbstrOut:BSTR):HResult;stdcall;external oleaut32dll name 'VarBstrFromUI2';
  3511. function VarBstrFromUI4(ulIn:ULONG; lcid:LCID; dwFlags:ULONG; var pbstrOut:BSTR):HResult;stdcall;external oleaut32dll name 'VarBstrFromUI4';
  3512. function VarBstrFromUI8(ui64In:ULONG64; lcid:LCID; dwFlags:dword; pbstrOut:PBSTR):HResult;stdcall;external oleaut32dll name 'VarBstrFromUI8';
  3513. function VarBstrFromDec(var pdecIn:TDecimal; lcid:LCID; dwFlags:ULONG; var pbstrOut:BSTR):HResult;stdcall;external oleaut32dll name 'VarBstrFromDec';
  3514. function VarBoolFromUI1(bIn:BYTE; var pboolOut:VARIANT_BOOL):HResult;stdcall;external oleaut32dll name 'VarBoolFromUI1';
  3515. function VarBoolFromI2(sIn:SHORT; var pboolOut:VARIANT_BOOL):HResult;stdcall;external oleaut32dll name 'VarBoolFromI2';
  3516. function VarBoolFromI4(lIn:LONG; var pboolOut:VARIANT_BOOL):HResult;stdcall;external oleaut32dll name 'VarBoolFromI4';
  3517. function VarBoolFromI8(i64In:LONG64; pboolOut:PVARIANT_BOOL):HResult;stdcall;external oleaut32dll name 'VarBoolFromI8';
  3518. function VarBoolFromR4(fltIn:Single; var pboolOut:VARIANT_BOOL):HResult;stdcall;external oleaut32dll name 'VarBoolFromR4';
  3519. function VarBoolFromR8(dblIn:DOUBLE; var pboolOut:VARIANT_BOOL):HResult;stdcall;external oleaut32dll name 'VarBoolFromR8';
  3520. function VarBoolFromDate(dateIn:DATE; var pboolOut:VARIANT_BOOL):HResult;stdcall;external oleaut32dll name 'VarBoolFromDate';
  3521. function VarBoolFromCy(cyIn:CY; var pboolOut:VARIANT_BOOL):HResult;stdcall;external oleaut32dll name 'VarBoolFromCy';
  3522. function VarBoolFromStr(strIn:pOLECHAR; lcid:LCID; dwFlags:ULONG; var pboolOut:VARIANT_BOOL):HResult;stdcall;external oleaut32dll name 'VarBoolFromStr';
  3523. function VarBoolFromDisp(pdispIn:IDispatch; lcid:LCID; var pboolOut:VARIANT_BOOL):HResult;stdcall;external oleaut32dll name 'VarBoolFromDisp';
  3524. function VarBoolFromI1(cIn:CHAR; var pboolOut:VARIANT_BOOL):HResult;stdcall;external oleaut32dll name 'VarBoolFromI1';
  3525. function VarBoolFromUI2(uiIn:USHORT; var pboolOut:VARIANT_BOOL):HResult;stdcall;external oleaut32dll name 'VarBoolFromUI2';
  3526. function VarBoolFromUI4(ulIn:ULONG; var pboolOut:VARIANT_BOOL):HResult;stdcall;external oleaut32dll name 'VarBoolFromUI4';
  3527. function VarBoolFromUI8(i64In:ULONG64; pboolOut:PVARIANT_BOOL):HResult;stdcall;external oleaut32dll name 'VarBoolFromUI8';
  3528. function VarBoolFromDec(var pdecIn:TDecimal; var pboolOut:VARIANT_BOOL):HResult;stdcall;external oleaut32dll name 'VarBoolFromDec';
  3529. function VarI1FromUI1(bIn:BYTE; pcOut:pCHAR):HResult;stdcall;external oleaut32dll name 'VarI1FromUI1';
  3530. function VarI1FromI2(uiIn:SHORT; pcOut:pCHAR):HResult;stdcall;external oleaut32dll name 'VarI1FromI2';
  3531. function VarI1FromI4(lIn:LONG; pcOut:pCHAR):HResult;stdcall;external oleaut32dll name 'VarI1FromI4';
  3532. function VarI1FromI8(i64In:LONG64; pcOut:pCHAR):HResult;stdcall;external oleaut32dll name 'VarI1FromI8';
  3533. function VarI1FromR4(fltIn:Single; pcOut:pCHAR):HResult;stdcall;external oleaut32dll name 'VarI1FromR4';
  3534. function VarI1FromR8(dblIn:DOUBLE; pcOut:pCHAR):HResult;stdcall;external oleaut32dll name 'VarI1FromR8';
  3535. function VarI1FromDate(dateIn:DATE; pcOut:pCHAR):HResult;stdcall;external oleaut32dll name 'VarI1FromDate';
  3536. function VarI1FromCy(cyIn:CY; pcOut:pCHAR):HResult;stdcall;external oleaut32dll name 'VarI1FromCy';
  3537. function VarI1FromStr(strIn:pOLECHAR; lcid:LCID; dwFlags:ULONG; pcOut:pCHAR):HResult;stdcall;external oleaut32dll name 'VarI1FromStr';
  3538. function VarI1FromDisp(pdispIn:IDispatch; lcid:LCID; pcOut:pCHAR):HResult;stdcall;external oleaut32dll name 'VarI1FromDisp';
  3539. function VarI1FromBool(boolIn:VARIANT_BOOL; pcOut:pCHAR):HResult;stdcall;external oleaut32dll name 'VarI1FromBool';
  3540. function VarI1FromUI2(uiIn:USHORT; pcOut:pCHAR):HResult;stdcall;external oleaut32dll name 'VarI1FromUI2';
  3541. function VarI1FromUI4(ulIn:ULONG; pcOut:pCHAR):HResult;stdcall;external oleaut32dll name 'VarI1FromUI4';
  3542. function VarI1FromUI8(i64In:ULONG64; pcOut:pCHAR):HResult;stdcall;external oleaut32dll name 'VarI1FromUI8';
  3543. function VarI1FromDec(var pdecIn:TDecimal; pcOut:pCHAR):HResult;stdcall;external oleaut32dll name 'VarI1FromDec';
  3544. function VarUI2FromUI1(bIn:BYTE; var puiOut:USHORT):HResult;stdcall;external oleaut32dll name 'VarUI2FromUI1';
  3545. function VarUI2FromI2(uiIn:SHORT; var puiOut:USHORT):HResult;stdcall;external oleaut32dll name 'VarUI2FromI2';
  3546. function VarUI2FromI4(lIn:LONG; var puiOut:USHORT):HResult;stdcall;external oleaut32dll name 'VarUI2FromI4';
  3547. function VarUI2FromI8(i64In:LONG64; var puiOut:USHORT):HResult;stdcall;external oleaut32dll name 'VarUI2FromI8';
  3548. function VarUI2FromR4(fltIn:Single; var puiOut:USHORT):HResult;stdcall;external oleaut32dll name 'VarUI2FromR4';
  3549. function VarUI2FromR8(dblIn:DOUBLE; var puiOut:USHORT):HResult;stdcall;external oleaut32dll name 'VarUI2FromR8';
  3550. function VarUI2FromDate(dateIn:DATE; var puiOut:USHORT):HResult;stdcall;external oleaut32dll name 'VarUI2FromDate';
  3551. function VarUI2FromCy(cyIn:CY; var puiOut:USHORT):HResult;stdcall;external oleaut32dll name 'VarUI2FromCy';
  3552. function VarUI2FromStr(strIn:pOLECHAR; lcid:LCID; dwFlags:ULONG; var puiOut:USHORT):HResult;stdcall;external oleaut32dll name 'VarUI2FromStr';
  3553. function VarUI2FromDisp(pdispIn:IDispatch; lcid:LCID; var puiOut:USHORT):HResult;stdcall;external oleaut32dll name 'VarUI2FromDisp';
  3554. function VarUI2FromBool(boolIn:VARIANT_BOOL; var puiOut:USHORT):HResult;stdcall;external oleaut32dll name 'VarUI2FromBool';
  3555. function VarUI2FromI1(cIn:CHAR; var puiOut:USHORT):HResult;stdcall;external oleaut32dll name 'VarUI2FromI1';
  3556. function VarUI2FromUI4(ulIn:ULONG; var puiOut:USHORT):HResult;stdcall;external oleaut32dll name 'VarUI2FromUI4';
  3557. function VarUI2FromUI8(i64In:ULONG64; var puiOut:USHORT):HResult;stdcall;external oleaut32dll name 'VarUI2FromUI8';
  3558. function VarUI2FromDec(var pdecIn:TDecimal; var puiOut:USHORT):HResult;stdcall;external oleaut32dll name 'VarUI2FromDec';
  3559. function VarUI4FromUI1(bIn:BYTE; var pulOut:ULONG):HResult;stdcall;external oleaut32dll name 'VarUI4FromUI1';
  3560. function VarUI4FromI2(uiIn:SHORT; var pulOut:ULONG):HResult;stdcall;external oleaut32dll name 'VarUI4FromI2';
  3561. function VarUI4FromI4(lIn:LONG; var pulOut:ULONG):HResult;stdcall;external oleaut32dll name 'VarUI4FromI4';
  3562. function VarUI4FromI8(i64In:LONG64; var plOut:ULONG):HResult;stdcall;external oleaut32dll name 'VarUI4FromI8';
  3563. function VarUI4FromR4(fltIn:Single; var pulOut:ULONG):HResult;stdcall;external oleaut32dll name 'VarUI4FromR4';
  3564. function VarUI4FromR8(dblIn:DOUBLE; var pulOut:ULONG):HResult;stdcall;external oleaut32dll name 'VarUI4FromR8';
  3565. function VarUI4FromDate(dateIn:DATE; var pulOut:ULONG):HResult;stdcall;external oleaut32dll name 'VarUI4FromDate';
  3566. function VarUI4FromCy(cyIn:CY; var pulOut:ULONG):HResult;stdcall;external oleaut32dll name 'VarUI4FromCy';
  3567. function VarUI4FromStr(strIn:pOLECHAR; lcid:LCID; dwFlags:ULONG; var pulOut:ULONG):HResult;stdcall;external oleaut32dll name 'VarUI4FromStr';
  3568. function VarUI4FromDisp(pdispIn:IDispatch; lcid:LCID; var pulOut:ULONG):HResult;stdcall;external oleaut32dll name 'VarUI4FromDisp';
  3569. function VarUI4FromBool(boolIn:VARIANT_BOOL; var pulOut:ULONG):HResult;stdcall;external oleaut32dll name 'VarUI4FromBool';
  3570. function VarUI4FromI1(cIn:CHAR; var pulOut:ULONG):HResult;stdcall;external oleaut32dll name 'VarUI4FromI1';
  3571. function VarUI4FromUI2(uiIn:USHORT; var pulOut:ULONG):HResult;stdcall;external oleaut32dll name 'VarUI4FromUI2';
  3572. function VarUI4FromUI8(ui64In:ULONG64; var plOut:ULONG):HResult;stdcall;external oleaut32dll name 'VarUI4FromUI8';
  3573. function VarUI4FromDec(var pdecIn:TDecimal; var pulOut:ULONG):HResult;stdcall;external oleaut32dll name 'VarUI4FromDec';
  3574. {**************************************** }
  3575. function VarUI8FromUI1(bIn:BYTE; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromUI1';
  3576. function VarUI8FromI2(sIn:SHORT; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromI2';
  3577. function VarUI8FromI4(lIn:LONG; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromI4';
  3578. function VarUI8FromI8(ui64In:LONG64; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromI8';
  3579. function VarUI8FromR4(fltIn:Single; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromR4';
  3580. function VarUI8FromR8(dblIn:DOUBLE; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromR8';
  3581. function VarUI8FromCy(cyIn:CY; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromCy';
  3582. function VarUI8FromDate(dateIn:DATE; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromDate';
  3583. function VarUI8FromStr(strIn:POLECHAR; lcid:LCID; dwFlags:dword; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromStr';
  3584. function VarUI8FromDisp(pdispIn:IDispatch; lcid:LCID; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromDisp';
  3585. function VarUI8FromBool(boolIn:VARIANT_BOOL; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromBool';
  3586. function VarUI8FromI1(cIn:CHAR; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromI1';
  3587. function VarUI8FromUI2(uiIn:USHORT; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromUI2';
  3588. function VarUI8FromUI4(ulIn:ULONG; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromUI4';
  3589. function VarUI8FromDec(var pdecIn:TDecimal; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromDec';
  3590. function VarUI8FromInt(intIn:cint; pi64Out:PULONG64):HResult;stdcall;external oleaut32dll name 'VarUI8FromInt';
  3591. implementation
  3592. function Succeeded(Res: HResult) : Boolean;inline;
  3593. begin
  3594. Result := Res and $80000000 = 0;
  3595. end;
  3596. function Failed(Res: HResult) : Boolean;inline;
  3597. begin
  3598. Result := Res and $80000000 <> 0;
  3599. end;
  3600. function ResultCode(Res: HResult) : Longint;inline;
  3601. begin
  3602. Result := Res and $0000FFFF;
  3603. end;
  3604. function ResultFacility(Res: HResult): Longint;inline;
  3605. begin
  3606. Result := (Res shr 16) and $00001FFF;
  3607. end;
  3608. function ResultSeverity(Res: HResult): Longint;inline;
  3609. begin
  3610. Result := Res shr 31;
  3611. end;
  3612. function MakeResult(Severity, Facility, Code: Longint): HResult;inline;
  3613. begin
  3614. Result := (Severity shl 31) or (Facility shl 16) or Code;
  3615. end;
  3616. end.