activex.pp 118 KB

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