activex.pp 208 KB

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