activex.pp 119 KB

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