activex.pp 155 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321
  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. PBStr = ^TBStr;
  26. TOleEnum = type LongWord;
  27. {Glue types, should be linked to the proper windows unit types}
  28. TYPE
  29. Size_t = DWord; {??, probably, like Unix, typecastable to pointer?!?}
  30. OleChar = WChar;
  31. LPOLESTR = ^OLECHAR;
  32. // bit flags for IExternalConnection
  33. CONST
  34. EXTCONN_STRONG = $0001; // strong connection
  35. EXTCONN_WEAK = $0002; // weak connection (table, container)
  36. EXTCONN_CALLABLE = $0004; // table .vs. callable
  37. {Bind Flags}
  38. BIND_MAYBOTHERUSER = 1;
  39. BIND_JUSTTESTEXISTENCE = 2;
  40. MKSYS_NONE = 0;
  41. MKSYS_GENERICCOMPOSITE = 1;
  42. MKSYS_FILEMONIKER = 2;
  43. MKSYS_ANTIMONIKER = 3;
  44. MKSYS_ITEMMONIKER = 4;
  45. MKSYS_POINTERMONIKER = 5;
  46. // MKSYS_URLMONIKER = 6;
  47. MKSYS_CLASSMONIKER = 7;
  48. MKSYS_OBJREFMONIKER = 8;
  49. MKSYS_SESSIONMONIKER = 9;
  50. // system moniker types; returned from IsSystemMoniker.
  51. MKRREDUCE_ONE = 3 SHL 16;
  52. MKRREDUCE_TOUSER = 2 SHL 16;
  53. MKRREDUCE_THROUGHUSER = 1 SHL 16;
  54. MKRREDUCE_ALL = 0;
  55. // Storage element types
  56. STGTY_STORAGE = 1;
  57. STGTY_STREAM = 2;
  58. STGTY_LOCKBYTES = 3;
  59. STGTY_PROPERTY = 4;
  60. STREAM_SEEK_SET = 0;
  61. STREAM_SEEK_CUR = 1;
  62. STREAM_SEEK_END = 2;
  63. LOCK_WRITE = 1;
  64. LOCK_EXCLUSIVE = 2;
  65. LOCK_ONLYONCE = 4;
  66. //Advise Flags
  67. ADVF_NODATA = 1;
  68. ADVF_PRIMEFIRST = 2;
  69. ADVF_ONLYONCE = 4;
  70. ADVF_DATAONSTOP = 64;
  71. ADVFCACHE_NOHANDLER = 8;
  72. ADVFCACHE_FORCEBUILTIN = 16;
  73. ADVFCACHE_ONSAVE = 32;
  74. //****************************************************************************
  75. //* Notification Interfaces
  76. //****************************************************************************/
  77. TYMED_HGLOBAL = 1;
  78. TYMED_FILE = 2;
  79. TYMED_ISTREAM = 4;
  80. TYMED_ISTORAGE = 8;
  81. TYMED_GDI = 16;
  82. TYMED_MFPICT = 32;
  83. TYMED_ENHMF = 64;
  84. TYMED_NULL = 0;
  85. // Object Definitions for EnumObjects()
  86. OBJ_PEN = 1;
  87. OBJ_BRUSH = 2;
  88. OBJ_DC = 3;
  89. OBJ_METADC = 4;
  90. OBJ_PAL = 5;
  91. OBJ_FONT = 6;
  92. OBJ_BITMAP = 7;
  93. OBJ_REGION = 8;
  94. OBJ_METAFILE = 9;
  95. OBJ_MEMDC = 10;
  96. OBJ_EXTPEN = 11;
  97. OBJ_ENHMETADC = 12;
  98. OBJ_ENHMETAFILE = 13;
  99. DATADIR_GET = 1;
  100. DATADIR_SET = 2;
  101. // call type used by IMessageFilter::HandleIncomingMessage
  102. CALLTYPE_TOPLEVEL = 1; // toplevel call - no outgoing call
  103. CALLTYPE_NESTED = 2; // callback on behalf of previous outgoing call - should always handle
  104. CALLTYPE_ASYNC = 3; // aysnchronous call - can NOT be rejected
  105. CALLTYPE_TOPLEVEL_CALLPENDING = 4; // new toplevel call with new LID
  106. CALLTYPE_ASYNC_CALLPENDING = 5; // async call - can NOT be rejected
  107. // status of server call - returned by IMessageFilter::HandleIncomingCall
  108. // and passed to IMessageFilter::RetryRejectedCall
  109. SERVERCALL_ISHANDLED = 0;
  110. SERVERCALL_REJECTED = 1;
  111. SERVERCALL_RETRYLATER = 2;
  112. // Pending type indicates the level of nesting
  113. PENDINGTYPE_TOPLEVEL = 1; // toplevel call
  114. PENDINGTYPE_NESTED = 2; // nested call
  115. // return values of MessagePending
  116. PENDINGMSG_CANCELCALL = 0; // cancel the outgoing call
  117. PENDINGMSG_WAITNOPROCESS = 1; // wait for the return and don't dispatch the message
  118. PENDINGMSG_WAITDEFPROCESS = 2; // wait and dispatch the message
  119. EOAC_NONE = $0;
  120. EOAC_MUTUAL_AUTH = $1;
  121. EOAC_STATIC_CLOAKING = $20;
  122. EOAC_DYNAMIC_CLOAKING = $40;
  123. EOAC_ANY_AUTHORITY = $80;
  124. EOAC_MAKE_FULLSIC = $100;
  125. EOAC_DEFAULT = $800;
  126. // These are only valid for CoInitializeSecurity
  127. EOAC_SECURE_REFS = $2;
  128. EOAC_ACCESS_CONTROL = $4;
  129. EOAC_APPID = $8;
  130. EOAC_DYNAMIC = $10;
  131. EOAC_REQUIRE_FULLSIC = $200;
  132. EOAC_AUTO_IMPERSONATE = $400;
  133. EOAC_NO_CUSTOM_MARSHAL = $2000;
  134. EOAC_DISABLE_AAA = $1000;
  135. //****************************************************************************
  136. //* ICOMThreadingInfo and enums
  137. //****************************************************************************/
  138. APTTYPE_CURRENT = -1;
  139. APTTYPE_STA = 0;
  140. APTTYPE_MTA = 1;
  141. APTTYPE_NA = 2;
  142. APTTYPE_MAINSTA = 3;
  143. THDTYPE_BLOCKMESSAGES = 0;
  144. THDTYPE_PROCESSMESSAGES = 1;
  145. DCOM_NONE = $0;
  146. DCOM_CALL_COMPLETE = $1;
  147. DCOM_CALL_CANCELED = $2;
  148. COMBND_RPCTIMEOUT = $1; // Rpc transport-specific timeout.
  149. //************************* Misc Enums wtypes.h ***********************************/
  150. // Common typdefs used in API paramaters, gleamed from compobj.h
  151. // memory context values; passed to CoGetMalloc
  152. Const
  153. MEMCTX_TASK = 1; // task (private) memory
  154. MEMCTX_SHARED = 2; // shared memory (between processes)
  155. MEMCTX_MACSYSTEM = 3; // on the mac, the system heap
  156. // these are mostly for internal use...
  157. MEMCTX_UNKNOWN = -1; // unknown context (when asked about it)
  158. MEMCTX_SAME = -2; // same context (as some other pointer)
  159. // For IRunningObjectTable::Register
  160. ROTFLAGS_REGISTRATIONKEEPSALIVE = $1;
  161. ROTFLAGS_ALLOWANYCLIENT = $2;
  162. // Maximum size of comparison buffer for IROTData::GetComparisonData
  163. ROT_COMPARE_MAX = 2048;
  164. // class context: used to determine what scope and kind of class object to use
  165. // NOTE: this is a bitwise enum
  166. CLSCTX_INPROC_SERVER = $0001; // server dll (runs in same process as caller)
  167. CLSCTX_INPROC_HANDLER = $0002; // handler dll (runs in same process as caller)
  168. CLSCTX_LOCAL_SERVER = $0004; // server exe (runs on same machine; diff proc)
  169. CLSCTX_INPROC_SERVER16 = $0008; // 16-bit server dll (runs in same process as caller)
  170. CLSCTX_REMOTE_SERVER = $0010; // remote server exe (runs on different machine)
  171. CLSCTX_INPROC_HANDLER16 = $0020; // 16-bit handler dll (runs in same process as caller)
  172. CLSCTX_INPROC_SERVERX86 = $0040; // Wx86 server dll (runs in same process as caller)
  173. CLSCTX_INPROC_HANDLERX86 = $0080; // Wx86 handler dll (runs in same process as caller)
  174. CLSCTX_ESERVER_HANDLER = $0100; // handler dll (runs in the server process)
  175. CLSCTX_RESERVED =$0200; // reserved
  176. CLSCTX_NO_CODE_DOWNLOAD = $0400; // disallow code download from the Directory Service (if any) or the internet -rahulth
  177. CLSCTX_NO_WX86_TRANSLATION = $0800;
  178. CLSCTX_NO_CUSTOM_MARSHAL = $1000;
  179. CLSCTX_ENABLE_CODE_DOWNLOAD = $2000; // allow code download from the Directory Service (if any) or the internet
  180. CLSCTX_NO_FAILURE_LOG = $04000; // do not log messages about activation failure (should one occur) to Event Log
  181. CLSCTX_DISABLE_AAA = $08000; // Disable EOAC_DISABLE_AAA capability for this activation only
  182. CLSCTX_ENABLE_AAA = $10000; // Enable EOAC_DISABLE_AAA capability for this activation only
  183. CLSCTX_FROM_DEFAULT_CONTEXT = $20000; // Begin this activation from the default context of the current apartment
  184. CLSCTX_INPROC = (CLSCTX_INPROC_SERVER OR CLSCTX_INPROC_HANDLER);
  185. // With DCOM, CLSCTX_REMOTE_SERVER should be included
  186. CLSCTX_ALL = (CLSCTX_INPROC_SERVER OR CLSCTX_INPROC_HANDLER OR CLSCTX_LOCAL_SERVER {$ifdef Remote} OR CLSCTX_REMOTE_SERVER {$endif});
  187. CLSCTX_SERVER = (CLSCTX_INPROC_SERVER OR CLSCTX_LOCAL_SERVER {$ifdef Remote} OR CLSCTX_REMOTE_SERVER {$endif});
  188. // marshaling flags; passed to CoMarshalInterface
  189. MSHLFLAGS_NORMAL = 0; // normal marshaling via proxy/stub
  190. MSHLFLAGS_TABLESTRONG = 1; // keep object alive; must explicitly release
  191. MSHLFLAGS_TABLEWEAK = 2; // doesn't hold object alive; still must release
  192. MSHLFLAGS_NOPING = 4; // remote clients dont 'ping' to keep objects alive
  193. MSHLFLAGS_RESERVED1 = 8; // reserved
  194. MSHLFLAGS_RESERVED2 = 16; // reserved
  195. MSHLFLAGS_RESERVED3 = 32; // reserved
  196. MSHLFLAGS_RESERVED4 = 64; // reserved
  197. // marshal context: determines the destination context of the marshal operation
  198. MSHCTX_LOCAL = 0; // unmarshal context is local (eg.shared memory)
  199. MSHCTX_NOSHAREDMEM = 1; // unmarshal context has no shared memory access
  200. MSHCTX_DIFFERENTMACHINE = 2; // unmarshal context is on a different machine
  201. MSHCTX_INPROC = 3; // unmarshal context is on different thread
  202. MSHCTX_CROSSCTX = 4; // unmarshal context is on different context
  203. // #########################################################################
  204. //
  205. // VARTYPE
  206. //
  207. // #########################################################################
  208. {
  209. VARENUM usage key,
  210. * [V] - may appear in a VARIANT
  211. * [T] - may appear in a TYPEDESC
  212. * [P] - may appear in an OLE property set
  213. * [S] - may appear in a Safe Array
  214. VT_EMPTY [V] [P] nothing
  215. VT_NULL [V] [P] SQL style Null
  216. VT_I2 [V][T][P][S] 2 byte signed int
  217. VT_I4 [V][T][P][S] 4 byte signed int
  218. VT_R4 [V][T][P][S] 4 byte real
  219. VT_R8 [V][T][P][S] 8 byte real
  220. VT_CY [V][T][P][S] currency
  221. VT_DATE [V][T][P][S] date
  222. VT_BSTR [V][T][P][S] OLE Automation string
  223. VT_DISPATCH [V][T] [S] IDispatch *
  224. VT_ERROR [V][T][P][S] SCODE
  225. VT_BOOL [V][T][P][S] True=-1, False=0
  226. VT_VARIANT [V][T][P][S] VARIANT *
  227. VT_UNKNOWN [V][T] [S] IUnknown *
  228. VT_DECIMAL [V][T] [S] 16 byte fixed point
  229. VT_RECORD [V] [P][S] user defined type
  230. VT_I1 [V][T][P][s] signed char
  231. VT_UI1 [V][T][P][S] unsigned char
  232. VT_UI2 [V][T][P][S] unsigned short
  233. VT_UI4 [V][T][P][S] unsigned long
  234. VT_I8 [T][P] signed 64-bit int
  235. VT_UI8 [T][P] unsigned 64-bit int
  236. VT_INT [V][T][P][S] signed machine int
  237. VT_UINT [V][T] [S] unsigned machine int
  238. VT_INT_PTR [T] signed machine register size width
  239. VT_UINT_PTR [T] unsigned machine register size width
  240. VT_VOID [T] C style void
  241. VT_HRESULT [T] Standard return type
  242. VT_PTR [T] pointer type
  243. VT_SAFEARRAY [T] (use VT_ARRAY in VARIANT)
  244. VT_CARRAY [T] C style array
  245. VT_USERDEFINED [T] user defined type
  246. VT_LPSTR [T][P] null terminated string
  247. VT_LPWSTR [T][P] wide null terminated string
  248. VT_FILETIME [P] FILETIME
  249. VT_BLOB [P] Length prefixed bytes
  250. VT_STREAM [P] Name of the stream follows
  251. VT_STORAGE [P] Name of the storage follows
  252. VT_STREAMED_OBJECT [P] Stream contains an object
  253. VT_STORED_OBJECT [P] Storage contains an object
  254. VT_VERSIONED_STREAM [P] Stream with a GUID version
  255. VT_BLOB_OBJECT [P] Blob contains an object
  256. VT_CF [P] Clipboard format
  257. VT_CLSID [P] A Class ID
  258. VT_VECTOR [P] simple counted array
  259. VT_ARRAY [V] SAFEARRAY*
  260. VT_BYREF [V] void* for local use
  261. VT_BSTR_BLOB Reserved for system use
  262. }
  263. // VARENUM's
  264. VT_EMPTY = 0;
  265. VT_NULL = 1;
  266. VT_I2 = 2;
  267. VT_I4 = 3;
  268. VT_R4 = 4;
  269. VT_R8 = 5;
  270. VT_CY = 6;
  271. VT_DATE = 7;
  272. VT_BSTR = 8;
  273. VT_DISPATCH = 9;
  274. VT_ERROR = 10;
  275. VT_BOOL = 11;
  276. VT_VARIANT = 12;
  277. VT_UNKNOWN = 13;
  278. VT_DECIMAL = 14;
  279. // VBA reserves 15 for future use
  280. VT_I1 = 16;
  281. VT_UI1 = 17;
  282. VT_UI2 = 18;
  283. VT_UI4 = 19;
  284. VT_I8 = 20;
  285. VT_UI8 = 21;
  286. VT_INT = 22;
  287. VT_UINT = 23;
  288. VT_VOID = 24;
  289. VT_HRESULT = 25;
  290. VT_PTR = 26;
  291. VT_SAFEARRAY = 27;
  292. VT_CARRAY = 28;
  293. VT_USERDEFINED = 29;
  294. VT_LPSTR = 30;
  295. VT_LPWSTR = 31;
  296. // VBA reserves 32-35 for future use
  297. VT_RECORD = 36;
  298. VT_INT_PTR = 37;
  299. VT_UINT_PTR = 38;
  300. VT_FILETIME = 64;
  301. VT_BLOB = 65;
  302. VT_STREAM = 66;
  303. VT_STORAGE = 67;
  304. VT_STREAMED_OBJECT = 68;
  305. VT_STORED_OBJECT = 69;
  306. VT_BLOB_OBJECT = 70;
  307. VT_CF = 71;
  308. VT_CLSID = 72;
  309. VT_VERSIONED_STREAM = 73;
  310. VT_BSTR_BLOB = $0fff;
  311. VT_VECTOR = $1000;
  312. VT_ARRAY = $2000;
  313. VT_BYREF = $4000;
  314. VT_RESERVED = $8000;
  315. VT_ILLEGAL = $ffff;
  316. VT_ILLEGALMASKED = $0fff;
  317. VT_TYPEMASK = $0fff;
  318. //
  319. // Common typedefs for paramaters used in data view API's, gleamed
  320. // from dvobj.h
  321. //
  322. // Data/View aspect; specifies the desired aspect of the object when
  323. // drawing or getting data.
  324. DVASPECT_CONTENT = 1;
  325. DVASPECT_THUMBNAIL = 2;
  326. DVASPECT_ICON = 4;
  327. DVASPECT_DOCPRINT = 8;
  328. //****** Storage types *************************************************
  329. // Storage commit types
  330. STGC_DEFAULT = 0;
  331. STGC_OVERWRITE = 1;
  332. STGC_ONLYIFCURRENT = 2;
  333. STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4;
  334. STGC_CONSOLIDATE = 8;
  335. STGMOVE_MOVE = 0;
  336. STGMOVE_COPY = 1;
  337. STGMOVE_SHALLOWCOPY = 2;
  338. STATFLAG_DEFAULT = 0;
  339. STATFLAG_NONAME = 1;
  340. STATFLAG_NOOPEN = 2;
  341. // #########################################################################
  342. //
  343. // Constants for the call context
  344. //
  345. WDT_INPROC_CALL = ULONG($48746457);
  346. WDT_REMOTE_CALL = ULONG($52746457);
  347. WDT_INPROC64_CALL = ULONG($50746457);
  348. COLE_DEFAULT_PRINCIPAL {: pOleStr?} = pOleStr(-1);
  349. COLE_DEFAULT_AUTHINFO {: pointer?} = pointer(-1);
  350. // DISPID reserved to indicate an \"unknown\" name
  351. // only reserved for data members (properties); reused as a method dispid below
  352. DISPID_UNKNOWN = -1;
  353. // DISPID reserved for the \"value\" property
  354. DISPID_VALUE = 0;
  355. // The following DISPID is reserved to indicate the param")
  356. // that is the right-hand-side (or \"put\" value) of a PropertyPut")
  357. DISPID_PROPERTYPUT = -3;
  358. // DISPID reserved for the standard \"NewEnum\" method
  359. DISPID_NEWENUM = -4;
  360. // DISPID reserved for the standard \"Evaluate\" method
  361. DISPID_EVALUATE = -5;
  362. DISPID_CONSTRUCTOR = -6;
  363. DISPID_DESTRUCTOR = -7;
  364. DISPID_COLLECT = -8;
  365. DISPATCH_METHOD = $1;
  366. DISPATCH_PROPERTYGET = $2;
  367. DISPATCH_PROPERTYPUT = $4;
  368. DISPATCH_PROPERTYPUTREF = $8;
  369. // The range -500 through -999 is reserved for Controls
  370. // The range 0x80010000 through 0x8001FFFF is reserved for Controls
  371. // The range -5000 through -5499 is reserved for ActiveX Accessability
  372. // The range -2000 through -2499 is reserved for VB5
  373. // The range -3900 through -3999 is reserved for Forms
  374. // The range -5500 through -5550 is reserved for Forms
  375. // The remainder of the negative DISPIDs are reserved for future use
  376. DESCKIND_NONE = 0;
  377. DESCKIND_FUNCDESC = 1;
  378. DESCKIND_VARDESC = 2;
  379. DESCKIND_TYPECOMP = 3;
  380. DESCKIND_IMPLICITAPPOBJ = 4;
  381. DESCKIND_MAX = 5;
  382. SYS_WIN16 = 0;
  383. SYS_WIN32 = 1;
  384. SYS_MAC = 2;
  385. SYS_WIN64 = 3;
  386. LIBFLAG_FRESTRICTED = $01;
  387. LIBFLAG_FCONTROL = $02;
  388. LIBFLAG_FHIDDEN = $04;
  389. LIBFLAG_FHASDISKIMAGE = $08;
  390. TYPEFLAG_FAPPOBJECT = $01;
  391. TYPEFLAG_FCANCREATE = $02;
  392. TYPEFLAG_FLICENSED = $04;
  393. TYPEFLAG_FPREDECLID = $08;
  394. TYPEFLAG_FHIDDEN = $10;
  395. TYPEFLAG_FCONTROL = $20;
  396. TYPEFLAG_FDUAL = $40;
  397. TYPEFLAG_FNONEXTENSIBLE = $80;
  398. TYPEFLAG_FOLEAUTOMATION = $100;
  399. TYPEFLAG_FRESTRICTED = $200;
  400. TYPEFLAG_FAGGREGATABLE = $400;
  401. TYPEFLAG_FREPLACEABLE = $800;
  402. TYPEFLAG_FDISPATCHABLE = $1000;
  403. TYPEFLAG_FREVERSEBIND = $2000;
  404. TYPEFLAG_FPROXY = $4000;
  405. FUNCFLAG_FRESTRICTED = $1;
  406. FUNCFLAG_FSOURCE = $2;
  407. FUNCFLAG_FBINDABLE = $4;
  408. FUNCFLAG_FREQUESTEDIT = $8;
  409. FUNCFLAG_FDISPLAYBIND = $10;
  410. FUNCFLAG_FDEFAULTBIND = $20;
  411. FUNCFLAG_FHIDDEN = $40;
  412. FUNCFLAG_FUSESGETLASTERROR = $80;
  413. FUNCFLAG_FDEFAULTCOLLELEM = $100;
  414. FUNCFLAG_FUIDEFAULT = $200;
  415. FUNCFLAG_FNONBROWSABLE = $400;
  416. FUNCFLAG_FREPLACEABLE = $800;
  417. FUNCFLAG_FIMMEDIATEBIND = $1000;
  418. VARFLAG_FREADONLY = $1;
  419. VARFLAG_FSOURCE = $2;
  420. VARFLAG_FBINDABLE = $4;
  421. VARFLAG_FREQUESTEDIT = $8;
  422. VARFLAG_FDISPLAYBIND = $10;
  423. VARFLAG_FDEFAULTBIND = $20;
  424. VARFLAG_FHIDDEN = $40;
  425. VARFLAG_FRESTRICTED = $80;
  426. VARFLAG_FDEFAULTCOLLELEM = $100;
  427. VARFLAG_FUIDEFAULT = $200;
  428. VARFLAG_FNONBROWSABLE = $400;
  429. VARFLAG_FREPLACEABLE = $800;
  430. VARFLAG_FIMMEDIATEBIND = $1000;
  431. FADF_AUTO = USHORT($0001); // array is allocated on the stack
  432. FADF_STATIC = USHORT($0002); // array is staticly allocated
  433. FADF_EMBEDDED = USHORT($0004); // array is embedded in a structure
  434. FADF_FIXEDSIZE = USHORT($0010); // may not be resized or reallocated
  435. FADF_RECORD = USHORT($0020); // an array of records
  436. FADF_HAVEIID = USHORT($0040); // with FADF_DISPATCH, FADF_UNKNOWN
  437. // array has an IID for interfaces
  438. FADF_HAVEVARTYPE = USHORT($0080); // array has a VT type
  439. FADF_BSTR = USHORT($0100); // an array of BSTRs
  440. FADF_UNKNOWN = USHORT($0200); // an array of IUnknown*
  441. FADF_DISPATCH = USHORT($0400); // an array of IDispatch*
  442. FADF_VARIANT = USHORT($0800); // an array of VARIANTs
  443. FADF_RESERVED = USHORT($F008); // reserved bits
  444. // IMPLTYPE Flags
  445. IMPLTYPEFLAG_FDEFAULT = USHORT($1);
  446. IMPLTYPEFLAG_FSOURCE = USHORT($2);
  447. IMPLTYPEFLAG_FRESTRICTED = USHORT($4);
  448. IMPLTYPEFLAG_FDEFAULTVTABLE = USHORT($8);
  449. PARAMFLAG_NONE = USHORT($00);
  450. PARAMFLAG_FIN = USHORT($01);
  451. PARAMFLAG_FOUT = USHORT($02);
  452. PARAMFLAG_FLCID = USHORT($04);
  453. PARAMFLAG_FRETVAL = USHORT($08);
  454. PARAMFLAG_FOPT = USHORT($10);
  455. PARAMFLAG_FHASDEFAULT = USHORT($20);
  456. PARAMFLAG_FHASCUSTDATA = USHORT($40);
  457. VAR_PERINSTANCE = 0;
  458. VAR_STATIC = 1;
  459. VAR_CONST = 2;
  460. VAR_DISPATCH = 3;
  461. // notification messages used by the dynamic typeinfo protocol.
  462. CHANGEKIND_ADDMEMBER = 0;
  463. CHANGEKIND_DELETEMEMBER = 1;
  464. CHANGEKIND_SETNAMES = 2;
  465. CHANGEKIND_SETDOCUMENTATION = 3;
  466. CHANGEKIND_GENERAL = 4;
  467. CHANGEKIND_INVALIDATE = 5;
  468. CHANGEKIND_CHANGEFAILED = 6;
  469. CHANGEKIND_MAX = 7;
  470. INVOKE_FUNC = 1;
  471. INVOKE_PROPERTYGET = 2;
  472. INVOKE_PROPERTYPUT = 4;
  473. INVOKE_PROPERTYPUTREF = 8;
  474. TKIND_ENUM = 0;
  475. TKIND_RECORD = 1;
  476. TKIND_MODULE = 2;
  477. TKIND_INTERFACE = 3;
  478. TKIND_DISPATCH = 4;
  479. TKIND_COCLASS = 5;
  480. TKIND_ALIAS = 6;
  481. TKIND_UNION = 7;
  482. TKIND_MAX = 8; // end of enum marker
  483. SF_ERROR = VT_ERROR;
  484. SF_I1 = VT_I1;
  485. SF_I2 = VT_I2;
  486. SF_I4 = VT_I4;
  487. SF_I8 = VT_I8;
  488. SF_BSTR = VT_BSTR;
  489. SF_UNKNOWN = VT_UNKNOWN;
  490. SF_DISPATCH = VT_DISPATCH;
  491. SF_VARIANT = VT_VARIANT;
  492. SF_RECORD = VT_RECORD;
  493. SF_HAVEIID = VT_UNKNOWN OR VT_RESERVED;
  494. IDLFLAG_NONE = PARAMFLAG_NONE;
  495. IDLFLAG_FIN = PARAMFLAG_FIN;
  496. IDLFLAG_FOUT = PARAMFLAG_FOUT;
  497. IDLFLAG_FLCID = PARAMFLAG_FLCID;
  498. IDLFLAG_FRETVAL = PARAMFLAG_FRETVAL;
  499. CC_FASTCALL = 0;
  500. CC_CDECL = 1;
  501. CC_MSCPASCAL = 2;
  502. CC_PASCAL = CC_MSCPASCAL;
  503. CC_MACPASCAL = 3;
  504. CC_STDCALL = 4;
  505. CC_FPFASTCALL = 5;
  506. CC_SYSCALL = 6;
  507. CC_MPWCDECL = 7;
  508. CC_MPWPASCAL = 8;
  509. CC_MAX = 9; // end of enum marker
  510. FUNC_VIRTUAL = 0;
  511. FUNC_PUREVIRTUAL = 1;
  512. FUNC_NONVIRTUAL = 2;
  513. FUNC_STATIC = 3;
  514. FUNC_DISPATCH = 4;
  515. // objbase.h
  516. MARSHALINTERFACE_MIN = 500; // minimum number of bytes for interface marshl
  517. //
  518. // Common typedefs for paramaters used in Storage API's, gleamed from storage.h
  519. // Also contains Storage error codes, which should be moved into the storage
  520. // idl files.
  521. //
  522. CWCSTORAGENAME = 32;
  523. // Storage instantiation modes
  524. STGM_DIRECT = $00000000;
  525. STGM_TRANSACTED = $00010000;
  526. STGM_SIMPLE = $08000000;
  527. STGM_READ = $00000000;
  528. STGM_WRITE = $00000001;
  529. STGM_READWRITE = $00000002;
  530. STGM_SHARE_DENY_NONE = $00000040;
  531. STGM_SHARE_DENY_READ = $00000030;
  532. STGM_SHARE_DENY_WRITE = $00000020;
  533. STGM_SHARE_EXCLUSIVE = $00000010;
  534. STGM_PRIORITY = $00040000;
  535. STGM_DELETEONRELEASE = $04000000;
  536. STGM_NOSCRATCH = $00100000; {WINNT+}
  537. STGM_CREATE = $00001000;
  538. STGM_CONVERT = $00020000;
  539. STGM_FAILIFTHERE = $00000000;
  540. STGM_NOSNAPSHOT = $00200000;
  541. STGM_DIRECT_SWMR = $00400000; { Win2000+}
  542. // flags for internet asyncronous and layout docfile
  543. ASYNC_MODE_COMPATIBILITY = $00000001;
  544. ASYNC_MODE_DEFAULT = $00000000;
  545. STGTY_REPEAT = $00000100;
  546. STG_TOEND = $FFFFFFFF;
  547. STG_LAYOUT_SEQUENTIAL = $00000000;
  548. STG_LAYOUT_INTERLEAVED = $00000001;
  549. STGFMT_STORAGE = 0;
  550. STGFMT_NATIVE = 1;
  551. STGFMT_FILE = 3;
  552. STGFMT_ANY = 4;
  553. STGFMT_DOCFILE = 5;
  554. // This is a legacy define to allow old component to builds
  555. STGFMT_DOCUMENT = 0;
  556. // COM initialization flags; passed to CoInitialize.
  557. COINIT_APARTMENTTHREADED = $2; // Apartment model
  558. // These constants are only valid on Windows NT 4.0
  559. COINIT_MULTITHREADED = $0; // OLE calls objects on any thread.
  560. COINIT_DISABLE_OLE1DDE = $4; // Don't use DDE for Ole1 support.
  561. COINIT_SPEED_OVER_MEMORY = $8; // Trade memory for speed.
  562. SMEXF_SERVER = $01; // server side aggregated std marshaler
  563. SMEXF_HANDLER = $02; // client side (handler) agg std marshaler
  564. COWAIT_WAITALL = 1;
  565. COWAIT_ALERTABLE = 2;
  566. TYPE
  567. VARTYPE = USHORT;
  568. //TypeInfo stuff.
  569. DISPID = Long ;
  570. SCODE = Long;
  571. pSCODE = ^SCODE;
  572. lpDISPID = ^DISPID;
  573. MEMBERID = DispId;
  574. HREFTYPE = DWord;
  575. PSYSINT = ^SYSINT;
  576. SYSINT = LongInt;
  577. PSYSUINT = ^SYSUINT;
  578. SYSUINT = LongWord;
  579. // Enums
  580. VARKIND = DWord;
  581. DESCKIND = DWord;
  582. SYSKIND = DWord;
  583. FUNCKIND = DWord;
  584. CHANGEKIND = DWord;
  585. CALLCONV = DWord;
  586. PCOAUTHIDENTITY = ^TCOAUTHIDENTITY;
  587. _COAUTHIDENTITY = Record
  588. User : PUSHORT;
  589. UserLength : ULONG;
  590. Domain : PUSHORT;
  591. DomainLength : ULong;
  592. Password : PUSHORT;
  593. PassWordLength : ULong;
  594. Flags : ULong;
  595. End;
  596. COAUTHIDENTITY = _COAUTHIDENTITY;
  597. TCOAUTHIDENTITY = _COAUTHIDENTITY;
  598. PCOAUTHINFO = ^TCOAUTHINFO;
  599. COAuthInfo = Record
  600. AuthnSvc : DWord;
  601. AuthzSvc : DWord;
  602. ServerPrincName : LPWSTR;
  603. AuthnLevel : DWord;
  604. ImpersonationLevel : DWord;
  605. AuthIdentityData : PCOAUTHIDENTITY;
  606. Capabilities : DWord;
  607. END;
  608. TCOAUTHINFO = COAUTHINFO;
  609. PCOSERVERINFO = ^TCOSERVERINFO;
  610. _COSERVERINFO = Record
  611. dwReserved1 : DWord;
  612. pwszName : LPWSTR;
  613. pAuthInfo : PCoAuthInfo;
  614. dwReserved2 : DWord;
  615. end;
  616. TCOSERVERINFO = _COSERVERINFO;
  617. PMultiQI = ^Multi_QI;
  618. tagMULTI_QI = Record
  619. iid: piid; // pass this one in
  620. itf: IUnknown; // get these out (you must set to NULL before calling)
  621. hr : HResult;
  622. END;
  623. MULTI_QI = TagMULTI_QI;
  624. PMulti_QI = PMultiQI;
  625. TMultiQI = tagMULTI_QI;
  626. PMultiQIArray = ^TMultiQIArray;
  627. TMultiQIArray = array[0..65535] of TMultiQI;
  628. HContext = Pointer;
  629. ApartmentID = DWord;
  630. //****** Critical Section Wrappers ***********************************
  631. // LCID = WORD;
  632. // LANGID = USHORT;
  633. // #######################################################################
  634. //
  635. // User marshal support for Windows data types.
  636. //
  637. // Frequently used helpers: sized blobs
  638. //
  639. // Never put [user_marshal] or [wire_marshal] on the helpers directly.
  640. //
  641. // Flagged blobs.
  642. _FLAGGED_BYTE_BLOB = Record
  643. fFlags : ULong;
  644. clSize : ULong;
  645. abdata : array[0..0] of byte;
  646. End;
  647. FLAGGED_BYTE_BLOB = _FLAGGED_BYTE_BLOB;
  648. UP_FLAGGED_BYTE_BLOB = ^FLAGGED_BYTE_BLOB;
  649. _FLAGGED_WORD_BLOB = Record
  650. fFlags : ULong;
  651. clSize : ULong;
  652. abdata : array[0..0] of USHORT;
  653. End;
  654. FLAGGED_WORD_BLOB = _FLAGGED_WORD_BLOB;
  655. UP_FLAGGED_WORD_BLOB = ^FLAGGED_WORD_BLOB;
  656. _FLAGGED_DWORD_BLOB = Record
  657. fFlags : ULong;
  658. clSize : ULong;
  659. abdata : array[0..0] of ULONG;
  660. End;
  661. FLAGGED_DWORD_BLOB = _FLAGGED_DWORD_BLOB;
  662. FLAGGED_UP_DWORD_BLOB = ^FLAGGED_DWORD_BLOB;
  663. // Simple blobs.
  664. _BYTE_BLOB = Record
  665. clSize : ULong;
  666. abdata : array[0..0] of byte;
  667. End;
  668. BYTE_BLOB = _BYTE_BLOB;
  669. UP_BYTE_BLOB = ^BYTE_BLOB;
  670. _WORD_BLOB = Record
  671. clSize : ULong;
  672. abdata : array[0..0] of USHORT;
  673. End;
  674. WORD_BLOB = _WORD_BLOB;
  675. UP_WORD_BLOB = ^WORD_BLOB;
  676. _DWORD_BLOB = Record
  677. clSize : ULong;
  678. abdata : array[0..0] of ULONG;
  679. End;
  680. DWORD_BLOB = _DWORD_BLOB;
  681. UP_DWORD_BLOB = ^DWORD_BLOB;
  682. // Frequently used helpers with sized pointers.
  683. _BYTE_SIZEDARR = Record
  684. clsize : ULong;
  685. Data : PByte;
  686. End;
  687. BYTE_SIZEDARR = _BYTE_SIZEDARR;
  688. _SHORT_SIZEDARR = Record
  689. clsize : ULong;
  690. Data : PSHORT;
  691. End;
  692. SHORT_SIZEDARR = _SHORT_SIZEDARR;
  693. _LONG_SIZEDARR = Record
  694. clsize : ULong;
  695. Data : PLONG;
  696. End;
  697. LONG_SIZEDARR = _LONG_SIZEDARR;
  698. HYPER = LONGLONG;
  699. PHYPER = ^HYPER;
  700. _HYPER_SIZEDARR = Record
  701. clsize : ULong;
  702. Data : PHYPER;
  703. End;
  704. HYPER_SIZEDARR = _HYPER_SIZEDARR;
  705. // #########################################################################
  706. //
  707. // CLIPFORMAT
  708. //
  709. userCLIPFORMAT = Record
  710. FContext : Long;
  711. CASE INTEGER OF
  712. 0 : (dwvalue : DWORD);
  713. 1 : (szName : poleStr);
  714. End;
  715. wireCLIPFORMAT = ^userCLIPFORMAT;
  716. // #########################################################################
  717. //
  718. // Good for most of the gdi handles.
  719. _GDI_NONREMOTE = Record
  720. FContext : Long;
  721. Case Integer Of
  722. 0 : (HInProc : Long);
  723. 1 : (HRemote : DWORD_BLOB);
  724. END;
  725. GDI_NONREMOTE = _GDI_NONREMOTE;
  726. // #########################################################################
  727. //
  728. // HGLOBAL
  729. //
  730. // A global may be Null or may be non-NULL with 0 length.
  731. _userHGLOBAL = Record
  732. FContext : Long;
  733. CASE Integer OF
  734. 0 : (hInproc : Long);
  735. 1 : (hRemote : UP_FLAGGED_BYTE_BLOB);
  736. 2 : (hInproc64: int64);
  737. End;
  738. userHGlobal = _userHGLOBAL;
  739. wireHGLOBAL = ^userHGLOBAL;
  740. // #########################################################################
  741. //
  742. // HMETAFILE
  743. //
  744. _userHMETAFILE = Record
  745. fContext : Long;
  746. Case Integer OF
  747. 0 : (hInproc : Long);
  748. 1 : (hRemote : up_byte_blob);
  749. 2 : (hInProc64 : Int64);
  750. End;
  751. userHMETAFILE = _userHMETAFILE;
  752. puserHMETAFILE = ^userHMETAFILE;
  753. // #########################################################################
  754. //
  755. // HMETAFILEPICT
  756. //
  757. _remoteMETAFILEPICT = Record
  758. mm : Long;
  759. xExt : Long;
  760. yExt : Long;
  761. mgf : puserHMETAFILE;
  762. End;
  763. remoteMETAFILEPICT = _remoteMETAFILEPICT;
  764. premoteMETAFILEPICT = ^remoteMETAFILEPICT;
  765. _userHMETAFILEPICT = Record
  766. fContext : Long;
  767. Case Integer OF
  768. 0 : (hInproc : Long);
  769. 1 : (hRemote : premoteMETAFILEPICT);
  770. 2 : (hInProc64 : Int64);
  771. End;
  772. userHMETAFILEPICT = _userHMETAFILEPICT;
  773. // #########################################################################
  774. //
  775. // HENHMETAFILE
  776. //
  777. _userHENHMETAFILE = Record
  778. fContext : Long;
  779. Case Integer OF
  780. 0 : (hInproc : Long);
  781. 1 : (hRemote : up_byte_blob);
  782. 2 : (hInProc64 : Int64);
  783. End;
  784. userHENHMETAFILE = _userHENHMETAFILE;
  785. puserHENHMETAFILE = ^userHENHMETAFILE;
  786. // #########################################################################
  787. //
  788. // HBITMAP
  789. //
  790. // RemHBITMAP was just a byte blob, but the whole bitmap structure was copied
  791. // at the beginning of the buffer.
  792. // So, we take BITMAP fields from wingdi.x
  793. _userBITMAP = Record
  794. bmType,
  795. bmWidth,
  796. bmHeight,
  797. bmWidthBytes : Long;
  798. bmPlanes,
  799. bmBitsPixel : Word;
  800. cvsize : ULONG;
  801. buffer : pbyte;
  802. End;
  803. userBITMAP = _userBITMAP;
  804. puserBITMAP = ^userBITMAP;
  805. _userHBITMAP = Record
  806. fContext : Long;
  807. Case Integer OF
  808. 0 : (hInproc : Long);
  809. 1 : (hRemote : puserBITMAP);
  810. 2 : (hInProc64 : Int64);
  811. End;
  812. userHBITMAP = _userHBITMAP;
  813. puserHBITMAP = ^userHBITMAP;
  814. // #########################################################################
  815. //
  816. // HPALETTE
  817. //
  818. // PALETTEENTRY is in wingdi.x, it is a struct with 4 bytes.
  819. // LOGPALETTE is in wingdi.x, it is a conf struct with paletteentries and
  820. // a version field
  821. _userHpalette = Record
  822. fContext : Long;
  823. Case Integer OF
  824. 0 : (hInproc : Long);
  825. 1 : (hRemote : logpalette);
  826. 2 : (hInProc64 : Int64);
  827. End;
  828. userHpalette = _userHpalette;
  829. puserHpalette = ^userHpalette;
  830. // #########################################################################
  831. //
  832. // Handles passed locally as longs.
  833. //
  834. _RemotableHandle = Record
  835. fContext : Long;
  836. Case Integer OF
  837. 0 : (hInproc : Long);
  838. 1 : (hRemote : Long);
  839. End;
  840. RemotableHandle = _RemotableHandle;
  841. wireHWND = ^RemotableHandle;
  842. wireHMENU = ^RemotableHandle;
  843. wireHACCEL = ^RemotableHandle;
  844. wireHBRUSH = ^RemotableHandle;
  845. wireHFONT = ^RemotableHandle;
  846. wireHDC = ^RemotableHandle;
  847. wireHICON = ^RemotableHandle;
  848. HCursor = HICON;
  849. tagTEXTMETRICW = Record
  850. tmHeight,
  851. tmAscent,
  852. tmDescent,
  853. tmInternalLeading,
  854. tmExternalLeading,
  855. tmAveCharWidth,
  856. tmMaxCharWidth,
  857. tmWeight,
  858. tmOverhang,
  859. tmDigitizedAspectX,
  860. tmDigitizedAspectY : Long;
  861. tmFirstChar,
  862. tmLastChar,
  863. tmDefaultChar,
  864. tmBreakChar : WCHAR;
  865. tmItalic,
  866. tmUnderlined,
  867. tmStruckOut,
  868. tmPitchAndFamily,
  869. tmCharSet : BYTE;
  870. End;
  871. TEXTMETRICW = tagTEXTMETRICW;
  872. PTEXTMETRICW = ^TEXTMETRICW;
  873. LPTEXTMETRICW = PTEXTMETRICW;
  874. wireHBITMAP = ^userHBITMAP;
  875. wireHPALETTE = ^userHPALETTE;
  876. wireHENHMETAFILE = ^userHENHMETAFILE;
  877. wireHMETAFILE = ^userHMETAFILE;
  878. wireHMETAFILEPICT = ^userHMETAFILEPICT;
  879. HMetaFilePict = Pointer;
  880. HLOCAL = HGLOBAL;
  881. // Date = Double;
  882. {****************************************************************************
  883. * Binding Interfaces
  884. ****************************************************************************}
  885. tagBIND_OPTS = Record
  886. cvStruct, // sizeof(BIND_OPTS)
  887. grfFlags,
  888. grfMode,
  889. dwTickCountDeadline : DWord;
  890. End;
  891. TBind_Opts = tagBIND_OPTS;
  892. PBind_Opts = ^TBind_Opts;
  893. tagBIND_OPTS2_CPP = Record
  894. dwTrackFlags,
  895. dwClassContext : Dword;
  896. Locale : LCID;
  897. ServerInfo : pCoServerInfo;
  898. End;
  899. TBind_Opts2_CPP = tagBIND_OPTS2_CPP;
  900. PBind_Opts2_CPP = ^TBind_Opts2_CPP;
  901. tagBind_OPTS2 = Record
  902. cvStruct, // sizeof(BIND_OPTS)
  903. grfFlags,
  904. grfMode,
  905. dwTickCountDeadline : DWord;
  906. dwTrackFlags,
  907. dwClassContext : DWord;
  908. Locale : LCID;
  909. ServerInfo : pCoServerInfo;
  910. End;
  911. TBind_Opts2 = tagBIND_OPTS2;
  912. PBind_Opts2 = ^TBind_Opts2;
  913. // ****************************************************************************
  914. // * Structured Storage Interfaces
  915. // ****************************************************************************
  916. tagSTATSTG = record
  917. pwcsName : POleStr;
  918. dwType : DWord;
  919. cbSize : ULarge_integer;
  920. mtime : TFileTime;
  921. ctime : TFileTime;
  922. atime : TFileTime;
  923. grfMode : DWord;
  924. grfLocksSupported : DWord;
  925. clsid : TCLSID;
  926. grfStateBits : DWord;
  927. reserved : DWord;
  928. end;
  929. TStatStg = tagSTATSTG;
  930. PStatStg = ^TStatStg;
  931. STATSTG = TStatStg;
  932. { TagRemSNB = Record
  933. ulCntStr : ULong;
  934. ulCntChar : ULong;
  935. [size_is(ulCntChar)] OLECHAR rgString[];
  936. End;
  937. RemSNB=TagRemSNB
  938. WireSNB=^RemSNB}
  939. SNB = ^PoleStr;
  940. tagDVTARGETDEVICE = Record
  941. tdSize : DWord;
  942. tdDriverNameOffset,
  943. tdDeviceNameOffset,
  944. tdPortNameOffset,
  945. tdExtDevmodeOffset : Word;
  946. Data : Record End;
  947. End;
  948. DVTARGETDEVICE = TagDVTARGETDEVICE;
  949. PDVTARGETDEVICE = ^tagDVTARGETDEVICE;
  950. LPCLIPFORMAT = ^TCLIPFORMAT;
  951. TCLIPFORMAT = Word;
  952. CLIPFORMAT = TCLIPFORMAT;
  953. PClipFormat = LPCLIPFORMAT;
  954. tagFORMATETC = Record
  955. CfFormat : Word {TCLIPFORMAT};
  956. Ptd : PDVTARGETDEVICE;
  957. dwAspect : DWORD;
  958. lindex : Long;
  959. tymed : DWORD;
  960. End;
  961. FORMATETC = TagFORMATETC;
  962. TFORMATETC = FORMATETC;
  963. LPFORMATETC = ^FORMATETC;
  964. PFormatEtc = LPFORMATETC;
  965. // Stats for data; used by several enumerations and by at least one
  966. // implementation of IDataAdviseHolder; if a field is not used, it
  967. // will be NULL.
  968. tagRemSTGMEDIUM = Record
  969. tymed : DWord;
  970. dwHandleType : DWord;
  971. pData,
  972. pUnkForRelease,
  973. cbData : ULong;
  974. Data : Record end;
  975. End;
  976. RemSTGMEDIUM = TagRemSTGMedium;
  977. TagSTGMEDIUM = Record
  978. Tymed : DWord;
  979. Case Integer Of
  980. 0 : (HBITMAP : hBitmap; PUnkForRelease : Pointer {IUnknown});
  981. 1 : (HMETAFILEPICT : hMetaFilePict );
  982. 2 : (HENHMETAFILE : hEnhMetaFile );
  983. 3 : (HGLOBAL : hGlobal );
  984. 4 : (lpszFileName : LPOLESTR );
  985. 5 : (pstm : Pointer{IStream} );
  986. 6 : (pstg : Pointer{IStorage} );
  987. End;
  988. USTGMEDIUM = TagSTGMEDIUM;
  989. STGMEDIUM = USTGMEDIUM;
  990. TStgMedium = TagSTGMEDIUM;
  991. PStgMedium = ^TStgMedium;
  992. //
  993. // wireSTGMEDIUM
  994. //
  995. // These flags are #defined (not enumerated) in wingdi.
  996. // We need to repeat #defines to avoid conflict in the generated file.
  997. //
  998. _GDI_OBJECT = Record
  999. ObjectType : DWord;
  1000. Case Integer Of
  1001. 0 : (HBitmap : WireHBITMAP);
  1002. 1 : (hPalette: wireHPALETTE);
  1003. 2 : (hGeneric: wireHGLOBAL);
  1004. END;
  1005. GDI_OBJECT = _GDI_OBJECT;
  1006. _userSTGMEDIUM = Record
  1007. tymed : DWORD;
  1008. Case Integer OF
  1009. 0 : (hMetaFilePict : wireHMETAFILEPICT;punkforrelease:Pointer {IUnknown});
  1010. 1 : (hHEnhMetaFile : wireHENHMETAFILE);
  1011. 2 : (hGdiHandle : ^GDI_OBJECT);
  1012. 3 : (HGlobal : wireHGLOBAL);
  1013. 4 : (lpszFileName : LPOLESTR);
  1014. 5 : (pstm : ^BYTE_BLOB);
  1015. 6 : (pstg : ^BYTE_BLOB);
  1016. END;
  1017. userSTGMEDIUM = _userSTGMEDIUM;
  1018. LPSTGMEDIUM = ^STGMEDIUM;
  1019. _userFLAG_STGMEDIUM = Record
  1020. ContextFlags,
  1021. fPassOwnership : Long;
  1022. stgmed : userSTGMEDIUM;
  1023. End;
  1024. userFLAG_STGMEDIUM = _userFLAG_STGMEDIUM;
  1025. wireFLAG_STGMEDIUM = ^userFLAG_STGMEDIUM;
  1026. _FLAG_STGMEDIUM = Record
  1027. ContextFlags,
  1028. fPassOwnership : Long;
  1029. Stgmed : STGMEDIUM;
  1030. End;
  1031. FLAG_STGMEDIUM = _FLAG_STGMEDIUM;
  1032. VARIANTARG = VARIANT;
  1033. LPVARIANT = ^VARIANT;
  1034. LPVARIANTARG = ^VARIANT;
  1035. // parameter description
  1036. tagPARAMDESCEX = Record
  1037. cBytes : ULong; // size of this structure
  1038. varDefaultValue: VariantARG; // default value of this parameter
  1039. End;
  1040. PARAMDESCEX = tagPARAMDESCEX;
  1041. LPPARAMDESCEX = ^PARAMDESCEX;
  1042. tagPARAMDESC = Record
  1043. pparamdescex: LPPARAMDESCEX ; // valid if PARAMFLAG_FHASDEFAULT bit is set
  1044. wParamFlags : UShort ; // IN, OUT, etc
  1045. End;
  1046. PARAMDESC = tagPARAMDESC;
  1047. LPPARAMDESC = ^PARAMDESC;
  1048. tagSAFEARRAYBOUND = Record
  1049. cElements : ULong;
  1050. lLbound : Long;
  1051. End;
  1052. SAFEARRAYBOUND = tagSAFEARRAYBOUND;
  1053. LPSAFEARRAYBOUND = ^SAFEARRAYBOUND;
  1054. tagSAFEARRAY = record
  1055. cDims: USHORT;
  1056. fFeatures: USHORT;
  1057. cbElements: ULONG;
  1058. cLocks: ULONG;
  1059. pvData: PVOID;
  1060. rgsabound: array[0..0] of SAFEARRAYBOUND;
  1061. end;
  1062. TSafeArray = tagSAFEARRAY;
  1063. SAFEARRAY = TSafeArray;
  1064. PSafeArray = ^TSafeArray;
  1065. // additional interface information about the incoming call
  1066. tagINTERFACEINFO = Record
  1067. Unk : Pointer {IUnknown}; // the pointer to the object
  1068. IID : Tiid; // interface id
  1069. wMethod : WORD; // interface method
  1070. End;
  1071. INTERFACEINFO = tagINTERFACEINFO;
  1072. LPINTERFACEINFO = ^INTERFACEINFO;
  1073. RPCOLEDATAREP = ULong;
  1074. tagRPCOLEMESSAGE = Record
  1075. Reserved1 : Pointer;
  1076. DataRepresentation : RPCOLEDATAREP;
  1077. Buffer : Pointer;
  1078. cbBuffer,
  1079. IMethod : ULong;
  1080. Reserved2 : Array[0..4] Of Pointer;
  1081. rpcFlags : ULong;
  1082. End;
  1083. RPCOLEMESSAGE = tagRPCOLEMESSAGE;
  1084. PRPCOLEMESSAGE = ^RPCOLEMESSAGE;
  1085. tagStorageLayout = Record
  1086. LayoutType : Dword;
  1087. pwcsElementName : POleStr;
  1088. cOffset,
  1089. cBytes : Large_Integer;
  1090. End;
  1091. StorageLayout = tagStorageLayout;
  1092. tagSTATDATA = Record
  1093. // field used by:
  1094. FORMATETC : Tformatetc; // EnumAdvise, EnumData (cache), EnumFormats
  1095. advf : DWord; // EnumAdvise, EnumData (cache)
  1096. padvSink : Pointer {IAdviseSink}; // EnumAdvise
  1097. dwConnection: DWord; // EnumAdvise
  1098. End;
  1099. STATDATA = TagStatData;
  1100. LPStatData = ^StatData;
  1101. pARRAYDESC = ^ARRAYDESC;
  1102. pTYPEDESC = ^TYPEDESC;
  1103. tagTYPEKIND = Dword;
  1104. TYPEKIND = tagTYPEKIND;
  1105. INVOKEKIND = Dword;
  1106. tagTYPEDESC = Record
  1107. Case Integer OF
  1108. VT_PTR,
  1109. VT_SAFEARRAY : (lptdesc : PTYPEDESC;vt : VARTYPE);
  1110. VT_CARRAY : (lpadesc : PARRAYDESC);
  1111. VT_USERDEFINED : (hreftype : HREFTYPE);
  1112. End;
  1113. TYPEDESC = tagTYPEDESC;
  1114. tagARRAYDESC = Record
  1115. tdescElem : TYPEDESC; // element type
  1116. cDims : USHORT;
  1117. rgbounds : ARRAY [0..0] OF SAFEARRAYBOUND; // dimension count
  1118. End;
  1119. ARRAYDESC = tagARRAYDESC;
  1120. tagIDLDESC = Record
  1121. dwReserved : pULONG;
  1122. wIDLFlags : USHORT; // IN, OUT, etc
  1123. End;
  1124. IDLDESC = tagIDLDESC;
  1125. LPIDLDESC = ^IDLDESC;
  1126. tagELEMDESC = Record
  1127. tdesc : TYPEDESC;
  1128. case Integer Of
  1129. 0 : (idldesc : IDLDESC);
  1130. 1 : (paramdesc : PARAMDESC);
  1131. END;
  1132. ELEMDESC = tagELEMDESC;
  1133. LPELEMDESC = ^ELEMDESC;
  1134. tagVARDESC = Record
  1135. memId : MEMBERID;
  1136. lpstrSchema : pOleStr;
  1137. CASE Integer OF
  1138. VAR_PERINSTANCE,
  1139. VAR_DISPATCH,
  1140. VAR_STATIC : (oInst : ULong; // offset of variable within the instance
  1141. ElemdescVar : ELEMDESC;
  1142. wVarFlags : WORD;
  1143. varkind : VARKIND);
  1144. VAR_CONST : (lpvarValue : PVARIANT); // the value of the constant
  1145. End;
  1146. VARDESC = tagVARDESC;
  1147. LPVARDESC = ^VARDESC;
  1148. tagDISPPARAMS = Record
  1149. rgvarg : lpVARIANTARG;
  1150. rgdispidNamedArgs : lpDISPID;
  1151. cArgs,
  1152. cNamedArgs : UINT;
  1153. End;
  1154. DISPPARAMS = tagDISPPARAMS;
  1155. TDispParams = tagDISPPARAMS;
  1156. PDispParams = ^TDispParams;
  1157. PExcepInfo = ^TExcepInfo;
  1158. TFNDeferredFillIn = function(info : PExcepInfo): HRESULT;stdcall;
  1159. tagEXCEPINFO = Record
  1160. wCode, // An error code describing the error.
  1161. wReserved : Word;
  1162. Source, // A source of the exception
  1163. Description, // A description of the error
  1164. HelpFile : WideString; // Fully qualified drive, path, and file name
  1165. dwHelpContext : ULONG; // help context of topic within the help file
  1166. // We can use ULONG_PTR here, because EXCEPINFO is marshalled by RPC
  1167. // RPC will marshal pfnDeferredFillIn.
  1168. pvReserved : pointer;
  1169. pfnDeferredFillIn : TFNDeferredFillIn;
  1170. SCODE : scode;
  1171. End;
  1172. EXCEPINFO = tagEXCEPINFO;
  1173. TExcepInfo = tagEXCEPINFO;
  1174. tagTYPEATTR = Record
  1175. GUID : Tguid; // the GUID of the TypeInfo
  1176. LCID : lcid; // locale of member names and doc strings
  1177. dwReserved : DWord;
  1178. memidConstructor, // ID of constructor, MEMBERID_NIL if none
  1179. memidDestructor : MemberID; // ID of destructor, MEMBERID_NIL if none
  1180. lpstrSchema : pOleStr;
  1181. cbSizeInstance : ULong; // the size of an instance of this type
  1182. typekind : TYPEKIND; // the kind of type this typeinfo describes
  1183. cFuncs, // number of functions
  1184. cVars, // number of variables / data members
  1185. cImplTypes, // number of implemented interfaces
  1186. cbSizeVft, // the size of this types virtual func table
  1187. cbAlignment, { specifies the alignment requirements for
  1188. an instance of this type,
  1189. 0 = align on 64k boundary
  1190. 1 = byte align
  1191. 2 = word align
  1192. 4 = dword align... }
  1193. wTypeFlags,
  1194. wMajorVerNum, // major version number
  1195. wMinorVerNum : Word; // minor version number
  1196. tdescAlias : TYPEDESC; { if typekind == TKIND_ALIAS this field
  1197. specifies the type for which this type
  1198. is an alias }
  1199. idldescType : IDLDESC; // IDL attributes of the described type
  1200. END;
  1201. TYPEATTR = tagTYPEATTR;
  1202. LPTYPEATTR = ^TYPEATTR;
  1203. tagTLIBATTR = Record
  1204. GUID : guid;
  1205. LCID : lcid;
  1206. SYSKIND : syskind;
  1207. wMajorVerNum,
  1208. wMinorVerNum,
  1209. wLibFlags : Word
  1210. End;
  1211. TLIBATTR = tagTLIBATTR;
  1212. LPTLIBATTR = ^tagTLIBATTR;
  1213. LPFUNCDESC = ^FUNCDESC;
  1214. tagFUNCDESC = Record
  1215. memid : MEMBERID;
  1216. lprgscode : pSCODE;
  1217. lprgelemdescParam : lpELEMDESC; // array of param types
  1218. FUNCKIND : funckind;
  1219. invkind : INVOKEKIND;
  1220. callconv : CALLCONV;
  1221. cParams,
  1222. cParamsOpt,
  1223. oVft,
  1224. cScodes : SHORT;
  1225. elemdescFunc : ELEMDESC;
  1226. wFuncFlags : WORD;
  1227. End;
  1228. FUNCDESC = tagFUNCDESC;
  1229. tagBINDPTR = Record
  1230. case integer Of
  1231. 0 : (lpfuncdesc : LPFUNCDESC);
  1232. 1 : (lpvardesc : LPVARDESC);
  1233. 2 : (lptcomp : Pointer {ITypeComp} );
  1234. End;
  1235. BINDPTR = tagBINDPTR;
  1236. LPBINDPTR = ^BINDPTR;
  1237. tagCUSTDATAITEM = Record
  1238. GUID : TGuid; // guid identifying this custom data item
  1239. varValue : VARIANTARG; // value of this custom data item
  1240. End;
  1241. CUSTDATAITEM = tagCUSTDATAITEM;
  1242. LPCUSTDATAITEM = ^CUSTDATAITEM;
  1243. tagCUSTDATA = Record
  1244. cCustData : DWord; // number of custom data items in rgCustData
  1245. prgCustData : LPCUSTDATAITEM; // array of custom data items
  1246. End;
  1247. CUSTDATA = tagCUSTDATA;
  1248. LPCUSTDATA = ^CUSTDATA;
  1249. // CURRENCY = CY;
  1250. // Forward interfaces.
  1251. IStream = Interface;
  1252. IMoniker = Interface;
  1253. IEnumMoniker = Interface;
  1254. IEnumString = Interface;
  1255. IRunningObjectTable = Interface;
  1256. IStorage = Interface;
  1257. IEnumSTATSTG = Interface;
  1258. IAdviseSink = Interface;
  1259. IBindCtx = Interface;
  1260. IAsyncManager = Interface;
  1261. ICallFactory = Interface;
  1262. ISynchronize = Interface;
  1263. ITypeLib = Interface;
  1264. // Unknwn.idl
  1265. // IUnknown is in classesh.inc
  1266. AsyncIUnknown = Interface( IUnknown)
  1267. ['{000e0000-0000-0000-C000-000000000046}']
  1268. Function Begin_QueryInterface(Const riid : TIID): HResult; StdCall;
  1269. Function Finish_QueryInterface(Out ppvObject : Pointer):HResult;StdCall;
  1270. Function Begin_AddRef:HResult;StdCall;
  1271. Function Finish_AddRef:ULong;StdCall;
  1272. Function Begin_Release:HResult;StdCall;
  1273. Function Finish_Release:ULong;StdCall;
  1274. End;
  1275. IClassFactory = Interface(IUnknown)
  1276. ['{00000001-0000-0000-C000-000000000046}']
  1277. Function CreateInstance(Const unkOuter:IUnknown;Const riid : TIID;Out vObject):HResult; StdCall;
  1278. Function LockServer(fLock : Bool):HResult;StdCall;
  1279. End;
  1280. // objidl.idl
  1281. {****************************************************************************
  1282. * Component Object Interfaces
  1283. ****************************************************************************}
  1284. IMarshal = Interface(IUnknown)
  1285. ['{00000003-0000-0000-C000-000000000046}']
  1286. Function GetUnmarshalClass ( Const riid: TIID; pv:Pointer; Const dwDestContext:DWord;
  1287. pvDestContext:Pointer; Const mshlflags:DWORD;out LCid : TCLSID ):HResult;Stdcall;
  1288. Function GetMarshalSizeMax ( Const Riid: TIID; {in, unique} pv:Pointer; Const dwDestContext : DWord;
  1289. {in, unique} pvDestContext:Pointer; Const mshlflags : DWord; out pSize : PDWord ): HResult;Stdcall;
  1290. Function MarshalInterface ( Const {in, unique} pStm: IStream; Const riid: TIID; {in, unique} pv:Pointer;
  1291. Const dwDestContext:DWord; {in, unique} pvDestContext:Pointer; Const mshlflags:DWord ): HRESULT;Stdcall;
  1292. Function UnmarshalInterface ( {[in, unique]} Const pStm:IStream; Const riid: TIID;
  1293. out ppv ): HResult;Stdcall;
  1294. Function ReleaseMarshalData ( {[in, unique]} Const Strm: IStream ):HResult;Stdcall;
  1295. Function DisconnectObject ( Const dwReserved:DWord ):HRESULT;Stdcall;
  1296. END;
  1297. IMarshal2 = Interface(IMarshal)
  1298. ['{000001cf-0000-0000-C000-000000000046}']
  1299. End;
  1300. IMalloc = Interface(IUnknown)
  1301. ['{00000002-0000-0000-C000-000000000046}']
  1302. Function Alloc(cb :size_t):Pointer; Stdcall;
  1303. Function Realloc (pv :pointer;cb:size_t):Pointer;stdcall;
  1304. Procedure Free({[in]} pv: pointer); Stdcall;
  1305. Function GetSize(pv:pointer):size_t;stdcall;
  1306. Function DidAlloc(pv:pointer):Longint;stdcall;
  1307. procedure HeapMinimize; stdcall;
  1308. End;
  1309. IMallocSpy = Interface(IUnknown)
  1310. ['{0000001d-0000-0000-C000-000000000046}']
  1311. Function PreAlloc(cbrequest:Size_t):Longint; StdCall;
  1312. function PostAlloc(Pactual:Pointer):Pointer;StdCall;
  1313. Function PreFree(pRequest:Pointer;fSpyed:bool):pointer;StdCall;
  1314. Procedure PostFree(fspyed:Bool);Stdcall;
  1315. Function PreRealloc(pRequest:Pointer;cbRequest:Size_t;Out ppNewRequest:Pointer;
  1316. fSpyed:Bool):Size_t;Stdcall;
  1317. Function PostRealloc(pactual:Pointer;fspyed:Bool):pointer;Stdcall;
  1318. Function PreGetSize(pRequest:pointer;fSpyed:Bool):Pointer;StdCall;
  1319. Function PostGetSize(cbactual:Size_t;fSpyed:Bool):Size_t;StdCall;
  1320. Function PreDidAlloc(pRequest:pointer;fSpyed:Bool):pointer;stdcall;
  1321. Function PostDidAlloc(pRequest:pointer;fSpyed:Bool;Factual:Longint):pointer;stdcall;
  1322. Procedure PreHeapMinimize;StdCall;
  1323. Procedure PostHeapMinimize;StdCall;
  1324. End;
  1325. IStdMarshalInfo = Interface(IUnknown)
  1326. ['{00000018-0000-0000-C000-000000000046}']
  1327. Function GetClassForHandler (dwDestContext : DWord;pvDestContext:pointer;out Clsid : Pclsid ):HResult;Stdcall;
  1328. End;
  1329. IExternalConnection = Interface(IUnknown)
  1330. ['{00000019-0000-0000-C000-000000000046}']
  1331. Function AddConnection (ExtConn: DWord; Reserved: DWord):DWord;Stdcall;
  1332. Function ReleaseConnection(extconn: DWord; Reserved: Dword;FLastReleaseCloses: Bool):DWord;StdCall;
  1333. End;
  1334. IMultiQI = Interface(IUnknown)
  1335. ['{00000020-0000-0000-C000-000000000046}']
  1336. //if (__midl >= 500)
  1337. // async_uuid(000e0020-0000-0000-C000-000000000046)
  1338. //endif
  1339. Function QueryMultipleInterfaces(cMQIs:Ulong;pMQIs:pMultiQI):HResult;StdCall;
  1340. END;
  1341. IInternalUnknown=Interface(IUnknown)
  1342. ['{00000021-0000-0000-C000-000000000046}']
  1343. Function QueryInternalInterface(riid:TIID;Out ppv:Pointer):HResult;StdCall;
  1344. END;
  1345. IEnumUnknown = Interface(IUnknown)
  1346. ['{00000100-0000-0000-C000-000000000046}']
  1347. // pointer_default(unique)
  1348. Function Next(Celt:Ulong;out rgelt:IUnknown;out pCeltFetched:pulong):HRESULT;StdCall;
  1349. // HRESULT RemoteNext( [in] ULONG celt, [out, size_is(celt), length_is( *pceltFetched)] IUnknown **rgelt, [out] ULONG *pceltFetched);
  1350. Function Skip(Celt:Ulong):HResult;StdCall;
  1351. Function Reset():HResult;
  1352. Function Close(Out ppenum: IEnumUnknown):HResult;
  1353. END;
  1354. IBindCtx = Interface (IUnknown)
  1355. ['{0000000e-0000-0000-C000-000000000046}']
  1356. Function RegisterObjectBound(Const punk:IUnknown):HResult; stdCall;
  1357. Function RevokeObjectBound (Const Punk:IUnknown):HResult; stdCall;
  1358. Function ReleaseBoundObjects :HResult; StdCall;
  1359. Function SetBindOptions(Const bindOpts:TBind_Opts):HResult; stdCall;
  1360. // Function RemoteSetBindOptions(Const bind_opts: TBind_Opts2):HResult;StdCall;
  1361. Function GetBindOptions(var BindOpts:TBind_Opts):HResult; stdCall;
  1362. // Function RemoteGetBindOptions(Var bind_opts: TBind_Opts2):HResult;StdCall;
  1363. Function GetRunningObjectTable(Out rot : IRunningObjectTable):Hresult; StdCall;
  1364. Function RegisterObjectParam(Const pszkey:LPOleStr;const punk:IUnknown):HResult;
  1365. Function GetObjectParam(Const pszkey:LPOleStr; out punk: IUnknown):HResult; StdCall;
  1366. Function EnumObjectParam (out enum:IEnumString):Hresult;StdCall;
  1367. Function RevokeObjectParam(pszKey:LPOleStr):HResult;StdCall;
  1368. End;
  1369. IEnumMoniker = Interface (IUnknown)
  1370. ['{00000102-0000-0000-C000-000000000046}']
  1371. Function Next(celt:ULong; out Elt;out celftfetched: ULong):HResult; StdCall;
  1372. // Function RemoteNext(Celt:ULong; Out rgelt;out celtfetched :ULong):Hresult; StdCall;
  1373. Function Skip(celt:Ulong):HResult; StdCall;
  1374. Function Reset:HResult; StdCall;
  1375. Function Close(out penum:IEnumMoniker):HResult;StdCall;
  1376. End;
  1377. IRunnableObject = Interface(IUnknown)
  1378. ['{00000126-0000-0000-C000-000000000046}']
  1379. Function GetRunningClass(Out clsid:Tclsid):Hresult; StdCall;
  1380. Function Run(Const pb: IBindCtx):HResult; StdCall;
  1381. Function IsRunning:Bool; StdCall;
  1382. // Function RemoteIsRunning:Bool; StdCall;
  1383. Function LockRunning(FLock,FLastUnlockClose:BOOL):HResult; StdCall;
  1384. Function SetContainedObject(fContained:Bool):Hresult;Stdcall;
  1385. End;
  1386. IRunningObjectTable = Interface (IUnknown)
  1387. ['{00000010-0000-0000-C000-000000000046}']
  1388. Function Register (grfFlags :DWord;const unkobject:IUnknown;Const mkObjectName:IMoniker;Out dwregister:DWord):HResult;StdCall;
  1389. Function Revoke (dwRegister:DWord):HResult; StdCall;
  1390. Function IsRunning (Const mkObjectName: IMoniker):HResult;StdCall;
  1391. Function GetObject (Const mkObjectName: IMoniker; Out punkObject:IUnknown):HResult; StdCall;
  1392. Function NoteChangeTime(dwRegister :DWord;Const FileTime: TFileTime):HResult;StdCall;
  1393. Function GetTimeOfLastChange(Const mkObjectName:IMoniker;Out filetime:TFileTime):HResult; StdCall;
  1394. Function EnumRunning (Out enumMoniker: IEnumMoniker):HResult; StdCall;
  1395. End;
  1396. IPersist = Interface (IUnknown)
  1397. ['{0000010c-0000-0000-C000-000000000046}']
  1398. Function GetClassId(clsid:TClsId):HResult; StdCall;
  1399. End;
  1400. IPersistStream = Interface(IPersist)
  1401. ['{00000109-0000-0000-C000-000000000046}']
  1402. Function IsDirty:HResult; StdCall;
  1403. Function Load(Const stm: IStream):HResult; StdCall;
  1404. Function Save(Const stm: IStream;fClearDirty:Bool):HResult;StdCall;
  1405. Function GetSizeMax(Out cbSize:ULarge_Integer):HResult; StdCall;
  1406. End;
  1407. PIMoniker = ^IMoniker;
  1408. IMoniker = Interface (IPersistStream)
  1409. ['{0000000f-0000-0000-C000-000000000046}']
  1410. Function BindToObject (const pbc:IBindCtx;const mktoleft:IMoniker; RiidResult:TIID;Out vresult):HResult;StdCall;
  1411. // Function RemoteBindToObject (const pbc:IBindCtx;const mktoleft:IMoniker;RiidResult:TIID;Out vresult):HResult;StdCall;
  1412. Function BindToStorage(Const Pbc:IBindCtx;Const mktoLeft:IMoniker; Riid:TIID;Out vobj):HResult; StdCall;
  1413. // Function RemoteBindToStorage(Const Pbc:IBindCtx;Const mktoLeft:IMoniker; Riid:TIID;Out vobj):HResult; StdCall;
  1414. Function Reduce (const pbc:IBindCtx; dwReduceHowFar:DWord; mktoLeft: PIMoniker; Out mkReduced:IMoniker):HResult; StdCall;
  1415. Function ComposeWith(Const MkRight:IMoniker;fOnlyIfNotGeneric:BOOL; OUT mkComposite:IMoniker):HResult; StdCall;
  1416. Function Enum(fForward:Bool;Out enumMoniker:IEnumMoniker):HResult;StdCall;
  1417. Function IsEqual(Const mkOtherMoniker:IMoniker):HResult;StdCall;
  1418. Function Hash (Out dwHash:Dword):HResult;StdCall;
  1419. Function IsRunning(Const bc:IBindCtx;Const MkToLeft:IMoniker;Const mknewlyRunning:IMoniker):HResult;StdCall;
  1420. Function GetTimeOfLastChange(Const bc:IBindCtx;Const mkToLeft:IMoniker; out ft : FileTime):HResult; StdCall;
  1421. Function Inverse(out mk : IMoniker):HResult; StdCall;
  1422. Function CommonPrefixWith (Const mkOther:IMoniker):HResult; StdCall;
  1423. Function RelativePathTo(Const mkother:IMoniker; Out mkRelPath : IMoniker):HResult;StdCall;
  1424. Function GetDisplayName(Const bc:IMoniker;const mktoleft:IMoniker;Out szDisplayName: pOleStr):HResult; StdCall;
  1425. Function ParseDisplayName(Const bc:IBindCtx;Const mkToLeft:IMoniker;szDisplayName:POleStr;out cheaten:ULong;out mkOut:IMoniker):HResult; StdCall;
  1426. Function IsSystemMonitor(Out dwMkSys:DWord):HResult;StdCall;
  1427. End;
  1428. IROTData = Interface (IUnknown)
  1429. ['{f29f6bc0-5021-11ce-aa15-00006901293f}']
  1430. Function GetComparisonData(out data; cbMax:ULong;out cbData:ULong):HResult;StdCall;
  1431. End;
  1432. IEnumString = Interface (IUnknown)
  1433. ['{00000101-0000-0000-C000-000000000046}']
  1434. Function Next(Celt:ULong;Out xcelt;Out Celtfetched:ULong):HResult; StdCall;
  1435. // Function RemoteNext(Celt:ULong; Out celt;Out Celtfetched:ULong):HResult; StdCall;
  1436. Function Skip (Celt:ULong):Hresult;StdCall;
  1437. Function Reset:HResult;StdCall;
  1438. Function Clone(Out penum:IEnumString):HResult;StdCall;
  1439. End;
  1440. ISequentialStream = interface(IUnknown)
  1441. ['{0c733a30-2a1c-11ce-ade5-00aa0044773d}']
  1442. function Read(pv : Pointer;cb : DWord;pcbRead : PDWord) : HRESULT;stdcall;
  1443. function Write(pv : Pointer;cb : DWord;pcbWritten : PDWord): HRESULT;stdcall;
  1444. end;
  1445. IStream = interface(ISequentialStream)
  1446. ['{0000000C-0000-0000-C000-000000000046}']
  1447. function Seek(dlibMove : Large_integer; dwOrigin: Longint;
  1448. out libNewPosition : Large_Integer): HResult; stdcall;
  1449. function SetSize(libNewSize : Large_Integer) : HRESULT;stdcall;
  1450. function CopyTo(stm: IStream;cb : Large_Integer;out cbRead : Large_Integer;
  1451. out cbWritten: Large_Integer) : HRESULT;stdcall;
  1452. function Commit(grfCommitFlags : Longint) : HRESULT; stdcall;
  1453. function Revert : HRESULT; stdcall;
  1454. function LockRegion(libOffset : Large_Integer;cb : Large_Integer;
  1455. dwLockType: Longint) : HRESULT;stdcall;
  1456. function UnlockRegion(libOffset: Large_Integer;cb: Large_Integer;
  1457. dwLockType: Longint) : HRESULT;stdcall;
  1458. Function Stat(out statstg : TStatStg; grfStatFlag: Longint): HRESULT;stdcall;
  1459. function Clone(out stm : IStream) : HRESULT; stdcall;
  1460. end;
  1461. IEnumSTATSTG = Interface (IUnknown)
  1462. ['{0000000d-0000-0000-C000-000000000046}']
  1463. Function Next (Celt:ULong;Out xcelt;pceltfetched : PUlong):HResult; StdCall;
  1464. // Function RemoteNext(Celt:Ulong; Out Celt;pceltfetched : PUlong);
  1465. Function Skip(Celt:ULong):HResult; StdCall;
  1466. Function Reset:HResult; StdCall;
  1467. Function Clone(Out penum:IEnumStatSTG):HResult; StdCall;
  1468. End;
  1469. IStorage = Interface (IUnknown)
  1470. ['{0000000b-0000-0000-C000-000000000046}']
  1471. Function CreateStream(pwcsname:POleStr;GrfMode,Reserved1,Reserved2 : DWord; Out stm : IStream):HResult; StdCall;
  1472. Function OpenStream(pwcsname:POleStr;Reserved1:Pointer;GrfMode,Reserved2 : DWord; Out stm : IStream):HResult; StdCall;
  1473. // Function RemouteOpenStream(pwcsname:POleStr;cbReserved1:ULong;reserved1:pbyte;GrfMode,Reserved2 : DWord; Out stm : IStream):HResult; StdCall;
  1474. Function CreateStorage(pwcsname:POleStr;GrfMode,Reserved1,Reserved2 : DWord; Out stm : IStorage):HResult; StdCall;
  1475. Function OpenStorage(pwcsname:POleStr;Const stgPriority:IStorage;grfmode : DWord;Const SNBExclude :SNB;reserved:DWord;Out stm : IStorage):HResult; StdCall;
  1476. Function CopyTo(ciidExclude:DWord; rgiidexclude:piid; const snbexclude:SNB;const pstg : IStorage):HResult;StdCall;
  1477. Function MoveElementTo(wcsName:POleStr;Const pstgDest : IStorage;
  1478. wcvsNewName:POleStr; GrfFlags:DWord):Hresult; StdCall;
  1479. Function Commit(grfCommitFlags:Dword):Hresult; StdCall;
  1480. Function Revert:HResult; StdCall;
  1481. Function EnumElements(Reserved1 :Dword;Reserved2:Pointer;Reserved3:DWord;Out penum:IEnumStatStg):HResult;StdCall;
  1482. Function RemoteEnumElements(Reserved1 :Dword;cbReserved2:ULong;Reserved2:pbyte;reserved3:DWord;Out penum:IEnumStatStg):HResult;StdCall;
  1483. Function DestroyElement(wcsName: POleStr):HResult;StdCall;
  1484. Function RenameElement(wcsoldName: POleStr;wcsnewName: POleStr):HResult;StdCall;
  1485. Function SetElementTimes(wcsName:POleStr; Const pctime,patime,pmtime : FileTime):HResult;StdCall;
  1486. Function SetClass(Const ClasId: TClsID):HResult;StdCall;
  1487. Function SetStateBits(grfStateBits:DWord;grfMask:DWord):HResult;StdCall;
  1488. Function Stat(Out pStatStg:StatStg;grfStatFlag:DWord):HResult;StdCall;
  1489. End;
  1490. IPersistFile = Interface (IPersist)
  1491. ['{0000010b-0000-0000-C000-000000000046}']
  1492. Function IsDirty:HResult;StdCall;
  1493. Function Load(FileName:POleStr;dwMode:DWord):HResult;StdCall;
  1494. Function Save(FileName:POleStr;fremember:Bool):HResult;StdCall;
  1495. Function SaveCompleted(FileName:POleStr):HResult;StdCall;
  1496. Function GetCurFIle(Out FileName:POleStr):HResult;StdCall;
  1497. End;
  1498. IPersistStorage = Interface (IPersist)
  1499. ['{0000010a-0000-0000-C000-000000000046}']
  1500. Function IsDirty:HResult;StdCall;
  1501. Function InitNew(const pstg:IStorage):HResult;StdCall;
  1502. Function Load(const pstg:IStorage):HResult;StdCall;
  1503. Function Save(const pstg:IStorage;FSameAsLoad:Boolean):HResult;StdCall;
  1504. Function SaveCompleted(const pstg:IStorage):HResult;StdCall;
  1505. Function HandsOffStorage:HResult;StdCall;
  1506. End;
  1507. ILockBytes = Interface (IUnknown)
  1508. ['{0000000a-0000-0000-C000-000000000046}']
  1509. Function ReadAt(ulOffset:ULarge_Integer;pv:Pointer;cb:Ulong; Out pcbRead:ULong):HResult; StdCall;
  1510. // Function RemoteReadAt(ulOffset:ULarge_Integer;pv:Pointer;cb:Ulong; Out pcbRead:ULong):HResult; StdCall;
  1511. Function WriteAt(ulOffset:ULarge_Integer;pv:Pointer;cb:Ulong; Out pcbWritten:ULong):HResult; StdCall;
  1512. // Function RemoteWriteAt(ulOffset:ULarge_Integer;pv:Pointer;cb:Ulong; Out pcbWritten:ULong):HResult; StdCall;
  1513. Function Flush:HResult;StdCall;
  1514. Function SetSize(cb:ULarge_Integer):HResult;StdCall;
  1515. Function LockRegion(LibOffSet:ULarge_Integer;cb:ULarge_Integer;dwLockType:DWord):HResult;StdCall;
  1516. Function UnlockRegion(LibOffSet:ULarge_Integer;cb:ULarge_Integer;dwLockType:DWord):HResult;StdCall;
  1517. Function Stat(Out pstatstg:STATSTG;grfstatFlag:DWord):HResult;StdCall;
  1518. End;
  1519. IEnumFORMATETC = Interface (IUnknown)
  1520. ['{00000103-0000-0000-C000-000000000046}']
  1521. Function Next(Celt:ULong;Out Rgelt:FormatEtc;Out pceltFetched:ULong):HResult; StdCall;
  1522. // Function RemoteNext(Celt:ULong;Out Rgelt:FormatEtc;Out pceltFetched:ULong):HResult; StdCall;
  1523. Function Skip(Celt:ULong):HResult;StdCall;
  1524. Function Reset:HResult;StdCall;
  1525. Function Clone(out penum:IEnumFORMATETC):HResult;StdCall;
  1526. End;
  1527. IEnumSTATDATA = Interface (IUnknown)
  1528. ['{00000105-0000-0000-C000-000000000046}']
  1529. Function Next(Celt:ULong;Out Rgelt:statdata;Out pceltFetched:ULong):HResult; StdCall;
  1530. // Function RemoteNext(Celt:ULong;Out Rgelt:statdata;Out pceltFetched:ULong):HResult; StdCall;
  1531. Function Skip(Celt:ULong):HResult;StdCall;
  1532. Function Reset:HResult;StdCall;
  1533. Function Clone(out penum:IEnumstatdata):HResult;StdCall;
  1534. End;
  1535. IRootStorage = Interface (IUnknown)
  1536. ['{00000012-0000-0000-C000-000000000046}']
  1537. Function SwitchToFile(pszfile:PoleStr):HResult;StdCall;
  1538. End;
  1539. IAdviseSink = Interface (IUnknown)
  1540. ['{0000010f-0000-0000-C000-000000000046}']
  1541. {$ifdef midl500} ['{00000150-0000-0000-C000-000000000046}'] {$endif}
  1542. Procedure OnDataChange (Const pformatetc : Formatetc;const pstgmed : STGMEDIUM); StdCall;
  1543. Procedure OnViewChange (dwAspect : DWord; lindex : Long); StdCall;
  1544. Procedure OnRename (Const pmk : IMoniker); StdCall;
  1545. Procedure OnSave; StdCall;
  1546. Procedure OnClose; StdCall;
  1547. End;
  1548. IAdviseSink2 = Interface (IAdviseSink)
  1549. ['{00000125-0000-0000-C000-000000000046}']
  1550. Procedure OnLinkSrcChange(Const Pmk: IMoniker); StdCall;
  1551. End;
  1552. IDataObject = Interface (IUnknown)
  1553. ['{0000010e-0000-0000-C000-000000000046}']
  1554. Function GetData(Const formatetcIn : FORMATETC;Out medium : STGMEDIUM):HRESULT; STDCALL;
  1555. Function GetDataHere(CONST pformatetc : FormatETC; Out medium : STGMEDIUM):HRESULT; STDCALL;
  1556. Function QueryGetData(const pformatetc : FORMATETC):HRESULT; STDCALL;
  1557. Function GetCanonicalFormatTEtc(const pformatetcIn : FORMATETC;Out pformatetcOut : FORMATETC):HResult; STDCALl;
  1558. Function SetData (Const pformatetc : FORMATETC;const medium:STGMEDIUM;FRelease : BOOL):HRESULT; StdCall;
  1559. Function EnumFormatEtc(dwDirection : DWord; OUT enumformatetcpara : IENUMFORMATETC):HRESULT; StdCall;
  1560. Function DAdvise(const formatetc : FORMATETC;advf :DWORD; CONST AdvSink : IAdviseSink;OUT dwConnection:DWORD):HRESULT;StdCall;
  1561. Function DUnadvise(dwconnection :DWord) :HRESULT;StdCall;
  1562. Function EnumDAvise(Out enumAdvise : IEnumStatData):HResult;StdCall;
  1563. End;
  1564. IDataAdviseHolder = Interface (IUnknown)
  1565. ['{00000110-0000-0000-C000-000000000046}']
  1566. Function Advise (CONST pdataObject : IDataObject;CONST fetc:FORMATETC;advf : DWORD;Const pAdvise:IAdviseSink;Out DwConnection:DWord):HResult; StdCall;
  1567. Function Unadvise (dwConnection:Dword):HResult; StdCall;
  1568. Function EnumAdvise(out penumAdvise : IEnumStatData):HResult;StdCall;
  1569. Function SendOnDataChange(const pDataObject :IDataObject;DwReserved,advf : DWord):HResult; StdCall;
  1570. End;
  1571. IMessageFilter = Interface (IUnknown)
  1572. ['{00000016-0000-0000-C000-000000000046}']
  1573. Function HandleInComingCall(dwCallType :DWord;htaskCaller : HTASK; dwTickCount: DWORD;CONST sinterfaceinfo:InterfaceInfo):DWord; StdCall;
  1574. Function RetryRejectedCall (htaskCallee:HTASK; dwTickCount : DWord; dwRejectType : Dword):DWord; StdCall;
  1575. Function MessagePending (htaskCallee:HTASK; dwTickCount : DWord; dwPendingType : Dword):DWord; StdCall;
  1576. End;
  1577. //****************************************************************************
  1578. //* Object Remoting Interfaces
  1579. //****************************************************************************
  1580. IRpcChannelBuffer = Interface (IUnknown)
  1581. ['{D5F56B60-593B-101A-B569-08002B2DBF7A}']
  1582. Function GetBuffer (Const pMesasge : RPCOLEMESSAGE;Const riid :TIId):HResult; StdCall;
  1583. Function SendReceive(Var pMessage : RPCOLEMESSAGE; Out PStatus : ULong):HResult; StdCall;
  1584. Function FreeBuffer(Const pMessage : RPCOLEMESSAGE):HResult; StdCall;
  1585. Function GetDestCTX(Out dwDestContext : DWord;Out pvDestContext : Pointer):HResult; StdCall;
  1586. Function IsConnected:HResult; StdCall;
  1587. End;
  1588. IRpcChannelBuffer2 = Interface (IRpcChannelBuffer)
  1589. ['{594f31d0-7f19-11d0-b194-00a0c90dc8bf}']
  1590. Function GetProtocolVersion(Var dwVersion : DWord):HResult; StdCall;
  1591. End;
  1592. IAsyncRpcChannelBuffer = Interface (IRpcChannelBuffer2)
  1593. ['{a5029fb6-3c34-11d1-9c99-00c04fb998aa}']
  1594. Function Send(Var Msg: RPCOLEMESSAGE;Const pSync : ISynchronize;Out PulStatus : ULong):HResult; StdCall;
  1595. Function Receive(Var Msg: RPCOLEMESSAGE;Out PulStatus : ULong):HResult; StdCall;
  1596. Function GetDestCTXEx(Out MSG : RPCOLEMESSAGE;Out vDestContext : DWord;Out pvDestContext : Pointer ):HResult;StdCall;
  1597. End;
  1598. IRpcChannelBuffer3 = Interface (IRpcChannelBuffer2)
  1599. ['{25B15600-0115-11d0-BF0D-00AA00B8DFD2}']
  1600. Function Send(Var msg : RPCOLEMESSAGE;Out ulStatus : ULONG):HResult; StdCall;
  1601. Function Receive(Var msg : RPCOLEMESSAGE;ulSize : ULong;Out ulStatus : ULONG):HResult; StdCall;
  1602. Function Cancel (Const msg : RPCOLEMESSAGE):HResult; StdCall;
  1603. Function GetCallContext(Const msg : RPCOLEMESSAGE; Const riid : TIID; Out pInterface : Pointer):HResult; StdCall;
  1604. Function GetDestCTXEx(Const Msg : RPCOLEMESSAGE;Out vDestContext : DWord;Out pvDestContext : Pointer ):HResult;StdCall;
  1605. Function GetState(Const Msg : RPCOLEMESSAGE;Out State: DWord):HResult;StdCall;
  1606. Function RegisterAsync(Const Msg : RPCOLEMESSAGE;Const asyncmgr : IAsyncManager):HResult;StdCall;
  1607. End;
  1608. IRpcSyntaxNegotiate = Interface (IUnknown)
  1609. ['{58a08519-24c8-4935-b482-3fd823333a4f}']
  1610. Function NegotiateSyntax ( Var msg : RPCOLEMESSAGE):HResult; StdCall;
  1611. End;
  1612. IRpcProxyBuffer = Interface (IUnknown)
  1613. ['{D5F56A34-593B-101A-B569-08002B2DBF7A}']
  1614. Function Connect(Const rpcchannelbuffer : IRpcChannelBuffer):HResult; StdCall;
  1615. Procedure Disconnect;
  1616. End;
  1617. IRpcStubBuffer = Interface (IUnknown)
  1618. ['{D5F56AFC-593B-101A-B569-08002B2DBF7A}']
  1619. Function COnnect ( Const UnkServer : IUnknown):HResult; StdCall;
  1620. Procedure Disconnect; StdCall;
  1621. Function Invoke(Const rpcmsg : RPCOLEMESSAGE;Const RpcChanBuf : IRpcChannelBuffer):HResult; StdCall;
  1622. Function IsIIDSupported (Const riid : TIID):Pointer {IRpcStubBuffer}; StdCall;
  1623. Function CountRefs :ULong; StdCall;
  1624. Function DebugServerQueryInterface(CONST pv : Pointer):HResult; StdCall;
  1625. Procedure DebugServerRelease (pv : Pointer); StdCall;
  1626. End;
  1627. IPSFactoryBuffer = Interface (IUnknown)
  1628. ['{D5F569D0-593B-101A-B569-08002B2DBF7A}']
  1629. Function CreateProxy(Const UnkOuter : IUnknown;const riid : TIID; Out proxy: IRpcProxyBuffer; Out Pv :Pointer):HResult; StdCall;
  1630. Function CreateStub (Const riid : TIID; Const UnkServer : IUnknown; Out pstub : IRpcStubBuffer):HResult; StdCall;
  1631. End;
  1632. {$ifdef NT4_greater_Or_DCOM}
  1633. // This interface is only valid on Windows NT 4.0
  1634. // This structure contains additional data for hooks. As a backward
  1635. // compatability hack, the entire structure is passed in place of the
  1636. // RIID parameter on all hook methods. Thus the IID must be the first
  1637. // parameter. As a forward compatability hack the second field is the
  1638. // current size of the structure.
  1639. SChannelHookCallInfo= Record;
  1640. IID : iid;
  1641. cbSize : Dword;
  1642. uCausality : GUID;
  1643. dwServerPid,
  1644. iMethod : DWord;
  1645. pObject : Pointer;
  1646. End;
  1647. IChannelHook = Interface (IUnknown)
  1648. ['{1008c4a0-7613-11cf-9af1-0020af6e72f4}']
  1649. Procedure ClientGetSize(Const uExtent : TGuid; CONST riid : TIID; Out datasize :ULong); StdCall;
  1650. Procedure ClientFillBuffer(Const uExtent : TGuid; CONST riid : TIID; Var datasize :ULong;Buffer :Pointer); StdCall;
  1651. Procedure ClientNotify(Const uExtent : TGuid; CONST riid : TIID; datasize :ULong;Buffer :Pointer;hrfault:HResult); StdCall;
  1652. Procedure ServerNotify(Const uExtent : TGuid; CONST riid : TIID; datasize :ULong;Buffer :Pointer;DataRep:DWord); StdCall;
  1653. Procedure ServerGetSize(Const uExtent : TGuid; CONST riid : TIID;hrFault :HResult; Out datasize :ULong); StdCall;
  1654. Procedure ServerFillBuffer(Const uExtent : TGuid; CONST riid : TIID; Var datasize :ULong;Buffer :Pointer;HrFault:HResult); StdCall;
  1655. End;
  1656. {$Endif}
  1657. // Well-known Property Set Format IDs
  1658. //FMTID_SummaryInformation = {CONST} FMTID;
  1659. //FMTID_DocSummaryInformation = {CONST} FMTID;
  1660. //FMTID_UserDefinedProperties = {CONST} FMTID;
  1661. //FMTID_DiscardableInformation = {CONST} FMTID;
  1662. //FMTID_ImageSummaryInformation = {CONST} FMTID;
  1663. //FMTID_AudioSummaryInformation = {CONST} FMTID;
  1664. //FMTID_VideoSummaryInformation = {CONST} FMTID;
  1665. //FMTID_MediaFileSummaryInformation = {CONST} FMTID;
  1666. //****************************************************************************
  1667. // * Connection Point Interfaces
  1668. // ****************************************************************************/
  1669. //#ifdef __INCLUDE_CPIFS
  1670. IConnectionPointContainer = Interface;
  1671. //interface IConnectionPoint;
  1672. //interface IEnumConnections;
  1673. IEnumConnectionPoints = Interface;
  1674. IEnumConnections = Interface;
  1675. IConnectionPoint = Interface (IUnknown)
  1676. ['{B196B286-BAB4-101A-B69C-00AA00341D07}']
  1677. Function GetConnectionInterface(out piid : TIID):HResult;StdCall;
  1678. Function GetConnectionPointContainer(CPC : IConnectionPointContainer):HResult;StdCall;
  1679. Function Advise(unkSink : IUnknown;Out dwCookie : DWord):HResult;StdCall;
  1680. Function UnAdvise(dwCookie : DWord):HResult;StdCall;
  1681. Function EnumConnection(out pEnum : IEnumConnections):HResult;stdCall;
  1682. End;
  1683. IConnectionPointContainer = Interface (IUnknown)
  1684. ['{B196B284-BAB4-101A-B69C-00AA00341D07}']
  1685. Function EnumConnectionPoints(out pEnum : IEnumConnectionPoints):HResult;StdCall;
  1686. Function FindConnectionPoint(Const RIID : TIID;Out ppcp : IConnectionPoint):HResult;StdCall;
  1687. End;
  1688. tagCONNECTDATA = Record
  1689. unk : Pointer; {IUnknown}
  1690. dwCookie : DWord;
  1691. End;
  1692. ConnectData = tagCONNECTDATA;
  1693. IEnumConnections = Interface (IUnknown)
  1694. ['{B196B287-BAB4-101A-B69C-00AA00341D07}']
  1695. Function Next(cConnections : ULong; Out rgcd : ConnectData;Out lpcFetched : ULong):HResult;StdCall;
  1696. Function Skip(cConnections : ULong):HResult;StdCall;
  1697. Function Reset:HResult;StdCall;
  1698. Function Clone(Out pEnum : IEnumConnections):HResult; StdCall;
  1699. End;
  1700. IEnumConnectionPoints = Interface (IUnknown)
  1701. ['{B196B285-BAB4-101A-B69C-00AA00341D07}']
  1702. Function Next(cConnections : ULong; Out rgpcm : IConnectionPoint;Out lpcFetched : ULong):HResult;StdCall;
  1703. Function Skip(cConnections : ULong):HResult;StdCall;
  1704. Function Reset:HResult;StdCall;
  1705. Function Clone(Out pEnum : IEnumConnectionPoints):HResult;StdCall;
  1706. End;
  1707. tagSOLE_AUTHENTICATION_SERVICE = Record
  1708. dwAuthnSvc,
  1709. dwAuthzSvc : DWord;
  1710. pPrincipalName : POleStr;
  1711. hr : HResult;
  1712. End;
  1713. SOLE_AUTHENTICATION_SERVICE = tagSOLE_AUTHENTICATION_SERVICE;
  1714. PSOLE_AUTHENTICATION_SERVICE = ^SOLE_AUTHENTICATION_SERVICE;
  1715. tagSOLE_AUTHENTICATION_INFO = Record
  1716. dwAuthnSvc,
  1717. dwAuthzSvc : DWord;
  1718. AuthInfo : Pointer;
  1719. End;
  1720. SOLE_AUTHENTICATION_INFO = tagSOLE_AUTHENTICATION_INFO;
  1721. PSOLE_AUTHENTICATION_INFO = ^SOLE_AUTHENTICATION_INFO;
  1722. tagSOLE_AUTHENTICATION_LIST = Record
  1723. cAuthInfo : DWord;
  1724. AuthInfo : PSOLE_AUTHENTICATION_INFO;
  1725. End;
  1726. SOLE_AUTHENTICATION_LIST = tagSOLE_AUTHENTICATION_LIST;
  1727. PSOLE_AUTHENTICATION_LIST = ^SOLE_AUTHENTICATION_LIST;
  1728. {$ifdef WINNT_DCOM}
  1729. IClientSecurity = Interface (IUnknown)
  1730. ['{0000013D-0000-0000-C000-000000000046}']
  1731. Function QueryBlanket (Proxy : IUnknown;Out AuthnSvc,AuthzSvc : Dword;Out ServerPrincName:pOleStr;Out AuthnLevel,ImpLevel:Dword; Out AuthInfo : Pointer; Out Capabilities : Dword):HResult;StdCall;
  1732. Function SetBlanket (Proxy : IUnknown;AuthnSvc,AuthzSvc : Dword;ServerPrincName:pOleStr;AuthnLevel,ImpLevel:Dword;AuthInfo : Pointer;Capabilities : Dword):HResult;StdCall;
  1733. Function CopyProxy (Proxy : IUnknown;Out pcopy:IUnknown):HResult;StdCall;
  1734. End;
  1735. IServerSecurity = Interface (IUnknown)
  1736. ['{0000013E-0000-0000-C000-000000000046}']
  1737. Function QueryBlanket ( out authnSvc,AuthzSvc : DWord; Out pServerPrincName : pOleStr; Out AuthnLevel, ImpLevel; :DWord; out Privs : Pointer; Var Capabilities :DWord):HResult;StdCall;
  1738. Function ImpersonateClient:HResult;StdCall;
  1739. Function RevertToSelf:HResult;StdCall;
  1740. Function IsImpersonating:Bool;StdCall;
  1741. End;
  1742. IClassActivator = Interface (IUnknown)
  1743. ['{00000140-0000-0000-C000-000000000046}']
  1744. Function GetClassObject(Const rclsif : TClsID; ClassContext : DWord; locale : LCID; Const ridd : TIID; Out pv : Pointer):HResult;StdCall;
  1745. End;
  1746. IRpcOptions = Interface (IUnknown)
  1747. ['{00000144-0000-0000-C000-000000000046}']
  1748. Function xSet (prx : IUnknown;dwProperty : DWord; dwValue:ULONG_PTR):HResult; StdCall;
  1749. Function Query (prx : IUnknown;dwProperty:Dword; dwValue:ULONG_PTR):HResult; StdCall;
  1750. End;
  1751. {$endif} {DCOM}
  1752. IFillLockBytes = Interface (IUnknown)
  1753. ['{99caf010-415e-11cf-8814-00aa00b569f5}']
  1754. Function FillAppend(const pv : Pointer;cb:ULong; Out PcbWritten : ULong):HResult;StdCall;
  1755. Function FillAt(ulOffset : ULarge_INTEGER;Const pv : Pointer;cb :ULong; Out pcbWritten:ULong):HResult;StdCall;
  1756. Function SetFillSize ( ulSize :ULarge_Integer):HResult;StdCall;
  1757. Function Terminate (bCanceled :Bool):HResult;StdCall;
  1758. End;
  1759. IProgressNotify = Interface (IUnknown)
  1760. ['{a9d758a0-4617-11cf-95fc-00aa00680db4}']
  1761. Function OnProgress (ProgressCurrent,ProgressMaximum :Dword; FAccurate,Fowner : Bool):HResult;StdCall;
  1762. End;
  1763. ILayoutStorage = Interface (IUnknown)
  1764. ['{0e6d4d90-6738-11cf-9608-00aa00680db4}']
  1765. {The methods in this interface all had "__stdcall" as modifier, while the other classes don't. ?!?!?}
  1766. Function LayoutScript ( xStorageLayout : StorageLayout;nEntries,glfInterleaveFlag : Dword) :HResult; StdCall;
  1767. Function BeginMonitor:HResult;StdCall;
  1768. Function EndMonitor:HResult;StdCall;
  1769. Function ReLayourDocFile(pwcsNewDFName :pOleStr):HResult;StdCall;
  1770. Function ReLayoutDocfileOnILockBytes(LockBytes : ILockBytes):Hresult;StdCall;
  1771. End;
  1772. IBlockingLock = Interface (IUnknown)
  1773. ['{30f3d47a-6447-11d1-8e3c-00c04fb9386d}']
  1774. Function Lock (dwTimeOut : DWord) : HResult;Stdcall;
  1775. Function Unlock : HResult;Stdcall;
  1776. End;
  1777. ITimeAndNoticeControl = Interface (IUnknown)
  1778. ['{bc0bf6ae-8878-11d1-83e9-00c04fc2c6d4}']
  1779. Function SuppressChanges(res1,res2 : Dword):HResult;StdCall;
  1780. End;
  1781. IOplockStorage = Interface (IUnknown)
  1782. ['{8d19c834-8879-11d1-83e9-00c04fc2c6d4}']
  1783. Function CreateStorageEx(wcsName : LPCWSTR;grfMode,StgFmt,GrfAtrrs :Dword;Const riid :Tiid; Out ppstgOpen : Pointer):HResult;StdCall;
  1784. Function OpenStorageEx(wcsName : LPCWSTR;grfMode,StgFmt,GrfAtrrs :Dword;Const riid :Tiid; Out ppstgOpen : Pointer):HResult;StdCall;
  1785. End;
  1786. ISurrogate = Interface (IUnknown)
  1787. ['{00000022-0000-0000-C000-000000000046}']
  1788. Function LoadDllServer (Const ClsId : TClsId):HResult;StdCall;
  1789. Function FreeSurrogate:HResult;StdCall;
  1790. End;
  1791. IGlobalInterfaceTable = Interface (IUnknown)
  1792. ['{00000146-0000-0000-C000-000000000046}']
  1793. Function RegisterInterfaceInGlobal(unk :IUnknown;Const riid : TIID; Out dwcookie :DWord):HResult;StdCall;
  1794. Function RevokeInterfaceFromGlobal (dwCookie :DWord):HResult;StdCall;
  1795. Function GetInterfaceFromGlobal (dwCookie :DWord;Const riid : TIID;out pv : Pointer):HResult;StdCall;
  1796. End;
  1797. IDirectWriterLock = Interface (IUnknown)
  1798. ['{0e6d4d92-6738-11cf-9608-00aa00680db4}']
  1799. Function WaitForWriteAccess (dwTimeOut : DWORD):HResult;StdCall;
  1800. Function ReleaseWriteAccess:HResult;StdCall;
  1801. Function HaveWriteAccess:HResult;StdCall;
  1802. End;
  1803. ISynchronize = Interface (IUnknown)
  1804. ['{00000030-0000-0000-C000-000000000046}']
  1805. Function Wait (dwFlags : DWord; dwMilliSeconds : DWord):HResult;StdCall;
  1806. Function Signal : HResult;StdCall;
  1807. Function Reset : HResult;StdCall;
  1808. End;
  1809. ISynchronizeHandle = Interface (IUnknown)
  1810. ['{00000031-0000-0000-C000-000000000046}']
  1811. Function GetHandle(Out ph : Handle):HResult;StdCall;
  1812. End;
  1813. ISynchronizeEvent = Interface (ISynchronizeHandle)
  1814. ['{00000032-0000-0000-C000-000000000046}']
  1815. Function SetEventHandle (Const ph : Handle):HResult; StdCall;
  1816. End;
  1817. ISynchronizeContainer = Interface (IUnknown)
  1818. ['{00000033-0000-0000-C000-000000000046}']
  1819. Function AddSynchronize(pSync : ISynchronize):HResult; StdCall;
  1820. Function WaitMultiple(dwFlags : Dword; dwTimeOut : Dword; Out pSync : ISynchronize):HResult;StdCall;
  1821. End;
  1822. ISynchronizeMutex = Interface (ISynchronize)
  1823. ['{00000025-0000-0000-C000-000000000046}']
  1824. Function ReleaseMutex:HResult; StdCall;
  1825. End;
  1826. ICancelMethodCalls = Interface (IUnknown)
  1827. ['{00000029-0000-0000-C000-000000000046}']
  1828. Function Cancel(ulSeconds : ULong):HResult; StdCall;
  1829. Function TestCancel:HResult;StdCall;
  1830. End;
  1831. IAsyncManager = Interface (IUnknown)
  1832. ['{0000002A-0000-0000-C000-000000000046}']
  1833. Function CompleteCall (xResult : HResult):HResult;StdCall;
  1834. Function GetCallContext(Const iid :TIID; Out pInterface : Pointer):HResult;StdCall;
  1835. Function GetState(Out pulStateFlags : ULong):HResult;StdCall;
  1836. End;
  1837. ICallFactory = Interface (IUnknown)
  1838. ['{1c733a30-2a1c-11ce-ade5-00aa0044773d}']
  1839. Function CreateCall(Const riid:TIID;CtrUnk : IUnknown;Const Riid2:TIID;Out Unknown : IUnknown):HResult;StdCall;
  1840. End;
  1841. IRpcHelper = Interface (IUnknown)
  1842. ['{00000149-0000-0000-C000-000000000046}']
  1843. Function GetDCOMProtocolVersion(Out ComVersion :DWord):HResult;StdCall;
  1844. Function GettIIDFromOBJREF(ObjRef : Pointer;Out xIID : piid):HResult;StdCall;
  1845. End;
  1846. IReleaseMarshalBuffers = Interface (IUnknown)
  1847. ['{eb0cb9e8-7996-11d2-872e-0000f8080859}']
  1848. Function ReleaseMarshalBuffer(const pnsg : RPCOLEMESSAGE;dwFlags:DWord;Const pchn : IUnknown):HResult; StdCall;
  1849. End;
  1850. IWaitMultiple = Interface (IUnknown)
  1851. ['{0000002B-0000-0000-C000-000000000046}']
  1852. Function WaitMulitple(TImeout :DWord;out psync : ISynchronize):HResult; StdCall;
  1853. Function AddSynchronize (const psync : ISynchronize):HResult;StdCall;
  1854. End;
  1855. IUrlMon = Interface (IUnknown)
  1856. ['{00000026-0000-0000-C000-000000000046}']
  1857. 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;
  1858. End;
  1859. IForegroundTransfer = Interface (IUnknown)
  1860. ['{00000145-0000-0000-C000-000000000046}']
  1861. Function AllowForegroundTransfer(lpvReserved:Pointer):HResult; StdCall;
  1862. End;
  1863. IAddrTrackingControl = Interface (IUnknown)
  1864. ['{00000147-0000-0000-C000-000000000046}']
  1865. Function EnableCOMDynamicAddrTracking:HResult; StdCall;
  1866. Function DisableCOMDynamicAddrTracking:HResult; StdCall;
  1867. End;
  1868. IAddrExclusionControl = Interface (IUnknown)
  1869. ['{00000148-0000-0000-C000-000000000046}']
  1870. Function GetCurrentAddrExclusionList(Const riid : TIID;out Enumerator : Pointer):HResult;StdCall;
  1871. Function UpdateAddrExclusionList(Enumerator : IUnknown):HResult;StdCall;
  1872. End;
  1873. //****************************************************************************
  1874. //* Pipe interfaces
  1875. //****************************************************************************/
  1876. // Doesn't look translatable. See objidl.idl
  1877. //****************************************************************************
  1878. //* Thumbnail generator interface
  1879. //****************************************************************************/
  1880. IThumbnailExtractor = Interface (IUnknown)
  1881. ['{969dc708-5c76-11d1-8d86-0000f804b057}']
  1882. Function ExtractThumbnail (pStg : IStorage; uLength,UHeight : ULong; Out uloutputlength,Height :ULong; Out OutputBitmap : HBITMAP): HResult; StdCall;
  1883. Function OnFileUpdated (pStg : IStorage):HResult;
  1884. End;
  1885. //****************************************************************************
  1886. //* Dummy Interface to force inclusion of HICON and HDC in proxy/stub code....
  1887. //****************************************************************************/
  1888. IDummyHICONIncluder = Interface (IUnknown)
  1889. ['{947990de-cc28-11d2-a0f7-00805f858fb1}']
  1890. Function Dummy (h1 : HICON; H2 :HDC):HResult;
  1891. End;
  1892. IComThreadingInfo = Interface (IUnknown)
  1893. ['{000001ce-0000-0000-C000-000000000046}']
  1894. Function GetCurrentApartmentType(out pAptType : DWord {APTTTYPE}):HResult;
  1895. Function GetCurrentThreadType(Out ThreadType : Dword {THDTTYPE}):HResult;StdCall;
  1896. Function GetCurrentLogicalThreadID(Out guidlogicalThreadId : TGUID):HResult;StdCall;
  1897. Function SetCurrentLogicalThreadID(Const guidlogicalThreadId : TGUID):HResult;StdCall;
  1898. End;
  1899. IProcessInitControl = Interface (IUnknown)
  1900. ['{72380d55-8d2b-43a3-8513-2b6ef31434e9}']
  1901. Function ResetInitializerTimeout(dwSecondsRemaining:DWord):HResult; StdCall;
  1902. End;
  1903. // Interfaces from OAIDL.IDL
  1904. ITypeInfo = Interface;
  1905. ICreateTypeInfo = Interface (IUnknown)
  1906. ['{00020405-0000-0000-C000-000000000046}']
  1907. Function SetGuid(CONST guid: TGUID):HResult;StdCall;
  1908. Function SetTypeFlags(uTypeFlags: UINT):HResult;StdCall;
  1909. Function SetDocString(pStrDoc: pOleStr):HResult;StdCall;
  1910. Function SetHelpContext(dwHelpContext: DWORD):HResult;StdCall;
  1911. Function SetVersion(wMajorVerNum: WORD; wMinorVerNum: WORD):HResult;StdCall;
  1912. Function AddRefTypeInfo(CONST pTInfo: ITypeInfo; CONST phRefType: HREFTYPE):HResult;StdCall;
  1913. Function AddFuncDesc(index: UINT; CONST pFuncDesc: FUNCDESC):HResult;StdCall;
  1914. Function AddImplType(index: UINT; hRefType: HREFTYPE):HResult;StdCall;
  1915. Function SetImplTypeFlags(index: UINT; implTypeFlags: WINT):HResult;StdCall;
  1916. Function SetAlignment(cbAlignment: WORD):HResult;StdCall;
  1917. Function SetSchema(pStrSchema: pOleStr):HResult;StdCall;
  1918. Function AddVarDesc(index: UINT; CONST pVarDesc: VARDESC):HResult;StdCall;
  1919. Function SetFuncAndParamNames(index: UINT; CONST rgszNames: pOleStr; cNames: UINT):HResult;StdCall;
  1920. Function SetVarName(index: UINT; szName: pOleStr):HResult;StdCall;
  1921. Function SetTypeDescAlias(CONST pTDescAlias: TYPEDESC):HResult;StdCall;
  1922. Function DefineFuncAsDllEntry(index: UINT; szDllName: pOleStr; szProcName: pOleStr):HResult;StdCall;
  1923. Function SetFuncDocString(index: UINT; szDocString: pOleStr):HResult;StdCall;
  1924. Function SetVarDocString(index: UINT; szDocString: pOleStr):HResult;StdCall;
  1925. Function SetFuncHelpContext(index: UINT; dwHelpContext: DWORD):HResult;StdCall;
  1926. Function SetVarHelpContext(index: UINT; dwHelpContext: DWORD):HResult;StdCall;
  1927. Function SetMops(index: UINT; Const bstrMops: WideString):HResult;StdCall;
  1928. Function SetTypeIdldesc(CONST pIdlDesc: IDLDESC):HResult;StdCall;
  1929. Function LayOut():HResult;StdCall;
  1930. End;
  1931. ICreateTypeInfo2 = Interface (ICreateTypeInfo)
  1932. ['{0002040E-0000-0000-C000-000000000046}']
  1933. Function DeleteFuncDesc(index: UINT):HResult;StdCall;
  1934. Function DeleteFuncDescByMemId(memid: MEMBERID; invKind: INVOKEKIND):HResult;StdCall;
  1935. Function DeleteVarDesc(index: UINT):HResult;StdCall;
  1936. Function DeleteVarDescByMemId(memid: MEMBERID):HResult;StdCall;
  1937. Function DeleteImplType(index: UINT):HResult;StdCall;
  1938. Function SetCustData(CONST guid: TGUID; CONST pVarVal: VARIANT):HResult;StdCall;
  1939. Function SetFuncCustData(index: UINT; CONST guid: TGUID; CONST pVarVal: VARIANT):HResult;StdCall;
  1940. Function SetParamCustData(indexFunc: UINT; indexParam: UINT; CONST guid: TGUID; CONST pVarVal: VARIANT):HResult;StdCall;
  1941. Function SetVarCustData(index: UINT; CONST guid: TGUID; CONST pVarVal: VARIANT):HResult;StdCall;
  1942. Function SetImplTypeCustData(index: UINT; CONST guid: TGUID; CONST pVarVal: VARIANT):HResult;StdCall;
  1943. Function SetHelpStringContext(dwHelpStringContext: ULONG):HResult;StdCall;
  1944. Function SetFuncHelpStringContext(index: UINT; dwHelpStringContext: ULONG):HResult;StdCall;
  1945. Function SetVarHelpStringContext(index: UINT; dwHelpStringContext: ULONG):HResult;StdCall;
  1946. Function Invalidate():HResult;StdCall;
  1947. Function SetName(szName: pOleStr):HResult;StdCall;
  1948. End;
  1949. ICreateTypeLib = Interface (IUnknown)
  1950. ['{00020406-0000-0000-C000-000000000046}']
  1951. Function CreateTypeInfo(szName: pOleStr; tkind: TYPEKIND; OUT ppCTInfo: ICreateTypeInfo):HResult;StdCall;
  1952. Function SetName(szName: pOleStr):HResult;StdCall;
  1953. Function SetVersion(wMajorVerNum: WORD; wMinorVerNum: WORD):HResult;StdCall;
  1954. Function SetGuid(CONST guid: TGUID):HResult;StdCall;
  1955. Function SetDocString(szDoc: pOleStr):HResult;StdCall;
  1956. Function SetHelpFileName(szHelpFileName: pOleStr):HResult;StdCall;
  1957. Function SetHelpContext(dwHelpContext: DWORD):HResult;StdCall;
  1958. Function SetLcid(lcid: LCID):HResult;StdCall;
  1959. Function SetLibFlags(uLibFlags: UINT):HResult;StdCall;
  1960. Function SaveAllChanges():HResult;StdCall;
  1961. End;
  1962. ICreateTypeLib2 = Interface (ICreateTypeLib)
  1963. ['{0002040F-0000-0000-C000-000000000046}']
  1964. Function DeleteTypeInfo(szName: pOleStr):HResult;StdCall;
  1965. Function SetCustData(CONST guid: TGUID; CONST pVarVal: VARIANT):HResult;StdCall;
  1966. Function SetHelpStringContext(dwHelpStringContext: ULONG):HResult;StdCall;
  1967. Function SetHelpStringDll(szFileName: pOleStr):HResult;StdCall;
  1968. End;
  1969. IEnumVARIANT = Interface (IUnknown)
  1970. ['{00020404-0000-0000-C000-000000000046}']
  1971. {$ifndef Call_as}
  1972. Function Next(celt: ULONG; OUT rgVar: VARIANT; OUT pCeltFetched: ULONG):HResult;StdCall;
  1973. {$else}
  1974. Function Next(celt: ULONG; OUT rgVar: VARIANT; OUT pCeltFetched: ULONG):HResult;StdCall;
  1975. {$endif}
  1976. Function Skip(celt: ULONG):HResult;StdCall;
  1977. Function Reset():HResult;StdCall;
  1978. Function Clone(OUT ppEnum: IEnumVARIANT):HResult;StdCall;
  1979. End;
  1980. ITypeComp = Interface (IUnknown)
  1981. ['{00020403-0000-0000-C000-000000000046}']
  1982. {$ifndef Call_as}
  1983. Function Bind(szName: pOleStr; lHashVal: ULONG; wFlags: WORD; OUT ppTInfo: ITypeInfo; OUT pDescKind: DESCKIND; OUT pBindPtr: BINDPTR):HResult;StdCall;
  1984. Function BindType(szName: pOleStr; lHashVal: ULONG; OUT ppTInfo: ITypeInfo; OUT ppTComp: ITypeComp):HResult;StdCall;
  1985. {$else}
  1986. Function Bind(szName: pOleStr; lHashVal: ULONG; wFlags: WORD; OUT ppTInfo: ITypeInfo; OUT pDescKind: DESCKIND; OUT ppFuncDesc: LPFUNCDESC; OUT ppVarDesc: LPVARDESC; O
  1987. Function BindType(szName: pOleStr; lHashVal: ULONG; OUT ppTInfo: ITypeInfo):HResult;StdCall;
  1988. {$endif}
  1989. End;
  1990. ITypeInfo = Interface (IUnknown)
  1991. ['{00020401-0000-0000-C000-000000000046}']
  1992. {$ifndef Call_as}
  1993. Function GetTypeAttr(OUT ppTypeAttr: lpTYPEATTR):HResult;StdCall;
  1994. {$else}
  1995. Function GetTypeAttr(OUT ppTypeAttr: LPTYPEATTR; OUT pDummy: CLEANLOCALSTORAGE):HResult;StdCall;
  1996. {$endif}
  1997. Function GetTypeComp(OUT ppTComp: ITypeComp):HResult;StdCall;
  1998. {$ifndef Call_as}
  1999. Function GetFuncDesc(index: UINT; OUT ppFuncDesc: lpFUNCDESC):HResult;StdCall;
  2000. Function GetVarDesc(index: UINT; OUT ppVarDesc: lpVARDESC):HResult;StdCall;
  2001. Function GetNames(memid: MEMBERID; OUT rgBstrNames: WideString; cMaxNames: UINT; OUT pcNames: UINT):HResult;StdCall;
  2002. {$else}
  2003. Function GetFuncDesc(index: UINT; OUT ppFuncDesc: LPFUNCDESC; OUT pDummy: CLEANLOCALSTORAGE):HResult;StdCall;
  2004. Function GetVarDesc(index: UINT; OUT ppVarDesc: LPVARDESC; OUT pDummy: CLEANLOCALSTORAGE):HResult;StdCall;
  2005. Function GetNames(memid: MEMBERID; OUT rgBstrNames: WideString; cMaxNames: UINT; OUT pcNames: UINT):HResult;StdCall;
  2006. {$endif}
  2007. Function GetRefTypeOfImplType(index: UINT; OUT pRefType: HREFTYPE):HResult;StdCall;
  2008. Function GetImplTypeFlags(index: UINT; OUT pImplTypeFlags: WINT):HResult;StdCall;
  2009. {$ifndef Call_as}
  2010. Function GetIDsOfNames(CONST rgszNames: pOleStr; cNames: UINT; OUT pMemId: MEMBERID):HResult;StdCall;
  2011. {$else}
  2012. Function LocalGetIDsOfNames():HResult;StdCall;
  2013. {$endif}
  2014. {$ifndef Call_as}
  2015. Function Invoke(pvInstance: Pointer; memid: MEMBERID; wFlags: WORD; VAR pDispParams: DISPPARAMS; OUT pVarResult: VARIANT; OUT pExcepInfo: EXCEPINFO; OUT puArgErr: UINT):HResult;StdCall;
  2016. {$else}
  2017. Function LocalInvoke ():HResult;StdCall;
  2018. {$endif}
  2019. {$ifndef Call_as}
  2020. Function GetDocumentation(memid: MEMBERID; OUT pBstrName: WideString; OUT pBstrDocString: WideString; OUT pdwHelpContext: DWORD; OUT pBstrHelpFile: WideString):HResult;StdCall;
  2021. {$else}
  2022. Function GetDocumentation(memid: MEMBERID; refPtrFlags: DWORD; OUT pBstrName: WideString; OUT pBstrDocString: WideString; OUT pdwHelpContext: DWORD; OUT pBstrHelpFile: WideString):HResult;StdCall;
  2023. {$endif}
  2024. {$ifndef Call_as}
  2025. Function GetDllEntry(memid: MEMBERID; invKind: INVOKEKIND; OUT pBstrDllName: WideString; OUT pBstrName: WideString; OUT pwOrdinal: WORD):HResult;StdCall;
  2026. {$else}
  2027. Function GetDllEntry(memid: MEMBERID; invKind: INVOKEKIND; refPtrFlags: DWORD; OUT pBstrDllName: WideString; OUT pBstrName: WideString; OUT pwOrdinal: WORD):HResult;StdCall;
  2028. {$endif}
  2029. Function GetRefTypeInfo(hRefType: HREFTYPE; OUT ppTInfo: ITypeInfo):HResult;StdCall;
  2030. {$ifndef Call_as}
  2031. Function AddressOfMember(memid: MEMBERID; invKind: INVOKEKIND; OUT ppv: Pointer):HResult;StdCall;
  2032. {$else}
  2033. Function LocalAddressOfMember():HResult;StdCall;
  2034. {$endif}
  2035. {$ifndef Call_as}
  2036. Function CreateInstance(CONST pUnkOuter: IUnknown; CONST riid: TIID; OUT ppvObj: Pointer):HResult;StdCall;
  2037. {$else}
  2038. Function CreateInstance(CONST riid: TIID; OUT ppvObj: pIUnknown):HResult;StdCall;
  2039. {$endif}
  2040. Function GetMops(memid: MEMBERID; OUT pBstrMops: WideString):HResult;StdCall;
  2041. {$ifndef Call_as}
  2042. Function GetContainingTypeLib(OUT ppTLib: ITypeLib; OUT pIndex: UINT):HResult;StdCall;
  2043. {$else}
  2044. Function GetContainingTypeLib(OUT ppTLib: ITypeLib; OUT pIndex: UINT):HResult;StdCall;
  2045. {$endif}
  2046. {$ifndef Call_as}
  2047. Procedure ReleaseTypeAttr(Const pTypeAttr: TypeAttr); StdCall;
  2048. {$else}
  2049. Function ReleaseTypeAttr():HResult;StdCall;
  2050. {$endif}
  2051. {$ifndef Call_as}
  2052. Procedure ReleaseFuncDesc(const pFuncDesc : FUNCDESC); StdCall;
  2053. {$else}
  2054. Function LocalReleaseFuncDesc():HResult;StdCall;
  2055. {$endif}
  2056. {$ifndef Call_as}
  2057. Procedure ReleaseVarDesc(Const pVarDesc : VarDesc);
  2058. {$else}
  2059. Function LocalReleaseVarDesc():HResult;StdCall;
  2060. {$endif}
  2061. End;
  2062. ITypeInfo2 = Interface (ITypeInfo)
  2063. ['{00020412-0000-0000-C000-000000000046}']
  2064. Function GetTypeKind(OUT xpTypeKind: TYPEKIND):HResult;StdCall;
  2065. Function GetTypeFlags(OUT pTypeFlags: ULONG):HResult;StdCall;
  2066. Function GetFuncIndexOfMemId(memid: MEMBERID; invKind: INVOKEKIND; OUT pFuncIndex: UINT):HResult;StdCall;
  2067. Function GetVarIndexOfMemId(memid: MEMBERID; OUT pVarIndex: UINT):HResult;StdCall;
  2068. Function GetCustData(CONST guid: TGUID; OUT pVarVal: VARIANT):HResult;StdCall;
  2069. Function GetFuncCustData(index: UINT; CONST guid: TGUID; OUT pVarVal: VARIANT):HResult;StdCall;
  2070. Function GetParamCustData(indexFunc: UINT; indexParam: UINT; CONST guid: TGUID; OUT pVarVal: VARIANT):HResult;StdCall;
  2071. Function GetVarCustData(index: UINT; CONST guid: TGUID; OUT pVarVal: VARIANT):HResult;StdCall;
  2072. Function GetImplTypeCustData(index: UINT; CONST guid: TGUID; OUT pVarVal: VARIANT):HResult;StdCall;
  2073. {$ifndef Call_as}
  2074. Function GetDocumentation2(memid: MEMBERID; lcid: LCID; OUT pbstrHelpString: WideString; OUT pdwHelpStringContext: DWORD; OUT pbstrHelpStringDll: WideString):HResult;StdCall;
  2075. {$else}
  2076. Function GetDocumentation2(memid: MEMBERID; lcid: LCID; refPtrFlags: DWORD; OUT pbstrHelpString: WideString; OUT pdwHelpStringContext: DWORD; OUT pbstrHelpStringDll: WideString):HResult;StdCall;
  2077. {$endif}
  2078. Function GetAllCustData(OUT pCustData: CUSTDATA):HResult;StdCall;
  2079. Function GetAllFuncCustData(index: UINT; OUT pCustData: CUSTDATA):HResult;StdCall;
  2080. Function GetAllParamCustData(indexFunc: UINT; indexParam: UINT; OUT pCustData: CUSTDATA):HResult;StdCall;
  2081. Function GetAllVarCustData(index: UINT; OUT pCustData: CUSTDATA):HResult;StdCall;
  2082. Function GetAllImplTypeCustData(index: UINT; OUT pCustData: CUSTDATA):HResult;StdCall;
  2083. End;
  2084. ITypeLib = Interface (IUnknown)
  2085. ['{00020402-0000-0000-C000-000000000046}']
  2086. {$ifndef Call_as}
  2087. Function GetTypeInfoCount:UINT; StdCall;
  2088. {$else}
  2089. Function GetTypeInfoCount(OUT pcTInfo: UINT):HResult;StdCall;
  2090. {$endif}
  2091. Function GetTypeInfo(index: UINT; OUT ppTInfo: ITypeInfo):HResult;StdCall;
  2092. Function GetTypeInfoType(index: UINT; OUT pTKind: TYPEKIND):HResult;StdCall;
  2093. Function GetTypeInfoOfGuid(CONST guid: TGUID; OUT ppTinfo: ITypeInfo):HResult;StdCall;
  2094. {$ifndef Call_as}
  2095. Function GetLibAttr(OUT ppTLibAttr: lpTLIBATTR):HResult;StdCall;
  2096. {$else}
  2097. Function GetLibAttr(OUT ppTLibAttr: LPTLIBATTR; OUT pDummy: CLEANLOCALSTORAGE):HResult;StdCall;
  2098. {$endif}
  2099. Function GetTypeComp(OUT ppTComp: ITypeComp):HResult;StdCall;
  2100. {$ifndef Call_as}
  2101. Function GetDocumentation(index: WINT; OUT pBstrName: WideString; OUT pBstrDocString: WideString; OUT pdwHelpContext: DWORD; OUT pBstrHelpFile: WideString):HResult;StdCall;
  2102. {$else}
  2103. Function GetDocumentation(index: WINT; refPtrFlags: DWORD; OUT pBstrName: WideString; OUT pBstrDocString: WideString; OUT pdwHelpContext: DWORD; OUT pBstrHelpFile: WideString):HResult;StdCall;
  2104. {$endif}
  2105. {$ifndef Call_as}
  2106. Function IsName(szNameBuf: pOleStr; lHashVal: ULONG; OUT pfName: BOOL):HResult;StdCall;
  2107. {$else}
  2108. Function IsName(szNameBuf: pOleStr; lHashVal: ULONG; OUT pfName: BOOL; OUT pBstrLibName: WideString):HResult;StdCall;
  2109. {$endif}
  2110. {$ifndef Call_as}
  2111. Function FindName(szNameBuf: pOleStr; lHashVal: ULONG; OUT ppTInfo: ITypeInfo; OUT rgMemId: MEMBERID; VAR pcFound: USHORT):HResult;StdCall;
  2112. {$else}
  2113. Function FindName(szNameBuf: pOleStr; lHashVal: ULONG; OUT ppTInfo: ITypeInfo; OUT rgMemId: MEMBERID; VAR pcFound: USHORT; OUT pBstrLibName: WideString):HResult;StdCall;
  2114. {$endif}
  2115. {$ifndef Call_as}
  2116. Procedure ReleaseTLibAttr(Const pTLibAttr : TLIBATTR); StdCall;
  2117. {$else}
  2118. Function LocalReleaseTLibAttr:HResult;StdCall;
  2119. {$endif}
  2120. End;
  2121. ITypeLib2 = Interface (ITypeLib)
  2122. ['{00020411-0000-0000-C000-000000000046}']
  2123. Function GetCustData(CONST guid: TGUID; OUT pVarVal: VARIANT):HResult;StdCall;
  2124. {$ifndef Call_as}
  2125. Function GetLibStatistics(OUT pcUniqueNames: ULONG; OUT pcchUniqueNames: ULONG):HResult;StdCall;
  2126. {$else}
  2127. Function GetLibStatistics(OUT pcUniqueNames: ULONG; OUT pcchUniqueNames: ULONG):HResult;StdCall;
  2128. {$endif}
  2129. {$ifndef Call_as}
  2130. Function GetDocumentation2(index: WINT; lcid: LCID; OUT pbstrHelpString: WideString; OUT pdwHelpStringContext: DWORD; OUT pbstrHelpStringDll: WideString):HResult;StdCall;
  2131. {$else}
  2132. Function GetDocumentation2(index: WINT; lcid: LCID; refPtrFlags: DWORD; OUT pbstrHelpString: WideString; OUT pdwHelpStringContext: DWORD; OUT pbstrHelpStringDll: WideString):HResult;StdCall;
  2133. {$endif}
  2134. Function GetAllCustData(OUT pCustData: CUSTDATA):HResult;StdCall;
  2135. End;
  2136. ITypeChangeEvents= Interface (IUnknown)
  2137. ['{00020410-0000-0000-C000-000000000046}']
  2138. Function RequestTypeChange(changeKind: CHANGEKIND; CONST pTInfoBefore: ITypeInfo; pStrName: pOleStr; OUT pfCancel: WINT):HResult;StdCall;
  2139. Function AfterTypeChange(changeKind: CHANGEKIND; CONST pTInfoAfter: ITypeInfo; pStrName: pOleStr):HResult;StdCall;
  2140. End;
  2141. IErrorInfo= Interface (IUnknown)
  2142. ['{1CF2B120-547D-101B-8E65-08002B2BD119}']
  2143. Function GetGUID(OUT pGUID: TGUID):HResult;StdCall;
  2144. Function GetSource(OUT pBstrSource: WideString):HResult;StdCall;
  2145. Function GetDescription(OUT pBstrDescription: WideString):HResult;StdCall;
  2146. Function GetHelpFile(OUT pBstrHelpFile: WideString):HResult;StdCall;
  2147. Function GetHelpContext(OUT pdwHelpContext: DWORD):HResult;StdCall;
  2148. End;
  2149. ICreateErrorInfo= Interface (IUnknown)
  2150. ['{22F03340-547D-101B-8E65-08002B2BD119}']
  2151. Function SetGUID(CONST rguid: TGUID):HResult;StdCall;
  2152. Function SetSource(szSource: pOleStr):HResult;StdCall;
  2153. Function SetDescription(szDescription: pOleStr):HResult;StdCall;
  2154. Function SetHelpFile(szHelpFile: pOleStr):HResult;StdCall;
  2155. Function SetHelpContext(dwHelpContext: DWORD):HResult;StdCall;
  2156. End;
  2157. ISupportErrorInfo= Interface (IUnknown)
  2158. ['{DF0B3D60-548F-101B-8E65-08002B2BD119}']
  2159. Function InterfaceSupportsErrorInfo(CONST riid: TIID):HResult;StdCall;
  2160. End;
  2161. ITypeFactory = Interface (IUnknown)
  2162. ['{0000002E-0000-0000-C000-000000000046}']
  2163. Function CreateFromTypeInfo(CONST pTypeInfo: ITypeInfo; CONST riid: TIID; OUT ppv: IUnknown):HResult;StdCall;
  2164. End;
  2165. ITypeMarshal = Interface (IUnknown)
  2166. ['{0000002D-0000-0000-C000-000000000046}']
  2167. Function Size(pvType: Pointer; dwDestContext: DWORD; pvDestContext: Pointer; OUT pSize: ULONG):HResult;StdCall;
  2168. Function Marshal(pvType: Pointer; dwDestContext: DWORD; pvDestContext: Pointer; cbBufferLength: ULONG; OUT pBuffer: BYTE; OUT pcbWritten: ULONG):HResult;StdCall;
  2169. Function Unmarshal(pvType: Pointer; dwFlags: DWORD; cbBufferLength: ULONG; CONST pBuffer: BYTE; OUT pcbRead: ULONG):HResult;StdCall;
  2170. Function Free(pvType: Pointer):HResult;StdCall;
  2171. End;
  2172. IRecordInfo = Interface(IUnknown)
  2173. ['{0000002F-0000-0000-C000-000000000046}']
  2174. Function RecordInit(pvNew: Pointer):HResult;StdCall;
  2175. Function RecordClear(pvExisting: Pointer):HResult;StdCall;
  2176. Function RecordCopy(pvExisting: Pointer; pvNew: Pointer):HResult;StdCall;
  2177. Function GetGuid(OUT pguid: TGUID):HResult;StdCall;
  2178. Function GetName(OUT pbstrName: WideString):HResult;StdCall;
  2179. Function GetSize(OUT pcbSize: ULONG):HResult;StdCall;
  2180. Function GetTypeInfo(OUT ppTypeInfo: ITypeInfo):HResult;StdCall;
  2181. Function GetField(pvData: Pointer; szFieldName: pOleStr; OUT pvarField: VARIANT):HResult;StdCall;
  2182. Function GetFieldNoCopy(pvData: Pointer; szFieldName: pOleStr; OUT pvarField: VARIANT; OUT ppvDataCArray: Pointer):HResult;StdCall;
  2183. Function PutField(wFlags: ULONG; pvData: Pointer; szFieldName: pOleStr; CONST pvarField: VARIANT):HResult;StdCall;
  2184. Function PutFieldNoCopy(wFlags: ULONG; pvData: Pointer; szFieldName: pOleStr; CONST pvarField: VARIANT):HResult;StdCall;
  2185. Function GetFieldNames(VAR pcNames: ULONG; OUT rgBstrNames: WideString):HResult;StdCall;
  2186. Function IsMatchingType(CONST pRecordInfo : IRecordInfo):Bool;StdCall;
  2187. Function RecordCreate : Pointer; StdCall;
  2188. Function RecordCreateCopy(pvSource: Pointer; OUT ppvDest: Pointer):HResult;StdCall;
  2189. Function RecordDestroy(pvRecord: Pointer):HResult;StdCall;
  2190. End;
  2191. IErrorLog = Interface (IUnknown)
  2192. ['{3127CA40-446E-11CE-8135-00AA004BB851}']
  2193. Function AddError(pszPropName: pOleStr; CONST pExcepInfo: EXCEPINFO):HResult;StdCall;
  2194. End;
  2195. IPropertyBag = Interface (IUnknown)
  2196. ['{55272A00-42CB-11CE-8135-00AA004BB851}']
  2197. {$ifndef Call_as}
  2198. Function Read(pszPropName: pOleStr; VAR pVar: VARIANT; CONST pErrorLog: IErrorLog):HResult;StdCall;
  2199. {$else}
  2200. Function Read(pszPropName: pOleStr; OUT pVar: VARIANT; CONST pErrorLog: IErrorLog; varType: DWORD; CONST pUnkObj: IUnknown):HResult;StdCall;
  2201. {$endif}
  2202. Function Write(pszPropName: pOleStr; CONST pVar: VARIANT):HResult;StdCall;
  2203. End;
  2204. IEnumGUID = interface(IUnknown)
  2205. ['{0002E000-0000-0000-C000-000000000046}']
  2206. Function Next(celt: UINT; OUT rgelt: TGUID; OUT pceltFetched: UINT):HResult;StdCall;
  2207. Function Skip(celt:UINT):HResult;StdCall;
  2208. Function Reset: HResult;StdCall;
  2209. Function Clone(out ppenum: IEnumGUID):HResult;StdCall;
  2210. End;
  2211. IBindHost = interface(IUnknown)
  2212. ['{FC4801A1-2BA9-11CF-A229-00AA003D7352}']
  2213. End;
  2214. IServiceProvider = interface(IUnknown)
  2215. ['{6D5140C1-7436-11CE-8034-00AA006009FA}']
  2216. Function QueryService(CONST rsid, iid: TGuid; OUT Obj):HResult;StdCall;
  2217. End;
  2218. PServiceProvider = ^IServiceProvider;
  2219. IParseDisplayName = interface(IUnknown)
  2220. ['{0000011A-0000-0000-C000-000000000046}']
  2221. Function ParseDisplayName(CONST bc: IBindCtx; pszDisplayName: POleStr;OUT chEaten: Longint; OUT mkOut: IMoniker): HResult;StdCall;
  2222. End;
  2223. IOleContainer = interface(IParseDisplayName)
  2224. ['{0000011B-0000-0000-C000-000000000046}']
  2225. Function EnumObjects(grfFlags: Longint; OUT Enum: IEnumUnknown):HResult;StdCall;
  2226. Function LockContainer(fLock: BOOL):HResult;StdCall;
  2227. End;
  2228. IOleClientSite = interface(IUnknown)
  2229. ['{00000118-0000-0000-C000-000000000046}']
  2230. Function SaveObject: HResult;StdCall;
  2231. Function GetMoniker(dwAssign: Longint; dwWhichMoniker: Longint;OUT mk: IMoniker):HResult;StdCall;
  2232. Function GetContainer(OUT container: IOleContainer):HResult;StdCall;
  2233. Function ShowObject:HResult;StdCall;
  2234. Function OnShowWindow(fShow: BOOL):HResult;StdCall;
  2235. Function RequestNewObjectLayout:HResult;StdCall;
  2236. End;
  2237. IOleWindow = interface(IUnknown)
  2238. ['{00000114-0000-0000-C000-000000000046}']
  2239. function GetWindow(out wnd: HWnd): HResult; stdcall;
  2240. function ContextSensitiveHelp(fEnterMode: BOOL): HResult; stdcall;
  2241. end;
  2242. tagOleMenuGroupWidths = record
  2243. width : array[0..5] Of LONG;
  2244. end;
  2245. OLEMENUGROUPWIDTHS = tagOleMenuGroupWidths;
  2246. TOleMenuGroupWidths = tagOleMenuGroupWidths;
  2247. LPOLEMENUGROUPWIDTHS = ^OLEMENUGROUPWIDTHS;
  2248. POleMenuGroupWidths = LPOLEMENUGROUPWIDTHS;
  2249. { ******************************************************************************************************************
  2250. stuff from objbase.h
  2251. ****************************************************************************************************************** }
  2252. { redefinitions }
  2253. function CoCreateGuid(out _para1:TGUID):HRESULT;stdcall;external 'ole32.dll' name 'CoCreateGuid';
  2254. { additional definitions }
  2255. function IsEqualGUID(const guid1,guid2 : TGUID) : Boolean;stdcall;external 'ole32.dll' name 'IsEqualGUID';
  2256. function IsEqualIID(const iid1,iid2 : TIID) : Boolean;stdcall;external 'ole32.dll' name 'IsEqualGUID';
  2257. function IsEqualCLSID(const clsid1,clsid2 : TCLSID) : Boolean;stdcall;external 'ole32.dll' name 'IsEqualGUID';
  2258. { OleIdl.h }
  2259. type
  2260. IOleInPlaceActiveObject = interface;
  2261. IOleAdviseHolder = interface(IUnknown)
  2262. ['{00000111-0000-0000-C000-000000000046}']
  2263. function Advise(const advise: IAdviseSink; out dwConnection: DWORD): HResult;StdCall;
  2264. function Unadvise(dwConnection: DWORD): HResult;StdCall;
  2265. function EnumAdvise(out enumAdvise: IEnumStatData): HResult;StdCall;
  2266. function SendOnRename(const mk: IMoniker): HResult;StdCall;
  2267. function SendOnSave: HResult;StdCall;
  2268. function SendOnClose: HResult;StdCall;
  2269. end;
  2270. IEnumOLEVERB = interface(IUnknown)
  2271. ['{00000104-0000-0000-C000-000000000046}']
  2272. function Next(celt: ULONG; out elt; pceltFetched: PULONG): HResult;StdCall;
  2273. function Skip(celt: ULONG): HResult;StdCall;
  2274. function Reset: HResult;StdCall;
  2275. function Clone(out ppenum: IEnumOLEVERB): HResult;StdCall;
  2276. end;
  2277. IDropSource = interface(IUnknown)
  2278. ['{00000121-0000-0000-C000-000000000046}']
  2279. function QueryContinueDrag(fEscapePressed: BOOL;
  2280. grfKeyState: Longint):HResult;StdCall;
  2281. function GiveFeedback(dwEffect: Longint): HResult;StdCall;
  2282. end;
  2283. IOleObject = interface(IUnknown)
  2284. ['{00000112-0000-0000-C000-000000000046}']
  2285. function SetClientSite(const clientSite: IOleClientSite): HResult;StdCall;
  2286. function GetClientSite(out clientSite: IOleClientSite): HResult;StdCall;
  2287. function SetHostNames(szContainerApp: POleStr; szContainerObj: POleStr): HResult;StdCall;
  2288. function Close(dwSaveOption: DWORD): HResult;StdCall;
  2289. function SetMoniker(dwWhichMoniker: DWORD; const mk: IMoniker): HResult;StdCall;
  2290. function GetMoniker(dwAssign: DWORD; dwWhichMoniker: DWORD; out mk: IMoniker): HResult;StdCall;
  2291. function InitFromData(const dataObject: IDataObject; fCreation: BOOL; dwReserved: DWORD): HResult;StdCall;
  2292. function GetClipboardData(dwReserved: DWORD; out dataObject: IDataObject): HResult;StdCall;
  2293. function DoVerb(iVerb: LONG; msg: PMsg; const activeSite: IOleClientSite; lindex: LONG; hwndParent: HWND; const posRect: TRect): HResult;StdCall;
  2294. function EnumVerbs(out enumOleVerb: IEnumOleVerb): HResult;StdCall;
  2295. function Update: HResult;StdCall;
  2296. function IsUpToDate: HResult;StdCall;
  2297. function GetUserClassID(out clsid: TCLSID): HResult;StdCall;
  2298. function GetUserType(dwFormOfType: DWORD; out pszUserType: POleStr): HResult;StdCall;
  2299. function SetExtent(dwDrawAspect: DWORD; const size: TPoint): HResult;StdCall;
  2300. function GetExtent(dwDrawAspect: DWORD; out size: TPoint): HResult;StdCall;
  2301. function Advise(const advSink: IAdviseSink; out dwConnection: Longint): HResult;StdCall;
  2302. function Unadvise(dwConnection: DWORD): HResult;StdCall;
  2303. function EnumAdvise(out enumAdvise: IEnumStatData): HResult;StdCall;
  2304. function GetMiscStatus(dwAspect: DWORD; out dwStatus: DWORD): HResult;StdCall;
  2305. function SetColorScheme(const logpal: TLogPalette): HResult;StdCall;
  2306. end;
  2307. IDropTarget = interface(IUnknown)
  2308. ['{00000122-0000-0000-C000-000000000046}']
  2309. function DragEnter(const dataObj: IDataObject; grfKeyState: DWORD; pt: TPoint; var dwEffect: DWORD): HResult;StdCall;
  2310. function DragOver(grfKeyState: DWORD; pt: TPoint; var dwEffect: DWORD): HResult;StdCall;
  2311. function DragLeave: HResult;StdCall;
  2312. function Drop(const dataObj: IDataObject; grfKeyState: DWORD; pt: TPoint; var dwEffect: DWORD):HResult;StdCall;
  2313. end;
  2314. IOleInPlaceUIWindow = interface(IOleWindow)
  2315. ['{00000115-0000-0000-C000-000000000046}']
  2316. function GetBorder(out rectBorder: TRect):HResult;StdCall;
  2317. function RequestBorderSpace(const borderwidths: TRect):HResult;StdCall;
  2318. function SetBorderSpace(const borderwidths: TRect):HResult;StdCall;
  2319. function SetActiveObject(const activeObject: IOleInPlaceActiveObject;pszObjName: POleStr):HResult;StdCall;
  2320. end;
  2321. IOleInPlaceActiveObject = interface(IOleWindow)
  2322. ['{00000117-0000-0000-C000-000000000046}']
  2323. function TranslateAccelerator(var msg: TMsg):HResult;StdCall;
  2324. function OnFrameWindowActivate(fActivate: BOOL):HResult;StdCall;
  2325. function OnDocWindowActivate(fActivate: BOOL):HResult;StdCall;
  2326. function ResizeBorder(const rcBorder: TRect; const uiWindow: IOleInPlaceUIWindow; fFrameWindow: BOOL):HResult;StdCall;
  2327. function EnableModeless(fEnable: BOOL):HResult;StdCall;
  2328. end;
  2329. IOleInPlaceFrame = interface(IOleInPlaceUIWindow)
  2330. ['{00000116-0000-0000-C000-000000000046}']
  2331. function InsertMenus(hmenuShared: HMenu; var menuWidths: TOleMenuGroupWidths): HResult;StdCall;
  2332. function SetMenu(hmenuShared: HMenu; holemenu: HMenu; hwndActiveObject: HWnd): HResult;StdCall;
  2333. function RemoveMenus(hmenuShared: HMenu): HResult;StdCall;
  2334. function SetStatusText(pszStatusText: POleStr): HResult;StdCall;
  2335. function EnableModeless(fEnable: BOOL): HResult;StdCall;
  2336. function TranslateAccelerator(var msg: TMsg; wID: Word): HResult;StdCall;
  2337. end;
  2338. tagOIFI = record
  2339. cb: UINT;
  2340. fMDIApp: BOOL;
  2341. hwndFrame: HWND;
  2342. haccel: HAccel;
  2343. cAccelEntries: UINT;
  2344. end;
  2345. TOleInPlaceFrameInfo = tagOIFI;
  2346. POleInPlaceFrameInfo = ^TOleInPlaceFrameInfo;
  2347. OLEINPLACEFRAMEINFO = tagOIFI;
  2348. { ole2.h }
  2349. type
  2350. WINOLEAPI = HResult;
  2351. TLCID = DWORD;
  2352. const
  2353. OLEIVERB_PRIMARY = 0;
  2354. OLEIVERB_SHOW = -(1);
  2355. OLEIVERB_OPEN = -(2);
  2356. OLEIVERB_HIDE = -(3);
  2357. OLEIVERB_UIACTIVATE = -(4);
  2358. OLEIVERB_INPLACEACTIVATE = -(5);
  2359. OLEIVERB_DISCARDUNDOSTATE = -(6);
  2360. { for OleCreateEmbeddingHelper flags; roles low word; options high word }
  2361. EMBDHLP_INPROC_HANDLER = $0000;
  2362. EMBDHLP_INPROC_SERVER = $0001;
  2363. EMBDHLP_CREATENOW = $00000000;
  2364. EMBDHLP_DELAYCREATE = $00010000;
  2365. { extended create function flags }
  2366. OLECREATE_LEAVERUNNING = $00000001;
  2367. { pull the MIDL generated header }
  2368. function OleBuildVersion:DWORD;cdecl;external 'ole32.dll' name 'OleBuildVersion';
  2369. { helper functions }
  2370. function ReadClassStg(pStg:IStorage; pclsid:PCLSID):WINOLEAPI;cdecl;external 'ole32.dll' name 'ReadClassStg';
  2371. function WriteClassStg(pStg:IStorage;const rclsid:TLCID):WINOLEAPI;cdecl;external 'ole32.dll' name 'WriteClassStg';
  2372. function ReadClassStm(pStm:IStream; pclsid:PCLSID):WINOLEAPI;cdecl;external 'ole32.dll' name 'ReadClassStm';
  2373. function WriteClassStm(pStm:IStream;const rclsid:TLCID):WINOLEAPI;cdecl;external 'ole32.dll' name 'WriteClassStm';
  2374. function WriteFmtUserTypeStg(pstg:IStorage; cf:CLIPFORMAT; lpszUserType:LPOLESTR):WINOLEAPI;cdecl;external 'ole32.dll' name 'WriteFmtUserTypeStg';
  2375. function ReadFmtUserTypeStg(pstg:IStorage; pcf:PCLIPFORMAT;out lplpszUserType:POleStr):WINOLEAPI;cdecl;external 'ole32.dll' name 'ReadFmtUserTypeStg';
  2376. { init/term }
  2377. function OleInitialize(pvReserved:LPVOID):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleInitialize';
  2378. procedure OleUninitialize;cdecl;external 'ole32.dll' name 'OleUninitialize';
  2379. { APIs to query whether (Embedded/Linked) object can be created from
  2380. the data object }
  2381. function OleQueryLinkFromData(pSrcDataObject:IDataObject):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleQueryLinkFromData';
  2382. function OleQueryCreateFromData(pSrcDataObject:IDataObject):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleQueryCreateFromData';
  2383. { Object creation APIs } function OleCreate(const rclsid:TLCID; const riid:TIID;
  2384. renderopt:DWORD; pFormatEtc:LPFORMATETC; pClientSite:IOleClientSite;
  2385. pStg:IStorage; out ppvObj):WINOLEAPI;cdecl;external 'ole32.dll' name
  2386. 'OleCreate';
  2387. function OleCreateEx(const rclsid:TLCID; const riid:TIID; dwFlags:DWORD; renderopt:DWORD; cFormats:ULONG;
  2388. rgAdvf:PDWORD; rgFormatEtc:LPFORMATETC; lpAdviseSink:IAdviseSink; rgdwConnection:PDWORD; pClientSite:IOleClientSite;
  2389. pStg:IStorage; out ppvObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleCreateEx';
  2390. function OleCreateFromData(pSrcDataObj:IDataObject; const riid:TIID; renderopt:DWORD; pFormatEtc:LPFORMATETC; pClientSite:IOleClientSite;
  2391. pStg:IStorage; out ppvObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleCreateFromData';
  2392. function OleCreateFromDataEx(pSrcDataObj:IDataObject; const riid:TIID; dwFlags:DWORD; renderopt:DWORD; cFormats:ULONG;
  2393. rgAdvf:PDWORD; rgFormatEtc:LPFORMATETC; lpAdviseSink:IAdviseSink; rgdwConnection:PDWORD; pClientSite:IOleClientSite;
  2394. pStg:IStorage; out ppvObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleCreateFromDataEx';
  2395. function OleCreateLinkFromData(pSrcDataObj:IDataObject; const riid:TIID; renderopt:DWORD; pFormatEtc:LPFORMATETC; pClientSite:IOleClientSite;
  2396. pStg:IStorage; out ppvObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleCreateLinkFromData';
  2397. function OleCreateLinkFromDataEx(pSrcDataObj:IDataObject; const riid:TIID; dwFlags:DWORD; renderopt:DWORD; cFormats:ULONG;
  2398. rgAdvf:PDWORD; rgFormatEtc:LPFORMATETC; lpAdviseSink:IAdviseSink; rgdwConnection:PDWORD; pClientSite:IOleClientSite;
  2399. pStg:IStorage; out ppvObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleCreateLinkFromDataEx';
  2400. function OleCreateStaticFromData(pSrcDataObj:IDataObject; const iid:TIID; renderopt:DWORD; pFormatEtc:LPFORMATETC; pClientSite:IOleClientSite;
  2401. pStg:IStorage; out ppvObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleCreateStaticFromData';
  2402. function OleCreateLink(pmkLinkSrc:IMoniker; constriid:TIID; renderopt:DWORD; lpFormatEtc:LPFORMATETC; pClientSite:IOleClientSite;
  2403. pStg:IStorage; out ppvObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleCreateLink';
  2404. function OleCreateLinkEx(pmkLinkSrc:IMoniker; const riid:TIID; dwFlags:DWORD; renderopt:DWORD; cFormats:ULONG;
  2405. rgAdvf:PDWORD; rgFormatEtc:LPFORMATETC; lpAdviseSink:IAdviseSink; rgdwConnection:PDWORD; pClientSite:IOleClientSite;
  2406. pStg:IStorage; out ppvObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleCreateLinkEx';
  2407. function OleCreateLinkToFile(lpszFileName:POleStr; const riid:TIID; renderopt:DWORD; lpFormatEtc:LPFORMATETC; pClientSite:IOleClientSite;
  2408. pStg:IStorage; out ppvObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleCreateLinkToFile';
  2409. function OleCreateLinkToFileEx(lpszFileName:POleStr; const riid:TIID; dwFlags:DWORD; renderopt:DWORD; cFormats:ULONG;
  2410. rgAdvf:PDWORD; rgFormatEtc:LPFORMATETC; lpAdviseSink:IAdviseSink; rgdwConnection:PDWORD; pClientSite:IOleClientSite;
  2411. pStg:IStorage; out ppvObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleCreateLinkToFileEx';
  2412. function OleCreateFromFile(const rclsid:TLCID; lpszFileName:POleStr; const riid:TIID; renderopt:DWORD; lpFormatEtc:LPFORMATETC;
  2413. pClientSite:IOleClientSite; pStg:IStorage; out ppvObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleCreateFromFile';
  2414. function OleCreateFromFileEx(const rclsid:TLCID; lpszFileName:POleStr; const riid:TIID; dwFlags:DWORD; renderopt:DWORD;
  2415. cFormats:ULONG; rgAdvf:PDWORD; rgFormatEtc:LPFORMATETC; lpAdviseSink:IAdviseSink; rgdwConnection:PDWORD;
  2416. pClientSite:IOleClientSite; pStg:IStorage; out ppvObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleCreateFromFileEx';
  2417. function OleLoad(pStg:IStorage; const riid:TIID; pClientSite:IOleClientSite; out ppvObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleLoad';
  2418. function OleSave(pPS:IPersistStorage; pStg:IStorage; fSameAsLoad:BOOL):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleSave';
  2419. function OleLoadFromStream(pStm:IStream; const iidInterface:TIID; out ppvObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleLoadFromStream';
  2420. function OleSaveToStream(pPStm:IPersistStream; pStm:IStream):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleSaveToStream';
  2421. function OleSetContainedObject(pUnknown:IUnknown; fContained:BOOL):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleSetContainedObject';
  2422. function OleNoteObjectVisible(pUnknown:IUnknown; fVisible:BOOL):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleNoteObjectVisible';
  2423. { Drag/Drop APIs }
  2424. function RegisterDragDrop(hwnd:HWND; pDropTarget:IDropTarget):WINOLEAPI;cdecl;external 'ole32.dll' name 'RegisterDragDrop';
  2425. function RevokeDragDrop(hwnd:HWND):WINOLEAPI;cdecl;external 'ole32.dll' name 'RevokeDragDrop';
  2426. function DoDragDrop(pDataObj:IDataObject; pDropSource:IDropSource; dwOKEffects:DWORD; pdwEffect:LPDWORD):WINOLEAPI;cdecl;external 'ole32.dll' name 'DoDragDrop';
  2427. { Clipboard APIs }
  2428. function OleSetClipboard(pDataObj:IDataObject):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleSetClipboard';
  2429. function OleGetClipboard(out ppDataObj:IDataObject):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleGetClipboard';
  2430. function OleFlushClipboard:WINOLEAPI;cdecl;external 'ole32.dll' name 'OleFlushClipboard';
  2431. function OleIsCurrentClipboard(pDataObj:IDataObject):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleIsCurrentClipboard';
  2432. type
  2433. HOLEMENU = HMenu;
  2434. { InPlace Editing APIs }
  2435. function OleCreateMenuDescriptor(hmenuCombined:HMENU; lpMenuWidths:LPOLEMENUGROUPWIDTHS):HOLEMENU;cdecl;external 'ole32.dll' name 'OleCreateMenuDescriptor';
  2436. function OleSetMenuDescriptor(holemenu:HOLEMENU; hwndFrame:HWND; hwndActiveObject:HWND; lpFrame:IOleInPlaceFrame; lpActiveObj:IOleInPlaceActiveObject):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleSetMenuDescriptor';
  2437. function OleDestroyMenuDescriptor(holemenu:HOLEMENU):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleDestroyMenuDescriptor';
  2438. function OleTranslateAccelerator(lpFrame:IOleInPlaceFrame; lpFrameInfo:TOleInPlaceFrameInfo; lpmsg:LPMSG):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleTranslateAccelerator';
  2439. { Helper APIs }
  2440. function OleDuplicateData(hSrc:HANDLE; cfFormat:CLIPFORMAT; uiFlags:UINT):HANDLE;cdecl;external 'ole32.dll' name 'OleDuplicateData';
  2441. function OleDraw(pUnknown:IUnknown; dwAspect:DWORD; hdcDraw:HDC;const lprcBounds:TRect):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleDraw';
  2442. function OleRun(pUnknown:IUnknown):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleRun';
  2443. function OleIsRunning(pObject:IOleObject):BOOL;cdecl;external 'ole32.dll' name 'OleIsRunning';
  2444. function OleLockRunning(pUnknown:IUnknown; fLock:BOOL; fLastUnlockCloses:BOOL):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleLockRunning';
  2445. procedure ReleaseStgMedium(_para1:LPSTGMEDIUM);cdecl;external 'ole32.dll' name 'ReleaseStgMedium';
  2446. function CreateOleAdviseHolder(out ppOAHolder:IOleAdviseHolder):WINOLEAPI;cdecl;external 'ole32.dll' name 'CreateOleAdviseHolder';
  2447. function OleCreateDefaultHandler(const clsid:TLCID; pUnkOuter:IUnknown; const riid:TIID; out lplpObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleCreateDefaultHandler';
  2448. function OleCreateEmbeddingHelper(const clsid:TLCID; pUnkOuter:IUnknown; flags:DWORD; pCF:IClassFactory; const riid:TIID;
  2449. out lplpObj):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleCreateEmbeddingHelper';
  2450. function IsAccelerator(hAccel:HACCEL; cAccelEntries:longint; lpMsg:LPMSG; lpwCmd:PWORD):BOOL;cdecl;external 'ole32.dll' name 'IsAccelerator';
  2451. { Icon extraction Helper APIs }
  2452. function OleGetIconOfFile(lpszPath:LPOLESTR; fUseFileAsLabel:BOOL):HGLOBAL;cdecl;external 'ole32.dll' name 'OleGetIconOfFile';
  2453. function OleGetIconOfClass(const rclsid:TLCID; lpszLabel:LPOLESTR; fUseTypeAsLabel:BOOL):HGLOBAL;cdecl;external 'ole32.dll' name 'OleGetIconOfClass';
  2454. function OleMetafilePictFromIconAndLabel(hIcon:HICON; lpszLabel:LPOLESTR; lpszSourceFile:LPOLESTR; iIconIndex:UINT):HGLOBAL;cdecl;external 'ole32.dll' name 'OleMetafilePictFromIconAndLabel';
  2455. { Registration Database Helper APIs }
  2456. function OleRegGetUserType(const clsid:TLCID; dwFormOfType:DWORD;out pszUserType:POleStr):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleRegGetUserType';
  2457. function OleRegGetMiscStatus(const clsid:TLCID; dwAspect:DWORD; pdwStatus:PDWORD):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleRegGetMiscStatus';
  2458. function OleRegEnumFormatEtc(const clsid:TLCID; dwDirection:DWORD;out ppenum:IEnumFormatEtc):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleRegEnumFormatEtc';
  2459. function OleRegEnumVerbs(const clsid:TLCID;out ppenum:IEnumOLEVERB):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleRegEnumVerbs';
  2460. {$ifdef _MAC}
  2461. { WlmOLE helper APIs }
  2462. function WlmOleCheckoutMacInterface(pUnk:IUnknown; out ppv):WINOLEAPI;cdecl;external 'ole32.dll' name 'WlmOleCheckoutMacInterface';
  2463. function WlmOleCheckinMacInterface(pUnk:IUnknown):WINOLEAPI;cdecl;external 'ole32.dll' name 'WlmOleCheckinMacInterface';
  2464. function WlmOleWrapMacInterface(pUnk:IUnknown; const riid:TIID; out ppv):WINOLEAPI;cdecl;external 'ole32.dll' name 'WlmOleWrapMacInterface';
  2465. function WlmOleUnwrapMacInterface(pv:LPVOID):WINOLEAPI;cdecl;external 'ole32.dll' name 'WlmOleUnwrapMacInterface';
  2466. function WlmOleCheckoutWinInterface(pUnk:LPVOID; ppv:PIUnknown):WINOLEAPI;cdecl;external 'ole32.dll' name 'WlmOleCheckoutWinInterface';
  2467. function WlmOleCheckinWinInterface(pUnk:LPVOID):WINOLEAPI;cdecl;external 'ole32.dll' name 'WlmOleCheckinWinInterface';
  2468. function WlmOleWrapWinInterface(pUnk:LPVOID; const riid:TIID; ppv:PIUnknown):WINOLEAPI;cdecl;external 'ole32.dll' name 'WlmOleWrapWinInterface';
  2469. function WlmOleUnwrapWinInterface(pv:LPVOID):WINOLEAPI;cdecl;external 'ole32.dll' name 'WlmOleUnwrapWinInterface';
  2470. procedure WlmOleVersion;cdecl;external 'ole32.dll' name 'WlmOleVersion';
  2471. procedure WlmOleSetInPlaceWindow(hwnd:HWND);cdecl;external 'ole32.dll' name 'WlmOleSetInPlaceWindow';
  2472. { typedef HRESULT (STDAPICALLTYPE* OLEWRAPPROC) (TIID riid, LPVOID* ppvWin, LPVOID* ppvMac); }
  2473. function WlmOleRegisterUserWrap(procNew:OLEWRAPPROC; pprocOld:POLEWRAPPROC):WINOLEAPI;cdecl;external 'ole32.dll' name 'WlmOleRegisterUserWrap';
  2474. {$endif}
  2475. { OLE 1.0 conversion APIS }
  2476. {**** OLE 1.0 OLESTREAM declarations ************************************ }
  2477. type
  2478. LPOLESTREAM = ^_OLESTREAM;
  2479. _OLESTREAMVTBL = record
  2480. Get : function (p : POleStr;out o;dw : DWORD) : DWORD;
  2481. Put : function (p : POleStr;const o;dw : DWORD) : DWORD;
  2482. end;
  2483. OLESTREAMVTBL = _OLESTREAMVTBL;
  2484. LPOLESTREAMVTBL = OLESTREAMVTBL;
  2485. _OLESTREAM = record
  2486. lpstbl : LPOLESTREAMVTBL;
  2487. end;
  2488. OLESTREAM = _OLESTREAM;
  2489. (* Const before type ignored *)
  2490. function OleConvertOLESTREAMToIStorage(_lpolestream:LPOLESTREAM; pstg:IStorage; ptd:PDVTARGETDEVICE):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleConvertOLESTREAMToIStorage';
  2491. function OleConvertIStorageToOLESTREAM(pstg:IStorage; lpolestream:LPOLESTREAM):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleConvertIStorageToOLESTREAM';
  2492. { Storage Utility APIs }
  2493. function GetHGlobalFromILockBytes(plkbyt:ILockBytes;out phglobal:HGLOBAL):WINOLEAPI;cdecl;external 'ole32.dll' name 'GetHGlobalFromILockBytes';
  2494. function CreateILockBytesOnHGlobal(hGlobal:HGLOBAL; fDeleteOnRelease:BOOL;out pplkbyt:ILockBytes):WINOLEAPI;cdecl;external 'ole32.dll' name 'CreateILockBytesOnHGlobal';
  2495. function GetHGlobalFromStream(pstm:IStream;out phglobal:HGLOBAL):WINOLEAPI;cdecl;external 'ole32.dll' name 'GetHGlobalFromStream';
  2496. function CreateStreamOnHGlobal(hGlobal:HGLOBAL; fDeleteOnRelease:BOOL;out stm:IStream):WINOLEAPI;cdecl;external 'ole32.dll' name 'CreateStreamOnHGlobal';
  2497. { ConvertTo APIS }
  2498. function OleDoAutoConvert(pStg:IStorage; pClsidNew:LPCLSID):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleDoAutoConvert';
  2499. function OleGetAutoConvert(const clsidOld:TLCID; pClsidNew:LPCLSID):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleGetAutoConvert';
  2500. function OleSetAutoConvert(const clsidOld:TLCID; clsidNew:TLCID):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleSetAutoConvert';
  2501. function GetConvertStg(pStg:IStorage):WINOLEAPI;cdecl;external 'ole32.dll' name 'GetConvertStg';
  2502. function SetConvertStg(pStg:IStorage; fConvert:BOOL):WINOLEAPI;cdecl;external 'ole32.dll' name 'SetConvertStg';
  2503. { Presentation data to OLESTREAM }
  2504. { format }
  2505. { width }
  2506. { height }
  2507. { size bytes }
  2508. { bits }
  2509. function OleConvertIStorageToOLESTREAMEx(pstg:IStorage; cfFormat:CLIPFORMAT; lWidth:LONG; lHeight:LONG; dwSize:DWORD;
  2510. pmedium:LPSTGMEDIUM; polestm:LPOLESTREAM):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleConvertIStorageToOLESTREAMEx';
  2511. { Presentation data from OLESTREAM }
  2512. { format }
  2513. { width }
  2514. { height }
  2515. { size bytes }
  2516. function OleConvertOLESTREAMToIStorageEx(polestm:LPOLESTREAM; pstg:IStorage; pcfFormat:PCLIPFORMAT; plwWidth:PLONG; plHeight:PLONG;
  2517. pdwSize:PDWORD; pmedium:LPSTGMEDIUM):WINOLEAPI;cdecl;external 'ole32.dll' name 'OleConvertOLESTREAMToIStorageEx';
  2518. const
  2519. DROPEFFECT_NONE = 0;
  2520. DROPEFFECT_COPY = 1;
  2521. DROPEFFECT_MOVE = 2;
  2522. DROPEFFECT_LINK = 4;
  2523. DROPEFFECT_SCROLL = dword($80000000);
  2524. type
  2525. BORDERWIDTHS = TRect;
  2526. LPBORDERWIDTHS = PRect;
  2527. LPCBORDERWIDTHS = PRect;
  2528. TBorderWidths = TRect;
  2529. PBorderWidths = PRect;
  2530. function CoBuildVersion:DWORD;stdcall; external 'ole32.dll' name 'CoBuildVersion';
  2531. function CoInitialize(_para1:PVOID):HRESULT;stdcall; external 'ole32.dll' name 'CoInitialize';
  2532. function CoInitializeEx(_para1:LPVOID; _para2:DWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoInitializeEx';
  2533. procedure CoUninitialize;stdcall; external 'ole32.dll' name 'CoUninitialize';
  2534. function CoGetMalloc(_para1:DWORD; out _para2:IMalloc):HRESULT;stdcall; external 'ole32.dll' name 'CoGetMalloc';
  2535. function CoGetCurrentProcess:DWORD;stdcall; external 'ole32.dll' name 'CoGetCurrentProcess';
  2536. function CoRegisterMallocSpy(_para1:IMallocSpy):HRESULT;stdcall; external 'ole32.dll' name 'CoRegisterMallocSpy';
  2537. function CoRevokeMallocSpy:HRESULT;stdcall; external 'ole32.dll' name 'CoRevokeMallocSpy';
  2538. function CoCreateStandardMalloc(_para1:DWORD; out _para2:IMalloc):HRESULT;stdcall; external 'ole32.dll' name 'CoGetMalloc';
  2539. function CoGetClassObject(const _para1:TCLSID; _para2:DWORD; _para3:PVOID; const _para4:TIID; out _para5):HRESULT;stdcall; external 'ole32.dll' name 'CoGetClassObject';
  2540. function CoRegisterClassObject(const _para1:TCLSID; _para2:IUnknown; _para3:DWORD; _para4:DWORD; _para5:PDWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoRegisterClassObject';
  2541. function CoRevokeClassObject(_para1:DWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoRevokeClassObject';
  2542. function CoGetMarshalSizeMax(_para1:PULONG;const _para2:TIID; _para3:IUnknown; _para4:DWORD; _para5:PVOID;
  2543. _para6:DWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoGetMarshalSizeMax';
  2544. function CoMarshalInterface(_para1:IStream;const _para2:TIID; _para3:IUnknown; _para4:DWORD; _para5:PVOID;
  2545. _para6:DWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoMarshalInterface';
  2546. function CoUnmarshalInterface(_para1:IStream;const _para2:TIID; out _para3):HRESULT;stdcall; external 'ole32.dll' name 'CoUnmarshalInterface';
  2547. function CoMarshalHresult(_para1:IStream; _para2:HRESULT):HRESULT;stdcall; external 'ole32.dll' name 'CoMarshalHresult';
  2548. function CoUnmarshalHresult(_para1:IStream; _para2:HRESULT):HRESULT;stdcall; external 'ole32.dll' name 'CoUnmarshalHresult';
  2549. function CoReleaseMarshalData(_para1:IStream):HRESULT;stdcall; external 'ole32.dll' name 'CoReleaseMarshalData';
  2550. function CoDisconnectObject(_para1:IUnknown; _para2:DWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoDisconnectObject';
  2551. function CoLockObjectExternal(_para1:IUnknown; _para2:BOOL; _para3:BOOL):HRESULT;stdcall; external 'ole32.dll' name 'CoLockObjectExternal';
  2552. function CoGetStandardMarshal(const _para1:TIID; _para2:IUnknown; _para3:DWORD; _para4:PVOID; _para5:DWORD;
  2553. out _para6:IMarshal):HRESULT;stdcall; external 'ole32.dll' name 'CoGetStandardMarshal';
  2554. function CoGetStdMarshalEx(_para1:IUnknown; _para2:DWORD; out _para3:IUnknown):HRESULT;stdcall; external 'ole32.dll' name 'CoGetStdMarshalEx';
  2555. function CoIsHandlerConnected(_para1:IUnknown):BOOL;stdcall; external 'ole32.dll' name 'CoIsHandlerConnected';
  2556. function CoHasStrongExternalConnections(_para1:IUnknown):BOOL;stdcall; external 'ole32.dll' name 'CoHasStrongExternalConnections';
  2557. function CoMarshalInterThreadInterfaceInStream(const _para1:TIID; _para2:IUnknown; out _para3:IStream):HRESULT;stdcall; external 'ole32.dll' name 'CoMarshalInterThreadInterfaceInStream';
  2558. function CoGetInterfaceAndReleaseStream(_para1:IStream;const _para2:TIID; out _para3):HRESULT;stdcall; external 'ole32.dll' name 'CoGetInterfaceAndReleaseStream';
  2559. function CoCreateFreeThreadedMarshaler(_para1:IUnknown; out _para2:IUnknown):HRESULT;stdcall; external 'ole32.dll' name 'CoCreateFreeThreadedMarshaler';
  2560. function CoLoadLibrary(_para1:LPOLESTR; _para2:BOOL):THandle;stdcall; external 'ole32.dll' name 'CoLoadLibrary';
  2561. procedure CoFreeLibrary(_para1:THandle);stdcall; external 'ole32.dll' name 'CoFreeLibrary';
  2562. procedure CoFreeAllLibraries;stdcall; external 'ole32.dll' name 'CoFreeAllLibraries';
  2563. procedure CoFreeUnusedLibraries;stdcall; external 'ole32.dll' name 'CoFreeUnusedLibraries';
  2564. function CoCreateInstance(const _para1:TCLSID; _para2:IUnknown; _para3:DWORD;const _para4:TIID;out _para5):HRESULT;stdcall; external 'ole32.dll' name 'CoCreateInstance';
  2565. function CoCreateInstanceEx(const _para1:TCLSID; _para2:IUnknown; _para3:DWORD; _para4:PCOSERVERINFO; _para5:DWORD;
  2566. _para6:PMULTI_QI):HRESULT;stdcall; external 'ole32.dll' name 'CoCreateInstanceEx';
  2567. function StringFromCLSID(const _para1:TCLSID; out _para2:POLESTR):HRESULT;stdcall; external 'ole32.dll' name 'StringFromCLSID';
  2568. function CLSIDFromString(_para1:LPOLESTR; _para2:LPCLSID):HRESULT;stdcall; external 'ole32.dll' name 'CLSIDFromString';
  2569. function StringFromIID(const _para1:TIID; out _para2:POLESTR):HRESULT;stdcall; external 'ole32.dll' name 'StringFromIID';
  2570. function IIDFromString(_para1:LPOLESTR; out _para2:TIID):HRESULT;stdcall; external 'ole32.dll' name 'IIDFromString';
  2571. function CoIsOle1Class(const _para1:TCLSID):BOOL;stdcall; external 'ole32.dll' name 'CoIsOle1Class';
  2572. function ProgIDFromCLSID(const _para1:TCLSID; out _para2:POLESTR):HRESULT;stdcall; external 'ole32.dll' name 'ProgIDFromCLSID';
  2573. function CLSIDFromProgID(_para1:POLESTR; _para2:LPCLSID):HRESULT;stdcall; external 'ole32.dll' name 'CLSIDFromProgID';
  2574. function CLSIDFromProgID(_para1:POLESTR; out _para2:TCLSID):HRESULT;stdcall; external 'ole32.dll' name 'CLSIDFromProgID';
  2575. function StringFromGUID2(const _para1:TGUID; _para2:LPOLESTR; _para3:longint):longint;stdcall; external 'ole32.dll' name 'StringFromGUID2';
  2576. function CoCreateGuid(_para1:PGUID):HRESULT;stdcall; external 'ole32.dll' name 'CoCreateGuid';
  2577. function CoFileTimeToDosDateTime(_para1:PFILETIME; _para2:LPWORD; _para3:LPWORD):BOOL;stdcall; external 'ole32.dll' name 'CoFileTimeToDosDateTime';
  2578. function CoDosDateTimeToFileTime(_para1:WORD; _para2:WORD; _para3:PFILETIME):BOOL;stdcall; external 'ole32.dll' name 'CoDosDateTimeToFileTime';
  2579. function CoFileTimeNow(_para1:PFILETIME):HRESULT;stdcall; external 'ole32.dll' name 'CoFileTimeNow';
  2580. function CoRegisterMessageFilter(_para1:IMessageFilter;out _para2:IMessageFilter):HRESULT;stdcall; external 'ole32.dll' name 'CoRegisterMessageFilter';
  2581. function CoGetTreatAsClass(const _para1:TCLSID; _para2:LPCLSID):HRESULT;stdcall; external 'ole32.dll' name 'CoGetTreatAsClass';
  2582. function CoTreatAsClass(const _para1:TCLSID; const _para2:TCLSID):HRESULT;stdcall; external 'ole32.dll' name 'CoTreatAsClass';
  2583. type
  2584. LPFNGETCLASSOBJECT = function (const _para1:TCLSID; const _para2:TIID;out _para3):HRESULT;stdcall;
  2585. LPFNCANUNLOADNOW = function:HRESULT;stdcall;
  2586. function DllGetClassObject(const _para1:TCLSID; const _para2:TIID; out _para3):HRESULT;stdcall; external 'ole32.dll' name 'DllGetClassObject';
  2587. function DllCanUnloadNow:HRESULT;stdcall; external 'ole32.dll' name 'DllCanUnloadNow';
  2588. function CoTaskMemAlloc(_para1:ULONG):PVOID;stdcall; external 'ole32.dll' name 'CoTaskMemAlloc';
  2589. function CoTaskMemRealloc(_para1:PVOID; _para2:ULONG):PVOID;stdcall; external 'ole32.dll' name 'CoTaskMemRealloc';
  2590. procedure CoTaskMemFree(_para1:PVOID);stdcall; external 'ole32.dll' name 'CoTaskMemFree';
  2591. function CreateDataAdviseHolder(_para1:IDataAdviseHolder):HRESULT;stdcall; external 'ole32.dll' name 'CreateDataAdviseHolder';
  2592. function CreateDataCache(_para1:IUnknown; const _para2:TCLSID; const _para3:TIID; out _para4):HRESULT;stdcall; external 'ole32.dll' name 'CreateDataCache';
  2593. (* Const before type ignored *)
  2594. function StgCreateDocfile(_para1:POLESTR; _para2:DWORD; _para3:DWORD; out _para4:IStorage):HRESULT;stdcall; external 'ole32.dll' name 'StgCreateDocfile';
  2595. function StgCreateDocfileOnILockBytes(_para1:ILockBytes; _para2:DWORD; _para3:DWORD; out _para4:IStorage):HRESULT;stdcall; external 'ole32.dll' name 'StgCreateDocfileOnILockBytes';
  2596. (* Const before type ignored *)
  2597. function StgOpenStorage(_para1:POLESTR; _para2:IStorage; _para3:DWORD; _para4:SNB; _para5:DWORD;
  2598. out _para6:IStorage):HRESULT;stdcall; external 'ole32.dll' name 'StgOpenStorage';
  2599. function StgOpenStorageOnILockBytes(_para1:ILockBytes; _para2:IStorage; _para3:DWORD; _para4:SNB; _para5:DWORD;
  2600. out _para6:IStorage):HRESULT;stdcall; external 'ole32.dll' name 'StgOpenStorageOnILockBytes';
  2601. function StgIsStorageFile(_para1:POLESTR):HRESULT;stdcall; external 'ole32.dll' name 'StgIsStorageFile';
  2602. function StgIsStorageILockBytes(_para1:ILockBytes):HRESULT;stdcall; external 'ole32.dll' name 'StgIsStorageILockBytes';
  2603. function StgSetTimes(_para1:POLESTR; _para2:PFILETIME; _para3:PFILETIME; _para4:PFILETIME):HRESULT;stdcall; external 'ole32.dll' name 'StgSetTimes';
  2604. function BindMoniker(_para1:IMoniker; _para2:DWORD; _para3:TIID; out _para4):HRESULT;stdcall; external 'ole32.dll' name 'BindMoniker';
  2605. function MkParseDisplayName(_para1:IBindCtx; _para2:POLESTR; out _para3:PULONG; out _para4:IMoniker):HRESULT;stdcall; external 'ole32.dll' name 'MkParseDisplayName';
  2606. function MonikerRelativePathTo(_para1:IMoniker; _para2:IMoniker; out _para3:IMoniker; _para4:BOOL):HRESULT;stdcall; external 'ole32.dll' name 'MonikerRelativePathTo';
  2607. function MonikerCommonPrefixWith(_para1:IMoniker; _para2:IMoniker; _para3:PIMoniker):HRESULT;stdcall; external 'ole32.dll' name 'MonikerCommonPrefixWith';
  2608. function CreateBindCtx(_para1:DWORD;out _para2:IBindCtx):HRESULT;stdcall; external 'ole32.dll' name 'CreateBindCtx';
  2609. function CreateGenericComposite(_para1:IMoniker; _para2:IMoniker; out _para3:IMoniker):HRESULT;stdcall; external 'ole32.dll' name 'CreateGenericComposite';
  2610. function GetClassFile(_para1:POLESTR; out _para2:TCLSID):HRESULT;stdcall; external 'ole32.dll' name 'GetClassFile';
  2611. function CreateFileMoniker(_para1:POLESTR; out _para2:IMoniker):HRESULT;stdcall; external 'ole32.dll' name 'CreateFileMoniker';
  2612. function CreateItemMoniker(_para1:POLESTR; _para2:POLESTR;out _para3:IMoniker):HRESULT;stdcall; external 'ole32.dll' name 'CreateItemMoniker';
  2613. function CreateAntiMoniker(_para1:PIMoniker):HRESULT;stdcall; external 'ole32.dll' name 'CreateAntiMoniker';
  2614. function CreatePointerMoniker(_para1:IUnknown; out _para2:IMoniker):HRESULT;stdcall; external 'ole32.dll' name 'CreatePointerMoniker';
  2615. function GetRunningObjectTable(_para1:DWORD; _para2:IRunningObjectTable):HRESULT;stdcall; external 'ole32.dll' name 'GetRunningObjectTable';
  2616. function CoInitializeSecurity(_para1:PSECURITY_DESCRIPTOR; _para2:LONG; _para3:PSOLE_AUTHENTICATION_SERVICE; _para4:pointer; _para5:DWORD;
  2617. _para6:DWORD; _para7:pointer; _para8:DWORD; _para9:pointer):HRESULT;stdcall; external 'ole32.dll' name 'CoInitializeSecurity';
  2618. function CoGetCallContext(const _para1:TIID; _para2:Ppointer):HRESULT;stdcall; external 'ole32.dll' name 'CoGetCallContext';
  2619. function CoQueryProxyBlanket(_para1:IUnknown; _para2:PDWORD; _para3:PDWORD; _para4:POLESTR; _para5:PDWORD;
  2620. _para6:PDWORD; _para7:Pointer; _para8:PDWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoQueryProxyBlanket';
  2621. function CoSetProxyBlanket(_para1:IUnknown; _para2:DWORD; _para3:DWORD; _para4:POLESTR; _para5:DWORD;
  2622. _para6:DWORD; _para7:pointer; _para8:DWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoSetProxyBlanket';
  2623. function CoCopyProxy(_para1:IUnknown; var _para2:IUnknown):HRESULT;stdcall; external 'ole32.dll' name 'CoCopyProxy';
  2624. function CoQueryClientBlanket(_para1:PDWORD; _para2:PDWORD; _para3:POLESTR; _para4:PDWORD; _para5:PDWORD;
  2625. _para6:pointer; _para7:PDWORD):HRESULT;stdcall; external 'ole32.dll' name 'CoQueryClientBlanket';
  2626. function CoImpersonateClient:HRESULT;stdcall; external 'ole32.dll' name 'CoImpersonateClient';
  2627. function CoRevertToSelf:HRESULT;stdcall; external 'ole32.dll' name 'CoRevertToSelf';
  2628. function CoQueryAuthenticationServices(_para1:PDWORD; _para2:PSOLE_AUTHENTICATION_SERVICE):HRESULT;stdcall; external 'ole32.dll' name 'CoQueryAuthenticationServices';
  2629. function CoSwitchCallContext(_para1:IUnknown; var _para2:IUnknown):HRESULT;stdcall; external 'ole32.dll' name 'CoSwitchCallContext';
  2630. function CoGetInstanceFromFile(_para1:PCOSERVERINFO; _para2:PCLSID; _para3:IUnknown; _para4:DWORD; _para5:DWORD;
  2631. _para6:POLESTR; _para7:DWORD; _para8:PMULTI_QI):HRESULT;stdcall; external 'ole32.dll' name 'CoGetInstanceFromFile';
  2632. function CoGetInstanceFromIStorage(_para1:PCOSERVERINFO; _para2:PCLSID; _para3:IUnknown; _para4:DWORD; _para5:IStorage;
  2633. _para6:DWORD; _para7:PMULTI_QI):HRESULT;stdcall; external 'ole32.dll' name 'CoGetInstanceFromIStorage';
  2634. type
  2635. TDispID = DISPID;
  2636. TDispIDList = array[0..65535] of TDispID;
  2637. PDispIDList = ^TDispIDList;
  2638. function SetErrorInfo(dwReserved:ULONG;errinfo:IErrorInfo):HResult;stdcall; external 'ole32.dll' name 'SetErrorInfo';
  2639. function GetErrorInfo(dwReserved:ULONG;out errinfo:IErrorInfo):HResult;stdcall; external 'ole32.dll' name 'GetErrorInfo';
  2640. function CreateErrorInfo(out errinfo:ICreateErrorInfo):HResult;stdcall; external 'ole32.dll' name 'CreateErrorInfo';
  2641. const
  2642. oleaut32dll = 'oleaut32.dll';
  2643. function SysAllocString(psz: pointer): Integer; external oleaut32dll name 'SysAllocString';
  2644. function SysAllocStringLen(psz: pointer; len:dword): Integer; external oleaut32dll name 'SysAllocStringLen';
  2645. procedure SysFreeString(bstr:pointer); external oleaut32dll name 'SysFreeString';
  2646. function SysStringLen(bstr:pointer):UINT; external oleaut32dll name 'SysStringLen';
  2647. function SysReAllocString(var bstr:pointer;psz: pointer): Integer; external oleaut32dll name 'SysReAllocString';
  2648. function SysReAllocStringLen(var bstr:pointer;psz: pointer; len:dword): Integer; external oleaut32dll name 'SysReAllocStringLen';
  2649. { Active object registration API }
  2650. const
  2651. ACTIVEOBJECT_STRONG = 0;
  2652. ACTIVEOBJECT_WEAK = 1;
  2653. function RegisterActiveObject(unk: IUnknown; const clsid: TCLSID; dwFlags: DWORD; out dwRegister: culong): HResult; external oleaut32dll name 'RegisterActiveObject';
  2654. function RevokeActiveObject(dwRegister: culong; pvReserved: Pointer) : HResult; external oleaut32dll name 'RevokeActiveObject';
  2655. function GetActiveObject(const clsid: TCLSID; pvReserved: Pointer; out unk: IUnknown) : HResult; external oleaut32dll name 'GetActiveObject';
  2656. implementation
  2657. end.